KR20150052826A - 통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템 - Google Patents

통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20150052826A
KR20150052826A KR1020157000630A KR20157000630A KR20150052826A KR 20150052826 A KR20150052826 A KR 20150052826A KR 1020157000630 A KR1020157000630 A KR 1020157000630A KR 20157000630 A KR20157000630 A KR 20157000630A KR 20150052826 A KR20150052826 A KR 20150052826A
Authority
KR
South Korea
Prior art keywords
video
buffer
video stream
terminal node
client
Prior art date
Application number
KR1020157000630A
Other languages
English (en)
Other versions
KR102050816B1 (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 KR20150052826A publication Critical patent/KR20150052826A/ko
Application granted granted Critical
Publication of KR102050816B1 publication Critical patent/KR102050816B1/ko

Links

Images

Classifications

    • 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
    • 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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/2401Monitoring of the client buffer
    • 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
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

시스템 및 방법은 통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용할 수 있다. 여기에서 제공되는 시스템 및 방법은 제어 응답을 사용하여 통신 시스템에서의 변경을 추진할 수 있다. 예시의 제어 응답은 용량 제약된 조건 하에서 패킷의 스케줄링을 위한 응답을 포함한다. 기지국과 같은 액세스 노드는 서버로부터의 비디오를 사용자 디바이스 내 클라이언트에게로 송신할 수 있다. 액세스 노드는 클라이언트 측 비디오 버퍼 점유율을 추정하고 비디오 재생 멎음을 예측할 수 있다. 클라이언트 측 비디오 버퍼 점유율은 클라이언트의 거동을 에뮬레이팅함으로써 추정될 수 있다. 버퍼 점유율은 사용자에 대한 체감 품질을 강화하도록 사용될 수 있다. 예를 들어, 버퍼 점유율이 낮을 때, 액세스 노드는 비디오를 실어나르는 패킷의 스케줄링 우선순위를 증가시킬 수 있다.

Description

통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템{SYSTEMS AND METHODS FOR USING CLIENT-SIDE VIDEO BUFFER OCCUPANCY FOR ENHANCED QUALITY OF EXPERIENCE IN A COMMUNICATION NETWORK}
저작권 공고
본 특허 문서의 개시의 일부는 저작권 보호를 받는 자료를 포함하고 있다. 저작권자는 특허 문서 또는 특허 개시의 누구에 의한 팩스 복제에도, 그것이 특허상표청 특허 파일 또는 레코드에 나타날 때에는, 이의가 없지만, 그렇지 않다면, 모든 저작권 권리를 그 무엇이든 보유한다.
본 발명은 일반적으로는 통신 시스템 분야에 관한 것으로, 더 구체적으로는 통신 네트워크에서 강화된 체감 품질을 위해 추정된 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템에 관한 것이다.
통신 네트워크에 있어서, 데이터가 네트워크 내 다양한 노드 간 효과적으로 전송될 수 있는 레이트는 제한되어 있다. 유선 네트워크에서, 그 제한은 보통은 장비 능력의 함수이다. 예를 들어, 기가비트 이더넷 링크가 전송할 수 있는 것은 초당 십억 비트에 불과하다. 무선 네트워크에서, 그 제한은 보통은 사용되는 전송 기술 및 통신 프로토콜 및 채널 대역폭의 함수이다. 무선 네트워크는 특정 서비스 및 구역에 대해 할당된 스펙트럼의 양 및 송신 노드와 수신 노드 간 신호의 품질에 의해 더 제약을 받는다. 부가적으로, 데이터가 무선 네트워크에서 전송될 수 있는 레이트는 보통은 시간의 흐름에 따라 달라진다.
통신에 대한 수요는 계속 증가하고 있다. 통신에 대한 수요가 통신 네트워크의 용량에 다다르거나 초과할 때, 사용자는 그들 통신 서비스에서 지연 또는 인터럽트를 체감할 가능성이 있다. 지연 또는 인터럽트가 사용자에게 어떻게 영향을 미치는지는, 예를 들어, 통신될 데이터의 유형에 의존하여, 사용자 간 달라질 수 있다. 예를 들어, 스트리밍 비디오에 대한 데이터를 전송함에 있어서의 지연은 이메일 메시지에 대한 데이터를 전송함에 있어서의 지연에 비해 사용자의 체감 품질을 실질적으로 떨어뜨릴 것으로 예상될 것이다.
통신 네트워크에서 강화된 체감 품질을 위해 추정된 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템이 제공된다. 여기에서 제공되는 시스템 및 방법은 제어 응답을 사용하여 통신 시스템에서의 변경을 추진할 수 있다. 예시의 제어 응답은 용량 제약된 조건 하에서 패킷의 스케줄링 및 패킷의 지능적 폐기를 포함한다. 기지국과 같은 액세스 노드는 서버로부터의 비디오를 사용자 디바이스 내 클라이언트에게로 송신할 수 있다. 액세스 노드는 클라이언트 측 비디오 버퍼 점유율을 추정 또는 예측할 수 있다. 클라이언트 측 비디오 버퍼 점유율은 클라이언트의 거동을 에뮬레이팅(emulating)함으로써 예측될 수 있다. 버퍼 점유율은 사용자에 대한 체감 품질을 강화하도록 사용될 수 있다. 예를 들어, 버퍼 점유율이 낮을 때, 액세스 노드는 비디오를 실어나르는 패킷의 스케줄링 우선순위를 증가시킬 수 있다.
일 태양에 있어서, 본 발명은: 단말 노드와 통신하도록 구성된 트랜시버 모듈; 비디오 서버와의 통신을 제공하도록 구성된 백홀 인터페이스 모듈(backhaul interface module); 단말 노드 내 비디오 버퍼의 점유율을 추정하도록 구성된 체감 품질 강화 모듈(quality of experience enhancement module); 및 백홀 인터페이스 모듈을 통하여 다운링크 패킷을 수신하고 스케줄러 파라미터를 이용하여 트랜시버 모듈에 의한 송신을 위해 다운링크 패킷을 스케줄링하도록 구성된 스케줄러 모듈을 포함하는 액세스 노드를 제공하며, 스케줄러 파라미터는 단말 노드 내 비디오 버퍼의 추정된 점유율에 적어도 일부 기반한다.
일 태양에 있어서, 본 발명은: 단말 노드와 통신하도록 구성된 트랜시버 모듈; 컨텐트 서버와의 통신을 제공하도록 구성된 백홀 인터페이스 모듈; 및 트랜시버 모듈 및 백홀 인터페이스 모듈에 결합된 프로세서를 포함하는 액세스 노드를 제공하며, 프로세서는 패킷 중 일부가 단말 노드로의 배송을 위한 비디오 스트림을 포함하고 있는 것인 패킷을 백홀 인터페이스 모듈로부터 수신하고, 수신된 패킷을 검사하여 비디오 스트림에 대한 정보를 결정하고, 그리고 비디오 스트림에 대한 정보를 사용하여 단말 노드 내 비디오 버퍼의 점유율을 추정하도록 배열된다.
일 태양에 있어서, 본 발명은 단말 노드와의 통신을 제공하도록 단말 노드의 내외로 패킷들을 송신 및 수신하는 액세스 노드를 동작시킴에 있어서의 사용을 위한 방법을 제공하며, 패킷들은 비디오 스트림을 실어나르는 패킷들을 포함하고, 그 방법은: 비디오 스트림과 연관된 패킷들을 수신하는 단계; 비디오 스트림의 특성을 결정하도록 패킷을 검사하는 단계; 비디오 스트림을 실어나르는 어느 패킷들이 단말 노드에 배송되었는지를 추정하는 단계; 및 비디오 스트림의 특성 및 비디오 스트림을 실어나르는 패킷들 중 어느 것이 단말 노드에 배송되었는지에 대한 정보를 사용하여 단말 노드 내 비디오 버퍼의 점유율을 추정하는 단계를 포함한다.
본 발명의 다른 특징 및 이점은 본 발명의 태양을 예로써 예시하는 이하의 설명으로부터 명백해지는 것이다.
본 발명의 상세는, 그 구조에 대해서도 그 동작에 대해서도, 유사한 참조 숫자가 유사한 부분을 가리키는 수반 도면의 검토에 의해 부분적으로 얻어질 수 있다.
도 1은 본 발명의 태양에 따른 액세스 노드의 태양의 블록 선도;
도 2는 본 발명의 태양에 따른 액세스 노드의 기능적 블록 선도;
도 3은 시스템 및 방법이 본 발명의 태양에 따라 구현될 수 있는 통신 네트워크의 블록 선도;
도 4는 본 발명의 태양에 따라 통신 네트워크에서 비디오 배송의 선도;
도 5는 본 발명의 태양을 예시하는 비디오 버퍼 점유율 대 시간의 그래프 예시도;
도 6은 본 발명의 태양에 따른 체감 품질 강화 모듈의 블록 선도;
도 7은 본 발명의 태양을 예시하는 클라이언트로의 비디오 데이터 배송 및 비디오 재생의 그래프 예시도; 및
도 8은 본 발명의 태양에 따른 비디오 파일의 데이터 구조 선도.
사용자의 체감 품질(quality of expenence: QoE)을 강화하기 위해 추정되거나 예측된 클라이언트 측 비디오 버퍼 점유율을 사용하는 통신 시스템을 위한 방법 및 시스템이 제공된다. 클라이언트 측 비디오 버퍼 점유율에 대한 정보는, 예를 들어, 사용자 장비와 기지국(또는 다른 네트워크 노드) 간 통신을 스케줄링하기 위한 제어 기능에서 사용될 수 있다. 클라이언트 측 비디오 버퍼 점유율에 대한 정보는, 예를 들어, 무슨 비디오 데이터가 클라이언트에 의해 수신되었는지 및 클라이언트에서 비디오의 추정된 재생 시간 위치에 대한 정보로부터 유도될 수 있다. 그 시스템 및 방법은 용량 제약형 다중-액세스 통신 시스템에 있어서 특히 유용하다.
여기에서 개시되는 시스템 및 방법은 유선 및 무선 기술을 포함하는 다양한 통신 시스템에 적용될 수 있다. 예를 들어, 여기에서 개시되는 시스템 및 방법은 (롱 텀 에볼루션(Long Term Evolution: LTE), LTE 어드밴스트 및 와이맥스를 포함하는) 셀룰러 2G, 3G, 4G, 셀룰러 백홀, 와이파이, 지그비, 블루투스, 울트라 모바일 브로드밴드(Ultra Mobile Broadband: UMB), 디지털 가입자 회선(digital subscriber line: DSL), 동축케이블을 통한 멀티미디어 연합(multimedia over coax alliance: MoCA), 이더넷, 케이블 모뎀 및 다른 점 대 점 또는 점 대 다점 유선 또는 무선 기술과 사용될 수 있다. 간결하게 보여주기 위해, 특정 기술 및 표준의 체계 및 술어를 사용하여 다양한 실시예들이 설명된다. 그렇지만, 여기에서 설명되는 시스템 및 방법은 다른 기술 및 표준에 광범위하게 적용가능하다.
도 1은 본 발명의 태양에 따른 액세스 노드의 태양의 블록 선도이다. 도 1의 액세스 노드는 단말 노드(예를 들어, 셀룰러 폰, 스마트 폰, 모바일 와이맥스 가입자 지국, 태블릿, 노트북, 퍼스널 컴퓨터 및 텔레비전)와 서비스 제공자 또는 코어 네트워크 내 디바이스 및 그 네트워크에 결합된 디바이스(예를 들어, 비디오 서버와 같이 인터넷을 통하여 액세스되는 디바이스) 간 통신을 용이하게 한다. 액세스 노드는, 예를 들어, 모바일 와이맥스 기지국, GSM(global system for mobile) 무선 기지국 트랜시버(base transceiver station: BTS), UMTS(Universal Mobile Telecommunications System) 노드 B, LTE 진화형 노드 B(eNB 또는 eNodeB), 케이블 모뎀 종단 시스템, 또는 다양한 형태 인수의 다른 유선 또는 무선 액세스 노드일 수 있다.
단말 노드는, 예를 들어, 비디오 서버로부터 비디오 데이터를 요청할 수 있고, 그러면 액세스 노드는 단말 노드로부터 그 요청을 수신하고 그 요청을 비디오 서버로 나아가게 중계한다. 유사하게, 요청된 비디오 데이터가 액세스 노드에 도착할 때, 액세스 노드는 그 비디오 데이터를 단말 노드에 송신한다. 이해를 돕기 위하여, 도 1에서는, 실선이 다운링크 데이터를 표현하고 파선이 업링크 데이터를 표현한다. 용어 다운링크 및 업링크는, 각각, 단말 노드로 향하는 방향 및 그로부터 멀어지는 방향을 지칭한다.
비디오 서버는 일반적으로는 하드웨어, 소프트웨어, 또는 비디오 컨텐트를 제공하는 소프트웨어와 하드웨어의 조합을 지칭한다. 비디오 클라이언트는 일반적으로는 하드웨어, 소프트웨어, 또는 비디오 서버로부터 비디오 컨텐트를 수신하는 소프트웨어와 하드웨어의 조합을 지칭한다. 비디오 서버는, 예를 들어, 비디오 파일을 저장하고 비디오 클라이언트로부터의 요청시 특정 HTTP 비디오 스트리밍 프로토콜, 예를 들어, MPEG DASH(Dynamic Adaptive Streaming over HTTP)에 따라 비디오 클라이언트에 비디오 파일을 스트리밍하는 HTTP 비디오 스트리밍 서버일 수 있다. 다른 일례에 있어서, 비디오 서버는 비디오 파일을 저장하고 비디오 클라이언트로부터의 요청시 RTSP/RTP 프로토콜에 따라 비디오 클라이언트에 비디오 파일을 스트리밍하는 실시간 스트리밍 프로토콜(real time streaming protocol: RTSP) 비디오 스트리밍 서버일 수 있다. 다른 일례에 있어서, 비디오 서버는 피어-투-피어 비디오 스트리밍 애플리케이션에서 비디오 소스로서 역할하는 어떠한 디바이스라도 될 수 있다. 컨텐트 배송 네트워크에 있어서는, 보통은 컴퓨터 클러스터가 비디오 서버의 역할을 한다.
액세스 노드는 단말 노드와의 통신을 위한 트랜시버 모듈(179)을 포함한다. 트랜시버 모듈(179)은 단말 노드와의 통신을 위해 사용되는 방법에 적합한 모듈을 포함한다. 예를 들어, LTE 기지국(eNodeB)의 실시예에서는, 트랜시버 모듈(179)이 라디오-주파수 변조기, 복조기, 증폭기 및 동조기와 같은 회로망을 포함한다.
액세스 노드는 다른 네트워크 노드와의 통신을 위한 백홀 인터페이스 모듈(185)을 포함한다. 예를 들어, 백홀 인터페이스 모듈(185)은 또 다른 네트워크 노드 및 네트워크 노드에 결합된 서버와의 통신을 제공할 수 있는 라우터 또는 게이트웨이 디바이스로의 통신을 직접 제공할 수 있다. 백홀 인터페이스 모듈(185)은 다른 네트워크 노드와의 통신을 위해 사용되는 방법에 적합한 모듈을 포함한다. 예를 들어, 이더넷 백홀을 사용하는 LTE 기지국 실시예에서는, 백홀 인터페이스 모듈(185)이 기가비트 이더넷 트랜시버를 포함할 수 있다.
트랜시버 모듈(179)을 통하여 수신된 통신은 백홀 인터페이스 모듈(185)을 통하여 액세스 노드로부터 송신될 수 있다. 유사하게, 백홀 인터페이스 모듈(185)을 통하여 수신된 통신은 트랜시버 모듈(179)을 통하여 액세스 노드로부터 송신될 수 있다.
액세스 노드는 백홀 인터페이스 모듈로부터 수신된 데이터를 트랜시버 모듈(179)을 통하여 하나 이상의 단말 노드로 송신하는 것을 스케줄링하는데 사용하기 위한 다운링크 스케줄러 모듈(160)을 포함한다. 액세스 노드는 백홀 인터페이스 모듈(185)에 의한 백홀 상의 송신을 위해 트랜시버 모듈(179)을 통하여 수신된 하나 이상의 단말 노드로부터의 송신을 스케줄링 및 프로세싱하는데 사용하기 위한 업링크 프로세싱 및 스케줄링 모듈(170)을 포함한다. 명확성과 간략성을 위해, 일부 설명은 단일 단말 노드 및 단일 업링크 디바이스와의 통신을 설명할 것이다. 액세스 노드는 일반적으로는 여러 단말 노드 및 업링크 디바이스와 동시다발적으로 통신할 것이다.
다운링크 스케줄러 모듈(160)은 백홀 인터페이스 모듈(185)로부터 패킷을 수신하고 그 패킷을 하나 이상의 큐에 배치한다. 큐는 패킷을 그것들이 송신, 폐기 또는 그렇지 않으면 큐로부터 제거될 때까지 지니고 있다. 다운링크 스케줄러 모듈(160)은 또한 패킷이 송신을 위해 다양한 큐로부터 제거될 때를 결정하는 스케줄링 제어 모듈을 포함할 수 있다. 스케줄링 제어 모듈은, 예를 들어, 큐의 각각과 연관된 스케줄링 파라미터(예를 들어, 가중치)를 갖는 비례 공정 큐잉 방법 또는 가중치 라운드 로빈을 사용할 수 있다. 업링크 프로세싱 및 스케줄링 모듈(170)은 다운링크 스케줄러 모듈(160)에 의해 사용되는 것과 동일 또는 유사한 스케줄링 방법을 사용할 수 있다. 부가적으로, 업링크 프로세싱 및 스케줄링 모듈(170)은 업링크 트래픽에 대하여 QoE 강화 모듈(110)과 유사한 프로세싱을 수행할 수 있다.
액세스 노드는 체감 품질(QoE) 강화 모듈(110)을 포함한다. QoE 강화 모듈(110)은 도 1의 액세스 노드와 통신하는 단말 디바이스의 사용자에 대하여 QoE를 개선하도록 사용될 수 있다.
QoE 강화 모듈(110)은 백홀 인터페이스 모듈(185)로부터 다운링크 패킷을 수신한다. QoE 강화 모듈(110)은 또한 업링크 프로세싱 및 스케줄링 모듈(170) 또는 트랜시버 모듈(179)을 통하여 업링크 패킷 또는 업링크 패킷에 대한 정보를 수신할 수 있다.
QoE 강화 모듈(110)은 패킷의 컨텐트에 대한 정보를 결정하도록 패킷을 검사할 수 있다. 정보는, 예를 들어, 패킷과 연관된 애플리케이션 클래스 및 특정 애플리케이션일 수 있다. 애플리케이션에 대한 추가적 정보도 결정될 수 있다. 예를 들어, 비디오 애플리케이션에 대하여, 추가적 정보는 비디오 포맷, 비트 레이트, 비디오 해상도, 플레이어 상태, 프레임 레이트 및 재생 상황을 포함할 수 있다.
QoE 강화 모듈(110)은 정체를 평가할 수 있다. 통신 정체는 통신 네트워크 내 여러 위치에서 일어날 수 있다. QoE 강화 모듈(110)은, 특히, 액세스 노드와 단말 노드 간 통신에 영향을 미치는 정체를 평가할 수 있다. 정체는 통신에 대한 수요가 통신에 대한 용량을 초과할 때 일어날 수 있다. QoE 강화 모듈(110)은, 예를 들어, 정체 평가에 있어서 패킷 도착 레이트, 스루풋 지연 및 자원 이용에 대한 정보를 사용할 수 있다.
QoE 강화 모듈(110)은 제어 응답을 함에 있어서 패킷 정보 및 정체 정보를 사용할 수 있다. 예를 들어, QoE 강화 모듈(110)은 다운링크 스케줄러 모듈(160)에 스케줄러 파라미터를 공급할 수 있다. 스케줄러 파라미터는 QoE를 수정하도록 설정될 수 있다.
QoE 강화 모듈(110)은, 큐 점유율, 큐잉 지연, 패킷 누락 레이트 및 출구 레이트와 같이 로컬 이용가능한 정보를 이용하는 것에 부가하여, 단말 노드에서의 애플리케이션에 대한 사용자 QoE를 사정할 수 있다. 일 실시예에 있어서, QoE 강화 모듈(110)은 비디오 배송이 있는 애플리케이션에 대한 QoE를 강화할 수 있다. 비디오 데이터는 웹 브라우징과 사용되는 데이터 또는 이메일과 같은 여러 다른 데이터의 특성과는 다른 특성을 갖는다. 비디오 데이터는, 특히, 특정 타이밍에 따라 소비된다. 비디오 데이터가 그 수신지에 적시에 배송되지 않으면, 비디오를 재생 중인 비디오 세션은 동결될 것이다. 이러한 경우에 있어서, 비디오 세션에 대한 체감 품질상의 충격은 다른 유형의 데이터로 유사한 지연이 야기할 수 있는 것보다 훨씬 더 크다. 그리하여 QoE 강화 모듈(110)은 비디오 배송에 대한 타이밍 필요성을 고려할 수 있다.
QoE 강화 모듈(110)의 동작의 일례로서, 액세스 노드가 비디오 서버로부터의 비디오 데이터를 단말 노드에서의 비디오 클라이언트로 중계하는 비디오 배송 애플리케이션을 고려한다. 비디오 동결의 듀레이션 및 수는 비디오 배송에 대한 사용자의 체감 품질의 척도로 사용될 수 있다. 비디오 동결은 클라이언트 디바이스에서의 비디오 버퍼가 공백이거나 디코딩에 필요한 완전 데이터 부족일 때 일어난다. 액세스 노드는 무슨 데이터가 클라이언트 측 비디오 버퍼에 있는지를 추정할 수 있다. QoE 강화 모듈(110)은 클라이언트 측 비디오 버퍼 점유율을 추정하도록 클라이언트의 거동의 동작을 에뮬레이팅할 수 있다. QoE 강화 모듈(110)은 비디오 동결을 예측하도록 그 추정된 클라이언트 측 비디오 버퍼 점유율을 사용할 수 있다. 클라이언트의 거동의 에뮬레이팅된 태양은 비디오 중 얼마나 많이 디코딩되었는지, 즉, 디코딩 시간이 얼마인지를 추정하는 것을 포함할 수 있다. 디코딩 시간은 클라이언트가 비디오 데이터를 소비하는(예를 들어, 버퍼로부터 읽는) 비디오 스트림 내 위치에 대응한다. 디코딩 시간은 비디오 데이터의 (데이터가 디스플레이될 때의) 상영 시간과 반드시 동일한 것은 아니다. 디코딩 시간은 디코딩이 보통은 재생을 위해 수행되므로 재생 시간이라고도 지칭될 수 있다. 업링크 및 다운링크 패킷은 에뮬레이션을 위해 사용될 수 있다. 패킷의 컨텐트 및 그들 타이밍도 역시 사용될 수 있다.
도 1이 각각의 모듈의 단일 사례를 예시하고 있기는 하지만, 일 실시예에서는, 다양한 모듈의 다수의 사례가 있을 수 있다. 예를 들어, 액세스 노드는 다수의 백홀 인터페이스 모듈을 포함할 수 있다. 유사하게, 액세스 노드는 다수의 트랜시버 모듈을 포함할 수 있다. 다수의 백홀 인터페이스 모듈 및 트랜시버 모듈은 서로 다른 프로토콜에 따라 동작할 수 있다.
도 1은 다양한 모듈에 기능의 특정 할당 및 다양한 통신 노드에 모듈의 특정 분산을 위한 액세스 노드를 예시하고 있다. 여러 다른 배열이 또한 사용될 수 있다. 예를 들어, QoE 강화 모듈(110)의 전부 또는 일부는 코어 네트워크 내 게이트웨이 노드에 있을 수 있다.
도 2는 본 발명의 태양에 따른 액세스 노드의 기능적 블록 선도이다. 도 1의 액세스 노드는, 예를 들어, 도 2의 액세스 노드를 사용하여 구현될 수 있다. 다양한 실시예에 있어서, 도 2의 액세스 노드는 모바일 와이맥스 기지국, GSM 무선 기지국 트랜시버(BTS), UMTS 노드 B, LTE 또는 LTE 어드밴스트 진화형 노드 B(eNB 또는 eNodeB), 케이블 모뎀 헤드 엔드, 또는 다양한 형태 인수의 다른 유선 또는 무선 액세스 노드일 수 있다.
액세스 노드는 프로세서 모듈(281)을 포함한다. 프로세서 모듈(281)은 송수신기(트랜시버) 모듈(279), 백홀 인터페이스 모듈(285) 및 저장 모듈(283)에 결합되어 있다.
송수신기 모듈(279)은 다른 디바이스와 통신을 송신 및 수신하도록 구성된다. 여러 실시예에 있어서, 통신은 무선으로 송신 및 수신된다. 그러한 실시예에 있어서, 일반적으로 액세스 노드는 라디오 신호의 송신 및 수신을 위한 하나 이상의 안테나를 포함한다. 다른 실시예에 있어서, 통신은 유선 또는 광케이블과 같은 물리 커넥션을 통해 송신 및 수신된다. 송수신기 모듈(279)의 통신은 단말 노드와 하는 것일 수 있다.
백홀 인터페이스 모듈(285)은 액세스 노드와 코어 네트워크 간 통신을 제공한다. 통신은 백홀 커넥션을 통해서일 수 있다. 송수신기 모듈(279)을 통해 수신된 통신은, 프로세싱 후에, 백홀 커넥션 상에서 송신될 수 있다. 유사하게, 백홀 커넥션으로부터 수신된 통신은 송수신기 모듈(279)에 의해 송신될 수 있다. 도 2의 액세스 노드가 단일 백홀 인터페이스 모듈(285)을 갖는 것으로 도시되어 있기는 하지만, 액세스 노드의 다른 실시예는 다수의 백홀 인터페이스 모듈을 포함할 수 있다. 유사하게, 액세스 노드는 다수의 송수신기 모듈을 포함할 수 있다. 다수의 백홀 인터페이스 모듈 및 송수신기 모듈은 서로 다른 프로토콜에 따라 동작할 수 있다.
프로세서 모듈(281)은 액세스 노드에 의해 수신 및 송신되는 통신을 프로세싱할 수 있다. 저장 모듈(283)은 프로세서 모듈(281)에 의한 사용을 위해 데이터를 저장한다. 저장 모듈(283)은 또한 프로세서 모듈(281)에 의한 실행을 위해 컴퓨터 판독가능 명령어를 저장하도록 사용될 수 있다. 컴퓨터 판독가능 명령어는 액세스 노드의 다양한 기능을 달성하도록 액세스 노드(275)에 의해 사용될 수 있다. 일 실시예에 있어서, 저장 모듈(283) 또는 저장 모듈(283)의 부분들은 비-일시적 머신 판독가능 매체일 수 있다. 간결한 설명을 위해, 액세스 노드 또는 그 실시예는 소정 기능성을 갖는 것으로 설명된다. 일부 실시예에 있어서 이러한 기능성은 저장 모듈(283), 송수신기 모듈(279) 및 백홀 인터페이스 모듈(285)과 함께 프로세서 모듈(281)에 의해 달성됨을 인식할 것이다. 더욱, 명령어를 실행하는 것에 부가하여, 프로세서 모듈(281)은 소정 기능을 달성하기 위해 특정 목적 하드웨어를 포함할 수 있다.
액세스 노드는 사용자 체감 품질을 강화하는 동작을 수행할 수 있다. 예를 들어, 액세스 노드는 클라이언트 디바이스 내 비디오 버퍼의 점유율을 추정하고 그 추정된 점유율을 제어 응답 스케줄링에 사용하도록 비디오 배송과 관련된 패킷을 검사 및 분석할 수 있다. QoE 강화는, 예를 들어, 저장 모듈(283)로부터의 명령어를 사용하는 프로세서 모듈(281)에 의해 제공되는 모듈일 수 있다.
도 3은 여기에서 개시되는 방법 및 시스템이 본 발명의 태양에 따라 구현될 수 있는 통신 네트워크의 블록 선도이다. 매크로 기지국(310)은 백홀 커넥션(370)을 통해 코어 네트워크(302)에 접속되어 있다. 일 실시예에 있어서, 백홀 커넥션(370)은 양방향 링크 또는 2개의 단방향 링크이다. 네트워크(302)로부터 매크로 기지국(310)으로의 방향은 다운스트림 또는 다운링크(DL) 방향이라고 지칭된다. 매크로 기지국(310)으로부터 코어 네트워크(302)로의 방향은 업스트림 또는 업링크(UL) 방향이라고 지칭된다.
가입자 지국(350(1), 350(4))은 매크로 기지국(310)을 통해 코어 네트워크(302)에 접속할 수 있다. 가입자 지국(350)과 매크로 기지국(310) 간 무선 링크(390)는 일 실시예에서는 양방향 점 대 다점 링크이다. 매크로 기지국(310)으로부터 가입자 지국(350)으로의 무선 링크(390)의 방향은 다운링크 또는 다운스트림 방향이라고 지칭된다. 가입자 지국(350)으로부터 매크로 기지국(310)으로의 무선 링크(390)의 방향은 업링크 또는 업스트림 방향이라고 지칭된다. 가입자 지국은 때로는 사용자 장비(user equipment: UE), 사용자, 사용자 디바이스, 핸드셋, 단말 노드 또는 사용자 단말이라고 지칭되고 보통은 스마트 폰 또는 태블릿과 같은 모바일 디바이스이다. 가입자 지국(350)은 매크로 기지국(310)과 같은 기지국을 브리지로서 사용하여 무선 링크(390)를 통해 컨텐트에 액세스한다. 다시 말하자면, 일반적으로 기지국은 그 기지국이 데이터 및 제어 메시지에 대한 수신지 또는 메시지의 소스가 아니면서 가입자 지국(350)과 코어 네트워크(302) 간 사용자 애플리케이션 데이터 및 어느 사용자 애플리케이션 제어 메시지라도 넘겨준다.
도 3에 예시된 네트워크 구성에 있어서, 사무소 빌딩(320(1))은 매크로 기지국(310)에 의해 도달될 수 없는 커버리지 음영(304)을 야기한다. 피코 지국(330)은 커버리지 음영(304)에서 가입자 지국(350(2), 350(5))에 커버리지를 제공할 수 있다. 피코 지국(330)은 백홀 커넥션(370)을 통해 코어 네트워크(302)에 접속되어 있다. 가입자 지국(350(2), 350(5))은 매크로 기지국(310)과 가입자 지국(350(1), 350(4)) 간 무선 링크(390)와 동일 또는 유사한 링크를 통하여 피코 지국(330)에 접속될 수 있다.
사무소 빌딩(320(2))에 있어서, 기업용 펨토셀(340)은 가입자 지국(350(3), 350(6))에 빌딩-내 커버리지를 제공한다. 기업용 펨토셀(340)은 기업용 게이트웨이(303)에 의해 제공된 광대역 커넥션(360)을 이용함으로써 인터넷 서비스 제공자 네트워크(301)를 통해 코어 네트워크(302)에 접속할 수 있다. 디바이스의 유사한 배열이 주거 환경에서 사용될 수 있다.
도 3의 매크로 기지국(310), 피코 지국(330) 또는 기업용 펨토셀(340)은, 일부 실시예에서는, 도 1의 액세스 노드 또는 도 2의 액세스 노드를 사용하여 구현된다.
(매크로 기지국(310), 피코 지국(330), 기업용 게이트웨이(303), 기업용 펨토셀(340), 코어 네트워크(302) 내 디바이스, 및 인터넷 서비스 제공자 네트워크(301) 내 디바이스와 같은) 도 3의 네트워크 내 디바이스는, 개별적으로 또는 조합하여, 사용자 체감 품질을 강화하도록 동작할 수 있다. 예를 들어, 디바이스는 가입자 지국(350) 중 하나 내 비디오 버퍼의 점유율을 추정하고 그 추정된 점유율을 제어 응답 스케줄링에 사용하도록 비디오 배송과 관련된 패킷을 검사 및 분석할 수 있다. 비디오 버퍼 점유율은, 예를 들어, 하나의 디바이스에서 추정되고 그 추정된 비디오 버퍼 점유율을 스케줄링을 위해 사용하는 제2 디바이스에 통신될 수 있다.
도 4는 본 발명의 태양에 따라 통신 시스템에서 비디오 배송의 선도이다. 비디오는 컨텐트 서버(495)로부터 네트워크 노드(485) 및 액세스 노드(465)를 통하여 단말 노드(455)로 배송된다. 비디오 데이터는 일반적으로는 압축된 포맷으로 배송되고 단말 노드(455)에서 압축해제된다. 도 4에 예시된 비디오 배송은 도 3의 가입자 지국(350) 중 하나에 대응하는 도 4의 단말 노드(455), 도 3의 매크로 기지국(310), 피코 지국(330) 또는 기업용 펨토셀(340)에 대응하는 도 4의 액세스 노드(465), 도 3의 기업용 게이트웨이(303), 코어 네트워크(302) 내 디바이스, 또는 인터넷 서비스 제공자 네트워크(301) 내 디바이스에 대응하는 도 4의 네트워크 노드(485), 및 도 3의 인터넷 서비스 제공자 네트워크(301) 또는 코어 네트워크(302)에 결합된 디바이스에 대응하는 도 4의 컨텐트 서버(495)를 갖는 도 3의 통신 네트워크에서 수행될 수 있다. 단말 노드(455)는 컨텐트 서버(495)에 대한 그 관계에 따라 클라이언트라고 칭할 수 있다. 컨텐트 서버(495)는 별개로 위치하는 서버의 네트워크를 포함할 수 있다. 통신 시스템의 다양한 실시예는 위에서 설명된 유사한 명칭의 엘리먼트와 동일하거나 유사할 수 있다. 통신 시스템은 간략화된 형태로 예시되어 있다. 예를 들어, 많은 통신 시스템이 많은 상호접속된 네트워크 노드를 포함할 것이다.
도 4에 도시된 통신 시스템 내 단말 노드(455)는 라디오 링크(420)을 통해 액세스 노드(465)와 통신한다. 액세스 노드(465)는 네트워크 노드(485)에 접속되어 있다. 네트워크 노드(485)는 컨텐트 서버(495)로의 액세스를 제공한다. 시스템은 도시된 그들 간 중개 디바이스를 포함할 수 있다. 예를 들어, 라우터 노드는 컨텐트 서버(495)가 또한 접속되어 있는 인터넷으로의 접속성을 제공할 수 있다.
버퍼링은 비디오 배송에 있어서 여러 포인트에서 사용된다. 버퍼링은 가변 순시적 통신 레이트를 장기적 평균 레이트로 평활화할 수 있다. 비디오 데이터가 네트워크에서 통신될 수 있는 레이트는 고도로 가변적일 수 있다. 예를 들어, 다수의 액세스 네트워크 내 소정 노드로의 통신은 자원의 현재 할당에 의존하여 영으로부터 높은 레이트로까지 달라질 수 있다. 일부 통신은, 예를 들어, 배터리 전동 노드에서의 에너지를 절약하도록 의도적으로 버스트 방식일 수 있다. 버퍼링은 또한 가변 레이트 요구를 평활화할 수 있다. 비디오 데이터가 공급될 필요가 있는 레이트도 고도로 가변적일 수 있다. 예를 들어, 여러 비디오 압축 방법에 있어서, (통상은 동등한 시간 간격에 대응하는) 일부 프레임에 대한 정보는 다른 프레임보다 더욱 많은 데이터 비트로 표현된다. 버퍼링은 각각의 노드에서 한정된 프로세싱 전력 및 아웃고잉 대역폭에 대한 보상에 도움이 될 수 있다. 버퍼 내 임시 저장은 버퍼의 입구에 대한 통신 인터럽트로부터의 성능 충격을 회피하는데 도움이 될 수 있다. 예를 들어, 1 Mbps(초당 메가비트)의 불변 입구 및 출구 레이트를 갖는 버퍼를 고려한다. 버퍼에 1 메가비트의 저장된 데이터가 들어있으면, 그때 입구 상의 통신 인터럽트는 출구 상에서 송신되는 데이터에 충격을 주지 않고 1초까지 동안은 일어날 수 있다. 컨텐트 서버(495)는 비디오 파일(496)로부터 비디오를 배송한다. 비디오 파일(496)은, 예를 들어, 네트워킹된 저장 어레이 상에 저장될 수 있다. 클라이언트 요청에 기반하여, 서버(490)는 비디오 파일(496)로부터 비디오 데이터를 읽고 그 데이터를 단말 노드(455)로 향하여 송신한다. 대안으로, 배송되는 비디오는 그것이 요청되고 있는 동안 동적으로 발생될 수 있다. 예를 들어, 배송되는 비디오는 라이브 이벤트에 대한 것일 수 있다. 다른 일례에 대하여, 배송되는 비디오는 비디오 해상도, 비디오 프레임 레이트 또는 비디오 데이터 레이트와 같이 특정 사용자 요구에 기반하여 정적 파일로부터 동적으로 발생될 수 있다.
네트워크 노드(485)는 컨텐트 서버(495)로부터의 비디오 데이터를 네트워크 버퍼(486)에서 버퍼링한다. 네트워크 버퍼(486)는 라우팅 함수(480)가 데이터를 액세스 노드(465)에 송신할 수 있을 때까지 비디오 데이터를 저장한다. 네트워크 노드(485)는 많은 부가적 디바이스에 접속되어 있을 수 있다. 네트워크 버퍼(486)로부터 비디오 데이터를 송신함에 있어서의 지연은, 예를 들어, 네트워크 노드(485)와 부가적 디바이스 간 네트워크 트래픽에 따라 달라질 수 있다.
액세스 노드(465)는 네트워크 노드(485)로부터 수신된 비디오 데이터를 큐잉 버퍼(466)에서 버퍼링한다. 스케줄러 모듈(460)은 단말 노드(455)에 송신할 큐잉 버퍼(466)로부터의 데이터를 선택한다. 액세스 노드(465)는 액세스 노드(465)가 통신을 제공하는 사용자의 체감 품질을 강화하기 위하여 송신할 데이터를 선택할 수 있다. 예를 들어, 액세스 노드(465)는 단말 노드(455)의 사용자에 대한 체감 품질을 개선하도록 클라이언트 측 버퍼 점유율 정보를 사용할 수 있다. 스케줄링을 위해 버퍼 점유율 정보를 사용하는 것에 부가하여, 그 정보는 또한, 예를 들어, 수락 제어 및 시스템 관리에서 사용될 수 있다.
단말 노드(455)는, 도 4에 예시된 바와 같이, 비디오 스트림을 위한 다수의 버퍼를 포함한다. 버퍼는, 일 실시예에서는, 공유형 메모리에 위치하고 있을 수 있다. 패킷 수신 버퍼(436)는 비디오 데이터가 들어있는 데이터 패킷을 그것이 단말 노드(455)에서 수신될 때 저장한다. 패킷 수신기 모듈(437)은 패킷 수신 버퍼(436)를 관리한다. 패킷 수신기 모듈(437) 및 패킷 수신 버퍼(436)에 의해 수행되는 구체적 기능은 비디오 데이터를 배송하는데 사용된 특정 프로토콜에 따라 달라질 수 있다. 예를 들어, 실시간 전송 프로토콜(RTP) 및 사용자 데이터그램 프로토콜(user datagram protocol: UDP)이 전송 기술로서 사용될 때, 패킷 수신기 모듈(437) 및 패킷 수신 버퍼(436)는 패킷의 지연에서의 편차를 보상하도록 RTP 디지터(dejitter) 기능성을 제공할 수 있다. 전송 제어 프로토콜(transmission control protocol: TCP)이 전송 기술로서 사용될 때, 패킷 수신기 모듈(437) 및 패킷 수신 버퍼(436)는 순서 바뀐 패킷, 분실 패킷 및 중복 패킷의 프로세싱을 포함하는 TCP 기능을 수행할 수 있다. 예를 들어, 패킷 수신기 모듈(437)은 더 작은 시퀀스 번호를 갖는 어느 패킷이라도 배송되지 않았으면 패킷을 후속 스테이지로 배송하는 것을 지연시킬 수 있다.
비디오 디코딩, 예를 들어, MPEG-4 AVC 포맷의 비디오 데이터를 압축해제하는 것은 디코더 모듈(447)에 의해 수행된다. 디코더 모듈(447)은 디코더 버퍼(446) 및 재정렬 버퍼(reordering buffer)(448)를 사용한다. 디코더 버퍼(446) 내 비디오 데이터는 압축된 포맷이다. 재정렬 버퍼(448) 내 비디오 데이터는 압축해제된 포맷, 예를 들어, 래스터 데이터이다. 단일의, 사람이 볼 수 있는 이미지로서 디스플레이될 수 있는 디코딩된 또는 압축해제된 비디오 데이터 그룹은 비디오 프레임이라고 칭한다. 비디오 샘플은 비디오 프레임의 압축된 또는 인코딩된 형태이다.
디코더 모듈(447)은 디코딩에 이용가능한 충분한 데이터가 있음을 확실히 하도록 디코더 버퍼(446)에 비디오 데이터를 저장한다. 디코더 버퍼(446)는 비트스트림 버퍼라고 지칭될 수 있다. 디코더 버퍼(446)는 비디오와 연관된 고도로 가변적 비트 레이트를 보상할 수 있다. 디코더 버퍼(446)는 또한 데이터가 디코더 모듈(447)의 동작에 필요한 것보다 더 빨리 단말 노드(455)에 도착하면 부가적 데이터를 저장할 수 있다. 부가적 데이터는 네트워크 대역폭에서의 요동을 보상하는데 사용될 수 있다. 예를 들어, 네트워크 대역폭이 소정 듀레이션 동안 비디오 스트림을 전송하는데 필요로 되는 것 아래로 떨어지면, 네트워크 대역폭이 복구될 때까지 디코더 버퍼(446)에는 디코더 모듈(447)에 데이터를 공급하기에 충분한 데이터가 있을 수 있다.
디코더 모듈(447)은 디코딩된 비디오 프레임을 재정렬 버퍼(448)에 저장한다. 많은 비디오 압축 방법들은 후속 (디스플레이 순서로) 프레임 내 데이터에 기반하여 디코딩되는 일부 프레임을 포함한다. 따라서, 재정렬 버퍼(448)는 순서 바뀌어(프레임이 디스플레이될 시퀀스가 아님) 프로세싱되는 프레임에 대한 임시 저장을 제공한다.
디코딩된 비디오 프레임은 재정렬 버퍼(448)로부터 디스플레이 버퍼(456)로 공급된다. 디스플레이 프로세서(457)는 디스플레이 버퍼(456)로부터 프레임을 읽고, 필요한 프로세싱을 수행하고, 디스플레이, 예를 들어, 액정 디스플레이에 적합한 신호를 공급한다. 디스플레이 버퍼(456)는, 일 실시예에서는, 2개의 프레임-디스플레이 중인 현재 프레임과 디스플레이될 다음 프레임의 일부 또는 전부를 저장한다. 많은 실시예에 있어서, 디스플레이 버퍼(456) 및 재정렬 버퍼(448)는 공유형 메모리에 저장된다.
단말 노드(455)에 배송되는 비디오 데이터의 값은 시간에 민감하다. 즉, 한 편의 데이터가 필요로 될 때 이용가능하지 않으면, 그 값은 약해진다. 예를 들어, 비디오 프레임이 그것이 디스플레이되어야 할 때 이용가능하지 않으면, 단말 노드(455)는 그 프레임을 건너뛰거나 그것이 배송될 때까지 일시정지할 수 있다. 어느 경우에서든 단말 노드(455)는 새로운 프레임이 이용가능할 때까지 이전 프레임을 계속 디스플레이할 수 있다("동결"). 비디오 데이터는 연관된 버퍼가 공백(언더플로우)이면 비디오 배송에서의 스테이지에서 이용가능하지 않을 것이다. 버퍼 언더플로우의 결과는 그것이 일어나는 포인트에 따라 그리고 데이터를 실어나르는데 사용된 통신 프로토콜에 따라 달라질 수 있다.
단말 노드(455)에서의 버퍼 중 하나가 언더플로우잉하면, 비디오 재생은 결국에는 동결될 수 있다. 예를 들어, 패킷 수신 버퍼(436)가 공백이면, 그것은 디코더 버퍼(446)에 추가적 데이터를 공급할 수 없을 것이다; 디코더 버퍼(446)가 공백이면, 그것은 재정렬 버퍼(448)에 배치될 디코더 모듈(447)에 추가적 데이터를 공급할 수 없을 것이다; 재정렬 버퍼(448)가 공백이면, 그것은 디스플레이 버퍼(456)에 추가적 데이터를 공급할 수 없을 것이고 디스플레이 프로세서(457)는 새로운 프레임이 이용가능하지 않을 것이기 때문에 디스플레이를 동결할 것이다.
네트워크 노드(485) 또는 액세스 노드(465) 내 버퍼가 언더플로우잉하면, 단말 노드(455)에서의 비디오 동결이 반드시 뒤따르지는 않는다. 예를 들어, 네트워크 버퍼(486)가 언더플로우잉하면, 그것은 네트워크 노드(485)가 후속 패킷이 도착하기 전에 패킷을 배송할 수 없음을 의미한다. 이것은 단지 네트워크 노드(485)가 정체되지 않음을 나타낼 뿐이고, 반드시 패킷이 늦게 배송되고 있음을 나타내는 것은 아닐 수 있다.
버퍼는 또한 오버플로우잉할 수 있다. 네트워크 노드(485) 또는 액세스 노드(465)에서의 버퍼 오버플로우는 패킷 손실의 결과를 초래할 것이다. 버퍼 오버플로우의 결과는 그것이 일어나는 포인트에 따라 그리고 데이터를 실어나르는데 사용된 통신 프로토콜에 따라 달라질 수 있다. UDP 기반 통신에 대해서, 패킷 손실은 결국에는 비디오 품질 저하로서 클라이언트에 의해 보일 수 있을 것이다. TCP 기반 통신에 대해서는, TCP 세그먼트가 들어있는 어느 손실된 패킷이라도 재송신될 것이고, 그래서 패킷 손실은 더 낮은 스루풋 및 더 긴 레이턴시의 결과를 초래한다. 이것은 재송신된 패킷이 적시에 클라이언트에 의해 수신되지 않으면 동결에 이를 수 있다.
단말 노드(455) 내 버퍼 중 하나가 오버플로우잉하면, 비디오 데이터는 손실될 것이다. 이것은 클라이언트 애플리케이션이 데이터를 충분히 빨리 프로세싱할 수 없을 때 발생할 수 있다. 단말 노드(455) 내 버퍼 오버플로우에 기인하여 손실된 데이터는 또한 비디오 품질 저하의 결과를 초래할 수 있다. 비디오 클라이언트는 일반적으로는 버퍼 점유율이 소정 한계에 도달하고 나면 버퍼에 데이터를 공급하는 것을 중지하도록 설계된다. 압축해제된 비디오 데이터는 압축된 비디오 데이터보다 더 많은 공간을 점유하므로, (재정렬 버퍼(448) 및 디스플레이 버퍼(456)와 같이) 압축해제된 데이터를 저장하는 버퍼는 통상 가능한 작으면서도 정상 동작에 충분하게 유지된다. 어느 소비되지 않은 비디오 데이터는 보통은 비디오 데이터가 패킷 수신기 모듈(437)에 의한 어떠한 프로세싱이라도 거친 후에 디코더 버퍼(446)에 압축된 포맷으로 저장된다.
디코더 모듈(447)은 비디오 데이터의 디코딩 시간에 따라 디코더 버퍼(446)로부터 데이터를 인출한다. 특정 프레임의 디코딩 시간은 소위 디코딩 타임 스탬프(DTS)라고 할 수 있다. DTS는 DTS 필드 값이라고도 지칭될 수 있다. 프레임에 대한 비디오 데이터가 그 DTS 후에 도착하면, 디코더 모듈(447)은 새로운 비디오 프레임을 정시에 발생시킬 수 없을 수 있고, 이것은 결국에는 비디오 동결에 이를 수 있다. 디코더 버퍼(446)가 어떠한 데이터도 수용할 수 없으면, 클라이언트는 서버로부터 데이터를 요청하는 것을 중지할 것이다.
다양한 버퍼의 점유율은 상호 관련된다. 예를 들어, 어느 포인트에서의 정체는 비디오 배송에서의 그 포인트 전에 있는 버퍼가 오버플로우잉하도록 야기하고 비디오 배송에서의 그 포인트 후에 있는 버퍼가 언더플로우잉하도록 야기할 수 있다. 예를 들어, 액세스 노드(465) 내 버퍼 오버플로우 및 단말 노드(455) 내 버퍼 언더플로우는 둘 다 통신 네트워크가 단말 노드(455) 상의 비디오 플레이어에 충분히 빨리 데이터를 전송할 수 없을 때 일어날 수 있다.
비디오가 단말 노드(455)에서 국부적으로 동결될 때를 검출하는 것은 특히 어렵지는 않을 수 있다. 예를 들어, 재생을 제공하는 비디오 플레이어는 비디오 동결과 관련된 필요 정보를 갖고 있을 것이다. 그렇지만, 액세스 노드(465)와 같은 원격 네트워크 노드로부터 클라이언트에서 일어나는 비디오 동결 이벤트를 검출하는 것은 어렵다. 여기에서 설명되는 방법 및 시스템은 단말 노드(455) 내 버퍼의 점유율을 추정하도록 사용될 수 있다. 버퍼의 점유율에 대한 정보는 동결 이벤트를 예측하도록 사용될 수 있다. 동결 이벤트에 대한 정보는 통신 네트워크의 사용에 대한 체감 품질을 강화하도록 사용될 수 있다. 예를 들어, 액세스 노드(465)는 스케줄링 우선순위를 결정하는데 그 정보를 사용할 수 있다.
통신 시스템은 비디오 동결을 회피하도록 높은 우선순위를 갖는 비디오 데이터를 스케줄링할 수 있다. 이것은 실용적이지 않을 수 있다. 비디오 데이터는 모바일 트래픽의 주요 성분이고, 장래에는 훨씬 더 유포되어 있게 될 가능성이 있다. 다른 트래픽에 앞서 비디오를 전송하는 것이 항상 불필요할 수도 있다. 부가적으로, 과도한 양의 비디오 데이터를 배송하는 것은 대역폭 낭비의 결과를 초래할 수 있다. 예를 들어, 사용자가 다운로드된 비디오 데이터 전부가 소비되기 전에 비디오 재생 세션을 종료하기로 결정하는 경우.
통신 네트워크는 하나의 계층의 기능을 다른 계층에 의해 제공된 것들로부터 추상화하도록 프로토콜의 계층을 사용한다. 계층의 추상화는 여러 다른 네트워크에 대한 애플리케이션의 이식성을 더 크게 할 수 있다. 네트워크 내 패킷의 흐름의 개시 및 후속 종료는 특정 애플리케이션 또는 서비스에 의해 트리거링될 수 있다. 최종-사용자 애플리케이션 또는 서비스의 사용자에 관한 제어 및 사용자 데이터 패킷의 흐름은 세션이라고 칭한다.
컨텐트 서버 또는 프록시 서버와 같은 네트워킹된 서버, 및 스마트 폰, 태블릿 또는 랩톱 컴퓨터와 같은 단말 노드가 세션을 개시하거나 그에 참가할 수 있다. 네트워킹된 서버 및 단말 노드는 하나 이상의 세션을 동시에 호스팅할 수 있다. 그 세션들은 서로로부터 독립적이거나 서로에 관련될 수 있다. 세션은 2개의 노드 간, 예를 들어, 비디오 서버와 단말 노드에서의 비디오 클라이언트 간 확립될 수 있다. 대안으로, 세션은 비디오 클라이언트와 다수의 비디오 서버 간 확립될 수 있다. 예를 들어, 비디오 클라이언트는 가상 서버로서 역할하는 컴퓨터 클러스터와 상호작용할 수 있다. 세션은 또한, 예를 들어, 멀티캐스트 및 브로드캐스트 패킷 프로토콜의 사용을 통해 하나의 노드와 여러 노드 간에 있을 수 있다.
세션은 다양한 기준에 의해 특성 표시 또는 카테고리 분류될 수 있다. 하나의 기준은 사용자에 의해 개시되었고 그 세션의 론칭을 책임지고 있는 특정 애플리케이션일 수 있다. 다른 하나의 기준은 특정 세션에 의해 서비스 제공되는 종합 기능을 설명하는 애플리케이션 클래스일 수 있다.
세션은 동일하거나 잠재적으로 서로 다른 기저 커넥션을 사용하는 하나 이상의 독립적 데이터 스트림으로 이루어질 수 있다. 데이터 스트림은, 예를 들어, 하나 이상의 사용자 데이터그램 프로토콜(UDP) 커넥션 또는 전송 제어 프로토콜(TCP) 커넥션을 사용할 수 있다.
도 4의 비디오 배송의 태양은 사용되는 특정 프로토콜에 따라 달라질 수 있다. 예를 들어, 비디오 배송은 하이퍼텍스트 전송 프로토콜(HTTP) 프로그레시브 다운로드 또는 HTTP 스트리밍을 사용할 수 있다. HTTP 프로그레시브 다운로드에 대해서는, 단일 파일이 다운로드 및 재생된다. HTTP는 TCP에 기반하고, 그래서 비디오 데이터의 순서 맞는 신뢰할만한 배송이 보증된다. 네트워크 정체에 의해 야기되는 프로그레시브 다운로드 비디오 세션의 품질 저하는 비디오 데이터가 정시에 배송되지 않을 때의 비디오 동결에 기인할 수 있다. 그리하여, 비디오 동결의 충격은 HTTP 프로그레시브 다운로드에 대한 체감 품질을 강화하도록 스케줄러 파라미터를 수정할 때 고려될 수 있다.
HTTP 적응성 스트리밍에 대해서, 체감 품질을 강화하는 방법은 스케줄러 파라미터를 수정할 때 비디오 동결을 고려할 수 있다. 부가적으로, HTTP 적응성 스트리밍에 대해서, 클라이언트는 이용가능한 대역폭이 현재 전송 중인 비디오 비트스트림의 데이터 레이트보다 더 크든 더 작든 검출할 수 있다. 따라서, 클라이언트는 이용가능한 대역폭과 더 잘 매칭하는 데이터 레이트를 갖는 다른 비디오 비트스트림으로 스위칭하도록 선택할 수 있다.
비디오 압축은 비디오 프레임 내 공간적 리던던시와 더불어, 서로 다른 비디오 프레임 간 시간적 리던던시도 이용한다. 비디오 프레임 간 차이 때문에, 압축된 프레임 사이즈는 프레임마다 매우 다를 수 있다. 구현 고려를 위해, 비디오 비트 레이트 요동은 수량화될 수 있다. 그 목적으로 비디오 버퍼링 검증기(Video Buffering Verifier: VBV) 버퍼 모델 및 일반화된 가정 참조 디코더(Hypothetical Reference Decoder: HRD) 버퍼 모델과 같은 비디오 버퍼 모델이 개발되었다.
VBV는 MPEG-2 및 MPEG-4 파트 2에 정의된 가정적 디코더이고 개념적으로는 인코더에 의해 발생된 비트스트림의 특성을 모니터링하도록 인코더의 출력에 접속된다. 그 모델은 데이터 전송 레이트가 소정 값, 예를 들어, 비디오 스트림의 평균 비트 레이트와 같으면, 디코더가 얼마나 많은 버퍼 점유율 요동을 예상해야 하는지를 알려준다.
각각의 VBV 버퍼 모델은 2개의 파라미터, 데이터 레이트(R) 및 버퍼 사이즈(B)를 포함한다. 부가적으로, VBV 지연 τ(n)은 프레임의 압축된 데이터의 제1 비트가 버퍼에서 수신되는 시간으로부터 프레임이 버퍼로부터 제거되고 디코딩되는 시간까지의 레이턴시를 지정할 수 있다. 데이터 레이트(R)가 정상이고 디코더가 VBV 지연 τ(n)에 따라 버퍼로부터 제n 압축된 프레임을 제거하면, 사이즈(B)의 버퍼는 결코 오버플로우잉하지 않아야 하고, 그 버퍼는 또한 언더플로우잉하지 않는다. 디코더 동작과 관련된 다른 파라미터는 초기 버퍼 지연이다. 이것은 비트스트림의 전역적 구문 정보 및 제1 프레임의 VBV 지연을 수신하는데 필요로 되는 시간이다. 예를 들어, 전역적 구문 정보는 MPEG-2에서 화상 헤더 그룹 및 시퀀스 헤더와 같은 정보를 포함할 수 있다.
VBV 버퍼 모델을 사용함에 있어서의 문제는 디코더가 VBV 데이터 레이트와는 다른 레이트로 데이터를 수신하면 그것이 최적으로 동작하지 않는다는 것이다. 예를 들어, 네트워크가 VBV 데이터 레이트보다 더 높은 레이트로 데이터를 전송할 수 있으면, 일반적으로 초기 버퍼 지연은 감축될 수 있다. 디코더가 계속, 훨씬 더 낮은 레이트에 기반하여 계산될 수 있는, 원래 초기 버퍼 지연에 기반하여 동작하면, 초기 버퍼 지연은 더 높은 대역폭을 갖는 네트워크에 대해서는 불필요하게 길 것이다.
일반화된 가정 참조 디코더(HRD) 모델은 이 문제를 다루도록 개발되었다. VBV 버퍼 모델에서와 같이 일 세트의 버퍼 파라미터를 보내는 대신에, HRD 모델은 다수의 버퍼 모델에 대한 버퍼 파라미터를 포함할 수 있다. 각각의 버퍼 모델은 소정 데이터 레이트에 대하여 최적 버퍼 사이즈 및 초기 버퍼 지연을 제공한다. HRD 모델에서 지정된 데이터 레이트 중 하나에 정확히 맞아떨어지지 않는 네트워크 대역폭에 대해서, 버퍼 사이즈 및 초기 버퍼 지연은 유사한 데이터 레이트에 대한 버퍼 모델들로부터 보간될 수 있다.
최소한 비디오 디코더는 버퍼 모델에서 지정된 비디오 스트림 버퍼의 사이즈와 사이즈가 같은 버퍼를 갖고 있어야 한다. 비디오 스트림 버퍼 사이즈는 비트스트림에서 명시적으로 지정될 수 있다. 대안으로, 비디오 스트림 버퍼 사이즈는 비트스트림이 순응하는 프로파일 및 레벨에 대한 최대 비디오 스트림 버퍼 사이즈로부터 유도될 수 있다.
각각의 비디오 코딩 표준은 소정 레벨에서 소정 프로파일에 순응하는 비트스트림에 대한 최대 비디오 스트림 버퍼 사이즈 및 최대 비트 레이트를 정의할 수 있다. 프로파일은 비트스트림이 준수할 필요가 있는 코딩 특징 및 제약의 집합을 지정한다. 레벨은 프레임 사이즈, 프레임 레이트 및 버퍼 사이즈와 같이 코딩 파라미터 상의 한계를 지정한다. H.264/AVC에 있어서, 예를 들어, 시퀀스 파라미터 세트는 비트스트림이 순응하는 프로파일 및 레벨을 포함하고 있다. 레벨 4.1(블루-레이 DVD)에 대해서, 그 표준은 최대 CPB(Coded Picture Buffer)(H.264에서의 비디오 스트림 버퍼)가 62.5 메가비트임을 지정한다.
도 5는 본 발명의 태양을 예시하는 비디오 버퍼 점유율 대 시간의 그래프 예시도이다. 제1 그래프(500)는 데이터가 비디오의 평균 비트 레이트와 동등한 레이트로 클라이언트에 전송될 때 비디오 버퍼 점유율을 예시하고 있다. 제2 그래프(550)는 데이터가 비디오의 평균 비트 레이트보다 더 큰 레이트로 클라이언트에 전송될 때 비디오 버퍼 점유율을 예시하고 있다. 그 예 둘 다는 비디오 버퍼가 언더플로우잉하거나 오버플로우잉하지 않는 경우를 예시하고 있다.
그 그래프는 클라이언트에게로 비디오 데이터의 불변-레이트 배송을 예시하고 있다. 그리하여 버퍼 점유율은 비디오 데이터가 클라이언트에 의해 수신됨에 따라 경사져 상승한다. 전형적 가정적 디코더 모델과 일관되게, 프레임은 도 5의 그래프에서 순간적으로 버퍼로부터 제거된다. 비디오 프레임은 그들 DTS에 따른 시간 위치(제1 그래프(500)에서는 시간(501 내지 511) 그리고 제2 그래프(550)에서는 시간(551-561))에서 제거된다. 비디오 프레임이 버퍼로부터 제거될 때마다, 버퍼 점유율은 계단식 하강한다. 계단의 사이즈는 압축된 비디오 프레임 내 데이터의 양에 따라 달라진다. 제1 프레임에 대하여, 제1 그래프(500)에서의 부가적 정보(521) 또는 제2 그래프(550)에서의 부가적 정보(571)가 제1 프레임을 디코딩하기 위해 요구되고 역시 비트스트림 버퍼로부터 제거된다. 부가적 정보(521, 571)는, 예를 들어, 비디오 프레임을 디코딩하는데 사용하기 위한 메타데이터 또는 전역적 구문 정보일 수 있다. 제1 그래프(500)의 예에 있어서, 시간(501)에서의 제1 프레임은 비교적 대량의 데이터를 갖는 인트라-코딩된 프레임(I-프레임)이고, 시간(502 내지 504)에서의 제2, 제3 및 제4 프레임은 P-프레임으로서 예측성 인코딩되고 더 소량의 데이터를 갖는다.
비디오 클라이언트는 제1 비디오 데이터가 수신될 때 즉시 비디오를 디코딩 및 재생하기를 시작하지는 않을 것이다. 디코딩 및 재생은 제1 그래프(500)에서의 초기 시간 레이턴시(530) 또는 제2 그래프(550)에서의 (580) 후에 시작할 것이다. 초기 시간 레이턴시(530, 580)는 보통은 소위 초기 버퍼 지연(T)이다. 초기 시간 레이턴시는 부가적 정보(521, 571)를 전송하는데 쓴 시간 및 제1 비디오 프레임의 버퍼 지연(제1 비디오 프레임의 버퍼 지연은 제1 그래프(500)에서는 시간 기간(525)으로 그리고 제2 그래프(550)에서는 시간 기간(575)으로 도시되어 있음)을 포함한다. 초기 버퍼 지연(T)은, 예를 들어, VBV 모델에서는 제1 프레임의 VBV 버퍼 지연 또는 H.264 HRD 모델에서는 제1 프레임의 CPB 제거 지연을 사용하여 계산될 수 있다. 초기 버퍼 점유율(F)은 초기 버퍼 지연 및 데이터 레이트(R)로부터 F = T x R로서 계산될 수 있다.
데이터가 클라이언트에 전송되는 레이트가 비디오의 평균 비트 레이트와 동등한 경우인 비디오 버퍼 점유율 대 시간의 제1 그래프(500)에서는, 데이터 전송의 종료(531)가 재생의 종료 가까이에서 일어난다. 요구되는 버퍼 사이즈는 참조 버퍼 사이즈, 예를 들어, MPEG-2에서는 VBV 버퍼 사이즈라고 지칭된다.
데이터가 클라이언트에 전송되는 레이트가 비디오의 평균 비트 레이트보다 더 큰 경우인 비디오 버퍼 점유율 대 시간의 제2 그래프(550)에서는, 데이터 전송의 종료(581)가 실질적으로 재생의 종료 전에 일어난다. 제2 예에서 사용된 실제 버퍼 사이즈 또한 참조 버퍼 사이즈보다 더 크다. 비디오의 평균 비트 레이트보다 더 빠른 데이터의 클라이언트로의 전송은, 예를 들어, HTTP 프로그레시브 다운로드가 사용될 때 일어날 수 있다. 그것은 또한, 네트워크 대역폭에서의 요동을 보상하도록 부가적 데이터를 저장하기 위하여, HTTP 비디오 스트리밍과 같이 다른 비디오 전송 프로토콜을 사용하는 비디오 애플리케이션에서 일어날 수 있다.
데이터의 클라이언트로의 전송이 비디오의 평균 비트 레이트보다 더 빠를 때, 클라이언트는 데이터를 저장할 큰 버퍼를 필요로 할 수 있다. 이 상황에서는 버퍼가 언더플로우잉하지 않기는 하지만, 버퍼가 오버플로우잉할 수 있다. 이것은 버퍼링될 수 없는 데이터의 재송신을 위해 통신 비효율의 결과를 초래할 수 있다.
많은 통신 시스템에 있어서, 데이터 전송 레이트는 불변이지 않을 것이다. 평균 데이터 전송 레이트가 비디오의 평균 비트 레이트보다 더 높을 때라도, 순시적 데이터 전송 레이트는 비디오 평균 비트 레이트 아래로 떨어질 수 있다. 이것은 버퍼 언더플로우를 야기할 수 있다. 버퍼 언더플로우를 회피하는 방법은 초기 버퍼 지연 및 버퍼 사이즈를 증가시키는 것이다. 이들 방법은 사용자에게 불편하고 구현하는데 비용이 들 수 있다.
도 6은 본 발명의 태양에 따른 체감 품질(QoE) 강화 모듈(610)의 블록 선도이다. 도 1의 액세스 노드의 QoE 강화 모듈(110)은, 예를 들어, 도 6의 QoE 강화 모듈(610)에 의해 제공될 수 있다.
QoE 강화 모듈(610)은 통신 노드에서의 다운스트림 패킷(601) 및 업스트림 패킷(603)을 분석할 수 있다. 그 분석에 기반하여, QoE 강화 모듈(610)은 단말 노드에서 재생 중인 비디오 세션의 비디오 클라이언트 버퍼 점유율을 추정할 수 있고, QoE를 강화하도록 제어 응답을 결정할 수 있다. 설명의 목적으로, 비디오 배송을 위한 무선 액세스 노드에서의 QoE 강화 모듈(610)의 동작이 상세히 설명될 것이다. 그렇지만, QoE 강화 모듈(610)은 다른 네트워크 노드에 적용가능하고, 다른 서비스에 대한 QoE를 강화시킬 수 있다.
비디오 배송에 대한 QoE를 강화하기 위하여, QoE 강화 모듈(610)은 비디오를 수신하는 클라이언트 디바이스의 사용자에 의해 체감되는 비디오 품질에 충격을 주는 이벤트를 예측할 수 있다. 비디오 품질은 비디오 동결 이벤트에 기반할 수 있다. 비디오 동결 이벤트가 클라이언트 디바이스 내 버퍼 점유율과 상관되므로, QoE 강화 모듈(610)은 QoE를 강화하도록 버퍼 점유율 정보를 사용할 수 있다. QoE 강화 모듈(610)은 버퍼 점유율을 추정하도록 클라이언트에서의 추정된 현재 재생 시간에 대한 정보 및 무슨 비디오 데이터가 클라이언트에 배송되었는지에 대한 정보를 사용할 수 있다.
QoE 강화 모듈(610)은 검출/분류 모듈(625)을 포함한다. 검출/분류 모듈(625)은 패킷의 특성을 검출하고 검출된 특성을 사용하여 패킷을 분류하도록 다운스트림 및 업스트림 패킷을 분석한다. 예를 들어, 검출/분류 모듈(625)은 애플리케이션 클래스 및 특정 애플리케이션에 의해 패킷의 특성을 나타낼 수 있다. 패킷의 특성을 검출하기 위한 방법 및 시스템은 미국 특허 출원 제13/607,559호(출원일: 2012년 9월 7일, 발명의 명칭: "Systems and Methods for Congestion Detection for use in Prioritizing and Scheduling Packets in a Communication Network")에 설명되어 있으며, 참조에 의해 여기에 편입되는 것이다. 검출/분류 모듈(625)은 다른 모듈에 의한 추가적 분석을 위해 소정 패킷을 식별할 수 있다. 검출/분류 모듈(625)은, 예를 들어, 특정 비디오 스트림과 연관된 패킷을 검출하고 그들 패킷을 타이핑 정보 모듈(627)에 넘겨줄 수 있다.
타이밍 정보 모듈(627)은 비디오-관련된 타이밍 정보를 결정하도록 비디오 배송과 연관된 패킷을 분석한다. 타이밍 정보 모듈(627)은 다양한 유형의 타이밍 정보를 검출한다. 일 유형의 타이밍 정보는 비디오 샘플의 위치 및 비디오 버퍼 모델 파라미터와 같이 비디오와 연관된 파라미터를 포함한다. 다른 유형의 타이밍 정보는 각각의 비디오 샘플이 클라이언트 측 비디오 스트림 버퍼로부터 제거되어 디코딩되어야 하는 때의 시간이다. 타이밍 정보 모듈(627)은 또한 다양한 패킷이 클라이언트에 배송되는 때의 시간을 추정할 수 있다. 타이밍 정보 모듈(627)은 또한 일시정지와 같이 클라이언트의 재생 상태에 대한 정보를 검출할 수 있다. 타이밍 정보 모듈(627)에 의해 검출된 정보를 사용하여, 클라이언트 측 비디오 스트림 버퍼 에뮬레이터는 클라이언트가 비디오 데이터를 소비하는 방식을 모의하도록 구성될 수 있다.
비디오 버퍼 모델 파라미터는 다양한 구문 레벨에서 정의된다. 예를 들어, H.264 비디오 비트스트림은 VUI(video usability information) 내 HRD 파라미터 섹션에 그리고 SEI(supplemental enhancement information) 내 버퍼링 기간 섹션에 지정된 파라미터를 갖는 일반화된 가정적 참조 디코더(HRD) 버퍼 모델을 사용할 수 있다. 유사한 파라미터가 또한 컨테이너 파일 포맷으로 지정될 수 있다. 예를 들어, ISO(International Organization for Standardization) BMFF(Base Media File Format)의 프로그레시브 다운로드 정보(pdin) 박스는 다수 쌍의 데이터 레이트 및 초기 버퍼 지연을 지정한다. 유사한 정보가 컨테이너 파일 레벨로 제시될 때, 기본 스트림 레벨에서의 정보는 무시될 수 있다.
컨테이너 파일 포맷의 비디오 샘플은 하나의 비디오 프레임이다. 압축된 프레임이 비디오 스트림 버퍼로부터 제거되어 디코딩되어야 할 때의 시간은 다양한 구문 레벨에서 지정된다. 예를 들어, H.264 비디오 비트스트림은 압축된 비디오 프레임(액세스 단위)이 디코더 비디오 스트림 버퍼(H.264 술어로는 코딩된 화상 버퍼 또는 CPB)로부터 제거되어야 할 필요가 있는 때를 나타내도록 "cpb_removal_delay"를 지정하는 화상 타이밍 SEI를 갖는다. 유사한 파라미터가 또한 컨테이너 파일 포맷으로 지정될 수 있다. 유사한 정보가 컨테이너 파일 레벨로 제시될 때, 기본 스트림 레벨에서의 정보는 무시될 수 있다.
타이밍 정보 모듈(627)은 무슨 비디오 정보가 클라이언트에 배송되었는지를 다양한 방식으로 추정할 수 있다. 특히, 클라이언트 측 버퍼 점유율의 추정은 클라이언트에 배송된 비디오 샘플의 DTS에 대한 정보를 사용할 수 있다.
타이밍 정보 모듈(627)은 클라이언트에 송신된 가장 최근 비디오 샘플의 DTS를 추정하도록 클라이언트에 송신된 비디오 데이터 바이트를 카운트할 수 있다. 클라이언트에 송신된 가장 최근 비디오 샘플의 DTS는 송신된 바이트의 수를 평균 비디오 비트레이트로 나눔으로써 추정될 수 있다. 이것은 순시적인 것과 평균적인 것의 비디오 비트 레이트가 다르므로 다소 부정확할 것이다.
타이밍 정보 모듈(627)은 송신된 바이트, 비디오 샘플 사이즈 및 각각의 비디오 샘플의 DTS 간 관계를 디코딩함으로써 무슨 비디오 샘플이 클라이언트에 배송되었는지 및 그들 대응하는 DTS를 더 정확하게 결정할 수 있다. 예를 들어, 타이밍 정보 모듈(627)은 바이트 카운트를 비디오 샘플 및 비디오 샘플의 대응하는 DTS에 매핑하도록 사용될 수 있는 테이블을 확립하도록 비디오 메타데이터를 파싱할 수 있다.
수많은 데이터 커넥션 및 동시 비디오 스트리밍 세션을 취급하는 액세스 노드에서는, 비디오 스트림 내 바이트를 카운트하는 것이 비실용적일 수 있다. 예를 들어, TCP 세그먼트가 들어있는 모든 인터넷 프로토콜(IP) 패킷 상에 TCP 세그먼트 프로세싱(순서 바뀐, 분실된 및 중복된 패킷의 취급)을 수행하는 것 및 컨테이너 파일 메타데이터를 파싱하는 것은 비용이 너무 들 수 있다. 스케줄링 파라미터와 같이 제어 응답 결정은 매우 빈번하게 변경될 필요가 있지는 않을 수 있다. 비디오 샘플 DTS를 결정하기 위한 다수의 최적화 기술은 빈번하지 않은 제어 파라미터 변경을 이용하도록 타이밍 정보 모듈(627)에 의해 사용될 수 있다.
하나의 최적화는 메타데이터를 비동기식으로 파싱하는 것이다. QoE 강화 모듈(610)은 메타데이터를 로컬 버퍼에 저장하고 그 메타데이터를 낮은 우선순위 스레드로 파싱할 수 있다. 메타데이터가 파싱되기 전에는, 메타데이터로부터의 정보를 요구하는 스케줄링 결정은 적용될 수 없다. 이것은, 예를 들어, 메타데이터가 프로세싱될 때까지 새로운 비디오 세션의 우선순위를 높은 값으로 초기 설정함으로써 취급될 수 있다. 메타데이터가 프로세싱된 후에, 정보는 정체 제어에서 사용될 수 있다.
다른 하나의 최적화는 메타데이터가 들어있는 패킷에만 TCP 세그먼트를 수행하고 실제 미디어 데이터(예를 들어, ISO BMFF mdat 박스 내 데이터)가 들어있는 패킷에는 하지 않는 것이다. 유사하게, 비디오 스트림이 암호화되어 있으면, 데이터의 복호화는 메타데이터가 들어있는 패킷에만 수행되고 실제 미디어 데이터가 들어있는 패킷에는 수행되지 않을 수 있다. 전송된 비디오 데이터의 양은 더 효율적으로 계산될 수 있다. QoE 강화 모듈(610)은 전송된 비디오 데이터의 양을 계산하도록 비디오 패킷의 TCP 시퀀스 번호를 체크할 수 있다. 초기 비디오 패킷의 TCP 시퀀스 번호와 가장 최근 송신된 비디오 패킷의 TCP 시퀀스 번호 간 차이 및 가장 최근 송신된 비디오 패킷의 페이로드 길이는 전송된 데이터의 양을 계산하도록 사용될 수 있다. 예를 들어, 초기 비디오 패킷의 TCP 시퀀스 번호가 S0이고, 가장 최근 송신된 비디오 패킷 n의 TCP 시퀀스 번호가 Sn이고, 비디오 패킷 n의 페이로드 길이가 Ln이면, 전송된 데이터의 양은 Vn = (Sn - S0) + Ln으로 추정될 수 있다. TCP 세그먼트 내 시퀀스 번호는 32-비트 수이고, 그것은 랩 어라운드(wrap around)할 것이다. TCP 시퀀스 번호 랩 어라운드가 발생할 때마다, (232)인 4294967296은 송신된 비디오 데이터의 추정된 양을 얻도록 Vn에 부가될 필요가 있다. 일 실시예에 있어서, TCP 세그먼트 재정렬 문제는 무시된다. 가장 최근 송신된 비디오 패킷의 시퀀스 번호는 가장 최근 송신된 비디오 패킷 전의 일부 비디오 패킷이 손실되더라도 항상 사용된다. 다른 하나의 실시예에 있어서는, TCP 시퀀스 번호가 프로세싱되어서 앞선 TCP 세그먼트가 분실된 것 없는 TCP 세그먼트의 시퀀스 번호가 송신된 비디오 데이터의 양을 추정하는데 사용된다.
대안으로 또는 부가적으로, QoE 강화 모듈(610)은 동일 TCP 커넥션에 대한 업스트림 패킷(603) 내 TCP 세그먼트의 확인응답 번호를 체크할 수 있다. 업스트림 패킷 내 가장 최근 TCP 세그먼트 내 확인응답 번호와 업스트림 패킷 내 초기 TCP 세그먼트 내 확인응답 번호 간 차이는 동일 커넥션에 대한 다운스트림 방향으로 전송된 데이터의 양을 계산하는데 사용될 수 있다. 업스트림 패킷 내 TCP 세그먼트의 확인응답 번호를 체크하는 것은 업스트림 패킷(603)에 대한 데이터의 볼륨이 다운스트림 패킷(601)에 대한 데이터의 볼륨보다 훨씬 더 작을 수 있으므로 매우 효율적일 수 있다. 그리하여, 업스트림 패킷 내 TCP 세그먼트를 검출 및 파싱하는데 필요료 되는 프로세싱 수고는 다운스트림 패킷에 대한 것보다 훨씬 더 낮을 수 있다. 더욱, 업스트림 패킷 내 TCP 세그먼트의 확인응답 번호는 클라이언트에게 성공적으로 전송된 데이터를 표현한다. 그리하여, 패킷 손실과 같은 손상은 확인응답 번호가 사용될 때 해석된다. 그로써 버퍼 점유율 추정의 정확성이 개선될 수 있다. 예를 들어, 비디오 패킷을 송신하기 위한 TCP 커넥션에 있어서, 서버로부터의 TCP 세그먼트 "SYN + ACK"의 수신을 확인응답하는, 클라이언트로부터 서버로의 제1 TCP ACK는 초기 확인응답 번호 AN0를 갖는다. 다른 TCP ACK m이 업스트림 패킷에서 수신되고, 그것이 ANm과 동등한 확인응답 번호를 가지면, 클라이언트에 의해 성공적으로 수신된 데이터의 양은 Vm' = ANm - AN0라고 알려져 있을 수 있다. TCP 세그먼트 내 확인응답 번호는 32-비트 수이고, 그것은 랩 어라운드할 것이다. TCP 확인응답 번호 랩 어라운드가 발생할 때마다, (232)인 4294967296은 송신된 비디오 데이터의 추정된 양을 얻도록 Vm'에 부가될 필요가 있다. TCP ACK들은, 예를 들어, 업링크 프로세싱 및 스케줄링 모듈(170)에 의해 검출 및 프로세싱될 수 있다.
QoE 강화 모듈(610)은 버퍼 점유율 추정 모듈(628)을 포함한다. 버퍼 점유율 추정 모듈(628)은 타이밍 정보 모듈(627)로부터의 정보를 사용하여 클라이언트 측 비디오 버퍼 점유율을 추정한다. 버퍼 점유율 추정 모듈(628)은 클라이언트 비디오 스트림 버퍼 에뮬레이터를 동작시킬 수 있다. 에뮬레이터는 클라이언트 상에서의 비디오 재생의 예상된 거동을 모의한다. 에뮬레이터는 여러 다른 클라이언트에 대하여 서로 다르게 동작할 수 있다. 예를 들어, 하나의 클라이언트는 초기 버퍼링 기간을 어떻게 관리할지 정하도록 비디오 데이터 내에 들어있는 정보를 따를 수 있다. 다른 클라이언트는 비디오 데이터에서 무엇이 제안되는지에 무관하게 그것이 디코딩 및 재생을 시작하기 전에 15초 어치의 비디오 데이터를 버퍼링하도록 정할 수 있다. 클라이언트의 유형은 클라이언트로부터 서버로 보내지는 요청 메시지에서 시그널링될 수 있다. 일 실시예에 있어서, 타이밍 정보 모듈(627)은 주지의 클라이언트의 거동을 저장하고 있다. 타이밍 정보 모듈(627)은 클라이언트로부터 서버로 보내지는 메시지를 검사함으로써 클라이언트 유형을 검출하고 그 클라이언트 거동을 에뮬레이터의 동작에서 적용할 수 있다.
버퍼 점유율 추정 모듈(628)은 비디오 버퍼 모델과 유사한 동작을 포함한다. 버퍼 점유율 추정 모듈(628)의 추가적 이해는 도 7을 참조하여 얻을 수 있다. 도 7은 본 발명의 태양을 예시하는 클라이언트로의 비디오 데이터 배송 및 비디오 재생의 그래프 예시를 도시하고 있다. 그래프는 DTS 대 시간을 플롯팅하고 있다. 도 7에서의 각각의 예는 버퍼 점유율 추정 모듈(628)이 클라이언트 측 비디오 버퍼 점유율을 추정하도록 사용할 수 있는 방법을 예시하고 있다. 각각의 예의 그래프에서의 시간은 값(t0)에서 시작한다.
제1 예시의 그래프(700)는 비디오 재생(701) 및 비디오 배송(702)을 플롯팅하고 있다. 비디오 재생이라는 용어가 사용될 수 있기는 하지만, 버퍼 추정은 클라이언트가 디코딩을 위해 버퍼로부터 비디오 데이터를 제거하는 때에 기반할 수 있다. 비디오 배송(702)의 DTS는 비디오 재생(701)의 DTS보다 크거나 같아야 한다. 그렇지 않으면, 디코더는 디코딩할 데이터를 갖고 있는 것이 없을 것이고 비디오는 동결될 것이다. 시간(t1)에서, 제1 예에서는, 제1 비디오 샘플이 클라이언트에게 전송 완료되었다.
제1 예시의 그래프(700)는 버퍼 점유율 추정 모듈(628)이 어떻게 현재 시간(tc)에서의 버퍼 점유율을 추정할 수 있는지를 보여준다. 예시된 바와 같이, 시간(tc)에서, Td까지의 DTS를 갖는 비디오 샘플들이 클라이언트에게 배송되었고 디코딩은 DTS Tc까지 진전되었는데, 여기서 Td 및 Tc는 각각 시간, 예를 들어, 배송된 비디오의 초 및 디코딩된 비디오의 초로 표현된다. Td의 값은 위에서 설명된 방법 중 하나 이상을 사용하여 타이밍 정보 모듈(627)에 의해 결정될 수 있다.
비디오 디코딩 포인트(Tc)를 결정하기 위하여, 버퍼 점유율 추정 모듈(628)은 클라이언트 상에서의 비디오 디코딩이 얼마나 길게 진행 중이었는지를 계산할 수 있다. 제1 예시의 그래프(700)에 도시된 방법에 있어서, 버퍼 점유율 추정 모듈(628)은 클라이언트가 제1 비디오 샘플이 배송 완료되었을 때, 시간(t1)에 비디오를 디코딩하기 시작한다고 상정한다. 따라서, 비디오 디코딩 포인트(Tc)는 현재 시간(tc)과 시간(t1) 간 차이이다. 그리하여, 버퍼 점유율 추정 모듈(628)은 추정된 버퍼 점유율을 BO_t = Td - (tc - t1)으로 계산할 수 있다.
이러한 버퍼 점유율은 시간의 단위(예를 들어, 초)로 표현될 수 있다. 클라이언트에 배송되는 데이터가 더 없으면, 비디오 디코딩은 BO_t 동안 계속될 수 있다. 버퍼 점유율(BO_t)이 영 또는 음이면, 버퍼는 언더플로우잉하였고 비디오 디코딩 프로세싱은 중단되고 이것은 결국에는 재생 동결 이벤트에 이를 것이다. 추정된 버퍼 점유율이 음일 때, 그것은 버퍼에 도착하였어야 하는 데이터가 아직 도착하지 않았음을 나타낸다. 물리 버퍼는 음의 점유율을 갖지 않을 것이다. 버퍼 점유율은 시간으로부터 바이트로 변환될 수 있다. 데이터 바이트 카운트를 DTS에 매핑하는 테이블이 사용될 수 있다. 대안으로, 바이트로의 변환은 또한 비디오의 평균 비트레이트를 사용하여 추정될 수 있다. 다양한 사용에 대하여, 시간 또는 바이트 관점에서의 버퍼 점유율이 선호될 수 있다.
제2 예시의 그래프(720)는 버퍼 점유율 추정 모듈(628)이 버퍼 점유율을 추정하도록 사용할 수 있는 다른 방법을 보여준다. 제2 예시의 그래프(720)는 또한 비디오 재생(721) 및 비디오 배송(722)을 플롯팅하고 있다. 현재 시간(tc')에서의 버퍼 점유율의 추정이 예시되어 있다. 시간(tc')에서, Td'까지의 DTS의 비디오 샘플들이 클라이언트에게 배송되었고 비디오 디코딩은 DTS Tc'까지 진전되었다. Td의 값은 제1 방법에 대해 설명된 바와 같이 결정될 수 있다.
비디오 디코딩 포인트(Tc')를 결정하기 위하여, 버퍼 점유율 추정 모듈(628)은 비디오 디코딩 프로세스가 얼마나 길게 진행 중이었는지를 결정한다. 제2 예시의 그래프(720)에 도시된 방법에 있어서, 버퍼 점유율 추정 모듈(628)은 비디오 디코딩 프로세스가 시작된 때를 결정하도록 초기 버퍼 지연(d0')을 사용한다. 타이밍 정보 모듈(627)은, 클라이언트 유형이 검출될 수 있고 그 거동이 타이밍 정보 모듈(627)에 알려져 있으면, 클라이언트 유형으로부터 또는 비디오 스트림 파라미터로부터 초기 버퍼 지연(d0')을 결정할 수 있다. 비디오 데이터의 배송이 시간(t0)에서 시작되었으므로, 비디오 디코딩 프로세스는 시간(t0+d0)에서 시작되었다. 따라서, 시간(Tc')은 현재 시간(tc')과 디코딩 시작 시간(t0'+d0') 간 차이이다. 그리하여, 버퍼 점유율 추정 모듈(628)은 추정된 버퍼 점유율을 BO_t' = Td' - (tc' - (t0' + d0'))으로 계산할 수 있다.
제3 예시의 그래프(740)는 버퍼 점유율 추정 모듈(628)이 버퍼 점유율을 추정하도록 사용할 수 있는 다른 방법을 보여준다. 제3 예시의 그래프(740)는 또한 비디오 재생(741) 및 비디오 배송(742)을 플롯팅하고 있다. 부가적으로, 제3 예시의 그래프(740)는 비디오 데이터가 불변 레이트로 배송됨을 상정하는 불변-레이트 배송(743)을 플롯팅하고 있다. 불변 레이트는 평균 레이트일 수 있다. 현재 시간(tc'')에서의 버퍼 점유율의 추정이 예시되어 있다. 제3 예시의 그래프(740)에서 예시된 버퍼 점유율 방법은 제2 예시의 그래프(720)에서 예시된 방법과 유사하고 비디오 디코딩 포인트(Tc)를 동일한 방식으로 결정한다.
제3 예시의 그래프(740)에 도시된 방법은 Td''까지의 DTS의 그 비디오 샘플들을 배송된 데이터의 양으로부터 추정한다. DTS Td''는 Td'' = D/R로 계산될 수 있는데, 여기서 D는 배송된 데이터의 양이고 R은 상정된 불변 비디오 데이터 레이트이다. 그리하여, 버퍼 점유율 추정 모듈(628)은 추정된 버퍼 점유율을 BO_t'' = Td'' - (tc'' - (t0'' + d0''))으로 계산할 수 있다. 클라이언트에 배송된 데이터의 양은 위에서 설명된 바와 같이 타이밍 정보 모듈(627)에 의해 결정될 수 있다.
버퍼 점유율을 추정하기 위한 위의 방법은 사용된 정보 내 에러를 포함할 수 있는 추정치를 산출한다. 예를 들어, 사용된 초기 버퍼 지연 내 에러는 버퍼 점유율 추정치 내 대응하는 에러의 결과를 초래할 수 있다. 따라서, QoE 강화 모듈(610)은 초기 버퍼 지연을 결정하기 위해 비디오 데이터 이외의 소스로부터의 정보(예를 들어, 클라이언트에 대한 정보, 클라이언트에 의해 사용된 하드웨어에 대한 정보, 사용자에 대한 정보 및 이력 정보)를 편입할 수 있다. 버퍼 점유율 추정 모듈(628)은 또한 추정된 버퍼 점유율에 의해 이전에 예측된 재생 동결을 고려하도록 비디오 디코딩 포인트(Tc)를 조절할 수 있다.
QoE 강화 모듈(610)은 정체 평가 모듈(626)을 포함한다. 정체 평가 모듈(626)은 트래픽 정체를 검출하도록 버퍼 점유율 추정 모듈(628)로부터의 추정된 버퍼 점유율을 분석한다. 정체에 대한 정보는, 예를 들어, 네트워크 노드의 동작을 조절하도록 다른 모듈에 의해 사용될 수 있다. 정체는 일반적으로는 추정된 버퍼 점유율이 임계 레벨 아래일 때 나타내어진다. 임계 레벨은 동작을 조절하는데 필요한 프로세싱 및 전송 시간을 감안하도록 선택될 수 있다, 예를 들어, 임계값은 TCP 패킷 전송, 라디오 액세스 네트워크 전송 또는 버퍼 점유율 추정 계산 시간을 고려할 수 있다.
정체 평가 모듈(626)은 정체를 검출하도록 다른 정보 역시 사용할 수 있다. 예를 들어, 정체 평가는 QoE 강화 모듈(610)이 동작하는 네트워크 노드에서의 자원의 상황과 같은 다른 정보를 또한 사용할 수 있다. 클라이언트 디바이스 내 추정된 버퍼 점유율이 영이지만 연관된 네트워크 노드가 클라이언트 디바이스에 송신할 데이터를 갖고 있지 않을 때, 정체 평가 모듈(626)은 네트워크 노드로부터 클라이언트 디바이스로의 트래픽이 정체되지 않는다고 그리고 네트워크 노드의 상류에서 정체가 존재한다고 결정할 수 있다. 대안으로, 정체 평가 모듈(626)은 네트워크 노드에 비디오 서버로부터 도착하는 가장 최근 비디오 샘플의 DTS, Td(도착)를 비교하고 그것을 비디오 클라이언트의 추정된 재생 포인트, Tc에 비교할 수 있다. Tc > Td(도착)이면, 정체 평가 모듈(626)은 정체가 네트워크 노드의 상류에서 일어나고 있다고 결론지을 수 있다. 이들 경우에 있어서, 제어 응답 모듈(621)은 네트워크 노드의 로컬 버퍼 점유율과 관련된 정보 및 비디오 클라이언트의 추정된 버퍼 점유율이 들어있는 메시지를 하나 이상의 상류 노드에 보낼 수 있다.
정체 평가 모듈(626)은 성능 메트릭을 계산하도록 버퍼 점유율 추정치를 사용할 수 있다. 예시의 메트릭은 시간-평균 버퍼 점유율을 포함한다. 세션-당 단위로, 정체 평가 모듈(626)은 소정 시간 기간에 걸쳐 버퍼 점유율 추정치를 평균할 수 있다. 시간 기간은 비디오 세션 전체일 수 있다.
다른 예시의 메트릭은 비디오 동결의 경과 시간이다. 정체 평가 모듈(626)은 버퍼 점유율 추정치가 임계값(예를 들어, 영) 아래일 때 타이머를 실행시켜 비디오 동결의 듀레이션을 나타내는 메트릭을 발생시킬 수 있다. 메트릭은 비디오 동결의 듀레이션을 총 세션 시간으로 나눔으로써 백분율로 변환될 수 있다.
다른 예시의 메트릭은 비디오 동결 듀레이션의 히스토그램이다. 정체 평가 모듈(626)은 버퍼 점유율 추정치가 임계값 아래로 떨어질 때마다에 대하여 타이머를 실행시킬 수 있다. 그 후 듀레이션 시간은 히스토그램으로 조합될 수 있다. 히스토그램 메트릭은, 예를 들어, ITU-T J.247 부록 C에 설명된 바와 같이, 예를 들어, 비디오 평균평가점(VMOS)으로의 입력으로서 사용될 수 있다.
다른 메트릭이 또한 계산될 수 있다. 메트릭은, 예를 들어, 베어러-당, 사용자-당, 셀-당 또는 네트워크-당 품질 메트릭을 형성하도록 취합될 수 있다. 취합된 메트릭은 순시적 기반이면서도 다양한 시간 간격에 걸치기도 할 수 있다.
버퍼 점유율 추정치로부터 유도된 성능 메트릭은 다양한 방식으로 사용될 수 있다. QoE 강화 모듈(610)은, 예를 들어, 네트워크 동작을 관리하는 서버에 그 메트릭을 송신할 수 있다. 서버는, 예를 들어, 코어 네트워크에 있을 수 있거나 클라우드-기반 서버일 수 있다. 서버는 다수의 액세스 노드로부터의 메트릭을 취합할 수 있다. 메트릭은 임계 레벨에 비교될 수 있다. 비교가 문제될만한 네트워크 성능을 나타낼 때, 네트워크 운영자에 경보가 보내질 수 있다. 경보는, QoE 강화 모듈(610)을 포함하는 네트워크 노드에 로컬로 또는 다수의 네트워크 노드로부터의 메트릭을 취합하는 서버에서 발생될 수 있다. 대안으로 또는 부가적으로, 메트릭은 일시적 네트워크 정체를 완화하도록 사용될 수 있는 트래픽 성형(traffic shaping) 및 레이트 스로틀링(rate throttling)과 같은 동적 적응 방법을 지원하고 있는 발신 비디오 서버에 보내질 수 있다.
메트릭은 만성적 성능 문제를 사정하도록 더 분석될 수 있다. 그 분석은 네트워크 용량 강화를 위한 잠재 영역을 결정하도록 사용될 수 있다. 그 분석은 또한 서비스 레벨 협약의 위반 또는 준수를 평가하도록 사용될 수 있다. 서비스 레벨 협약은, 예를 들어, 최종 사용자 또는 오버-더-톱(OTT) 서비스 제공자와일 수 있다(예를 들어, 캐리어는 특정 유형의 비디오 세션에 대해 소정 품질 레벨을 만족시키는데 전념할 수 있다).
QoE 강화 모듈(610)은 제어 응답 모듈(621)을 포함한다. 제어 응답 모듈(621)은 정체 평가 모듈(626)로부터 정체에 대한 정보를 수신하고 QoE 강화 모듈(610)이 서비스 제공하는 네트워크 노드에 대한 제어 응답에 정체 정보를 포함시킬 수 있다. 제어 응답 모듈(621)은 또한 추정된 버퍼 점유율 정보를 수신할 수 있다. 제어 응답은 사용자의 QoE를 강화하도록 스케줄링 파라미터를 조절할 수 있다. 예를 들어, 비디오 클라이언트의 추정된 버퍼 점유율이 낮은 임계값 아래에 있을 때, 클라이언트에 송신될 패킷에 대한 스케줄링 우선순위, 또는 스케줄링 가중치 또는 크레디트의 사용을 통해 비디오 스트림에 할당된 스케줄링 자원은 증가될 수 있다. 비디오 클라이언트의 추정된 버퍼 점유율이 높은 임계값 위에 있을 때, 클라이언트에 송신될 패킷에 대한 스케줄링 우선순위 또는 스케줄링 자원은 감소될 수 있다. QoE 강화 모듈(610)은 스케줄링 우선순위(또는 스케줄링 자원 할당 또는 스케줄링 우선순위를 결정하는데 사용된 적용 인자)와 추정된 버퍼 점유율 간 구분적 선형 관계를 확립할 수 있다. 추정된 버퍼 점유율과 스케줄링 우선순위 또는 자원 할당 간 다른 수학적 관계가 사용될 수 있다.
QoE 강화 모듈(610)은 미국 특허 출원 제13/607,559호(출원일: 2012년 9월 7일, 발명의 명칭: "Systems and Methods for Congestion Detection for use in Prioritizing and Scheduling Packets in a Communication Network")에 설명된 바와 같은 스케줄링 파라미터 또는 적용 인자를 조절하는 방법을 포함하거나 그것과 사용될 수 있다.
QoE 강화 모듈(610)은 비디오 클라이언트에 정체의 표시를 보낼 수 있다. 정체 표시에 응답하여, 비디오 클라이언트는 그것이 요청하는 데이터의 레이트를 감축하여 그로써 정체를 감축할 수 있다. 예를 들어, 추정된 버퍼 점유율에 기반하여, QoE 강화 모듈(610)은 IP 패킷 내 2개의 명시적 정체 통지(Explicit Congestion Notification: ECN) 비트를 정체를 나타내는 값으로 설정하는 결과를 초래하는 제어 응답을 생성할 수 있다. 정체를 나타내는 제어 응답은 비디오 코덱 레이트 감축의 결과를 가져오도록 비디오 클라이언트를 트리거링할 수 있다. IP 패킷 내 ECN 비트의 사용은 IETF RFC 3168 (09/2001): "IP에 명시적 정체 통지(ECN)의 부가"(The Addition of Explicit Congestion Notification (ECN) to IP)에 설명되어 있다.
도 6은 다양한 모듈에 기능을 할당하는 특정 예 및 다양한 통신 노드에 모듈을 분산하는 특정 예를 예시하고 있다. 여러 다른 배열이 또한 사용될 수 있다. 예를 들어, 모듈 중 일부 모듈 또는 부분은 다른 노드에 분산될 수 있다. 예를 들어, 제어 응답 모듈(621)을 제외한 도 6에서의 모듈은 LTE 서비스 제공 게이트웨이(S-GW)와 같은 코어 기반 게이트웨이에 위치하고 있을 수 있고, 제어 응답 모듈(621)은 S-GW에 의해 서비스 제공받는 eNB에 위치하고 있을 수 있다. 부가적으로, 위 예로부터의 게이트웨이는 하나 이상의 eNB에 서비스 제공할 수 있다. 즉, 제어 응답 모듈(621)을 제외한 도 6에서의 모듈은 하나 이상의 eNB에 전송되는 비디오 스트림을 지원하는 기능을 수행할 수 있다. 대안으로, 제어 응답 모듈(621)을 포함하는 모든 모듈은 하나 이상의 액세스 노드에 제어 응답이 송신되고 있는 코어 기반 게이트웨이에 위치하고 있을 수 있다. 예시된 모듈은 부가적 기능을 제공할 수 있다. QoE 강화 모듈(610) 중의 모듈은 하나의 비디오 세션에 대해 설명되고 있기는 하지만, 그것들은 다수 세션 또는 다수 유형의 데이터를 동시다발적으로 분석할 수 있다.
도 8은 본 발명의 태양에 따른 비디오 파일의 데이터 구조 선도이다. 도 8의 데이터 구조는 ISO BMFF에 기반하는 파일에 대한 것이다. ISO BMFF에 사용되는 기본 구문 구조는 박스이다. 도 8에서의 각각의 직사각형은 박스이다. 박스에는 하나 또는 다수의 다른 박스가 들어있을 수 있다. 도 8에 있어서, 박스의 바로 우측 모든 박스는 그 박스의 자식 박스이다. 각각의 박스는 길이 필드, 4-문자-코드를 ID로서 포함하고, 박스의 컨텐트를, 있다면, 포함한다.
ISO BMFF 기반 파일은 파일 유형(ftyp) 박스(801)로 시작한다. ftyp 박스(801)는 ISO BMFF로부터 유도된 각각의 파일 포맷에 고유하다. ftyp 박스(801)는 파일 유형, 파일 버전 및 파일 호환성과 같은 정보를 포함한다. 옵션사항인 프로그레시브 다운로드 정보(pdin) 박스(802)가 뒤따를 수 있다. pdin 박스(802)는 비디오 디코딩 및 디코딩된 비디오의 후속 재생을 시작하기 전에 사용될 초기 지연을 포함한다. pdin 박스(802)로부터의 초기 지연은, 예를 들어, 비디오 클라이언트의 거동의 에뮬레이팅 동작에서 QoE 강화 모듈에 의해 사용될 수 있다.
메타데이터 컨테이너(moov) 박스(810)에는 영화 파일의 메타데이터가 들어있다. ISO BMFF는 비디오에 대해 영화라는 용어를 사용함을 주목하라. moov 박스(810)는 영화 파일의 구조에 대한 정보를 포함하고 영화 파일에 대한 헤더로 생각될 수 있다. 긴 비디오에 대하여, moov 박스(810)는 수 메가바이트의 메타데이터를 포함할 수 있다.
미디어 데이터(mdat) 박스(890)에는 영화에 대한 미디어 샘플 데이터가 들어있다. moov 박스(810)는 mdat 박스(890) 내 특정 데이터의 위치를 찾아내도록 사용될 수 있다. moov 박스(810)는 프로그레시브 다운로드 요건에 순응하는 파일에서 mdat 박스(890) 전에 있다. 파일 저장 목적으로, moov 박스(810)는 mdat 박스(890) 후에 있을 수 있다. 다른 유사한 파일 체계가 사용될 수 있다, 예를 들어, 비디오는 미디어 데이터와 메타데이터의 인터리빙된 단편을 가질 수 있다.
ISO BMFF 비디오를 파싱하고 데이터 위치를 디코딩 타임 스탬프에 매핑하기 위한 테이블을 발생시키는데 사용하기 위한 예시의 코드가 또한 설명될 것이다. 설명되는 방법은, 예를 들어, 도 6의 버퍼 점유율 추정 모듈(628)에 의해 수행될 수 있다. 그 예는 도 8에 예시된 ISO 기반 미디어 파일 포맷을 사용한다. 많은 다른 파일 포맷(예를 들어, MP4, 3GP, PIFF 및 F4V)이 ISO BMFF와 유사하다. ISO BMFF에 대해 설명되는 방법은 다른 파일 포맷에 적용될 수 있다.
moov 박스(810)에는 영화 헤더(mvhd) 박스(815), 트랙(trak) 박스(820), 있다면, 추가적 트랙 박스(825) 및 영화 익스텐드(mvex) 박스(880)가 들어있다. mvhd 박스(815)에는 영화에 대한 종합 정보가 들어있다. trck 박스(820) 또는 추가적 트랙 박스(825) 중 어느 하나에는 영화의 하나의 트랙에 대한 메타데이터가 들어있다. mvex 박스(880)는 미디어 데이터가 단편화될 때 사용된다. mvex 박스(880)에는 영화 익스텐드 헤더(mehd) 박스(881) 및 트랙 익스텐드 디폴트(trex) 박스(882)가 들어있다.
trck 박스(820)에는 트랙 헤더(tkhd) 박스(821), 편집 리스트(elst) 박스(823)가 들어있는 편집(edts) 박스(822), 및 미디어 정보(mdia) 박스(830)가 들어있다. mdia 박스(830)는 트랙 내 미디어의 특성 정보를 제공하고 미디어 헤더(mdhd) 박스(831), 핸들러 참조(hdlr) 박스(832), 및 미디어 정보(minf) 박스(840)를 포함하고 있다. mdhd 박스(831)는 트랙 내 미디어의 특성과 관련 있는 미디어-독립 정보를 제공한다. hdlr 박스(832)는 트랙 내 미디어를 어떻게 취급할지에 대한 정보를 제공할 수 있다.
minf 박스(840)는 트랙 내 미디어의 특성 정보를 제공한다. minf 박스(840)는 비디오 미디어 헤더(vmhd) 박스(842), 및 데이터 참조의 테이블을 제공하는 데이터 참조(dref) 박스(846)가 들어있는 데이터 정보(dinf) 박스(844)를 포함하고 있다.
minf 박스(840)는 샘플 테이블(stbl) 박스(860)도 포함하고 있다. stbl 박스(860) 내 정보는 mdat 박스(890) 내 샘플 데이터를 식별하도록 사용된다. stbl 박스(860)에는 샘플 설명(stsd) 박스(861), 샘플에 대한 디코딩 시간(stts) 박스(862), 동기 샘플(ssts) 박스(863), 샘플 사이즈(stsz) 박스(864), 샘플-대-청크(stsc) 박스(865), 청크 오프셋(stco) 박스(866), 및 독립적 일회용 샘플(sdtp) 박스(867)가 들어있다.
비디오 샘플이 비디오 스트림 버퍼로부터 제거되어 디코딩되는 시간은 stts 박스(862)에 지정되어 있다. stts 박스(862)의 구문 구조는 테이블 1에 열거되어 있다. 각각의 샘플의 DTS는 sample_delta로서 구별하여 지정된다. 부가적으로, 동일한 sample_delta를 갖는 연속 샘플들은 그룹화된다. 다음의 논의에서, 변수 "td"는 비디오 샘플의 DTS를 지칭하는데 사용된다.
Figure pct00001
DTS에 부가하여, 비디오 샘플의 위치를 찾는 것은 비디오 스트림 내 각각의 비디오 샘플의 오프셋 및 각각의 비디오 샘플의 사이즈를 사용한다. 이러한 정보는 stsz 박스(864), stsc 박스(865) 및 stco 박스(866)를 파싱함으로써 획득될 수 있다. 이러한 데이터를 파싱하는 것은 샘플을 청크로 그룹화하는 것으로 시작할 수 있다. 청크는 mdat 박스(890)에 연속적으로 저장되는 동일 샘플 유형의 샘플들의 그룹이다.
stsc 박스(865)는 각각의 청크 내 얼마나 많은 샘플이 있는지 및 청크 내 샘플에 대한 샘플 설명에 대한 인덱스에 관한 정보를 갖고 있다. stsc 박스(865)의 구조는 테이블 2에 열거되어 있다. 동일한 "samples_per_chunk" 및 "sample_description_index"를 갖는 동일 샘플 유형의 연속 청크는 stsc 박스(865)에서 그룹화되어 있다. 이것은 필드 "first_chunk"를 사용하여 제어된다.
Figure pct00002
stco 박스(866)는 파일의 시작으로부터 시작하여 비디오 파일 내 각각의 청크의 오프셋에 관한 정보를 갖고 있다. 그 구조는 테이블 3에 열거되어 있다. stsc 박스(865) 및 stco 박스(866)를 파싱한 후에, 샘플로부터 청크로의 매핑 및 파일 내 청크에서의 제1 샘플의 오프셋이 확립될 수 있다.
Figure pct00003
stsz 박스(864)는 영화 트랙에 대해 각각의 샘플의 사이즈를 지정한다. stsz 박스(864)의 구조는 테이블 4에 열거되어 있다.
Figure pct00004
stsz 박스(864), stsc 박스(865) 및 stco 박스(866)를 파싱한 후에, 파일 내 각각의 샘플의 오프셋 및 각각의 샘플의 사이즈가 획득될 수 있다. 이러한 정보는 바이트 카운트를 샘플 및 그들 DTS에 매핑하기 위한 테이블, 예를 들어 테이블 5에서의 예를 발생시키도록 stts 박스(862)로부터 파싱된 DTS와 조합될 수 있다. 송신된 데이터의 총량은 위에서 설명된 방법을 사용하여 추정될 수 있다. 이러한 예에 있어서, 테이블은 비디오 파일 내 각각의 비디오 샘플에 대해 하나의 레코드를 갖는다.
테이블 5에 있어서, 샘플 오프셋은 비디오 파일의 시작에 대한 비디오 샘플의 제1 바이트의 오프셋이다. 버퍼 점유율 추정 모듈은 배송된 비디오 데이터의 양, D를 샘플 오프셋에 비교하여 샘플이 배송된 DTS를 알고 있을 수 있다. 예를 들어, 테이블 5의 예를 사용할 때, 송신된 비디오 데이터의 총량이 166000 바이트이면, 제2 비디오 프레임이 전송 완료되었고 마지막 완전한 비디오 샘플의 DTS가 33ms까지 진전되었음을 알고 있다.
Figure pct00005
테이블 내 정보는 moov 박스(810)를 파싱함으로써 발생될 수 있다. moov 박스(810)는 통상 다수의 TCP 세그먼트에 걸쳐 이어질 것이다. 따라서, moov 박스(810)를 파싱하는 것은 전형적 TCP 문제(예를 들어, 패킷 재정렬, 손실된 패킷 및 중복된 패킷)가 파싱에 영향을 미치지 않도록 주의할 수 있다. 버퍼 점유율 추정 모듈이 moov 박스(810)를 파싱할 수 있기는 하지만, 그것은 mdat 박스(890)에 대해 송신된 바이트 수만을 추정할 수 있을 뿐이다. 마지막 완전히 송신된 비디오 샘플의 DTS는 송신된 mdat 박스(890)에서의 바이트의 양을 오프셋, 샘플 사이즈 및 샘플 DTS를 포함하는 샘플 정보 어레이와 비교함으로써 계산될 수 있다. 시간 단위의 클라이언트 측 버퍼 점유율은 마지막 완전 송신된 비디오 샘플의 DTS와 총 비디오 전송 시간 간 차이로서 추정될 수 있다. 클라이언트가 보통은 즉시 비디오 데이터를 소비하기 시작하지 않는 것을 고려하여, 시간 단위의 클라이언트 측 버퍼 점유율은 클라이언트의 초기 버퍼 지연을 부가함으로써 조절될 수 있다.
전술한 시스템 및 방법 및 연관된 디바이스 및 모듈은 여러 변종에 민감하다. 부가적으로, 명확하고 간결한 설명을 위해, 시스템 및 방법의 많은 설명이 단순화되었다. 예를 들어, 도면들은 일반적으로는 각각의 유형의 디바이스 중 하나(예를 들어, 하나의 액세스 노드, 하나의 단말 노드)를 예시하지만, 통신 시스템은 각각의 유형의 디바이스를 여럿 가질 수 있다. 유사하게, 많은 설명은 LTE와 같은 특정 무선 표준의 구조 및 술어를 사용하고 있다. 그렇지만, 개시된 시스템 및 방법은, 예를 들어, 하이브리드 광섬유-동축 케이블 모뎀 시스템을 포함하여 더 광범위하게 적용가능하다.
당업자는 본 명세서에서 개시되는 실시예와 연관하여 설명된 다양한 예시적 논리 블록, 모듈, 유닛 및 알고리즘 단계가 흔히 전자적 하드웨어, 컴퓨터 소프트웨어 또는 그들 조합으로 구현될 수 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 호환가능성을 명확히 예시하기 위해, 다양한 예시적 컴포넌트, 블록, 모듈 및 단계가 일반적으로 그 기능성의 관점에서 위에 설명되었다. 그러한 기능성이 하드웨어로 구현될지 또는 소프트웨어로 구현될지는 전반적 시스템에 부과된 특정 제약에 의존한다. 당업자는 설명된 기능성을 각각의 특정 시스템에 대해 다양한 방식으로 구현할 수 있지만, 그러한 구현 결정은 본 발명의 범위로부터의 벗어남을 야기하는 것으로 해석되어서는 안 된다. 부가적으로, 유닛, 모듈, 블록 또는 단계 내 기능의 그룹화는 설명의 용이함을 위한 것이다. 특정 기능 또는 단계는 본 발명으로부터 벗어남이 없이 하나의 유닛, 모듈 또는 블록으로부터 이동될 수 있다.
본 명세서에 개시된 실시예와 연관하여 설명된 다양한 예시적 논리 블록, 유닛, 단계 및 모듈은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 필드 프로그래밍 가능한 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능한 논리 디바이스와 같은 프로세서, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트 또는 여기에서 설명된 기능을 수행하도록 설계된 그 어떠한 조합으로라도 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로는, 프로세서는 어떠한 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 머신이라도 될 수 있다. 프로세서는 또한 컴퓨팅 디바이스의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 함께 하나 이상의 마이크로프로세서, 또는 어떠한 다른 그러한 구성으로라도 구현될 수 있다.
본 명세서에 개시된 실시예와 연관하여 설명된 블록 또는 모듈의 프로세스 및 알고리즘 또는 방법의 단계는 하드웨어로 직접, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 둘의 조합으로 구체화될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM 또는 어떠한 다른 형태의 저장 매체에라도 거주할 수 있다. 일례의 저장 매체는 프로세서가 그 저장 매체에 정보를 쓰고 그리고 그로부터 정보를 읽을 수 있게 되도록 프로세서에 결합될 수 있다. 대안에 있어서, 저장 매체는 프로세서에 일체일 수 있다. 프로세서 및 저장 매체는 ASIC에 거주할 수 있다. 부가적으로, 결합된 것으로 설명되어 있는 디바이스, 블록 또는 모듈은 중개 디바이스, 블록 또는 모듈을 통하여 결합되어 있을 수 있다. 유사하게, 제1 디바이스는 제1 디바이스와 제2 디바이스를 결합하는 중개 디바이스가 존재할 때 그리고 또한 제1 디바이스가 데이터의 궁극적 수신지를 모르고 있을 때 데이터를 제2 디바이스에 송신(또는 그로부터 수신)하는 것으로 설명되어 있을 수 있다.
개시된 실시예의 위 설명은 당업자가 본 발명을 하거나 사용할 수 있게 하도록 제공된다. 이들 실시예에 대한 다양한 수정이 당업자에게는 쉽게 명백할 것이고 여기에서 설명되는 포괄적 원리는 본 발명의 취지 또는 범위로부터 벗어남이 없이 다른 실시예에 적용될 수 있다. 그리하여, 여기에서 제시된 설명 및 도면은 본 발명의 현재 바람직한 실시예를 표현하고 그래서 본 발명에 의해 광범위하게 고려되는 대상 사항을 표현하는 것으로 이해되어야 한다. 더욱, 본 발명의 범위는 당업자에게 자명하게 될 수 있는 다른 실시예를 전적으로 아우르고 따라서 본 발명은 첨부된 특허청구범위 이외의 어떠한 것에 의해서도 제한되지 않음이 이해된다.

Claims (43)

  1. 액세스 노드로서,
    단말 노드와 통신하도록 구성된 트랜시버 모듈;
    비디오 서버와의 통신을 제공하도록 구성된 백홀 인터페이스 모듈(backhaul interface module);
    상기 단말 노드 내 비디오 버퍼의 점유율을 추정하도록 구성된 체감 품질 강화 모듈(quality of experience enhancement module); 및
    상기 백홀 인터페이스 모듈을 통하여 다운링크 패킷을 수신하고 스케줄러 파라미터를 이용하여 상기 트랜시버 모듈에 의한 송신을 위해 상기 다운링크 패킷을 스케줄링하도록 구성된 스케줄러 모듈을 포함하되, 상기 스케줄러 파라미터는 상기 단말 노드 내 상기 비디오 버퍼의 추정된 점유율에 적어도 일부 기반하는 것인 액세스 노드.
  2. 제1항에 있어서, 상기 체감 품질 강화 모듈은,
    상기 단말 노드에 배송될 패킷을 분석하여 상기 패킷의 특성을 검출하고 검출된 특성을 사용하여 상기 패킷을 분류하도록 구성된 검출 및 분류 모듈;
    상기 단말 노드에 배송될 비디오 스트림과 연관된 패킷을 분석하여 상기 비디오 스트림과 관련된 타이밍 정보를 결정하도록 구성된 타이밍 정보 모듈;
    상기 타이밍 정보 모듈로부터의 상기 타이밍 정보를 사용하여 상기 비디오 버퍼의 점유율을 추정하도록 구성된 버퍼 점유율 추정 모듈;
    상기 버퍼 점유율 추정 모듈로부터의 추정된 비디오 버퍼 점유율을 분석함으로써 트래픽 정체를 검출하도록 구성된 정체 평가 모듈; 및
    상기 정체 평가 모듈로부터의 트래픽 정체에 대한 정보에 적어도 일부 기반하여 상기 스케줄러 파라미터를 결정하도록 구성된 제어 응답 모듈을 포함하는 것인 액세스 노드.
  3. 제2항에 있어서, 상기 검출 및 분류 모듈은 상기 단말 노드로부터의 패킷을 분석하여 상기 비디오 스트림의 어느 부분이 상기 단말 노드에 배송되었는지에 대한 정보를 검출하도록 더 구성되는 것인 액세스 노드.
  4. 제1항에 있어서, 추정된 비디오 버퍼 점유율은 시간 단위인 것인 액세스 노드.
  5. 제1항에 있어서, 상기 체감 품질 강화 모듈은 상기 단말 노드에 배송될 비디오 스트림의 메타데이터 부분을 파싱하여 상기 비디오 스트림의 특성을 결정하도록 더 구성되는 것인 액세스 노드.
  6. 제5항에 있어서, 상기 비디오 스트림의 특성은 상기 비디오 스트림 내 바이트 위치로부터 대응하는 디코딩 타임 스탬프로의 매핑을 포함하고, 상기 체감 품질 강화 모듈은 상기 단말 노드 내 상기 비디오 버퍼의 점유율을 추정함에 있어서 상기 비디오 스트림 내 상기 바이트 위치로부터 상기 대응하는 디코딩 타임 스탬프로의 상기 매핑을 사용하도록 더 구성되는 것인 액세스 노드.
  7. 제6항에 있어서, 상기 비디오 스트림의 특성은 초기 버퍼 지연을 더 포함하고, 상기 체감 품질 강화 모듈은 상기 단말 노드 내 상기 비디오 버퍼의 점유율을 추정함에 있어서 상기 초기 버퍼 지연을 사용하도록 더 구성되는 것인 액세스 노드.
  8. 제1항에 있어서, 상기 체감 품질 강화 모듈은 상기 비디오 버퍼의 점유율을 추정함에 있어서의 사용을 위해 상기 단말 노드 내 비디오 클라이언트의 거동을 에뮬레이팅(emulating)하도록 더 구성되는 것인 액세스 노드.
  9. 제8항에 있어서, 상기 체감 품질 강화 모듈은 상기 단말 노드 내 상기 비디오 클라이언트의 거동을 에뮬레이팅함에 있어서의 사용을 위해 상기 비디오 스트림의 현재 디코딩 시간을 결정하도록 더 구성되는 것인 액세스 노드.
  10. 액세스 노드로서,
    단말 노드와 통신하도록 구성된 트랜시버 모듈;
    컨텐트 서버와의 통신을 제공하도록 구성된 백홀 인터페이스 모듈; 및
    상기 트랜시버 모듈 및 상기 백홀 인터페이스 모듈에 결합된 프로세서를 포함하되, 상기 프로세서는,
    패킷 중 일부가 상기 단말 노드로의 배송을 위한 비디오 스트림을 포함하고 있는 것인 상기 패킷을 상기 백홀 인터페이스 모듈로부터 수신하고,
    수신된 패킷을 검사하여 상기 비디오 스트림에 대한 정보를 결정하고, 그리고
    상기 비디오 스트림에 대한 상기 정보를 사용하여 상기 단말 노드 내 비디오 버퍼의 점유율을 추정하도록 배열되는 것인 액세스 노드.
  11. 제10항에 있어서, 상기 프로세서는 스케줄러 파라미터를 이용하여 상기 트랜시버 모듈에 의한 송신을 위해 상기 수신된 패킷을 스케줄링하도록 더 배열되고, 상기 스케줄러 파라미터는 상기 단말 노드 내 상기 비디오 버퍼의 추정된 점유율에 적어도 일부 기반하는 것인 액세스 노드.
  12. 제10항에 있어서, 상기 비디오 버퍼의 추정된 점유율은 시간 단위인 것인 액세스 노드.
  13. 제10항에 있어서, 상기 수신된 패킷을 검사하여 상기 비디오 스트림에 대한 정보를 결정하는 것은 상기 비디오 스트림과 연관된 메타데이터를 파싱하여 상기 비디오 스트림의 특성을 결정하는 것을 포함하는 것인 액세스 노드.
  14. 제13항에 있어서, 상기 비디오 스트림의 특성은 상기 비디오 스트림 내 바이트 위치로부터 대응하는 디코딩 타임 스탬프로의 매핑을 포함하고, 상기 단말 노드 내 상기 비디오 버퍼의 점유율을 추정하는 것은 상기 비디오 스트림 내 상기 바이트 위치로부터 상기 대응하는 디코딩 타임 스탬프로의 상기 매핑을 사용하는 것을 포함하는 것인 액세스 노드.
  15. 제14항에 있어서, 상기 비디오 버퍼의 점유율을 추정하는 것은 상기 비디오 스트림 내 상기 바이트 위치로부터 상기 대응하는 디코딩 타임 스탬프로의 상기 매핑을 사용하여 상기 단말 노드에 어느 비디오 샘플이 배송되었는지 및 상기 대응하는 디코딩 타임 스탬프를 추정하는 것을 포함하는 것인 액세스 노드.
  16. 제10항에 있어서, 상기 비디오 버퍼의 점유율을 추정하는 것은 상기 단말 노드 내 비디오 클라이언트의 거동을 에뮬레이팅하는 것을 포함하는 것인 액세스 노드.
  17. 제16항에 있어서, 상기 단말 노드 내 상기 비디오 클라이언트의 거동을 에뮬레이팅하는 것은 상기 비디오 스트림의 현재 디코딩 시간을 결정하는 것을 포함하는 것인 액세스 노드.
  18. 단말 노드와의 통신을 제공하도록 상기 단말 노드의 내외로 패킷들을 송신 및 수신하는 액세스 노드를 동작시킴에 있어서의 사용을 위한 방법으로서, 상기 패킷들은 비디오 스트림을 실어나르는 패킷들을 포함하고, 상기 방법은,
    상기 비디오 스트림과 연관된 패킷들을 수신하는 단계;
    상기 비디오 스트림의 특성을 결정하도록 상기 패킷들을 검사하는 단계;
    상기 비디오 스트림을 실어나르는 어느 패킷들이 상기 단말 노드에 배송되었는지를 추정하는 단계; 및
    상기 비디오 스트림의 특성 및 상기 비디오 스트림을 실어나르는 패킷들 중 어느 것이 상기 단말 노드에 배송되었는지에 대한 정보를 사용하여 상기 단말 노드 내 비디오 버퍼의 점유율을 추정하는 단계를 포함하는 것인 방법.
  19. 제18항에 있어서, 수신하는 단계, 검사하는 단계, 및 상기 비디오 스트림을 실어나르는 어느 패킷들이 상기 단말 노드에 배송되었는지를 추정하는 단계, 및 상기 단말 노드 내 상기 비디오 버퍼의 점유율을 추정하는 단계는 적어도 2개의 다른 노드에 의해 수행되는 것인 방법.
  20. 제18항에 있어서, 스케줄러 파라미터를 이용하여 상기 액세스 노드로부터의 송신을 위해 상기 수신된 패킷을 스케줄링하는 단계를 더 포함하되, 상기 스케줄러 파라미터는 상기 단말 노드 내 상기 비디오 버퍼의 추정된 점유율에 적어도 일부 기반하는 것인 방법.
  21. 제18항에 있어서, 상기 단말 노드 내 상기 비디오 버퍼의 추정된 점유율에 적어도 일부 기반하여 정체를 검출하는 단계를 더 포함하는 방법.
  22. 제21항에 있어서, 스케줄러 파라미터를 이용하여 상기 액세스 노드로부터의 송신을 위해 상기 수신된 패킷들을 스케줄링하는 단계를 더 포함하되, 상기 스케줄러 파라미터는 검출된 정체에 적어도 일부 기반하는 것인 방법.
  23. 제18항에 있어서, 상기 비디오 버퍼의 추정된 점유율을 사용하여 성능 메트릭을 발생시키는 단계를 더 포함하는 방법.
  24. 제23항에 있어서, 상기 성능 메트릭은 상기 단말 노드에서의 예측된 비디오 동결에 대한 정보를 포함하는 것인 방법.
  25. 제23항에 있어서, 스케줄러 파라미터를 이용하여 상기 액세스 노드로부터의 송신을 위해 상기 수신된 패킷들을 스케줄링하는 단계를 더 포함하되, 상기 스케줄러 파라미터는 상기 성능 메트릭에 적어도 일부 기반하는 것인 방법.
  26. 제23항에 있어서, 상기 성능 메트릭은 상기 액세스 노드의 상류에서의 정체에 대한 정보를 포함하는 것인 방법.
  27. 제18항에 있어서, 상기 비디오 버퍼의 점유율은 시간 단위로 추정되는 것인 방법.
  28. 제18항에 있어서, 상기 비디오 스트림을 실어나르는 패킷들 중 어느 것이 상기 단말 노드에 배송되었는지를 추정하는 단계는 상기 단말 노드에 송신된 전송 제어 프로토콜(TCP) 세그먼트의 시퀀스 번호를 검출하는 단계를 포함하는 것인 방법.
  29. 제18항에 있어서, 상기 비디오 스트림을 실어나르는 패킷들 중 어느 것이 상기 단말 노드에 배송되었는지를 추정하는 단계는 상기 단말 노드로부터 수신된 전송 제어 프로토콜(TCP) 확인응답 메시지의 확인응답 번호를 검출하는 단계를 포함하는 것인 방법.
  30. 제18항에 있어서, 상기 비디오 스트림의 특성을 결정하도록 상기 패킷들을 검사하는 단계는 상기 비디오 스트림의 메타데이터 부분을 파싱하는 단계를 포함하는 것인 방법.
  31. 제30항에 있어서, 상기 비디오 스트림의 상기 메타데이터 부분을 파싱하는 단계는 상기 메타데이터를 저장하는 단계 및 저장된 메타데이터를 파싱하는 단계를 포함하는 것인 방법.
  32. 제30항에 있어서, 상기 비디오 스트림의 특성은 비트레이트를 포함하는 것인 방법.
  33. 제30항에 있어서, 상기 비디오 스트림의 특성은 초기 버퍼 지연을 포함하는 것인 방법.
  34. 제30항에 있어서, 상기 비디오 스트림의 특성은 상기 비디오 스트림 내 바이트 위치로부터 대응하는 디코딩 타임 스탬프로의 매핑을 포함하는 것인 방법.
  35. 제34항에 있어서, 상기 비디오 스트림 내 상기 바이트 위치로부터 상기 대응하는 디코딩 타임 스탬프로의 상기 매핑은 상기 단말 노드에 어느 비디오 샘플이 배송되었는지 및 상기 대응하는 디코딩 타임 스탬프를 추정하도록 사용되는 것인 방법.
  36. 제18항에 있어서, 상기 비디오 버퍼의 점유율을 추정하는 단계는 상기 단말 노드 내 비디오 클라이언트의 거동을 에뮬레이팅하는 단계를 포함하는 것인 방법.
  37. 제36항에 있어서, 상기 단말 노드 내 상기 비디오 클라이언트의 거동을 에뮬레이팅하는 단계는 상기 비디오 클라이언트에 의한 상기 비디오 스트림의 프로세싱에 대응하는 현재 디코딩 타임 스탬프를 추정하는 단계를 포함하는 것인 방법.
  38. 제37항에 있어서, 상기 단말 노드 내 상기 비디오 클라이언트의 거동을 에뮬레이팅하는 단계는 상기 단말 노드에 배송된 상기 비디오 스트림을 실어나르는 패킷들에 대응하는 가장 최근 디코딩 타임 스탬프로부터 상기 비디오 클라이언트에 의한 상기 비디오 스트림의 프로세싱에 대응하는 현재 디코딩 타임 스탬프를 빼는 단계를 더 포함하는 것인 방법.
  39. 제37항에 있어서, 상기 비디오 클라이언트에 의한 상기 비디오 스트림의 프로세싱에 대응하는 현재 디코딩 타임 스탬프를 추정하는 단계는, 상기 단말 노드로 상기 비디오 스트림의 배송이 시작된 시작 시간을 결정하는 단계; 현재 시간을 결정하는 단계; 및 상기 현재 시간으로부터 초기 버퍼 지연 및 상기 시작 시간을 빼는 단계를 포함하는 것인 방법.
  40. 제37항에 있어서, 상기 단말 노드 내 상기 비디오 클라이언트의 거동을 에뮬레이팅하는 단계는 초기 버퍼 지연을 결정하는 단계를 포함하고, 상기 비디오 클라이언트에 의한 상기 비디오 스트림의 프로세싱에 대응하는 현재 디코딩 타임 스탬프를 결정하는 단계는 상기 초기 버퍼 지연을 고려하는 것인 방법.
  41. 제40항에 있어서, 상기 초기 버퍼 지연을 결정하는 단계는 상기 비디오 클라이언트의 특성에 적어도 일부 기반하는 것인 방법.
  42. 제40항에 있어서, 상기 초기 버퍼 지연을 결정하는 단계는 상기 단말 노드의 특성에 적어도 일부 기반하는 것인 방법.
  43. 제37항에 있어서, 상기 비디오 클라이언트에 의한 상기 비디오 스트림의 프로세싱에 대응하는 현재 디코딩 타임 스탬프를 결정하는 단계는 상기 단말 노드에 송신된 상기 비디오 스트림과 연관된 바이트의 수량을 비트레이트로 나누는 단계를 포함하는 것인 방법.
KR1020157000630A 2012-06-12 2013-06-05 통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템 KR102050816B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261658854P 2012-06-12 2012-06-12
US61/658,854 2012-06-12
US13/789,462 US9380091B2 (en) 2012-06-12 2013-03-07 Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US13/789,462 2013-03-07
PCT/US2013/044253 WO2013188186A1 (en) 2012-06-12 2013-06-05 Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network

Publications (2)

Publication Number Publication Date
KR20150052826A true KR20150052826A (ko) 2015-05-14
KR102050816B1 KR102050816B1 (ko) 2019-12-02

Family

ID=48670822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157000630A KR102050816B1 (ko) 2012-06-12 2013-06-05 통신 네트워크에서 강화된 체감 품질을 위해 클라이언트 측 비디오 버퍼 점유율을 사용하기 위한 방법 및 시스템

Country Status (4)

Country Link
US (3) US9380091B2 (ko)
EP (1) EP2859703B1 (ko)
KR (1) KR102050816B1 (ko)
WO (1) WO2013188186A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230014860A (ko) * 2019-05-20 2023-01-30 구글 엘엘씨 전송 제어 프로토콜에 대한 트립 시간 추정

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101758613B1 (ko) * 2010-03-09 2017-07-31 삼성전자주식회사 방송 컨텐츠 제공 방법 및 장치와 그 시스템
US10044489B2 (en) 2010-10-22 2018-08-07 Nokia Solutions And Networks Oy Enhanced inter-network access node scheduling coordination and signaling support for advanced receiver algorithms
US20140181266A1 (en) * 2011-09-29 2014-06-26 Avvasi Inc. System, streaming media optimizer and methods for use therewith
US10063606B2 (en) * 2012-06-12 2018-08-28 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US20140019591A1 (en) * 2012-07-16 2014-01-16 Nokia Siemens Networks Oy Media Prefill Performance Improvement
US8970662B2 (en) * 2013-03-12 2015-03-03 Qualcomm Incorporated Output management for electronic communications
US9277373B2 (en) 2013-03-12 2016-03-01 Qualcomm Incorporated Output management for press-to-transmit communications
US10587663B2 (en) 2013-05-31 2020-03-10 Verily Life Sciences Llc Video stream preview
KR102133531B1 (ko) 2013-08-23 2020-07-13 삼성전자주식회사 컨텐츠 재생 방법 및 그에 따른 단말, 그에 따른 시스템
US11165842B2 (en) * 2013-10-25 2021-11-02 Louis Gurtowski Selective capture with rapid sharing of user or mixed reality actions and states using interactive virtual streaming
US10027731B2 (en) * 2013-10-25 2018-07-17 Louis Gurtowski Selective capture with rapid sharing of user computer or mixed reality actions, states using interactive virtual streaming
US20150146012A1 (en) * 2013-11-27 2015-05-28 Sprint Communications Company L.P. Video presentation quality display in a wireless communication device
US10587720B2 (en) * 2014-02-11 2020-03-10 T-Mobile Usa, Inc. Network aware dynamic content delivery tuning
US10887651B2 (en) * 2014-03-31 2021-01-05 Samsung Electronics Co., Ltd. Signaling and operation of an MMTP de-capsulation buffer
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
US9769043B2 (en) * 2014-09-22 2017-09-19 Avaya Inc. Adaptive management of a media buffer
WO2016070224A1 (en) * 2014-11-04 2016-05-12 Gt Systems Pty Ltd Media distribution & management system & apparatus
CN104394440B (zh) * 2014-11-27 2017-10-27 北京邮电大学 一种http视频流调度方法及装置
CN107251008B (zh) * 2015-02-27 2020-11-13 帝威视有限公司 在实况视频编码和流传输中进行帧复制和帧扩展的系统和方法
CN106034241B (zh) * 2015-03-19 2019-04-26 华为技术有限公司 一种多媒体重定向的方法、客户端、服务器和系统
US9397973B1 (en) * 2015-10-16 2016-07-19 Machine Zone, Inc. Systems and methods for transferring message data
US10116576B2 (en) 2015-10-19 2018-10-30 Samsung Electronics Co., Ltd. Methods and apparatus for random access of HEVC bitstream for MMT
WO2017101065A1 (en) * 2015-12-17 2017-06-22 Intel Corporation Decoder for playing big frames
WO2018002687A1 (en) * 2016-06-27 2018-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Estimating a buffer level in a playout device
US10257107B1 (en) 2016-06-30 2019-04-09 Amazon Technologies, Inc. Encoder-sensitive stream buffer management
US10148512B2 (en) 2016-08-12 2018-12-04 T-Mobile Usa, Inc. Mobile video optimization
CN113133122A (zh) * 2016-08-12 2021-07-16 华为技术有限公司 业务数据传输的方法、网络设备和终端设备
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
KR20180047124A (ko) * 2016-10-31 2018-05-10 삼성에스디에스 주식회사 패킷 전송 방법 및 그 장치
US10439947B2 (en) * 2016-11-17 2019-10-08 Cisco Technology, Inc. Method and apparatus for providing deadline-based segmentation for video traffic
US20180288454A1 (en) * 2017-03-29 2018-10-04 Kamakshi Sridhar Techniques for estimating http adaptive streaming (has) video quality of experience
US10521271B2 (en) * 2017-04-01 2019-12-31 Intel Corporation Hybrid low power homogenous grapics processing units
EP3386193A1 (en) * 2017-04-04 2018-10-10 Thomson Licensing Method of delivery of audiovisual content and corresponding device
EP3622684B1 (en) 2017-05-19 2022-05-11 Huawei Technologies Co., Ltd. Apparatus and method for traffic profiling of mobile video streaming
US10555035B2 (en) * 2017-06-09 2020-02-04 Disney Enterprises, Inc. High-speed parallel engine for processing file-based high-resolution images
CN110915223B (zh) * 2017-07-21 2022-10-21 索尼公司 发送设备、发送方法、接收设备、接收方法和程序
FR3069344B1 (fr) * 2017-07-24 2020-01-10 Netia Procede et dispositif de traitement d'elements sonores
US10623788B2 (en) 2018-03-23 2020-04-14 At&T Intellectual Property I, L.P. Methods to estimate video playback buffer
US10778547B2 (en) * 2018-04-26 2020-09-15 At&T Intellectual Property I, L.P. System for determining a predicted buffer condition based on flow metrics and classifier rules generated in response to the creation of training data sets
CN110662017B (zh) * 2018-06-30 2022-05-10 华为技术有限公司 一种视频播放质量检测方法和装置
WO2020122782A1 (en) * 2018-12-12 2020-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Communication system with de-jitter buffer for reducing jitter
US10972761B2 (en) 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems
EP3932082A1 (en) * 2019-02-27 2022-01-05 British Telecommunications public limited company Multicast assisted delivery
EP3949307A1 (en) 2019-04-12 2022-02-09 Huawei Technologies Co., Ltd. A communication entity and a method for transmitting a video data stream
CN112020043A (zh) * 2019-05-28 2020-12-01 瑞昱半导体股份有限公司 蓝牙装置与其操作方法及非瞬时计算机可读记录介质
CN111246284B (zh) * 2020-03-09 2021-05-25 深圳创维-Rgb电子有限公司 视频流播放方法、系统、终端及存储介质
US11245741B2 (en) 2020-04-09 2022-02-08 Qualcomm Incorporated Video aware multiplexing for wireless communication
US11575910B2 (en) * 2020-04-09 2023-02-07 Qualcomm Incorporated Video aware transmission and multiple input multiple output layer processing
US11831933B2 (en) 2020-04-09 2023-11-28 Qualcomm Incorporated Video aware transmission and processing
GB2598295B (en) 2020-08-19 2023-02-22 British Telecomm Content delivery
EP3962091A1 (en) 2020-08-26 2022-03-02 Tata Consultancy Services Limited Methods and systems for maintaining quality of experience in real-time live video streaming
US11303690B1 (en) * 2021-03-08 2022-04-12 Tata Consultancy Services Limited Method and system for enhancing quality of experience (QOE) of video reception at receiver
US20230291781A1 (en) * 2022-03-11 2023-09-14 Qualcomm Incorporated Techniques for multimedia uplink packet handling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070133405A1 (en) * 2005-12-08 2007-06-14 Microsoft Corporation Congestion controller for network transmissions
KR20110053179A (ko) * 2009-11-13 2011-05-19 삼성전자주식회사 데이터 전송 방법 및 장치

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1286349A1 (en) * 2001-08-21 2003-02-26 Canal+ Technologies Société Anonyme File and content management
RU2332705C2 (ru) * 2002-07-16 2008-08-27 Нокиа Корпорейшн Способ предоставления возможности компенсации задержки передачи пакетов при потоковой передаче мультимедийных данных
GB0300361D0 (en) * 2003-01-07 2003-02-05 Koninkl Philips Electronics Nv Audio-visual content transmission
CN1882998B (zh) * 2003-11-18 2010-06-09 皇家飞利浦电子股份有限公司 用于重放来自存储媒介的媒体流的重放设备和方法
DE602004030487D1 (de) * 2004-01-30 2011-01-20 Ericsson Telefon Ab L M Paketablaufsteuerung zur Datenstromübertragung
US7640352B2 (en) * 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
US7784076B2 (en) * 2004-10-30 2010-08-24 Sharp Laboratories Of America, Inc. Sender-side bandwidth estimation for video transmission with receiver packet buffer
JP4643330B2 (ja) * 2005-03-28 2011-03-02 ソニー株式会社 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
US7711841B2 (en) * 2006-02-28 2010-05-04 Sharp Laboratories Of America, Inc. Systems and methods for reducing the effects of variations on the playback of streaming media
JP4994698B2 (ja) * 2006-04-13 2012-08-08 キヤノン株式会社 情報伝送装置及び情報伝送方法
PL2615833T3 (pl) 2006-10-19 2014-10-31 Ericsson Telefon Ab L M Sposób określania jakości obrazu video
JP4753204B2 (ja) * 2006-11-17 2011-08-24 株式会社ソニー・コンピュータエンタテインメント 符号化処理装置および符号化処理方法
TWI396443B (zh) * 2008-12-22 2013-05-11 Ind Tech Res Inst 應用於網路串流之影音控制回應及頻寬調適方法與使用該方法之伺服器
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US8755405B2 (en) 2009-11-09 2014-06-17 Movik Networks, Inc. Burst packet scheduler for improved ran efficiency in UMTS/HSPA networks
US8117332B2 (en) * 2010-04-23 2012-02-14 Canon Kabushiki Kaisha Network streaming over multiple physical interfaces
US9485298B2 (en) 2010-10-28 2016-11-01 Netscout Systems Texas, Llc Device with video buffer modeling and methods for use therewith
US9178633B2 (en) 2010-10-28 2015-11-03 Avvasi Inc. Delivery quality of experience (QoE) in a computer network
US9037743B2 (en) 2010-10-28 2015-05-19 Avvasi Inc. Methods and apparatus for providing a presentation quality signal
US9191284B2 (en) 2010-10-28 2015-11-17 Avvasi Inc. Methods and apparatus for providing a media stream quality signal
US9032427B2 (en) 2010-10-28 2015-05-12 Avvasi Inc. System for monitoring a video network and methods for use therewith
US8675577B2 (en) 2010-12-20 2014-03-18 Intel Corporation Signaling techniques for a multimedia-aware radio and network adaptation
EP2695388B1 (en) * 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
WO2012170920A1 (en) * 2011-06-10 2012-12-13 Bytemobile, Inc. On-demand adaptive bitrate management for streaming media over packet networks
US9419906B2 (en) * 2011-07-05 2016-08-16 Telefonaktiebolaget L M Ericsson Network congestion control with adaptive QoS bit-rate differentiation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070133405A1 (en) * 2005-12-08 2007-06-14 Microsoft Corporation Congestion controller for network transmissions
KR20110053179A (ko) * 2009-11-13 2011-05-19 삼성전자주식회사 데이터 전송 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230014860A (ko) * 2019-05-20 2023-01-30 구글 엘엘씨 전송 제어 프로토콜에 대한 트립 시간 추정

Also Published As

Publication number Publication date
US20140082146A1 (en) 2014-03-20
EP2859703B1 (en) 2019-01-16
US20170111415A1 (en) 2017-04-20
EP2859703A1 (en) 2015-04-15
US10419502B2 (en) 2019-09-17
KR102050816B1 (ko) 2019-12-02
US9380091B2 (en) 2016-06-28
WO2013188186A1 (en) 2013-12-19
US9571549B2 (en) 2017-02-14
US20160156942A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
US10419502B2 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US10063606B2 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US9538220B2 (en) Video streaming quality of experience degradation control using a video quality metric
US7987285B2 (en) Adaptive bitrate management for streaming media over packet networks
KR101942208B1 (ko) Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어
US20130290492A1 (en) State management for video streaming quality of experience degradation control and recovery using a video quality metric
US20130298170A1 (en) Video streaming quality of experience recovery using a video quality metric
CA2858998C (en) Congestion induced video scaling
EP2415234B1 (en) Adaptive bitrate management for streaming media over packet networks
CA2842098A1 (en) A system and method for transmission of data signals over a wireless network
CN107210999B (zh) 链路感知流送自适应
WO2010112074A1 (en) Method and device for data processing in a communication network
WO2014209493A1 (en) State management for video streaming quality of experience degradation control and recovery using a video quality metric
US20170187778A1 (en) Streaming media using erasable packets within internet queues
WO2014209494A1 (en) Video streaming quality of experience degradation control using a video quality metric
US20070097987A1 (en) Feedback provision using general nack report blocks and loss rle report blocks
WO2015044104A1 (en) Video traffic management
WO2005050945A1 (en) Feedback provision using general nack report blocks and loss rle report blocks
WO2014209495A1 (en) Video streaming quality of experience recovery using a video quality metric
Sutinen et al. Towards ubiquitous video services through scalable video coding and cross-layer optimization
Dhamodaran et al. Adaptive Queue Management Scheme for Flexible Dual TCP/UDP Streaming Protocol
Fough Design and Analysis of RTP Circuit Breaker for Multimedia Applications

Legal Events

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