KR20130092287A - 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버 - Google Patents

자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버 Download PDF

Info

Publication number
KR20130092287A
KR20130092287A KR1020120013930A KR20120013930A KR20130092287A KR 20130092287 A KR20130092287 A KR 20130092287A KR 1020120013930 A KR1020120013930 A KR 1020120013930A KR 20120013930 A KR20120013930 A KR 20120013930A KR 20130092287 A KR20130092287 A KR 20130092287A
Authority
KR
South Korea
Prior art keywords
streaming
communication link
data
client
bandwidth
Prior art date
Application number
KR1020120013930A
Other languages
English (en)
Other versions
KR101313308B1 (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 (주)네오위즈게임즈
Priority to KR1020120013930A priority Critical patent/KR101313308B1/ko
Publication of KR20130092287A publication Critical patent/KR20130092287A/ko
Application granted granted Critical
Publication of KR101313308B1 publication Critical patent/KR101313308B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 출원은 스트리밍 서비스 제공 기술에 관한 것으로, 개시된 기술의 일 실시예에 따른 스트리밍 서비스 제공 방법은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 수행된다. 상기 스트리밍 서비스 제공 방법은 (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 단계, (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 단계 및 (c) 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 단계를 포함한다. 본 출원의 개시된 기술에 따르면, 스트리밍 서비스를 제공함에 있어서, 클라이언트와 서버 간에 형성된 통신 링크의 대역폭에 최적화된 품질의 스트리밍 데이터를 제공하고, 만일 통신 링크의 대역폭에 변화가 발생하면 이를 반영하여 스트리밍 데이터의 품질을 다시 최적화함으로써 자동 스트리밍 품질 조절이 가능한 효과가 있다.

Description

자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버{METHOD FOR PROVIDING STREAMING SERVICE SUPPORTING STREAMING QUALITY AUTO CONTROL AND THE SERVER THEREOF}
본 출원은 스트리밍 서비스 제공 기술에 관한 것으로, 보다 상세하게는, 클라이언트와 연결된 통신 링크의 대역폭의 변화에 따라 제공하는 스트리밍 데이터의 품질을 자동으로 조절할 수 있는 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버에 관한 것이다.
컴퓨팅 디바이스 및 네트워크 환경의 발달에 따라 다양한 서비스가 온라인 환경 상에서 제공되고 있다. 특히, 스트리밍 서비스의 경우, 사용자 단말의 성능 증가 및 네트워크 대역폭의 증가에 힘입어, 좀더 많은 종류의 컨텐츠에 대하여 다양하게 스트리밍 서비스가 제공되고 있다.
이러한 스트리밍 서비스에 있어서, 가장 중요한 이슈는 최대한 높은 품질로 스트리밍 된 데이터를 끊김없이(seamless) 제공하는 것이다.
그러나, 종래의 스트리밍 서비스는 사용자에 의하여 스트리밍 데이터의 품질이 선택되어지면, 네트워크의 상태에 무관하게 해당 품질의 스트리밍 데이터를 제공하였다. 따라서, 사용자가 높은 품질의 스트리밍 데이터를 원하는 경우 오랜 버퍼링 시간이 필수적으로 요구되어야 하며, 또는 대역폭이 충분함에도 사용자가 선택한 낮은 품질의 스트리밍 데이터를 제공하는 한계가 있었다.
이러한 한계성을 극복하기 위하여 근래에는 무선 통신 망에 따라 기 설정되어 있는 MTU값을 이용하여 패킷화를 수행하여 스트리밍을 제공하는 기술이 개발되었다. 대한민국 등록특허 제10-0877883호는 무선 데이터 통신망 별로 최적화된 스트리밍 서비스 제공방법 및 장치를 개시하고 있으며, 더 상세히 살피면 사용자 단말이 접속하고 있는 무선 데이터망 정보를 분석하여 해당 망의 최대전송유닛(MTU) 크기를 추출하고, 전송할 데이터를 추출된 최대 전송유닛 크기로 패킷화(Packetizing)하여 스트리밍하는 기술에 대하여 설명하고 있다.
그러나, 이러한 종래의 기술의 경우, 하나의 무선 통신망을 경유하는 경우에만 유효하므로, 해당 스트리밍 서버가 단일의 이동통신망 마다 설치되어야 하는 한계가 있다. 즉, 등록특허 제10-0877883호는 하나의 무선 통신망 별 최적화된 최대전송유닛(MTU)를 이용하므로, 실질적으로 다양한 유-무선 망이 연결되어 하나의 통신 경로를 설정하는 경우 실질적으로 효과를 발휘할 수 없는 한계가 있다.
또한, 이러한 종래의 기술은 해당 무선 통신망이 균등하게 대역폭을 유지하고 있다는 가정이 존재하고 있으나, 현실적으로는 이러한 가정이 맞지 않는 상황이 매우 자주 발생함을 알 수 있다. 즉, 해당 무선망에 대하여 트래픽 부하 등이 발생하는 경우 아무리 최적화된 최대전송유닛(MTU) 크기로 패킷화된 스트리밍 데이터를 제공한다 하더라도 끊김없는 스트리밍 서비스를 제공하기 어려운 한계가 있다.
따라서, 유선-무선 등 여러 통신망을 이용하는 경우에도, 또한 네트워크 상태를 실시간으로 반영하여 스트리밍 품질을 최적화하여 제공할 수 있는 방안이 요구되고 있다.
대한민국 등록특허 제10-0877883호
본 출원은 스트리밍 서비스를 제공함에 있어서, 클라이언트와 서버 간에 형성된 통신 링크의 대역폭에 최적화된 품질의 스트리밍 데이터를 제공하고, 만일 통신 링크의 대역폭에 변화가 발생하면 이를 반영하여 스트리밍 데이터의 품질을 다시 최적화함으로써 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 기술을 제공하고자 한다.
또한, 본 출원은 스트리밍 서비스를 실시하기 전에 테스트 데이터를 전송하여 통신 링크의 대역폭을 자동으로 측정함으로써 자동으로 최적 품질의 스트리밍 데이터를 선택하여 전송할 수 있는 스트리밍 서비스 제공 기술을 제공하고자 한다.
또한, 본 출원은 최적 품질의 스트리밍 데이터를 전송하는 중에 통신망의 트래픽 변화 등으로 인하여 통신 링크의 대역폭이 감소하면, 제공하는 스트리밍 데이터의 품질을 단계적으로 낮추어 해당 통신 환경에서 최적의 품질을 유지하며 스트리밍 서비스를 제공할 수 있는 스트리밍 서비스 제공 기술을 제공하고자 한다.
실시예들 중에서, 스트리밍 서비스 제공 방법은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 수행된다. 상기 스트리밍 서비스 제공 방법은 (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 단계, (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 단계 및 (c) 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 단계를 포함한다.
실시예들 중에서, 스트리밍 서비스 제공 방법은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 수행된다. 상기 스트리밍 서비스 제공 방법은 (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 단계, (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 단계 및 (c) 스트리밍 컨텐츠를 상기 측정된 대역폭으로 전송 가능하며 가장 높은 제1 품질로 실시간 인코딩하여 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계를 포함한다.
실시예들 중에서, 스트리밍 서버는 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있다. 상기 스트리밍 서버는 스트리밍 데이터베이스, 통신 링크 측정부 및 스트리밍 제어부를 포함한다. 상기 스트리밍 데이터베이스는 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩된 복수의 스트리밍 데이터들을 저장한다. 상기 통신 링크 측정부는 통신 링크를 통하여 연결된 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여, 상기 통신 링크의 대역폭을 측정한다. 상기 스트리밍 제어부는 상기 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여, 상기 스트리밍 클라이언트에 제공한다.
실시예들 중에서, 스트리밍 서버는 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있다. 상기 스트리밍 서버는 통신 링크 측정부, 인코딩부 및 스트리밍 제어부를 포함한다. 상기 통신 링크 측정부는 통신 링크를 통하여 연결된 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정한다. 상기 인코딩부는 스트리밍 컨텐츠를 소정의 품질로 실시간 인코딩하여 스트리밍 데이터를 생성한다. 상기 스트리밍 제어부는 상기 측정된 대역폭으로 전송 가능한 가장 높은 품질로 상기 스트리밍 컨텐츠를 인코딩하도록 상기 인코딩부를 제어하고, 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트로 제공한다.
실시예들 중에서, 기록매체는 스트리밍 서비스 제공 방법을 실행시키기 위한 프로그램을 기록한다. 상기 프로그램은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 구동될 수 있는 프로그램으로서, (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 기능, (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 기능 및 (c) 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 기능을 포함하는 것을 특징으로 한다.
실시예들 중에서, 기록매체는 스트리밍 서비스 제공 방법을 실행시키기 위한 프로그램을 기록한다. 상기 프로그램은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 구동될 수 있는 프로그램으로서, (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 기능, (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 기능 및 (c) 스트리밍 컨텐츠를 상기 측정된 대역폭으로 전송 가능하며 가장 높은 제1 품질로 실시간 인코딩하여 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 기능을 포함하는 것을 특징으로 한다.
본 출원의 개시된 기술에 따르면, 스트리밍 서비스를 제공함에 있어서, 클라이언트와 서버 간에 형성된 통신 링크의 대역폭에 최적화된 품질의 스트리밍 데이터를 제공하고, 만일 통신 링크의 대역폭에 변화가 발생하면 이를 반영하여 스트리밍 데이터의 품질을 다시 최적화함으로써 자동 스트리밍 품질 조절이 가능한 효과가 있다.
또한 본 출원의 개시된 기술에 따르면, 스트리밍 서비스를 실시하기 전에 테스트 데이터를 전송하여 통신 링크의 대역폭을 자동으로 측정함으로써 자동으로 최적 품질의 스트리밍 데이터를 선택하여 전송할 수 있는 효과가 있다.
또한 본 출원의 개시된 기술에 따르면, 최적 품질의 스트리밍 데이터를 전송하는 중에 통신망의 트래픽 변화 등으로 인하여 통신 링크의 대역폭이 감소하면, 제공하는 스트리밍 데이터의 품질을 단계적으로 낮추어 해당 통신 환경에서 최적의 품질을 유지하며 스트리밍 서비스를 제공할 수 있는 효과가 있다.
도 1은 개시된 기술에 따른 스트리밍 서버와 스트리밍 클라이언트를 설명하기 위한 참고도이다.
도 2는 개시된 기술에 따른 스트리밍 서버의 일 실시예를 도시하는 구성도이다.
도 3은 개시된 기술에 따른 스트리밍 서버의 다른 일 실시예를 도시하는 구성도이다.
도 4는 개시된 기술의 일 실시예에 따른 스트리밍 클라이언트의 일 실시예를 도시하는 구성도이다.
도 5는 개시된 기술에 따른 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다.
도 6은 도 5에 도시된 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다.
도 7은 개시된 기술에 따른 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다.
도 8은 도 7에 도시된 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
개시된 기술은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 개시된 기술에 따른 스트리밍 서버와 스트리밍 클라이언트를 설명하기 위한 참고도이다.
스트리밍 서버(100)는 스트리밍 클라이언트(200)와 상호간에 연결된 통신 링크에 최적화된 품질의 스트리밍 데이터를 스트리밍 클라이언트(200)에 제공할 수 있다.
스트리밍 서버(100)는 스트리밍 서비스의 대상이 되는 컨텐츠(스트리밍 컨텐츠)를 직접 저장하고 있거나, 또는 소정의 컨텐츠 서버(미도시)를 이용하여 제공받을 수 있다.
이하에서는, 스트리밍 컨텐츠는 스트리밍 서비스의 대상이 되는 컨텐츠 데이터 자체로서 스트리밍을 위한 소정의 처리(인코딩)가 이루어지지 않은 데이터를 의미하고, 스트리밍 데이터는 스트리밍 컨텐츠를 스트리밍 하기 위하여 소정의 인코딩이 완료된 데이터로서 구별하여 설명하도록 한다.
실시예에 따라서, 스트리밍 서버(100)는 별도의 인코딩 수단으로부터 다양한 품질별로 인코딩된 스트리밍 데이터들을 이용하여 서비스를 제공할 수도 있고, 또는 자체적으로 인코딩 수단을 구비하여 스트리밍 컨텐츠를 품질별로 인코딩하거나 또는 실시간으로 인코딩하여 스트리밍 클라이언트(200)에 제공할 수 있다.
이러한 스트리밍 서버(100)에 대해서는 도 2 내지 도 3등을 참조하여 이하에서 보다 상세히 설명한다.
스트리밍 클라이언트(200)는 사용자 단말에서 구동될 수 있는 스트리밍 서비스를 제공하기 위한 수단이다.
사용자 단말은 PC, 태블릿 PC, 스마트 폰 등과 같이, 중앙처리장치와 메모리 장치 및 입출력 수단을 구비한 단말일 수 있다.
스트리밍 클라이언트(200)는 다양한 형태로 구성될 수 있다. 즉, 개시된 기술은 스트리밍 클라이언트(200)에 대한 기능적 한정을 제시할 뿐, 그에 대한 구체적 구성 방법 또는 구체화 수단을 한정하지 않는다. 예를 들어, 스트리밍 클라이언트(200)는 사용자 단말에 설치된 Flash 또는 Active X등으로 구현된 별도의 소프트웨어 객체일 수 있다. 다른 예를 들어, 스트리밍 클라이언트(200)는 사용자 단말에 자체적으로 적재된 하드웨어 및/또는 소프트웨어로서 구성된 운영체저에 포함된 소정의 기능일 수도 있다.
이러한 스트리밍 클라이언트(200)에 대해서는 도 4 등을 참조하여 이하에서 보다 상세히 설명한다.
스트리밍 서버(100)와 스트리밍 클라이언트(200)는 소정의 네트워크(통신망)을 경유하는 통신 링크(통신 회선)으로 연결될 수 있다. 여기에서, 통신 링크는 유선 또는 무선의 적어도 하나의 통신망을 경유하여 생성될 수 있다. 즉, 개시된 기술은 종래 기술과 상이하게 스트리밍 서버(100)가 네트워크 경로의 환경 상 제약에 따라 소정의 경로(예컨대, 무선 통신망의 데이터 센터 등)에 반드시 위치할 필요가 없다.
도 2는 개시된 기술에 따른 스트리밍 서버의 일 실시예를 도시하는 구성도이다.
도 2를 참조하면, 스트리밍 서버(100)는 통신부(110), 통신 링크 측정부(120), 스트리밍 데이터베이스(130) 및 스트리밍 제어부(140)를 포함할 수 있다. 일 실시예에서, 스트리밍 서버(100)는 스트리밍 데이터 생성부(150)를 더 포함할 수 있다.
통신부(110)는 스트리밍 클라이언트(200)와의 통신 링크를 생성하거나 또는 생성된 통신 링크를 유지할 수 있다. 여기에서, 통신 링크는 유선 또는 무선의 적어도 하나의 통신망을 경유할 수 있다. 즉, 통신부(110)는 특별히 한정된 조건 하의 네트워크 환경이 아닌 유무선 복합 네트워크 환경에서도 스트리밍 클라이언트(200)와 통신 링크를 생성 또는 유지할 수 있다.
통신부(110)는 스트리밍 제어부(140)의 제어에 따라 통신 링크를 통하여 연결된 스트리밍 클라이언트(200)에 스트리밍 데이터를 제공할 수 있다.
일 실시예에서, 통신부(110)는 복수의 스트리밍 클라이언트(200)들과 적어도 동시에 통신 링크를 생성 또는 유지할 수 있으며, 스트리밍 제어부(140)의 제어에 따라 연결된 복수의 스트리밍 클라이언트(200)들에 각각 상이한 스트리밍 데이터를 제공할 수 있다.
통신 링크 측정부(120)는 스트리밍 클라이언트(200)와의 통신 링크의 대역폭을 측정할 수 있다.
일 실시예에서, 통신 링크 측정부(120)는 스트리밍 클라이언트(200)에 테스트 데이터를 전송하여 통신 링크의 대역폭을 측정할 수 있다. 더 상세히 설명하면, 통신 링크 측정부(120)는 스트리밍 클라이언트(200)에 소정 크기의 테스트 데이터를 전송하고, 그 전송 결과에 대한 소정의 리포트를 스트리밍 클라이언트(200)로부터 수신하여 해당 통신 링크의 대역폭을 측정할 수 있다.
예를 들어, 스트리밍 클라이언트(200)는 테스트 데이터의 최초 패킷의 수신 시각부터 최종 패킷의 수신 시각에 이르는 시간 t에 대한 정보를 통신 링크 측정부(120)에 제공할 수 있고, 통신 링크 측정부(120)는 테스트 데이터의 크기(TestData_Maxsize)를 전송이 완료되는데 소요된 시간으로 제산하여 단위 시간 당 전송된 데이터의 크기를 산출하여 대역폭(ComLink_bandwidth)을 측정할 수 있다. 이를 수학식으로 표현하면 아래의 [수학식 1]과 같다.
Figure pat00001
일 실시예에서, 통신 링크 측정부(120)는 테스트 데이터의 전송 시 오류가 발생하는 지 확인하여 통신 링크의 유효성을 확인할 수 있다. 더 상세히 설명하면, 통신 링크 측정부(120)는 오류 검출 코드를 포함하여 테스트 데이터를 구성하여 이를 스트리밍 클라이언트(200)에 제공할 수 있다. 스트리밍 클라이언트(200)로부터 오류가 발생하였는지에 대한 데이터를 수신하면, 통신 링크 측정부(120)는 테스트 데이터의 전송에 있어서 오류가 발생한 것으로 판단할 수 있다. 만일 오류가 발생하였으면, 통신 링크 측정부(120)는 테스트 데이터의 전송을 소정 횟수 반복하여 통신 링크의 유효성을 확인할 수 있다. 즉, 통신 링크 측정부(120)는 테스트 데이터의 전송을 소정 횟수 반복하여 해당 통신 링크의 오류가 일시적인 것인지 아닌지 판단하여 통신 링크의 유효성을 확인할 수 있다.
만일 통신 링크가 유효하지 않은 것으로 확인되면, 통신 링크 측정부(120)는 스트리밍 제어부(140)에 새로운 통신 링크를 생성하라는 요청을 할 수 있다.
스트리밍 데이터베이스(130)는 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩된 복수의 스트리밍 데이터들을 저장할 수 있다. 예를 들어, 동일한 비디오 스트리밍 컨텐츠 A에 대하여 (1) 가장 높은 해상도를 가지나 가장 큰 대역폭을 요구하는 제1 스트리밍 데이터, (2) 평균적인 해상도 및 대역폭을 요구하는 제2 스트리밍 데이터 및 (3) 가장 낮은 해상도를 가지나 가장 낮은 대역폭을 요구하는 제3 스트리밍 데이터를 각각 저장할 수 있다.
스트리밍 데이터베이스(130)는 저장하고 있는 스트리밍 컨텐츠 및 그에 대한 복수의 스트리밍 데이터에 대한 정보(예컨대, 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보)에 대한 테이블을 저장할 수 있다.
일 실시예예서, 스트리밍 데이터베이스(130)는 스트리밍 데이터 생성부(150)로부터 복수의 스트리밍 데이터들을 제공받아 저장할 수 있다. 이러한 일 실시예의 경우, 스트리밍 데이터 생성부(150)는 제공하는 복수의 스트리밍 데이터들에 대한 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보를 포함하는 테이블을 생성하여 스트리밍 데이터베이스(130)에 저장하도록 할 수 있다.
스트리밍 제어부(140)는 스트리밍 서버(100)의 다른 구성요소들을 제어하여 스트리밍 클라이언트(200)에 스트리밍 서비스를 제공하도록 제어할 수 있다.
스트리밍 제어부(140)는 스트리밍 클라이언트(200)와의 통신 링크의 대역폭을 만족하며 복수의 스트리밍 데이터들 중에서 가장 높은 품질로 인코딩 된 스트리밍 데이터를 선택하여 스트리밍 클라이언트(200)에 제공할 수 있다.
일 실시예에서, 스트리밍 제어부(140)는 통신 링크 측정부(120)에 의하여 측정된 통신 링크의 대역폭을 확인하고, 스트리밍 데이터베이스(130)에 저장된 테이블을 검색하여, 필요 대역폭 정보가 측정된 통신 링크의 대역폭보다 작은 스트리밍 데이터들 중에서 가장 높은 인코딩 품질을 가지는 스트리밍 데이터를 선택하여 스트리밍 클라이언트(200)에 제공할 수 있다. 즉, 스트리밍 제어부(140)는 차등적 품질로 인코딩되어 스트리밍 데이터베이스(130)에 저장된 복수의 스트리밍 데이터들 중에서, 측정된 통신 링크의 대역폭을 만족하는 가장 높은 인코딩 품질을 가지는 스트리밍 데이터를 하나 선택하여 스트리밍 클라이언트(200)에 제공하게 됨으로써, 현재 통신 링크를 통하여 전송될 수 있는 가장 높은 품질의 스트리밍 데이터를 제공할 수 있는 것이다.
일 실시예에서, 스트리밍 제어부(140)는 통신 링크 측정부(120)로부터 현재 스트리밍 클라이언트(200)와 유지되고 있는 통신 링크가 유효하지 않다는 정보(또는 통신 링크 측정부(120)로부터 새로운 통신 링크의 생성에 대한 요청)를 수신하면, 새로운 통신 링크를 생성하도록 통신부(110)를 제어할 수 있다. 여기에서, 스트리밍 제어부(140)는 기존의 유효하지 않은 통신 링크와 경유하는 통신망이 적어도 하나는 상이하도록 새로운 통신 링크를 재 생성할 수 있다. 즉, 개시된 기술은 소정 횟수 동안의 확인에도 해당 통신 링크가 유효하지 않은 것으로 판단되면, 경유하고 있는 통신망 중 적어도 하나를 변경함으로써 종래의 통신 링크의 경로와 많이 상이할 수 있는 새로운 통신 링크를 생성하도록 하여 유효성의 가능성을 높일 수 있다. 이를 위하여, 스트리밍 제어부(140)는 필요한 소정의 라우팅 프로토콜 등에 대한 정보를 보유 또는 그에 접근할 수 있다.
일 실시예에서, 스트리밍 제어부(140)는 스트리밍 데이터의 제공 중에 네트워크 환경의 변화 등에 의하여 통신 경로의 대역폭이 감소되면 이를 반영하여 제공하고 있는 스트리밍 데이터의 품질을 변경할 수 있다. 더 상세히 설명하면, 스트리밍 클라이언트(200)는 스트리밍 데이터의 수신 중에 소정의 버퍼링이 발생하면 이에 대한 통지를 스트리밍 제어부(140)에 제공할 수 있고, 스트리밍 제어부(140)는 스트리밍 클라이언트(200)로부터 버퍼링에 대한 통지를 수신하면 전송 중인 스트리밍 데이터(제1 스트리밍 데이터)보다 필요 대역폭이 한 등급 낮은 (즉, 한 등급 낮은 품질로 인코딩 된) 스트리밍 데이터(제2 스트리밍 데이터)를 선택하여 스트리밍 클라이언트(200)에 제공할 수 있다. 스트리밍 클라이언트(200)는 제2 스트리밍 데이터를 선택하기 위하여 전술한 복수의 스트리밍 데이터들에 대하여 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보를 포함하는 테이블을 이용할 수 있다. 스트리밍 제어부(140)는 제2 스트리밍 데이터에 대해서도 소정의 버퍼링에 대한 통지를 수신하면, 제2 스트리밍 데이터보다 필요 대역폭이 한 등급 더 낮은 제3 스트리밍 데이터를 선택하여 스트리밍 클라이언트(200)에 제공할 수 있다.
일 실시예에서, 스트리밍 제어부(140)는 제공 중인 스트리밍 컨텐츠의 연속성을 보장하면서 스트리밍 데이터의 품질을 변경하여 제공할 수 있다. 예를 들어, 스트리밍 제어부(140)는 스트리밍 클라이언트(200)로부터 버퍼링에 대한 통지를 수신하면, 현재 제공되고 있는 제1 스트리밍 데이터의 진행 정보를 확인할 수 있다. 여기에서, 진행 정보의 확인은 실시예에 따라 다양하게 적용될 수 있다. 예를 들어, 진행 정보는 전체 제1 스트리밍 데이터 대비 현재 전송이 이루어진 데이터의 비율(%)일 수도 있고, 또는 제1 스트리밍 데이터를 구성하는 소정의 단위 데이터의 번호로서 표현될 수도 있다. 스트리밍 제어부(140)는 진행 정보를 확인하면, 현재 통신 경로에서 적용 가능한 최고의 품질을 가지는 제2 스트리밍 데이터를 선택하고, 제2 스트리밍 데이터 중 현재 진행 정보에 상응하는 부분의 데이터 영역을 검색하여 이를 스트리밍 클라이언트(200)에 제공할 수 있다.
일 실시예예서, 스트리밍 제어부(140)는 스트리밍 데이터의 제공 중에 네트워크 환경의 변화 등에 의하여 통신 경로의 대역폭이 다시 증가되면 이를 반영하여 제공하고 있는 스트리밍 데이터의 품질을 변경할 수 있다. 본 실시예는 전술한 실시예에서 통신 경로의 대역폭이 감소되어 적어도 한번 이상 스트리밍 데이터의 품질이 변경된 후에 다시 통신 경로의 대역폭이 증가하는 예에서 적용될 수 있다. 더 상세히 설명하면, 스트리밍 제어부(140)는 스트리밍 클라이언트(200)로부터 버퍼링에 대한 통지를 수신하여 보다 낮은 등급의 품질에 해당하는 제2 스트리밍 데이터로 변경하여 제공하고 있는 후, 소정 시간(원복 시간) 동안 제2 스트리밍 데이터에 대하여 스트리밍 클라이언트(200)로부터 버퍼링 통지를 수신하지 않으면 제3 스트리밍 데이터로 향상시킬 수 있다(만약, 제2 스트리밍 데이터로 한 등급 변경된 후 다시 제3 스트리밍 데이터로 한 등급 향상 된 경우라면, 제3 스트리밍 데이터는 제1 스트리밍 데이터와 동일한 등급일 것이다). 여기에서, 스트리밍 제어부(140)는 제1 스트리밍 데이터를 전송한 시간에 비례하고, 제2 스트리밍 데이터를 전송한 시간에 반비례하도록 하여 소정 시간(원복 시간)을 계산할 수 있다. 즉, 스트리밍 제어부(140)에 의하여 산출되는 소정 시간(원복 시간, Time_return)은 아래의 [수학식 2]와 같이 표현될 수 있다. a와 b는 각각 제1 및 제2 스트리밍 데이터를 전송하는데 걸린 시간들(Time_1stStrimData, Time_2ndStrimData)에 대한 가중치이며, 여기에서, 제2 스트리밍 데이터를 전송하는데 걸린 시간(Time_2ndStrimData)는 0이 아니다. (즉, Time_2ndStrimData가 0인 경우는 Time_1stStrimData만으로 계산될 수 있다)
Figure pat00002
스트리밍 데이터 생성부(150)는 제공받은 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩하여 복수의 스트리밍 데이터들을 생성할 수 있다.
일 실시예에서, 스트리밍 데이터 생성부(150)는 스트리밍 컨텐츠 및 그에 대한 복수의 스트리밍 데이터에 대한 정보(예컨대, 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보)에 대한 테이블을 생성하여 스트리밍 데이터베이스(130)에 저장하도록 할 수 있다.
도 3은 개시된 기술에 따른 스트리밍 서버의 다른 일 실시예를 도시하는 구성도이다. 도 3에 도시된 스트리밍 서버(100)는 도 2의 스트리밍 서버(100)와 다르게 실시간 인코딩을 수행할 수 있는 실시예를 도시하고 있다.
이하에서는 도 3을 참조하여, 이러한 다른 일 실시예에 대하여 보다 상세히 설명한다. 그러나, 도 3에 개시된 다른 일 실시예도 도 2에 개시된 일 실시예와 동일하거나 상응하는 구성이 존재하는 바 이에 대한 중복된 상세한 설명은 이하에서 생략하나 전술한 설명으로부터 당업자는 용이하게 이해할 수 있을 것이다.
도 3을 참조하면, 스트리밍 서버(100)는 통신부(110), 통신 링크 측정부(120), 스트리밍 제어부(140) 및 인코딩부(160)를 포함할 수 있다. 일 실시예에서, 스트리밍 서버(100)는 컨텐츠 데이터베이스(170)를 더 포함할 수 있다.
인코딩부(160)는 스트리밍 컨텐츠를 소정의 품질로 실시간 인코딩하여 스트리밍 데이터를 생성할 수 있다. 더 상세히 설명하면, 스트리밍 제어부(140)는 신 링크 측정부(120)에 의하여 측정된 통신 링크의 대역폭을 확인하고, 확인된 대역폭을 만족하며 가장 높은 품질에 해당하도록 인코딩 요청 정보를 생성하여 인코딩부(160)에 제공할 수 있고, 인코딩부(160)는 스트리밍 제어부(140)로부터 수신된 인코딩 요청정보에 따른 품질로 스트리밍 컨텐츠를 인코딩할 수 있다. 스트리밍 제어부(140)는 인코딩부(160)에 의하여 인코딩되어 생성된 스트리밍 데이터를 스트리밍 클라이언트(200)에 제공함으로써 스트리밍 서비스를 제공할 수 있다.
일 실시예에서, 스트리밍 제어부(140)는 통신 링크의 대역폭에 대한 변동이 이루어지면 이를 반영하여 제공할 스트리밍 컨텐츠의 인코딩 품질을 변경할 수 있다. 더 상세히 설명하면, 스트리밍 제어부(140)는 스트리밍 클라이언트(200)로부터 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면, 스트리밍 컨텐츠를 최초의 제1 품질보다 낮은 제2 품질로 인코딩하도록 인코딩 요청정보를 생성하여 인코딩부(160)에 제공할 수 있다.
일 실시예에서, 스트리밍 제어부(140)는 통신 링크의 대역폭이 다시 증가하면 대역폭 감소에 따라 낮추었던 인코딩 등급을 다시 상향 시킬 수 있다. 이에 대해서는 도 2를 참조하여 전술한 바에 상응하므로 여기에서는 상세한 설명을 생략한다.
컨텐츠 데이터베이스(170)는 스트리밍 컨텐츠를 저장하는 수단이다. 컨텐츠 데이터베이스(170)는 인코딩부(160)에 의하여 인코딩이 이루어지기 전의 원본 스트리밍 컨텐츠를 저장할 수 있다.
컨텐츠 데이터베이스(170)는 스트리밍 제어부(140)의 제어 하에 소정의 스트리밍 컨텐츠에 대한 인코딩부(160)의 접근(Access)을 허용할 수 있다.
도 4는 개시된 기술의 일 실시예에 따른 스트리밍 클라이언트의 일 실시예를 도시하는 구성도이다. 이하에서는 도 4를 참조하여 스트리밍 클라이언트의 일 실시예에 대하여 더 상세히 설명한다.
스트리밍 클라이언트(200)는 통신부(210), 스트리밍 데이터 저장부(230) 및 스트리밍 제어부(250)를 포함할 수 있다. 일 실시예에서, 스트리밍 클라이언트(200)는 오류 검출부(220)를 더 포함할 수 있다. 일 실시예에서, 스트리밍 클라이언트(200)는 디코딩부(240)를 더 포함할 수 있다.
통신부(210)는 스트리밍 서버(100)와의 통신 링크를 생성하거나 또는 생성된 통신 링크를 유지할 수 있다. 통신 링크는, 전술한 바와 같이, 유선 또는 무선의 적어도 하나의 통신망을 경유할 수 있다.
통신부(210)는 스트리밍 제어부(250)의 제어에 따라 통신 링크를 통하여 연결된 스트리밍 서버(100)로부터 제공되는 스트리밍 데이터를 수신할 수 있다.
오류 검출부(220)는 테스트 데이터에 포함된 오류 검출 코드를 이용하여 수신된 데이터에 오류가 존재하는 지 확인함으로써, 통신 링크의 유효성을 확인할 수 있도록 할 수 있다. 오류 검출부(220)는 이를 위하여 소정의 오류 검출 알고리즘을 구비할 수 있다. 오류 검출부(220)는 오류 검출 코드를 이용하여 오류 검출 알고리즘을 확인한 결과, 오류가 발생하였다면 이에 대한 정보를 스트리밍 서버(100) 또는 통신 링크 측정부(120)에 제공할 수 있다.
스트리밍 데이터 저장부(230)는 스트리밍 제어부(250)의 제어에 따라 스트리밍 서버(100)로부터 제공된 스트리밍 데이터를 저장할 수 있다.
디코딩부(240)는 스트리밍 제어부(250)의 제어에 따라 스트리밍 데이터를 디코딩하여 스트리밍 콘텐츠를 생성(복원)할 수 있다. 이를 위하여, 디코딩부(240)는 스트리밍 데이터 저장부(230)의 적어도 일부에 접근할 수 있는 소정의 권한을 가질 수 있다.
스트리밍 제어부(250)는 스트리밍 클라이언트(200)의 다른 구성요소들을 제어하여 스트리밍 서버(100)로부터 스트리밍 서비스를 제공받도록 제어할 수 있다.
일 실시예에서, 스트리밍 제어부(250)는 스트리밍 서버(100)로부터 스트리밍 데이터를 수신받도록 제어하여 스트리밍 데이터 저장부(230)에 저장하도록 할 수 있다.
일 실시예에서, 스트리밍 제어부(250)는 스트리밍 서버(100)로부터 스트리밍 데이터의 수신 과정에서 소정의 버퍼링이 발생하는 경우, 이에 대한 통지를 스트리밍 서버(100)에 제공할 수 있다.
일 실시예에서, 스트리밍 제어부(250)는 제공받는 스트리밍 데이터의 품질과 연관하여 버퍼링의 발생 여부를 판단할 수 있다. 예를 들어, 스트리밍 제어부(250)는 고 품질의 스트리밍 데이터의 경우는 보다 긴 대기 시간을, 낮은 품질의 스트리밍 데이터의 경우에는 보다 짧은 대기 시간을 부여하고, 부여된 대기 시간이 모두 소진되도록 그 다음(이후의) 스트리밍 데이터를 수신하지 못한 경우 이에 대한 통지를 스트리밍 서버(100)에 제공할 수 있다.
이하에서는, 도 5 내지 도 8을 참조하여 스트리밍 서비스 제공 방법의 다양한 실시예들에 대하여 설명한다. 이하에서 설명 할 실시예들은 전술한 스트리밍 서버(100)에서 수행되므로, 서로 상응하는 내용에 대해서는 중복하여 설명하지 않으나, 당업자는 전술한 기재로부터 후술할 본 스트리밍 서비스 제공 방법의 다양한 일 실시예들을 보다 명확하게 이해할 수 있을 것이다.
도 5는 개시된 기술에 따른 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다. 도 5에 개시된 스트리밍 서비스 제공 방법은 하나의 스트리밍 컨텐츠에 대하여 상이한 등급의 품질로 인코딩된 복수의 스트리밍 데이터들을 이용하여 통신 링크에서 제공될 수 있는 최고 품질의 스트리밍 데이터를 서비스 할 수 있는 실시예에 관한 것이다.
도 5를 참조하여 더 상세히 설명하면, 스트리밍 서버(100)는 스트리밍 클라이언트(100)에 대하여 적어도 하나의 통신망을 경유하는 통신 링크를 생성할 수 있다(단계 S510).
스트리밍 서버(100)는 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 통신 링크의 대역폭을 측정할 수 있다(단계 S520).
스트리밍 서버(100)는 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 스트리밍 클라이언트(100)에 제공할 수 있다.
단계 S520에 대한 일 실시예예서, 스트리밍 서버(100)는 스트리밍 클라이언트에 통신 링크를 이용하여 소정 크기의 테스트 데이터를 전송한 후, 소정 크기를 테스트 데이터의 전송이 완료되는데 소요된 시간으로 제산하여 단위 시간 당 전송된 데이터의 크기를 산출하고 이를 이용함으로써, 통신 링크의 대역폭을 측정할 수 있다.
단계 S520에 대한 일 실시예예서, 스트리밍 서버(100)는 오류 검출 코드를 포함하여 테스트 데이터를 구성하고, 전송된 테스트 데이터에 대하여 오류의 발생의 발생 여부를 판단할 수 있다. 만일 오류가 발생하였으면, 스트리밍 서버(100)는 테스트 데이터의 전송을 소정 횟수 반복하여 통신 링크 자체의 유효성을 확인할 수 있다.
여기에서, 통신 링크의 유효성을 확인한 결과 만일 유효하지 않으면, 스트리밍 서버(100)는 유효하지 않은 통신 링크와 적어도 하나의 통신망이 상이하도록 새로운 통신 링크를 재 생성할 수 있다.
일 실시예에서, 스트리밍 서비스 제공 방법은 인코딩 품질 및 필요 대역폭에 대한 정보를 포함하는 테이블을 이용할 수 있다. 더 상세히 설명하면, 스트리밍 서버(100)는 스트리밍 컨텐츠를 제공받으면 해당 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩된 복수의 스트리밍 데이터들을 생성하여 저장할 수 있다. 스트리밍 서버(100)는 생성된 복수의 스트리밍 데이터들에 대한 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보를 포함하는 테이블을 생성할 수 있다.
여기에서, 스트리밍 서버(100)는 생성된 테이블을 이용하여 통신 경로의 대역폭을 만족하며 가장 높은 품질로 인코딩 된 스트리밍 데이터를 선택할 수 있다. 더 상세히 설명하면, 스트리밍 서버(100)는 테이블에서 통신 링크의 대역폭보다 작은 필요 대역폭 정보를 만족하며 가장 높은 인코딩 품질을 가지는 스트리밍 데이터를 제1 스트리밍 데이터로서 선택할 수 있다.
도 6은 도 5에 도시된 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다. 도 6에 개시된 일 실시예에서 스트리밍 서비스 제공 방법은 통신 링크의 대역폭의 변화에 따라 제공하는 스트리밍 데이터의 품질을 자동으로 변경할 수 있는 실시예에 관한 것이다.
도 6에 개시된 스트리밍 서비스 제공 방법의 일 실시예는 도 5의 실시예와 적어도 일부 구성(단계)가 동일 또는 상응하는 바, 이러한 동일 또는 상응하는 내용에 대해서는 상세한 설명을 생략한다.
도 6을 참조하면, 스트리밍 서버(100)는 제1 스트리밍 데이터의 제공 중에 스트리밍 클라이언트(200)로부터 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면(단계 S540, 예), 전송 중인 제1 스트리밍 데이터보다 필요 대역폭이 한 등급 낮은 제2 스트리밍 데이터를 선택하여 스트리밍 클라이언트(200)에 제공할 수 있다(단계 S550).
일 실시예에서, 스트리밍 서비스 제공 방법은 통신 링크의 대역폭이 다시 커지면 이를 반영하여 제공 중인 스트리밍 데이터의 품질을 변경할 수 있다. 더 상세히 설명하면, 스트리밍 서버(100)는 단계 S550 중에 통신 링크의 대역폭이 증가하면, 제2 스트리밍 데이터보다 필요 대역폭 정보가 한 등급 높은 제3 스트리밍 데이터를 스트리밍 클라이언트에 제공할 수 있다.
도 7은 개시된 기술에 따른 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다. 도 7에 개시된 스트리밍 서비스 제공 방법은 통신 경로의 대역폭에 적용될 수 있는 최고의 품질로 스트리밍 컨텐츠를 실시간으로 인코딩하여 스트리밍 서비스를 제공할 수 있는 실시예에 관한 것이다.
도 7를 참조하여 더 상세히 설명하면, 스트리밍 서버(100)는 스트리밍 클라이언트(100)에 대하여 적어도 하나의 통신망을 경유하는 통신 링크를 생성할 수 있다(단계 S710).
스트리밍 서버(100)는 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 통신 링크의 대역폭을 측정할 수 있다(단계 S720).
스트리밍 서버(100)는 스트리밍 컨텐츠를 측정된 대역폭으로 전송 가능하며 가장 높은 제1 품질로 실시간 인코딩하고(단계 S730), 생성된 스트리밍 데이터를 스트리밍 클라이언트에 제공할 수 있다(단계 S740).
단계 S720에 대한 일 실시예예서, 스트리밍 서버(100)는 스트리밍 클라이언트에 통신 링크를 이용하여 소정 크기의 테스트 데이터를 전송하고, 소정 크기를 테스트 데이터의 전송이 완료되는데 소요된 시간으로 제산하여 단위 시간 당 전송된 데이터의 크기를 산출할 수 있다.
도 8은 도 7에 도시된 스트리밍 서비스 제공 방법의 일 실시예를 설명하기 위한 순서도이다. 도 8에 개시된 일 실시예에서 스트리밍 서비스 제공 방법은 통신 링크의 대역폭의 변화에 따라 제공하는 스트리밍 데이터의 품질을 자동으로 변경할 수 있는 실시예에 관한 것이다.
도 8에 개시된 스트리밍 서비스 제공 방법의 일 실시예는 도 7의 실시예와 적어도 일부 구성(단계)가 동일 또는 상응하는 바, 이러한 동일 또는 상응하는 내용에 대해서는 상세한 설명을 생략한다.
도 8을 참조하면, 스트리밍 서버(100)는 단계 S730 내지 S740 중에 스트리밍 클라이언트(100)로부터 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면(단계 S750, 예), 스트리밍 컨텐츠를 제1 품질보다 낮은 제2 품질로 실시간 인코딩하여 생성된 스트리밍 데이터를 스트리밍 클라이언트에 제공할 수 있다(단계 S760).
일 실시예예서, 스트리밍 서비스 제공 방법은 통신 링크의 대역폭이 다시 커지면 이를 반영하여 제공 중인 스트리밍 데이터의 품질을 변경할 수 있다. 더 상세히 설명하면, 스트리밍 서버(100)는 단계 S750 내지 S760 중에 통신 링크의 대역폭이 증가하면, 스트리밍 컨텐츠를 제2 품질보다 높은 제3 품질로 실시간 인코딩하고, 생성된 스트리밍 데이터를 스트리밍 클라이언트에 제공할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 출원의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 스트리밍 서버
110 : 통신부 120 : 통신 링크 측정부
130 : 스트리밍 데이터베이스 140 : 스트리밍 제어부
150 : 스트리밍 데이터 생성부 160 : 인코딩부
170 : 컨텐츠 데이터베이스
200: 스트리밍 클라이언트
210 : 통신부 220 : 오류 검출부
230 : 스트리밍 데이터 저장부 240 : 디코딩부

Claims (19)

  1. 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 수행되는 스트리밍 서비스 제공 방법에 있어서,
    (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 단계;
    (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 단계; 및
    (c) 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서, 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 단계;
    를 포함하는 스트리밍 서비스 제공 방법.
  2. 제1항에 있어서, 상기 (b) 단계는
    상기 스트리밍 클라이언트에 상기 통신 링크를 이용하여 소정 크기의 테스트 데이터를 전송하는 단계; 및
    상기 테스트 데이터의 소정 크기를 상기 테스트 데이터의 전송이 완료되는데 소요된 시간으로 제산하여 단위 시간 당 전송된 데이터의 크기를 산출하여 상기 통신 링크의 대역폭을 측정하는 단계;
    를 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  3. 제1항에 있어서, 상기 (b) 단계는
    오류 검출 코드를 포함하여 상기 테스트 데이터를 구성하는 단계;
    상기 전송된 테스트 데이터에 대하여 오류의 발생 여부를 판단하고, 오류가 발생하였으면 상기 테스트 데이터의 전송을 소정 횟수 반복하여 상기 통신 링크의 유효성을 확인하는 단계; 및
    상기 통신 링크의 유효성을 확인한 결과 유효한 경우, 상기 테스트 데이터를 이용하여 상기 통신 링크의 대역폭을 측정하는 단계;
    를 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  4. 제3항에 있어서, 상기 통신 링크의 유효성을 확인하는 단계는
    상기 통신 링크의 유효성을 확인한 결과 유효하지 않으면, 상기 유효하지 않은 통신 링크와 적어도 하나의 통신망이 상이하도록 새로운 통신 링크를 재 생성하여 상기 재 생성된 통신 링크의 유효성을 확인하는 단계;
    를 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.

  5. 제1항에 있어서, 상기 (b) 단계 이후,
    스트리밍 컨텐츠를 제공받으면, 해당 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩된 복수의 스트리밍 데이터들을 생성하여 저장하는 단계; 및
    생성된 복수의 스트리밍 데이터들에 대한 인코딩 품질 및 전송에 요구되는 필요 대역폭 정보를 포함하는 테이블을 생성하는 단계;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  6. 제5항에 있어서, 상기 (c) 단계는
    상기 테이블에서 상기 통신 링크의 대역폭보다 작은 필요 대역폭 정보를 만족하며 가장 높은 인코딩 품질을 가지는 스트리밍 데이터를 상기 제1 스트리밍 데이터로서 선택하는 단계;
    를 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  7. 제1항에 있어서, 상기 스트리밍 서비스 제공 방법은
    (d) 상기 제1 스트리밍 데이터의 제공 중에 상기 스트리밍 클라이언트로부터 상기 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면, 전송 중인 제1 스트리밍 데이터보다 필요 대역폭이 한 등급 낮은 제2 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  8. 제7항에 있어서, 상기 스트리밍 서비스 제공 방법은
    (e) 상기 (d) 단계 중에 상기 통신 링크의 대역폭이 증가하면, 상기 제2 스트리밍 데이터보다 필요 대역폭 정보가 한 등급 높은 제3 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  9. 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 수행되는 스트리밍 서비스 제공 방법에 있어서,
    (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 단계;
    (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 단계; 및
    (c) 스트리밍 컨텐츠를 상기 측정된 대역폭으로 전송 가능하며 가장 높은 제1 품질로 실시간 인코딩하여 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계;
    를 포함하는 스트리밍 서비스 제공 방법.
  10. 제9항에 있어서, 상기 (b) 단계는
    상기 스트리밍 클라이언트에 상기 통신 링크를 이용하여 소정 크기의 테스트 데이터를 전송하는 단계; 및
    상기 테스트 데이터의 소정 크기를 상기 테스트 데이터의 전송이 완료되는데 소요된 시간으로 제산하여 단위 시간 당 전송된 데이터의 크기를 산출하여 상기 통신 링크의 대역폭을 측정하는 단계;
    를 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  11. 제9항에 있어서, 상기 스트리밍 서비스 제공 방법은
    (d) 상기 (c) 단계 중에 상기 스트리밍 클라이언트로부터 상기 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면, 상기 스트리밍 컨텐츠를 상기 제1 품질보다 낮은 제2 품질로 실시간 인코딩하고, 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  12. 제11항에 있어서, 상기 스트리밍 서비스 제공 방법은
    (e) 상기 (d) 단계 중에 상기 통신 링크의 대역폭이 증가하면, 상기 스트리밍 컨텐츠를 상기 제2 품질보다 높은 제3 품질로 실시간 인코딩하고, 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 단계;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법.
  13. 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에 있어서,
    스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩된 복수의 스트리밍 데이터들을 저장하는 스트리밍 데이터베이스;
    통신 링크를 통하여 연결된 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여, 상기 통신 링크의 대역폭을 측정하는 통신 링크 측정부; 및
    상기 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여, 상기 스트리밍 클라이언트에 제공하는 스트리밍 제어부;
    를 포함하는 스트리밍 서버.
  14. 제13항에 있어서, 상기 스트리밍 서버는
    스트리밍 컨텐츠를 제공받으면, 해당 스트리밍 컨텐츠에 대하여 차등적 품질로 인코딩을 수행하여 복수의 스트리밍 데이터들을 생성하는 스트리밍 데이터 생성부;
    를 더 포함하는 것을 특징으로 하는 스트리밍 서버.
  15. 제13항에 있어서, 상기 통신 링크 측정부는
    상기 스트리밍 클라이언트에 상기 통신 링크를 이용하여 소정 크기의 테스트 데이터를 전송하고, 상기 소정 크기를 상기 테스트 데이터의 전송이 완료되는데 소요된 시간으로 제산하여 상기 통신 링크의 대역폭을 산출하는 것
    을 특징으로 하는 스트리밍 서버.
  16. 제13항에 있어서, 상기 스트리밍 제어부는
    상기 제1 스트리밍 데이터의 제공 중에 상기 스트리밍 클라이언트로부터 상기 통신 링크의 대역폭의 감소에 의한 버퍼링 응답을 수신하면, 전송 중인 제1 스트리밍 데이터보다 필요 대역폭이 한 등급 낮은 제2 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 것
    을 특징으로 하는 스트리밍 서버.
  17. 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에 있어서,
    통신 링크를 통하여 연결된 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여, 상기 통신 링크의 대역폭을 측정하는 통신 링크 측정부;
    스트리밍 컨텐츠를 소정의 품질로 실시간 인코딩하여 스트리밍 데이터를 생성하는 인코딩부; 및
    상기 측정된 대역폭으로 전송 가능한 가장 높은 품질로 상기 스트리밍 컨텐츠를 인코딩하도록 상기 인코딩부를 제어하고, 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트로 제공하는 스트리밍 제어부;
    를 포함하는 스트리밍 서버.
  18. 스트리밍 서비스 제공 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    상기 프로그램은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 구동될 수 있는 프로그램으로서,
    (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 기능;
    (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 기능; 및
    (c) 차등적 품질로 인코딩되어 저장된 복수의 스트리밍 데이터들 중에서 상기 측정된 통신 링크의 대역폭으로 전송 가능하며 가장 높은 품질로 인코딩된 제1 스트리밍 데이터를 선택하여 상기 스트리밍 클라이언트에 제공하는 기능;
    을 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법을 기록한 기록 매체.
  19. 스트리밍 서비스 제공 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    상기 프로그램은 네트워크를 통하여 스트리밍 클라이언트와 연결 가능하고, 연결된 스트리밍 클라이언트에 스트리밍 데이터를 제공할 수 있는 스트리밍 서버에서 구동될 수 있는 프로그램으로서,
    (a) 상기 스트리밍 클라이언트에 대하여, 적어도 하나의 통신망을 경유하는 통신 링크를 생성하는 기능;
    (b) 상기 스트리밍 클라이언트에 소정 크기의 테스트 데이터를 전송하여 상기 통신 링크의 대역폭을 측정하는 기능; 및
    (c) 스트리밍 컨텐츠를 상기 측정된 대역폭으로 전송 가능하며 가장 높은 제1 품질로 실시간 인코딩하여 생성된 스트리밍 데이터를 상기 스트리밍 클라이언트에 제공하는 기능;
    을 포함하는 것을 특징으로 하는 스트리밍 서비스 제공 방법을 기록한 기록 매체.
KR1020120013930A 2012-02-10 2012-02-10 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버 KR101313308B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120013930A KR101313308B1 (ko) 2012-02-10 2012-02-10 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120013930A KR101313308B1 (ko) 2012-02-10 2012-02-10 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버

Publications (2)

Publication Number Publication Date
KR20130092287A true KR20130092287A (ko) 2013-08-20
KR101313308B1 KR101313308B1 (ko) 2013-09-30

Family

ID=49217162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120013930A KR101313308B1 (ko) 2012-02-10 2012-02-10 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버

Country Status (1)

Country Link
KR (1) KR101313308B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101970894B1 (ko) * 2017-10-30 2019-04-19 인하대학교 산학협력단 저전력 스트리밍을 위한 방법 및 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100408525B1 (ko) * 2001-10-31 2003-12-06 삼성전자주식회사 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법
KR100567328B1 (ko) 2003-12-26 2006-04-04 한국전자통신연구원 레이어 멀티캐스팅을 이용한 hdtv 미디어 게이트웨이시스템 및 운용방법
KR100902114B1 (ko) 2007-06-27 2009-06-09 한국전자통신연구원 멀티미디어 스트리밍을 위한 종단간 가용 대역폭 측정 장치및 방법
KR20090053175A (ko) * 2007-11-22 2009-05-27 주식회사 케이티 가변 전송속도를 이용한 적응적 원격협업 서비스 시스템 및그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101970894B1 (ko) * 2017-10-30 2019-04-19 인하대학교 산학협력단 저전력 스트리밍을 위한 방법 및 시스템

Also Published As

Publication number Publication date
KR101313308B1 (ko) 2013-09-30

Similar Documents

Publication Publication Date Title
CN109194647B (zh) 数据传输方法、装置、电子设备及存储介质
US10282246B2 (en) Application error detection method for cloud streaming service, and apparatus and system therefor
US8670614B2 (en) Method and system for providing tile map service using image fusion
CN105340245B (zh) 用于适配被配置为接收多媒体内容的客户机终端的下载行为的方法以及对应的终端
KR101491639B1 (ko) 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법
KR101959970B1 (ko) 컨텐츠 전송 서비스 방법, 이를 위한 캐시 장치
EP3582116A1 (en) Webpage loading method, webpage loading system, and server
CN108234319B (zh) 一种数据的传输方法和装置
US11606481B2 (en) Reducing judder using motion vectors
US20120143943A1 (en) Cloud service system and method, and recording medium
US8000720B2 (en) Reducing bandwidth when transmitting content to a cellular device
KR101419437B1 (ko) 데이터 가속 알고리즘을 선택하여 콘텐츠를 제공하는 방법 및 장치
CN104333728A (zh) 音视频传输调控方法、装置和系统
CN103763307B (zh) 一种带宽优化方法及系统
KR101313308B1 (ko) 자동 스트리밍 품질 조절이 가능한 스트리밍 서비스 제공 방법 및 그 서버
CN103580951B (zh) 多个信息系统的输出比较方法、测试迁移辅助方法及系统
CN114257578B (zh) 信息验证方法及装置
JP3945390B2 (ja) ネットワーク機器制御システム、サーバ、及び送信制御方法
US20150066604A1 (en) Fare payment method and apparatus thereof
CN104518985A (zh) 一种分布式网络环境下服务节点的选择方法及终端
KR101098826B1 (ko) 비디오 스트리밍 스케줄링 방법 및 장치
US10652159B2 (en) Mobile packet data rate control based on radio load and other measures
KR101997986B1 (ko) 상호 작용하는 IoT 어플리케이션을 위한 클라우드-포그-클라이언트 삼각 컴퓨팅 방법 및 장치
CN105227391A (zh) 应用程序的流量统计功能测试方法和系统
US20080256178A1 (en) Method and Apparatus for Providing Software by Functional Units in a Software Streaming System

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
LAPS Lapse due to unpaid annual fee