KR101331079B1 - 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치 - Google Patents

능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치 Download PDF

Info

Publication number
KR101331079B1
KR101331079B1 KR1020120034291A KR20120034291A KR101331079B1 KR 101331079 B1 KR101331079 B1 KR 101331079B1 KR 1020120034291 A KR1020120034291 A KR 1020120034291A KR 20120034291 A KR20120034291 A KR 20120034291A KR 101331079 B1 KR101331079 B1 KR 101331079B1
Authority
KR
South Korea
Prior art keywords
decoder
payload type
unit
type value
packet
Prior art date
Application number
KR1020120034291A
Other languages
English (en)
Other versions
KR20130094152A (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 KR20130094152A publication Critical patent/KR20130094152A/ko
Application granted granted Critical
Publication of KR101331079B1 publication Critical patent/KR101331079B1/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/75Media network packet handling
    • 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/0852Delays
    • 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)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 컨텐츠를 스트리밍하는 과정에서 처리 지연 시간을 감소시켜 저지연 재생을 가능하게 하고, 스트림 변경에 유연하게 대처할 수 있는 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치에 관한 것이다. 본 발명에 따른 능동적 버퍼 제어 방법 및 장치는 네트워크 환경에 따라서 능동적으로 버퍼를 관리하여 전송지연을 감소시킬 수 있다. 본 발명에 따른 재생기 변경 방법 및 장치는 서버에서 전송하는 컨텐츠의 스트림이 변경되어도 유연하게 대처하여 컨텐츠를 재생할 수 있도록 함으로서, 사용자는 끊김없이 컨텐츠를 이용할 수 있다.

Description

능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치{Method and Device for Active Controling Buffer Control And Method and Device for Changing Decoder}
본 발명은 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치에 관한 발명이다. 보다 상세하게는, 본 발명은 컨텐츠를 스트리밍하는 과정에서 처리 지연 시간을 감소시켜 저지연 재생을 가능하게 하고, 스트림 변경에 유연하게 대처할 수 있는 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치에 관한 것이다.
기존의 패킷 네트워크 상에서 스트리밍 네트워크 구성은 사용자 세션(User Session)을 이용하여 사용자 메시지를 전달하고, RTSP를 이용하여 세션 파라미터 셋을 전달하며, RTP를 이용하여 실제 컨텐츠 데이터를 전송하는 것이 일반적이다.
RTP(Real-time Transfer Protocol)는 현재의 패킷망 기반 네트워크에서 동영상을 스트리밍 하기 위하여 주로 사용되는 프로토콜이다. RTP는 영상 및 음성을 포함하여 실시간성을 요구하는 데이터 전송을 위하여 설계된 프로토콜로, 데이터를 전송하는 과정에서 패킷 헤더에 재생 시간을 포함하여 전송함으로써 실시간 전송을 수행할 수 있도록 한다.
RTSP는 단순히 영상 또는 음성의 스트리밍만이 필요한 응용 어플리케이션을 목적으로 설계된 프로토콜로, 구조가 단순하지만 단점이 존재한다.
그 단점은, RTSP는 실시간 스트리밍에서 Play, Pause 및 Resume과 같은 단순한 기능만을 지원하며, 피드백을 제공하지 않으므로 버퍼링 수준 제어가 불가능하다
또한, 한 번 동영상 재생기를 구성하고 나면 세션 재설정까지 변경이 불가능하하여, 동영상 재생기 변경이 필요한 경우, 세션을 종료하고 새로운 세션을 설정하는 방법을 사용하여 재생 중단으로 인한 사용자 불편이 발생한다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 전송지연 값을 기반으로 문턱값을 주기적 또는 비주기적으로 재설정하여 네트워크 변화에 능동적으로 대응하여 버퍼를 제어할 수 있는 능동적 버퍼 제어 방법 및 장치와 서버에서 전송하는 컨텐츠의 스트림이 변경되는 경우, 컨텐츠 재생의 중단이나 끊김없이 유연하게 대응하여 컨텐츠 재생기를 변경할 수 있는 재생기 변경 방법 및 장치를 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 능동적 버퍼 제어 장치는, 수신단에서 능동적으로 버퍼를 제어하는 장치에 있어서, 수신된 패킷의 전송지연 값을 측정하는 전송지연 값 측정부; 상기 측정된 전송지연 값이 설정된 문턱값 이하인지 여부를 판단하는 비교판단부; 및 상기 비교판단부의 판단에 기반하여 버퍼길이를 제어하는 버퍼길이 조절부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 전송지연 값 측정은, 상기 수신된 패킷이 상기 손실이 발생한 패킷인 경우, 설정된 바에 따라 매우 큰 값을 지정하는 것을 특징으로 한다.
바람직하게는, 상기 전송지연 값 측정은, 상기 수신된 패킷의 헤더(Hearder)에 포함된 타임스탬프(Timestamp) 정보를 이용하여 전송지연 값을 측정하는 것임을 특징으로 한다.
바람직하게는, 상기 버퍼길이 조절부는, 상기 측정된 전송지연 값이 상기 설정된 문턱값을 초과하는 경우, 상기 버퍼길이를 설정된 바에 따라 증가시키는 것을 특징으로 한다.
바람직하게는, 상기 버퍼길이 조절부는, 상기 측정된 전송지연 값이 상기 설정된 문턱값 이하인 경우, 상기 버퍼길이를 설정된 바에 따라 감소시키는 것을 특징으로 한다.
바람직하게는, 상기 설정된 문턱값은 상기 측정된 전송지연 값을 이용하여 재설정되는 것을 특징으로 한다.
바람직하게는, 상기 이용되는 측정된 전송지연 값은, 최근 N개의 패킷에 대한 전송지연 값을 누적하여 산출되는 것을 특징으로 한다.
바람직하게는, 상기 N은 현재의 상기 버퍼길이에 비례하는 것을 특징으로 한다.
바람직하게는, 상기 재설정되는 문턱값은, 상기 수신한 패킷이 손실이 발생한 경우에는 상기 설정된 문턱값이 재설정되지않는 것을 특징으로 한다.
상기한 목적을 달성하기 위한 능동적 버퍼 제어 방법은, 수신단에서 능동적으로 버퍼를 제어하는 방법에 있어서, 수신된 패킷의 전송지연 값을 측정하는 전송지연 값 측정단계; 상기 측정된 전송지연 값이 설정된 문턱값 이하인지 여부를 판단하는 비교판단단계; 및 상기 비교판단단계에서의 판단에 기반하여 버퍼길이를 제어하는 버퍼길이 조절단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 전송지연 값 측정은, 상기 수신된 패킷이 상기 손실이 발생한 패킷인 경우, 설정된 바에 따라 매우 큰 값을 지정하는 것을 특징으로 한다.
바람직하게는, 상기 전송지연 값 측정은, 상기 수신된 패킷의 헤더(Hearder)에 포함된 타임스탬프(Timestamp) 정보를 이용하여 전송지연 값을 측정하는 것임을 특징으로 한다.
바람직하게는, 상기 버퍼길이 조절단계는, 상기 측정된 전송지연 값이 상기 설정된 문턱값을 초과하는 경우, 상기 버퍼길이를 설정된 바에 따라 증가시키는 것을 특징으로 한다.
바람직하게는, 상기 버퍼길이 조절단계는, 상기 측정된 전송지연 값이 상기 설정된 문턱값 이하인 경우, 상기 버퍼길이를 설정된 바에 따라 감소시키는 것을 특징으로 한다.
바람직하게는, 상기 설정된 문턱값은 상기 측정된 전송지연 값을 이용하여 재설정되는 것을 특징으로 한다.
바람직하게는, 상기 이용되는 측정된 전송지연 값은, 최근 N개의 패킷에 대한 전송지연 값을 누적하여 산출되는 것을 특징으로 한다.
바람직하게는, 상기 N은 현재의 상기 버퍼길이에 비례하는 것을 특징으로 한다.
바람직하게는, 상기 재설정되는 문턱값은, 상기 수신한 패킷이 손실이 발생한 경우에는 상기 설정된 문턱값이 재설정되지않는 것을 특징으로 한다.
상기한 목적을 달성하기 위한 재생기 변경 장치는, 컨텐츠 재생을 위한 재생기의 변경이 필요한 경우, 이를 위한 재생기 변경 장치에 있어서, 사용자 세션(User Session)을 통하여 새롭게 사용될 파라미터 셋을 서버로부터 수신하면, 새로운 페이로드타입(PayloadType) 값을 지정하고 상기 지정된 페이로드타입 값에 관한 정보를 서버로 전송하는 사용자 세션부; 상기 지정된 페이로드타입 값을 저장하는 PT맵 저장부; 및 상기 서버로부터 상기 지정된 페이로드타입 값에 관한 정보를 포함하는 패킷을 수신하고 상기 수신된 패킷의 페이로드타입 값을 상기 PT맵 저장부에 저장된 페이로드타입 값과 대조하는 RTP 세션부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션부는, 상기 수신된 파라미터 셋을 분석하여 서버에서 새롭게 전송되려는 컨텐츠가 재생가능하게 부호화되었는지 여부를 점검하는 파라미터 셋 분석부를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션부는, 상기 파라미터 셋을 수신하는 경우, 새로운 디코더 인스턴스를 추가할 수 있는지 여부를 판단하는 추가 판단부를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 추가 판단부는 추가 판단부의 판단이 새로운 디코더 인스턴스를 추가할 수 없다고 판단된 경우, 상기 서버로 새로운 스트림의 수신 준비가 되지 않는다는 정보를 발신하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션부는, 상기 추가 판단부의 판단이 새로운 디코더 인스턴스를 추가할 수 있다고 판단된 경우, 상기 수신된 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비하는 디코더 설정부를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 페이로드타입 값의 지정은 페이로드타입 중 사용자가 임의로 사용할 수 있는 페이로드타입을 이용하여 지정하는 것을 특징으로 한다.
바람직하게는, 상기 페이로드타입 값의 지정은 페이로드타입 중 96 내지 127 사이의 페이로드타입 중 적어도 어느 하나를 이용하여 지정하는 것을 특징으로 한다.
바람직하게는, 상기 PT맵 저장부는, 상기 디코더 설정부로부터 상기 준비된 새로운 디코더 인스턴스와 디코더 버퍼에 관한 정보를 전송받고, 상기 지정된 페이로드타입 값과 연계되어 저장되는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장부에 대조되는 값이 존재하지 않는 경우, 상기 수신된 패킷을 폐기하는 것을 특징으로 하는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장부에 대조되는 값이 존재하는 경우, 상기 PT맵 저장부에서 상기 수신된 패킷의 페이로드타입 값에 연계된 상기 디코더 인스턴스와 상기 디코더 버퍼에 관한 정보를 수신하는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션부는 상기 수신한 디코더 버퍼에 관한 정보를 이용하여 디코더 버퍼를 누적하는 디코더 버퍼 누적부를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션부는 상기 수신한 디코더 인스턴스에 관한 정보를 이용하여 상기 수신한 패킷을 디코딩할 수 있는 디코더로 상기 패킷을 전송하거나 상기 수신한 패킷을 디코딩할 수 있는 디코더에서 상기 패킷을 재생하는 디코더부를 더 포함하는 것을 특징으로 한다.
상기한 목적을 달성하기 위한 재생기 변경 방법은, 컨텐츠 재생을 위해 재생기의 변경이 필요한 경우, 이를 위한 재생기 변경 방법에 있어서, 사용자 세션(User Session)을 통하여 새롭게 사용될 파라미터 셋을 서버로부터 수신하면, 새로운 페이로드타입(PayloadType) 값을 지정하고 상기 지정된 페이로드타입 값에 관한 정보를 서버로 전송하는 사용자 세션단계; 상기 지정된 페이로드타입 값을 저장하는 PT맵 저장단계; 및 상기 서버로부터 상기 지정된 페이로드타입 값에 관한 정보를 포함하는 패킷을 수신하고 상기 수신된 패킷의 페이로드타입 값을 상기 PT맵 저장단계에서 저장된 페이로드타입 값과 대조하는 RTP 세션단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션단계는, 상기 수신된 파라미터 셋을 분석하여 서버에서 새롭게 전송되려는 컨텐츠가 재생가능하게 부호화되었는지 여부를 점검하는 파라미터 셋 분석단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션단계는, 상기 파라미터 셋을 수신하는 경우, 새로운 디코더 인스턴스를 추가할 수 있는지 여부를 판단하는 추가 판단단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 사용자 세션단계는, 상기 추가 판단단계에서의 판단이 새로운 디코더 인스턴스를 추가할 수 있다고 판단된 경우, 상기 수신된 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비하는 디코더 설정단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 페이로드타입 값의 지정은 페이로드타입 중 사용자가 임의로 사용할 수 있는 페이로드타입을 이용하여 지정하는 것을 특징으로 한다.
바람직하게는, 상기 PT맵 저장단계는, 상기 디코더 설정단계로부터 상기 준비된 새로운 디코더 인스턴스와 디코더 버퍼에 관한 정보를 전송받고, 상기 지정된 페이로드타입 값과 연계되어 저장되는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장단계에서 저장된 정보와 대조되는 것이 존재하는 경우, 상기 PT맵 저장단계에서 저장된 정보 중에서 상기 수신된 패킷의 페이로드타입 값에 연계된 상기 디코더 인스턴스와 상기 디코더 버퍼에 관한 정보를 수신하는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션단계는 상기 수신한 디코더 버퍼에 관한 정보를 이용하여 디코더 버퍼를 누적하는 디코더 버퍼 누적단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 RTP 세션단계는 상기 수신한 디코더 인스턴스에 관한 정보를 이용하여 상기 수신한 패킷을 디코딩할 수 있는 디코더로 상기 패킷을 전송하거나 상기 수신한 패킷을 디코딩할 수 있는 디코더에서 상기 패킷을 재생하는 디코더단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따른 능동적 버퍼 제어 방법 및 장치는 네트워크 환경에 따라서 능동적으로 버퍼를 관리하여 전송지연을 감소시킬 수 있다.
본 발명에 따른 재생기 변경 방법 및 장치는 서버에서 전송하는 컨텐츠의 스트림이 변경되어도 유연하게 대처하여 컨텐츠를 재생할 수 있도록 함으로서, 사용자는 끊김없이 컨텐츠를 이용할 수 있다.
또한, 본 발명에 따른 재생기 변경 방법 및 장치는 재생기 변경이 필요할 경우, 컨텐츠 재생의 중단없이 재생기 변경이 가능하며, RTSP 세션을 이용하는 경우와 달리, 필요한 경우마다 컨텐츠 재생기를 변경할 수 있다.
도 1은 RTP 세션을 설명하기 위한 서버와 클라이언트 사이의 세션을 도식적으로 나타내는 예시도이다.
도 2는 본 발명의 바람직한 실시예에 따른 능동적 버퍼제어 장치의 구성에 관한 블록도이다.
도 3은 RTP 패킷의 헤더구조를 설명하기 위하여 도시한 예시도이다.
도 4는 본 발명의 바람직한 실시예에 따른 능동적 버퍼 제어 방법을 설명하는 순서도이다.
도 5는 본 발명의 바람직한 실시예에 따른 재생기 변경 장치를 설명하는 블록도이다.
도 6은 페이로드타입에 관하여 설명하기 위한 도이다.
도 7은 본 발명의 바람직한 실시예에 따른 재생기 변경 방법을 설명하기 위한 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하의 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
어떤 구성요소가 다른 구성요소에 “연결되어”있다거나 “접속되어”있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어”있다거나 “직접 접속되어”있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 발명에 따른 능동적 버퍼 제어 장치(200)는 무선 채널에서 컨텐츠를 스트리밍하는 과정에서 클라이언트 또는 수신단에서 능동적으로 버퍼를 제어하기 위한 장치이다.
컨텐츠는 문자, 부호, 음성 또는 이미지 영상 등으로 이루어진 정보 또는 그 내용물을 말한다.
본 발명에 능동적 버퍼 제어 장치(200)는 RTP 세션(RTP Session)에서 수행됨이 바람직하다. 세션이란 임의의 데이터를 전송하기 위한 통로를 의미하며, TCP/IP에서 주로 사용된다.
도 1은 RTP 세션을 설명하기 위한 서버와 클라이언트 사이의 세션을 도식적으로 나타내는 예시도이다.
도 1을 참조하면, 서버(Server)(110)와 클라이언트(Client)(120)사이에는 3가지 세션이 존재한다. 3가지 세션은 각각 사용자 세션(User Session), RTSP 세션(RTSP Session) 및 RTP 세션(RTP Session)이다.
RTSP 세션은 동영상 전송에 필요한 파라미터 셋을 전송한다.
RTP 세션은 실제 동영상 데이터를 전송하며, RTP 세션을 통한 데이터 전송은 서버(110)에서 클라이언트(120)로 단방향이다.
사용자 세션은 서버(110)와 클라이언트(120) 간의 접속 제어와 인증, 응용프로그램 데이터 전송, 접속요청 등의 처리에 이용되는 통로이다. 이 외에도 RTPS 세션 및 RTP 세션에서 전달되는 데이터를 제외한 임의의 사용자 데이터를 전달하는데 이용될 수 있다.
도 2는 본 발명의 바람직한 실시예에 따른 능동적 버퍼제어 장치의 구성에 관한 블록도이다.
도 2를 참조하면, 능동적 버퍼제어 장치는 패킷 수신부(210), 전송지연 값 측정부, 비교판단부(230), 버퍼길이 제어부(240) 및 문턱값 재설정부를 포함한다.
패킷 수신부(210)는 스트리밍 기법으로 전송받는 컨텐츠의 데이터 패킷을 수신한다.
바람직하게는, 패킷 수신부(210)가 수신한 패킷은 RTP 패킷이며, 패킷에 손실이 발생한 경우 손실의 정도 또는 손실의 유무에 대하여 감지할 수 있어야 한다.
전송지연 값 측정부(220)는 패킷 수신부(210)에서 수신한 패킷의 전송지연 값을 측정한다.
구체적으로 전송지연 값 측정은, RTP 패킷 헤더(Header)에 포함된 타임스탬프(TimeStamp) 정보를 이용하여 전송지연 값을 측정한다.
도 3은 RTP 패킷의 헤더구조를 설명하기 위하여 도시한 예시도이다.
도 3을 참조하면, RTP 패킷의 헤더에 타임스탬프(Timestamp)가 포함되어 있다. 타임스탬프는 어느 시점에서 데이터가 존재했다는 사실을 증명하기 위하여 특정 위치에 표시하는 시각으로 공통적으로 참고하는 시각에 대해 시간의 기점을 표시하는 시간 변위 매개 변수이다.
따라서 서버(110)로부터 사용자 세션으로 전송되는 타임스탬프와 RTP 세션의 RTP 패킷의 헤더에 포함되어 있는 타임스탬프로부터 획득한 시각 정보를 비교하면 전송지연된 시간을 수 밀리초 수준에서 정밀하게 측정할 수 있다.
다만, 패킷 수신부(210)에서 패킷에 손실이 발생한 것으로 감지한 패킷의 경우, 즉, 패킷 손실이 발생한 경우에는 전송지연 값을 알 수 없다. 이러한 경우에는 설정한 바에 따라 매우 큰 값을 지정할 수 있다.
비교판단부(230)는 전송지연 값 측정부에서 측정된 전송지연 값이 설정된 문턱값(Threshold) 이하인지 여부를 판단한다.
최초의 문턱값은 네트워크 상황 등을 고려하거나 임의적으로 설정될 수 있다.
문턱값은 주기적 또는 비주기적으로 재설정될 수 있다. 이에 관하여는 차후 구체적으로 설명한다.
버퍼길이 제어부(240)는 비교판단부(230)의 판단에 기반하여 버퍼길이를 제어한다.
구체적으로는, 비교판단부(230)의 판단이 측정된 전송지연 값이 설정된 문턱값을 초과하는 경우, 현재 네트워크 상황이 좋지 않게 바뀐 것이므로 버퍼길이 제어부(240)는 현재 버퍼길이를 설정된 바에 따라 증가시킨다. 예를 들어, 설정된 바에 따라 증가시킨다는 것은, 전송지연 값이 문턱값을 초과하는 경우 빠른 대응을 위하여 비교판단부(230)는 버퍼길이를 2배로 증가시키도록 설정될 수 있다는 것을 말한다.
반면에, 비교판단부(230)의 판단이 측정된 전송지연 값이 설정된 문턱값 이하인 경우, 현재 네트워크 상황이 좋은 것인바, 현재의 버퍼길이를 유지하여 컨텐츠의 끊김 현상 등의 문제점을 대비할 필요가 없다. 따라서, 버퍼길이 제어부(240)는 버퍼의 길이를 감소시킨다. 예를 들어, 측정된 전송지연 값이 설정된 문턱값 이하인 경우, 버퍼길이 제어부(240)는 버퍼길이를 1씩 감소시킬 수 있다.
문턱값 재설정부(250)는 비교판단부(230)에서 비교판단의 대상이 되는 측정된 전송지연 값과 설정된 문턱값 중에서 문턱값을 재설정한다.
문턱값은 주기적 또는 비주기적으로 재설정한다. 문탁값을 재설정하는 것은, 네트워크 상황에 능동적으로 대응하기 위한 것이다..
구체적으로, 문턱값 재설정부(250)가 문턱값을 재설정하는 일 예를 설명하면, 전송지연 값을 기준으로 전송지연 문턱값을 재조정할 수 있다. 보다 구체적으로는, 문턱값 재설정부(250)는 최근 N개 패킷의 전송지연 값을 누적하여 결정하는 방법을 사용할 수 있다.
최근 N개 패킷의 전송지연 값을 누적하여 결정하는 방법을 수학식 1을 참조하여 설명한다.
Figure 112012026575169-pat00001
수학식 1에서 N은 누적될 패킷의 수이다.
Delay()는 패킷의 전송지연을 측정하는 함수이며, packeti는 i번째 패킷을 의미하며, i는 가장 최근의 패킷을 0으로 하여, 1씩 감소하는 값을 갖는다. C는 재설정된 문턱값이 평균에 너무 근접하는 것을 막기 위한 상수로, 네트워크 환경이나 시스템 구성 등의 여러요소를 고려하여 설정될 수 있다. 즉, 수학식 1을 참조하면, 재설정된 문턱값은 0부터 1-N까지 패킷의 전송지연을 합한 후 상수 C를 곱한 것이 된다.
N을 결정하는 방법은 현재의 버퍼길이에 비례하는 값을 사용함이 바람직하다.
패킷 손실로 전송지연 측정값을 정확하게 알 수 없는 경우에는, 패킷 손실이 있는 패킷은 제외하고 문턱값을 재설정하거나, 패킷 손실이 있는 패킷이 포함되어 있는 경우에는 문턱값을 재설정하지 않고 손실이 없는 패킷이 수신되는 경우부터 문턱값을 재설정할 수도 있다.
다만, 문턱값 조정을 위하여 최근 N개의 패킷의 전송지연 값을 누적하여 결정하는 방법은 문턱값을 재설정하기 위한 하나의 방법이며, 문턱값의 재설정은 네트워크 및 시스템 구성에 따라 다양한 방법이 사용될 수 있다.
본 발명에 따른 능동적 버퍼관리 장치는 네트워크 환경에 따라서 능동적으로 버퍼를 관리하여 전송지연을 감소시킬 수 있다.
특히 실시간성을 중요시하는 상황, 예를 들어 전송지연이 수십 밀리초(ms) 정도로 제어되지 않으면 사용자 경험이 급격히 감소하는 것으로 알려져 있는 게임과 같은 양방향성 컨텐츠를 스트리밍하는 상황에서는 능동적 버퍼관리는 더욱 중요하다.
또한, 모바일 단말인 안드로이드(Android) 표준환경에서 발생하는 버퍼링 지연은 평균 3초 정보 발생하는 것으로 알려져 있으나, 본 발명에 따른 능동적 버퍼관리 장치를 이용하면, 전송 지연을 100ms 이하로 감소시킬 수 있다.
본 발명에 따른 능동적 버퍼관리 장치는 이론적으로 인터넷이나 네트워크 상에서 전송률 및 에러율과 관련된 서비스 품질인 큐오에스(QoS, Quality of Service)가 보장되어 에러 프리(Error-Free)한 경우에는 15fps에서 67ms 수준의 지연만으로 실시간 스트리밍이 가능하다.
도 4는 본 발명의 바람직한 실시예에 따른 능동적 버퍼 제어 방법을 설명하는 순서도이다.
도 4를 참조하면, 패킷 수신부(210)가 패킷을 수신한다(S410 단계).
전송지연 측정부(220)가 패킷 수신부(210)가 수신한 패킷의 전송지연을 측정한다(S420 단계). 전송지연 측정은 RTP 패킷 헤더에 포함된 타임스탬프(Timestamp) 정보를 이용하여 측정할 수 있다. 전송지연 측정부(220)는 측정된 전송지연 값에 대한 정보는 문턱값 재설정부(250)로 전송한다.
비교판단부(230)는 전송지연 측정부(220)에서 측정한 전송지연이 설정된 문턱값 이하인지 여부를 판단한다(S430 단계).
버퍼길이 제어부(240)는 비교판단부(230)의 판단에 기반하여 버퍼길이를 제어한다.
구체적으로는, 비교판단부(230)의 판단이 측정된 전송지연 값이 설정된 문턱값을 초과하는 경우라면, 버퍼길이 제어부(240)는 현재 버퍼길이를 설정된 바에 따라 증가시킨다(S450 단계). 설정된 바는 소정의 배율일 수 있다.
반면에, 비교판단부(230)의 판단이 측정된 전송지연 값이 설정된 문턱값 이하인 경우라면, 버퍼길이 제어부(240)는 버퍼의 길이를 감소시킨다(S440 단계).
문턱값 재설정부(250)는 전송지연 값과 현재 버퍼길이 등을 네트워크 환경을 고려하여 문턱값을 재설정한다(S460 단계)
본 발명에 따른 능동적 버퍼 제어 방법은 패킷 수신이 계속되는 동안 주기적 또는 비 주기적으로 반복 수행되며, 패킷 수신이 종료될 때 능동적 버퍼 제어 방법에 따른 수행도 종료된다.
본 발명에 따른 능동적 버퍼 제어 방법은 네트워크 상황에 능동적으로 대처하여 전송지연이 감소되고 실시간성이 높은 스트리밍 서비스를 이용할 수 있다.
도 5는 본 발명의 바람직한 실시예에 따른 재생기 변경 장치를 설명하는 블록도이다.
도 5를 참조하면, 재생기 변경 장치(500)는 사용자 세션부(510), PT맵 저장부(520) 및 RTP 세션부(530)를 포함한다.
재생기 변경은 디코더(Decoder) 변경을 포함한다.
사용자 세션부(510)는 준비명령 수신부(512), 파라미터 셋 분석부(514) 및 디코더 변경 준비부(516)를 포함한다.
사용자 세션부(510)는 사용자 세션(User Session) 채널을 이용하여 서버(110)와 정보를 송수신한다. 사용자 세션부(510)는 컨텐츠를 전송하는 서버(110)에서 스트림 변경이 필요한 경우, 사용자 세션부(510)로 새로운 디코더 인스턴스 준비명령과 새롭게 사용될 파라미터 셋을 수신하고, 수신한 준비명령과 파라미터 셋을 이용하여 클라이언트(Client)(120)가 RTP 세션(RTP Session) 채널을 이용하여 변경된 스트림으로 컨텐츠를 전송받는데 끊김이 없도록 한다.
준비명령 수신부(512)는 서버(110)에서 스트림 변경이 필요한 경우마다, 서버(110)로부터 새로운 디코더 인스턴스 준비명령과 새롭게 사용될 파라미터 셋을 수신한다.
파라미터 셋 분석부(514)는 준비명령 수신부(512)에서 수신된 파라미터 셋을 분석한다. 또한, 파라미터 셋 분석부(514)는 서버(110)로부터 새롭게 전송될 컨텐츠가 클라이언트(120)에서 재생가능한 정도로 적절하게 부호화되었는지 여부에 관하여도 점검할 수 있다.
디코더 변경 준비부(516)는 준비명령 수신부(512)에서 수신된 파라미터 셋을 이용하여 새로운 디코터 인스턴스와 디코더 버퍼를 준비한다. 디코더 변경 준비부는 준비가 완료되면 새로운 디코더 인스턴스 및 버퍼에 관한 정보와 연결되도록 새로운 페이로드타입(PayloadType) 값을 지정한다. 디코더 변경 준비부(516)는 지정된 페이로드타입 값과 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 PT맵 저장부(520)로 전송한다.
구체적으로 디코더 변경 준비부(516)에 관하여 설명하면, 도 5를 참조하면, 디코더 변경 준비부(516)는 추가 판단부(516a), 디코더 설정부(516c), 페이로드타입 값 지정부(516e) 및 준비완료 전송부(516g)를 포함한다.
추가 판단부(516a)는 디코더부(536)에 새로운 디코더 인스턴스를 추가할 수 있는지 판단한다. 즉, 서버(110)가 스트림 변경으로 디코더 인스턴스의 변경이 필요한 경우, 추가 판단부(516a)는 파라미터 셋 분석부(514)에서 분석한 파라미터 셋 정보를 기반으로 디코더부(536)에 새로운 디코더 인스턴스를 추가할 수 있는지를 판단한다.
구체적으로, 추가 판단부(516a)가 현재 디코더부(536)에 너무 많은 디코더 인스턴스가 설정되어 있거나, 새롭게 전송하려는 동영상이 클라이언트(120)에서 재생하기 힘든 경우 등의 미리 설정된 바에 따른 여러 사정을 고려하여 디코더 인스턴스의 추가가 가능한지 판단한다.
추가 판단부(516a)가 디코더 인스턴스를 추가할 수 없다고 판단한 경우 서버(110)로 변경된 스트림으로 컨텐츠를 전송받을 준비가 되어 있지 않다는 정보를 전송한다.
추가 판단부(516a)가 디코더 인스턴스를 추가할 수 있다고 판단한 경우 디코더 설정부(516c)에서 준비명령 수신부(512)가 수신한 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비한다.
디코더 설정부(516c)는 앞서 설명했듯이 준비명령 수신부(512)가 수신한 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비한다.
구체적으로 디코더 설정부(516c)가 디코더 인스턴스를 준비하는 것을 설명하면, 디코더는 바이너리와 파라미터 셋의 집합이므로, 파라미터 셋이 다르다면 바이너리를 공유하는 새로운 디코더 인스턴스를 준비할 수 있다. 따라서 디코더 설정부(516c)는 준비명령 수신부(512)가 수신한 파라미터 셋을 이용하여 새로운 디코더 인스턴스를 준비할 수 있다.
새로운 디코더 인스턴스와 디코더 버퍼의 준비가 완료되면, 페이로드타입 값 지정부(516e)가 새로운 디코더 인스턴스 및 디코더 버퍼에 연결되는 새로운 페이로드타입(PayloadType) 값을 지정한다.
새로운 디코더 인스턴스 및 디코더 버퍼에 연결되는 새로운 페이로드타입 값이란, 새로운 페이로드타입 값을 알면 새로운 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 함께 알 수 있는 것을 뜻한다.
도 6은 페이로드타입에 관하여 설명하기 위한 도이다.
구체적으로 페이로드타입 값 지정부(516e)는 페이로드타입(PT, PayloadType) 중 96내지 127 사이의 페이로드타입을 이용하여 값을 지정한다.
도 6을 참조하면, 페이로드타입 필드는 PRT 페이로드가 나타내는 어플리케이션을 해석하기 위해 사용하는 것으로, 미리 정의되어 있는 페이로드 형식 코드와 맵핑되어 있다. 페이로드 형식 코드는 도 6에서 나타내는 것과 같을 수 있는데, 도 6을 보면, 96 내지 127 사이의 페이로드타입은 임의로 사용이 가능한 필드이다.
페이로드타입 값 지정부(516e)가 96 내지 127 사이의 페이로드타입 중 어느 하나를 사용하여 새로운 페이로드타입 값을 지정하면, 준비완료 전송부(516g)는 지정된 페이로드타입 값과 디코더 설정부(516c)에서 준비한 새로운 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 PT맵 저장부(520)에 전송한다.
또한, 준비완료 전송부(516g)는 페이로드타입 값 지정부(516e)에서 지정한 새로운 페이로드타입 값을 서버(110)로 전송한다. 서버(110)는 RTP 세션 채널을 통하여 컨텐츠를 스트리밍으로 전송할 때, 준비완료 전송부(516g)에서 전송한 새로운 페이로드타입 값을 포함하여 전송하게 된다.
PT맵 저장부(520)는 준비완료 전송부(516g)로부터 지정된 페이로드타입 값과 디코더 설정부(516c)에서 준비한 새로운 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 수신한다. PT맵 저장부(520)에 저장된 정보는 가변적이다.
구체적으로, 서버(110)에서 새로운 스트림으로 컨텐츠를 전송하고자 할 때, 사용자 세션부(510)는 새로운 스트림에 알맞는 디코더 인스턴스를 준비하고, 준비가 완료되면 서버(110)로 새로운 스트림으로 컨텐츠를 전송받을 준비가 완료되었음을 알려줄 수 있다. 이와 동시에 또는 준비 완료를 서버(110)로 알려주기 전에, 새로운 스트림에 알맞는 디코더 인스턴스와 디코더 버퍼를에 관한 정보 및 새롭게 지정된 페이로드타입 값에 관한 정보를 PT맵 저장부(520)에 저장할 수 있다.
즉, 서버(110)에서 새로운 스트림으로 컨텐츠를 전송하려고 준비명령 수신부(512)로 새로운 파라미터 셋을 전송하면, PT맵 저장부(520)에 저장된 정보도 가변적으로 변하게 된다.
RTP 세션부(530)는 RTP 세션(RTP Session) 채널을 통하여 서버(110)로부터 정보를 수신한다. 바람직하게는 스트리밍으로 컨텐츠를 수신한다.
RTP 세션부(530)가 서버(110)로부터 컨텐츠를 수신하는 중 서버(110)에서 전송하고자 하는 스트림이 변경되는 경우, 스트림 변경에 관한 준비를 사용자 세션부(510)에서 완료하면 RTP 세션부(530)가 서버(110)로부터 변경된 스트림으로 컨텐츠를 수신한다.
즉, 서버(110)에서 스트림을 변경하고자 할 때, 사용자 세션부(510)에서는 스트림 변경에 대한 준비를 하고, 준비를 하는 동안, RTP 세션부(530)는 스트림 변경전의 컨텐츠를 계속적으로 수신할 수 있다. 준비가 완료된 후 서버(110)가 변경된 스트림으로 컨텐츠를 전송하면, RTP 세션부(530)는 유연하게 스트림이 변경된 컨텐츠를 수신하여 적절한 디코더로 전송하여 재생할 수 있다.
RPT 세션부는 사용자 세션부(510)와 별개의 쓰레드(Thread)로 독립적으로 동작할 수 있다.
구체적으로 RTP 세션부(530)에 관하여 설명하면, RTP 세션부(530)는 패킷 수신부(210), 페이로드타입 분석부(532), 디코더 버퍼 누적부(534) 및 디코더부(536)를 포함한다.
패킷 수신부(210)는 서버(110)로부터 스트리밍으로 패킷 데이터를 수신한다. 바람직하게는 RTP 패킷을 수신한다. 또한, 패킷 수신부(210)가 서버(110)로부터 수신한 RTP 패킷 헤더의 페이로드타입 값은 준비완료 전송부(516g)에서 서버(110)로 전송한 지정된 새로운 페이로드타입 값과 동일하다.
페이로드타입 분석부(532)는 패킷 수신부(210)에서 수신한 패킷의 페이로드타입을 분석한다. 분석은 PT맵 저장부(520)와 대조를 통하여 파악한다. 수신한 패킷의 페이로드타입 값은 패킷을 수신한 시점에서 알 수 있다.
구체적으로, 페이로드타입 분석부(532)는 수신한 패킷의 페이로드타입 값을 PT맵 저장부(520)에 저장되어 있는 정보와 대조하여 분석한다. 즉, 패킷 수신부(210)에서 수신한 패킷의 페이로드타입 값과 동일한 값을 가지는 페이로드타입에 관한 정보가 PT맵 저장부(520)에 저장되어 있는 정보 중에 존재하는 경우, 페이로드타입 분석부(532)는 그 동일한 값을 가지는 페이로드타입에 연결된 새로운 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 획득할 수 있다.
만약, 패킷 수신부(210)에서 수신한 패킷의 페이로드타입 값과 동일한 값을 가지는 페이로드타입에 관한 정보가 PT맵 저장부(520)에 저장되어 있는 정보 중에 존재하지 않는 경우라면, 페이로드타입 분석부(532)는 그러한 페이로드타입 값을 가진 패킷을 폐기할 수 있다.
디코더 버퍼 누적부(534)는 페이로드타입 분석부(532)에서 디코더 버퍼에 관한 정보를 획득한 경우, 획득한 디코더 버퍼 정보에 기반하여 디코더 버퍼를 누적한다.
디코더부(536)는 페이로드타입 분석부(532)에서 획득한 디코더 인스턴스에 관한 정보를 수신하여, 획득한 디코더 인스턴스에 대응되는 디코더에서 수신된 컨텐츠가 재생될 수 있도록 한다. 따라서, 디코더부(536)는 다수의 디코더를 포함할 수 있다.
또한, 디코더부(536)는 페이로드타입 분석부(532)에서 획득한 디코더 인스턴스에 관한 정보를 수신하여, 획득한 디코더 인스턴스에 대응되는 디코더로 수신된 패킷을 전송하만 할 수도 있다.
본 발명에 따른 재생기 변경 장치를 이용하여 스트림 변경시 유연하게 컨텐츠를 재생하는 과정을 예를 들어 설명한다.
먼저 현재 컨텐츠가 재생되고 있는 상태를 가정한다. 구체적으로 페이로드타입 96번을 이용하여 H.264 Baseline의 영상 스트리밍이 이루어지고 있는 상황을 가정한다.
이 상태에서 PT맵 저장부(520)에 저장된 페이로드타입 값과 이에 연결된 디코터 인스턴스 및 디코더 정보는 표 1과 같이 나타낼 수 있다.
페이로드타입 디코더 인스턴스 디코더 버퍼
96 0×00007000
[H.264 Baseline 640×480 15fps]
0×00101000
[최대길이 4의 버퍼]
표 1을 보면, PT맵 저장부(520)에는 페이로드타입 96에 연결된 디코더 인스턴스는 H.264 Baseline 640×480 15fps이며, 연결된 디코더 버퍼는 최대길이 4의 버퍼이다.
0×00007000은 디코더의 파라미터 셋을 저장하기 위한 메모리 상의 주소이며, 임의로 지정된 값이다. 디코더 버퍼의 0×00101000 또한 버퍼주소를 가리키는 메모리상의 주소로 임의로 지정된 값이다.
서버(110)에서 스트림 변경이 필요하여 새로운 디코더 준비명령을 사용자 세션부(510)로 전송한다. 사용자 세션부(510)는 서버(110)로부터 준비명령과 새로운 파라미터 셋을 수신하여 새로운 디코더를 준비하기 위한 절차를 진행한다. 사용자 세션부(510)에서 새로운 디코더를 준비하기 위한 절차가 진행되는 동안에도 RTP 세션부(530)에서는 페이로드타입 96에 의한 컨텐츠 재생이 계속적으로 이루어질 수 있다.
사용자 세션부(510)에서 새로운 디코더 인스턴스와 디코더 버퍼를 준비하여 PT맵 저장부(520)에 정보를 저장하면, PT맵 저장부(520)에 저장된 정보는 표 2와 같이 표현할 수 있다.
페이로드타입 디코더 인스턴스 디코더 버퍼
96 0×00007000
[H.264 Baseline 640×480 15fps]
0×0101000
[최대길이 4의 버퍼]
102 0×00007080
[H.264 Main 800×600 30fps]
0×0102000
[최대길이 16의 버퍼]
표 2를 보면, 새로운 디코더 인스턴스는 H.264 Main 800×600 30fps가 되며, 디코더 버퍼는 최대길이 16의 버퍼가 된다. 이러한 정보는 페이로드타입 102에 연결되어 있다.
PT맵 저장부(520)에 정보가 변경되고 사용자 세션부(510)에서 서버(110)로 준비완료 정보를 전송하면, 서버(110)는 RTP 세션으로 컨텐츠를 전송한다. 서버(110)가 새로운 스트림으로 컨텐츠를 전송할 때, 페이로드타입 96번의 전송을 중단하고 102번으로 새롭게 인코딩된 스트림을 전송할 것이다. 그러면, RTP 세션은 페이로드타입 102번으로 인코딩된 스트림을 수신하여, PT맵 저장부(520)를 이용하여 연결된 디코더 인스턴스와 디코더 버퍼의 정보를 획득하여 디코더 변경에 유연하게 대처할 수 있다.
본 발명에 따른 재생기 변경 장치(500)는 서버(110)에서 전송하는 컨텐츠의 스트림이 변경되어도 유연하게 대처하여 컨텐츠를 재생할 수 있도록 함으로서, 사용자는 끊김없이 컨텐츠를 이용할 수 있다.
즉, 본 발명에 따른 재생기 변경 장치(500)를 이용하면, 재생기 변경을 위한 수 초 수준의 컨텐츠 재생 중단을 100ms 수준으로 감소시킬 수 있다.
또한, 본 발명에 따른 재생기 변경 장치(500)는 재생기 변경이 필요할 경우, 컨텐츠 재생의 중단없이 재생기 변경이 가능하며, RTSP 세션을 이용하는 경우와 달리, 필요한 경우마다 컨텐츠 재생기를 변경할 수 있다.
도 7은 본 발명의 바람직한 실시예에 따른 재생기 변경 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 사용자 세션부(510)의 준비명령 수신부(512)가 서버(110)로부터 준비명령 및 파라미터 셋을 수신한다(S705 단계).
파라미터 셋 분석부(514)에서 수신한 파라미터 셋을 분석하여 서버(110)에서 새롭게 전송하려는 동영상이 클라이언트(120)에서 재생가능한 정도로 적절하게 부호화되었는지를 점검한다(S710 단계).
파라미터 셋 분석부(514)는 적절하게 부호화되지 않았다고 점검한 경우 서버(110)로 준비불가 회신한다(S715 단계).
파라미터 셋 분석부(514)가 점검한 결과가 적절하게 부호화되었다는 것인 경우, 추가 판단부(516a)에서 새로운 디코더 인스턴스가 추가 가능한지 여부를 판단한다(S720 단계).
추가 판단부(516a)의 판단 결과 추가 가능하지 않은 경우 서버(110)로 준비불가 회신한다(S725 단계).
추가 판단부(516a)의 판단 결과 추가 가능한 경우, 디코더 설정부(516c)에서 준비명령 수신부(512)에서 수신한 파라미터 셋을 이용하여 새로운 디코더 인스턴스 및 디코더 버퍼를 준비한다(S730 단계).
페이로드타입 값 지정부(516e)가 디코더 설정부(516c)에서 설정한 새로운 디코더 인스턴스 및 디코더 버퍼에 연결되도록 페이로드타입 값을 지정하고(S735 단계), 지정된 페이로드타입 값과 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 PT맵 저장부(520)에 전송한다(S740 단계).
PT맵 저장부(520)는 전송받은 지정된 페이로드타입 값과 디코더 인스턴스 및 디코더 버퍼에 관한 정보를 저장한다(S745 단계). PT맵 저장부(520)에 저장된 정보는 서버(110)에서 사용자 세션부(510)로 준비명령 및 파라미터 셋 전송을 할 때마다 가변적으로 변할 수 있다.
준비완료 전송부(516g)는 페이로드타입 값 지정부(516e)가 페이로드타입 값을 지정하면, 서버(110)로 페이로드타입 값과 함께 준비완료가 되었음을 알려준다(S750 단계). 준비완료 전송부(516g)는 페이로드타입 값 지정부(516e)가 PT맵 지정부로 정보를 전송 한 후에 서버(110)로 준비완료를 알려줄 수 있다.
RTP 세션부(530)는 서버(110)로부터 준비완료 전송부(516g)가 서버(110)로 전송한 지정된 페이로드타입 값으로 RTP 패킷을 수신한다(S755 단계).
페이로드타입 분석부(532)는 수신한 페이로드타입 값을 PT맵 저장부(520)에 저장된 정보와 대조하여(S760 단계) 수신한 페이로드타입 값에 연결된 디코더 인스턴스 및 디코더 버퍼 정보를 수신한다(S765 단계).
디코더 버퍼 누적부(534)는 페이로드타입 분석부(532)가 수신한 디코더 버퍼 정보를 이용하여 디코더 버퍼를 누적한다(S770 단계).
디코더부(536)는 페이로드타입 분석부(532)가 수신한 디코더 인스턴스를 이용하여 수신한 패킷을 적절한 디코더로 전송 또는 재생한다(S775 단계).
본 발명에 따른 재생기 변경 장치(500)는 서버(110)에서 전송하는 컨텐츠의 스트림이 변경되어도 유연하게 대처하여 컨텐츠를 재생할 수 있도록 함으로서, 사용자는 끊김없이 컨텐츠를 이용할 수 있다.
또한, 본 발명에 따른 재생기 변경 장치(500)는 재생기 변경이 필요할 경우, 컨텐츠 재생의 중단없이 재생기 변경이 가능하며, RTSP 세션을 이용하는 경우와 달리, 필요한 경우마다 컨텐츠 재생기를 변경할 수 있다.
본 발명에 따른 능동적 버퍼관리 장치와 본 발명에 따른 재생기 변경 장치(500)는 하나의 장치로 이루어질 수도 있다.
구체적으로, 도 2의 패킷 수신부(210)와 도 5의 패킷 수신부(210)는 동일한 것이 될 수 있다. 패킷 수신부(210)가 서버(110)로부터 패킷을 수신하면, 능동적 버퍼관리 장치의 전송지연부가 수신한 패킷의 전송지연을 측정하는 과정과 재생기 변경 장치(500)의 페이로드타입 분석부(532)가 수신한 패킷의 페이로드타입을 분석하고 PT맵 저장부(520)의 정보와 대조하는 과정이 병렬적으로 수행될 수 있다.
본 발명에 따른 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치는 유선 또는 무선망세서의 원격 제어, 실시간 감시 등 실시간성을 필요로 하는 곳에서 활용가능할 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (39)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 컨텐츠 재생을 위한 재생기의 변경이 필요한 경우, 이를 위한 재생기 변경 장치에 있어서,
    사용자 세션(User Session)을 통하여 새롭게 사용될 파라미터 셋을 서버로부터 수신하면, 새로운 페이로드타입(PayloadType) 값을 지정하고 상기 지정된 페이로드타입 값에 관한 정보를 서버로 전송하는 사용자 세션부;
    상기 지정된 페이로드타입 값을 저장하는 PT맵 저장부; 및
    상기 서버로부터 상기 지정된 페이로드타입 값에 관한 정보를 포함하는 패킷을 수신하고 상기 수신된 패킷의 페이로드타입 값을 상기 PT맵 저장부에 저장된 페이로드타입 값과 대조하는 RTP 세션부를 포함하고,
    상기 사용자 세션부는, 상기 수신된 파라미터 셋을 분석하여 서버에서 새롭게 전송되려는 컨텐츠가 재생가능하게 부호화되었는지 여부를 점검하는 파라미터 셋 분석부를 더 포함하는 것을 특징으로 하는 재생기 변경 장치.
  20. 삭제
  21. 제 19 항에 있어서,
    상기 사용자 세션부는, 상기 파라미터 셋을 수신하는 경우, 새로운 디코더 인스턴스를 추가할 수 있는지 여부를 판단하는 추가 판단부를 더 포함하는 것을 특징으로 하는 재생기 변경 장치.
  22. 제 21 항에 있어서,
    상기 추가 판단부는 추가 판단부의 판단이 새로운 디코더 인스턴스를 추가할 수 없다고 판단된 경우, 상기 서버로 새로운 스트림의 수신 준비가 되지 않는다는 정보를 발신하는 것을 특징으로 하는 재생기 변경 장치.
  23. 제 21 항에 있어서,
    상기 사용자 세션부는, 상기 추가 판단부의 판단이 새로운 디코더 인스턴스를 추가할 수 있다고 판단된 경우, 상기 수신된 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비하는 디코더 설정부를 더 포함하는 것을 특징으로 하는 재생기 변경 장치.
  24. 제 19 항에 있어서,
    상기 페이로드타입 값의 지정은 페이로드타입 중 사용자가 임의로 사용할 수 있는 페이로드타입을 이용하여 지정하는 것을 특징으로 하는 재생기 변경 장치.
  25. 제 19 항에 있어서,
    상기 페이로드타입 값의 지정은 페이로드타입 중 96 내지 127 사이의 페이로드타입 중 적어도 어느 하나를 이용하여 지정하는 것을 특징으로 하는 재생기 변경 장치.
  26. 제 23 항에 있어서,
    상기 PT맵 저장부는, 상기 디코더 설정부로부터 상기 준비된 새로운 디코더 인스턴스와 디코더 버퍼에 관한 정보를 전송받고, 상기 지정된 페이로드타입 값과 연계되어 저장되는 것을 특징으로 하는 재생기 변경 장치.
  27. 제 19 항에 있어서,
    상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장부에 대조되는 값이 존재하지 않는 경우, 상기 수신된 패킷을 폐기하는 것을 특징으로 하는 것을 특징으로 하는 재생기 변경 장치.
  28. 제 23 항에 있어서,
    상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장부에 대조되는 값이 존재하는 경우, 상기 PT맵 저장부에서 상기 수신된 패킷의 페이로드타입 값에 연계된 상기 디코더 인스턴스와 상기 디코더 버퍼에 관한 정보를 수신하는 것을 특징으로 하는 재생기 변경 장치.
  29. 제 28 항에 있어서,
    상기 RTP 세션부는 상기 수신한 디코더 버퍼에 관한 정보를 이용하여 디코더 버퍼를 누적하는 디코더 버퍼 누적부를 더 포함하는 것을 특징으로 하는 재생기 변경 장치.
  30. 제 28 항에 있어서,
    상기 RTP 세션부는 상기 수신한 디코더 인스턴스에 관한 정보를 이용하여 상기 수신한 패킷을 디코딩할 수 있는 디코더로 상기 패킷을 전송하거나 상기 수신한 패킷을 디코딩할 수 있는 디코더에서 상기 패킷을 재생하는 디코더부를 더 포함하는 것을 특징으로 하는 재생기 변경 장치.
  31. 컨텐츠 재생을 위해 재생기의 변경이 필요한 경우, 이를 위한 재생기 변경 방법에 있어서,
    사용자 세션(User Session)을 통하여 새롭게 사용될 파라미터 셋을 서버로부터 수신하면, 새로운 페이로드타입(PayloadType) 값을 지정하고 상기 지정된 페이로드타입 값에 관한 정보를 서버로 전송하는 사용자 세션단계;
    상기 지정된 페이로드타입 값을 저장하는 PT맵 저장단계; 및
    상기 서버로부터 상기 지정된 페이로드타입 값에 관한 정보를 포함하는 패킷을 수신하고 상기 수신된 패킷의 페이로드타입 값을 상기 PT맵 저장단계에서 저장된 페이로드타입 값과 대조하는 RTP 세션단계를 포함하고,
    상기 사용자 세션단계는, 상기 수신된 파라미터 셋을 분석하여 서버에서 새롭게 전송되려는 컨텐츠가 재생가능하게 부호화되었는지 여부를 점검하는 파라미터 셋 분석단계를 더 포함하는 것을 특징으로 하는 재생기 변경 방법.
  32. 삭제
  33. 제 31 항에 있어서,
    상기 사용자 세션단계는, 상기 파라미터 셋을 수신하는 경우, 새로운 디코더 인스턴스를 추가할 수 있는지 여부를 판단하는 추가 판단단계를 더 포함하는 것을 특징으로 하는 재생기 변경 방법.
  34. 제 33 항에 있어서,
    상기 사용자 세션단계는, 상기 추가 판단단계에서의 판단이 새로운 디코더 인스턴스를 추가할 수 있다고 판단된 경우, 상기 수신된 파라미터 셋을 이용하여 새로운 디코더 인스턴스와 디코더 버퍼를 준비하는 디코더 설정단계를 더 포함하는 것을 특징으로 하는 재생기 변경 방법.
  35. 제 31 항에 있어서,
    상기 페이로드타입 값의 지정은 페이로드타입 중 사용자가 임의로 사용할 수 있는 페이로드타입을 이용하여 지정하는 것을 특징으로 하는 재생기 변경 방법.
  36. 제 34 항에 있어서,
    상기 PT맵 저장단계는, 상기 디코더 설정단계로부터 상기 준비된 새로운 디코더 인스턴스와 디코더 버퍼에 관한 정보를 전송받고, 상기 지정된 페이로드타입 값과 연계되어 저장되는 것을 특징으로 하는 재생기 변경 방법.
  37. 제 36 항에 있어서,
    상기 RTP 세션부는, 상기 수신된 패킷의 페이로드타입 값이 상기 PT맵 저장단계에서 저장된 정보와 대조되는 것이 존재하는 경우, 상기 PT맵 저장단계에서 저장된 정보 중에서 상기 수신된 패킷의 페이로드타입 값에 연계된 상기 디코더 인스턴스와 상기 디코더 버퍼에 관한 정보를 수신하는 것을 특징으로 하는 재생기 변경 방법.
  38. 제 37 항에 있어서,
    상기 RTP 세션단계는 상기 수신한 디코더 버퍼에 관한 정보를 이용하여 디코더 버퍼를 누적하는 디코더 버퍼 누적단계를 더 포함하는 것을 특징으로 하는 재생기 변경 방법.
  39. 제 37 항에 있어서,
    상기 RTP 세션단계는 상기 수신한 디코더 인스턴스에 관한 정보를 이용하여 상기 수신한 패킷을 디코딩할 수 있는 디코더로 상기 패킷을 전송하거나 상기 수신한 패킷을 디코딩할 수 있는 디코더에서 상기 패킷을 재생하는 디코더단계를 더 포함하는 것을 특징으로 하는 재생기 변경 방법.
KR1020120034291A 2011-12-26 2012-04-03 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치 KR101331079B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20110142809 2011-12-26
KR1020110142809 2011-12-26

Publications (2)

Publication Number Publication Date
KR20130094152A KR20130094152A (ko) 2013-08-23
KR101331079B1 true KR101331079B1 (ko) 2013-11-19

Family

ID=49218112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120034291A KR101331079B1 (ko) 2011-12-26 2012-04-03 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101331079B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102419595B1 (ko) 2016-01-07 2022-07-11 삼성전자주식회사 재생 지연 조절 방법 및 이를 적용한 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100672326B1 (ko) * 2005-01-14 2007-01-24 엘지전자 주식회사 디지털 방송 수신기의 복호 방법
KR20070017364A (ko) * 2004-05-03 2007-02-09 톰슨 리서치 펀딩 코포레이션 Dsl 시스템에 대해 고속으로 채널 변경할 수 있게 하는방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070017364A (ko) * 2004-05-03 2007-02-09 톰슨 리서치 펀딩 코포레이션 Dsl 시스템에 대해 고속으로 채널 변경할 수 있게 하는방법 및 장치
KR100672326B1 (ko) * 2005-01-14 2007-01-24 엘지전자 주식회사 디지털 방송 수신기의 복호 방법

Also Published As

Publication number Publication date
KR20130094152A (ko) 2013-08-23

Similar Documents

Publication Publication Date Title
US11483360B2 (en) Adaptive streaming with early client indication
CN111135569B (zh) 云游戏处理方法、装置、存储介质与电子设备
US10827183B2 (en) System and method for optimal variable bit rate packing
US9585062B2 (en) System and method for implementation of dynamic encoding rates for mobile devices
WO2021088263A1 (zh) 一种控制视频转码码率的方法和装置
JP7307211B2 (ja) クライアント、サーバ、受信方法及び送信方法
US20150271242A1 (en) Method and Apparatus for Acquiring Streaming Media Buffer Parameter
US20210076086A1 (en) Digital data streaming using server driven adaptive bitrate
US8873590B2 (en) Apparatus and method for correcting jitter
KR20150111974A (ko) 비디오 품질의 사용자 경험치를 평가하는 방법, 장치 및 시스템
JP2017069849A (ja) 映像制御装置、映像配信システムおよび映像制御方法
US11196793B2 (en) Method and apparatus for adaptive streaming based on hybrid TCP and UDP in multiple narrowband wireless communication environment
JP2013214800A (ja) ストリーミングメディア再生装置、ストリーミングメディア再生方法、及びプログラム
KR101331079B1 (ko) 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치
US9247315B2 (en) Disabling of multiple bitrate algorithm for media programs while playing advertisements
CN110881018B (zh) 媒体流的实时接收方法及客户端
KR20140070896A (ko) 비디오 스트리밍 방법 및 그 전자 장치
JP5784538B2 (ja) ストリーミングメディア再生装置、メディアビットレート変更判定方法、及びプログラム
JP6099715B2 (ja) ストリーミングメディア再生装置、ストリーミングメディア再生方法、及びプログラム
KR101251312B1 (ko) 동영상 변환 서버에서의 동영상 탐색요청 처리방법
US11736552B1 (en) Sender based adaptive bit rate control
JP7496022B2 (ja) クライアント、サーバ、受信方法及び送信方法
JP4528022B2 (ja) 映像配信方法およびシステム
KR101996914B1 (ko) Mmtp기반 전송 시 배터리 소비 절감 방법 및 시스템
KR101700370B1 (ko) 지터 보정 방법 및 장치

Legal Events

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

Payment date: 20161107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191105

Year of fee payment: 7