KR102307447B1 - 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말 - Google Patents

네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말 Download PDF

Info

Publication number
KR102307447B1
KR102307447B1 KR1020170056110A KR20170056110A KR102307447B1 KR 102307447 B1 KR102307447 B1 KR 102307447B1 KR 1020170056110 A KR1020170056110 A KR 1020170056110A KR 20170056110 A KR20170056110 A KR 20170056110A KR 102307447 B1 KR102307447 B1 KR 102307447B1
Authority
KR
South Korea
Prior art keywords
multimedia data
segment
client terminal
terminal
data
Prior art date
Application number
KR1020170056110A
Other languages
English (en)
Other versions
KR20180122099A (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 KR1020170056110A priority Critical patent/KR102307447B1/ko
Priority to US15/962,605 priority patent/US20180323899A1/en
Priority to EP18793757.8A priority patent/EP3603015A4/en
Priority to PCT/KR2018/005033 priority patent/WO2018203643A1/en
Priority to CN201880029124.9A priority patent/CN110583002A/zh
Publication of KR20180122099A publication Critical patent/KR20180122099A/ko
Application granted granted Critical
Publication of KR102307447B1 publication Critical patent/KR102307447B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • 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/4084
    • 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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/26
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 개시는 4G 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G 통신 시스템을 IoT 기술과 융합하는 통신 기법 및 그 시스템에 관한 것이다. 본 개시는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스 (예를 들어, 스마트 홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 헬스 케어, 디지털 교육, 소매업, 보안 및 안전 관련 서비스 등)에 적용될 수 있다.
본 개시는 스트리밍 서버가 클라이언트 단말에게 HTTP 적응적 스트리밍을 제공하는 방법에 있어서, 제1 멀티미디어 데이터를 상기 클라이언트 단말에게 전송하는 단계, 상기 제1 멀티미디어 데이터가 상기 클라이언트 단말에게 전송되는 때의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경을 모니터링하는 단계, 및 상기 모니터링된 네트워크 환경에 기반하여 적어도 하나의 제2 멀티미디어 데이터를 푸시(push)하는 단계를 포함하는 방법을 제공한다.

Description

네트워크 환경 모니터링에 기반하는 HTTP 적응적 스트리밍 서버, 방법, 및 클라이언트 단말{SERVER, METHOD, AND CLIENT TERMINAL FOR HTTP ADAPTIVE STREAMING BASED ON NETWORK ENVIRONMENT MORNITORING}
본 발명은 HTTP 적응적 스트리밍 서버, 방법, 및 클라이언트 단말에 관한 것이다.
4G (4th-Generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G (5th-Generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파 (mmWave) 대역 (예를 들어, 60기가 (60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로 손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍 (beamforming), 거대 배열 다중 입출력 (massive multi-input multi-output: massive MIMO), 전차원 다중입출력 (Full Dimensional MIMO: FD-MIMO), 어레이 안테나 (array antenna), 아날로그 빔형성 (analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다.
또한, 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조 (Advanced Coding Modulation: ACM) 방식인 FQAM (Hybrid FSK and QAM Modulation) 및 SWSC (Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC (Filter Bank Multi Carrier), NOMA (non-orthogonal multiple access), 및 SCMA (sparse code multiple access) 등이 개발되고 있다.
한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고받아 처리하는 사물인터넷 (Internet of Things, IoT) 망으로 진화하고 있다. IoE (Internet of Everything) 기술은 클라우드 서버 등과의 연결을 통한 빅 데이터 (Big data) 처리 기술 등이 IoT 기술에 결합된 하나의 예가 될 수 있다.
IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술, 및 보안 기술 등과 같은 기술 요소들이 요구되어, 최근에는 사물 간의 연결을 위한 센서 네트워크 (sensor network), 사물 통신 (Machine to Machine, M2M), MTC (Machine Type Communication) 등의 기술이 연구되고 있다.
IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT (Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT 기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
이에, 5G 통신 시스템을 IoT 망에 적용하기 위한 다양한 시도들이 이루어지고 있다. 예를 들어, 센서 네트워크, 사물 통신, MTC 등의 기술이 5G 통신 기술이 빔 포밍, MIMO, 및 어레이 안테나 등의 기법에 의해 구현되고 있는 것이다. 앞서 설명한 빅 데이터 처리 기술로써 클라우드 무선 액세스 네트워크가 적용되는 것도 5G 기술과 IoT 기술 융합의 일 예라고 할 수 있을 것이다.
적응적 스트리밍(adaptive streaming) 기술은 네트워크 환경과 클라이언트 단말의 환경을 고려하여 적합한 비디오 화질을 적응적으로 선택하는 기술로써, 시변하는 무선 네트워크 환경에서 사용자의 체감 품질을 만족시키기 위해 요구되는 기술이다. 이러한 적응적 스트리밍 기술은 RTP (real-time transport protocol) 또는 RTSP(real-time streaming protocol)와 같은 다양한 네트워크 프로토콜 기반에서 적용되는데, 최근에는 HTTP(hypertext transfer protocol) 를 이용한 HTTP 적응적 스트리밍 (HTTP adaptive streaming) 기술이 각광을 받고 있다.
HTTP 적응적 스트리밍 기술은 기존의 HTTP 기술을 이용함으로써 스트리밍 서비스의 네트워크 호환성 문제를 향상시킬 수 있고, 스트리밍 서비스를 위해 기존의 HTTP 서버를 재사용할 수 있다는 장점이 존재한다. 또한, HTTP 적응적 스트리밍 기술에서는 스트리밍 제어의 핵심 부분이 클라이언트에 존재하기 때문에 서비스를 제공 받는 클라이언트에 지향적인 스트리밍 서비스를 제공할 수도 있다.
도 1은 HTTP 적응적 스트리밍 기술에서 클라이언트와 서버간 통신을 나타내는 예시도이다.
HTTP 적응적 스트리밍 기술은, 도 1에 도시된 바와 같이, 클라이언트 단말이 스트리밍 서버에 하나의 세그먼트 데이터를 요청(예를 들어, 도 1의 request_1)할 때마다 하나의 세그먼트 데이터를 전송(예를 들어, 도 1의 response_1) 받는 기술로서, 세그먼트 데이터의 수만큼 요청 메시지를 발송해야 하기 때문에, 시간이 지남에 따라 요청 메시지가 누적되어 클라이언트 단말, 스트리밍 서버, 및 네트워크에 과부하가 발생할 수 있다.
본 개시는 네트워크 환경 모니터링에 기반하는 HTTP 적응적 스트리밍 기법을 이용하는 스트리밍 서버, 클라이언트 단말, 스트리밍 시스템 및 방법을 제안한다.
또한, 본 개시는 HTTP 적응적 스트리밍을 실행함에 있어서, 클라이언트 단말, 스트리밍 서버, 및 스트리밍 시스템에 부하를 덜어주기 위한 방안을 제안한다.
또한, 본 개시는 시그널링으로 인한 시스템 부하 없이도, 네트워크 환경 변화에 적응적으로 변화하는 스트리밍 데이터를 제공하는 방안을 제안한다.
본 개시는, 스트리밍 서버가 클라이언트 단말에게 HTTP 적응적 스트리밍을 제공하는 방법에 있어서, 제1 멀티미디어 데이터를 상기 클라이언트 단말에게 전송하는 단계, 상기 제1 멀티미디어 데이터가 상기 클라이언트 단말에게 전송되는 때의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경을 모니터링하는 단계, 및 상기 모니터링된 네트워크 환경에 기반하여 적어도 하나의 제2 멀티미디어 데이터를 푸시(push)하는 단계를 포함하는 방법을 제안한다.
상기 푸시(push)는, 상기 스트리밍 서버가 상기 클라이언트 단말에 상기 제1 멀티미디어 데이터를 전송한 후에, 상기 클라이언트 단말의 요청 유무에 상관없이 상기 클라이언트 단말에게 상기 제2 멀티미디어 데이터를 더 전송하는 것임을 특징으로 할 수 있다.
상기 푸시(push)하는 단계는, 소정의 시간마다 상기 클라이언트 단말에 상기 제2 멀티미디어 데이터를 더 전송하는 것임을 특징으로 할 수 있다.
상기 소정의 시간은, 상기 제1 멀티미디어 데이터 또는 제2 멀티미디어 데이터의 개수 또는 재생 시간을 기반하는 것을 특징으로 할 수 있다.
상기 네트워크 환경은, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 전송률임을 특징으로 하고, 상기 모니터링하는 단계는, 상기 제1 멀티미디어 데이터의 전송 시작 시간과 상기 제1 멀티미디어 데이터의 전송 완료 시간 사이의 차이를 기반으로 상기 전송률을 산출하는 단계임을 특징으로 할 수 있다.
상기 차이는, 상기 제1 멀티미디어 데이터 전송 시작 시간과 상기 전송된 제1 멀티미디어 데이터에 대한 ACK(acknowledgement) 신호가 수신된 시점의 차이 값으로 결정됨을 특징으로 할 수 있다.
상기 제1 멀티미디어 데이터는, 세그먼트 단위로 나누어진 비디오 데이터 또는 오디오 데이터를 포함할 수 있다.
상기 푸시하는 단계는, 상기 제1 멀티미디어 데이터와 해상도가 상이한 제2 멀티미디어 데이터를 더 전송하는 단계임을 특징으로 할 수 있다.
상기 푸시하는 단계는, 상기 산출된 전송률이 이전 전송률보다 낮은 경우, 상기 제1 멀티미디어 데이터의 해상도보다 낮은 해상도를 갖는 상기 제2 멀티미디어 데이터를 더 전송하는 단계임을 특징으로 할 수 있다.
상기 푸시하는 단계는, 상기 산출된 전송률이 상기 제1 멀티미디어 데이터의 해상도에 대응되는 전송률보다 낮은 경우, 상기 제1 멀티미디어 데이터의 해상도보다 낮은 해상도를 갖는 상기 제2 멀티미디어 데이터를 더 전송하는 단계임을 특징으로 할 수 있다.
본 개시는, 클라이언트 단말에게 HTTP 적응적 스트리밍을 제공하는 스트리밍 서버에 있어서, 제1 멀티미디어 데이터를 상기 클라이언트 단말에게 전송하는 서버 통신부, 및 상기 제1 멀티미디어 데이터가 상기 클라이언트 단말에게 전송되는 때의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경을 모니터링하고, 상기 모니터링된 네트워크 환경에 기반하여 적어도 하나의 제2 멀티미디어 데이터를 푸시(push)하는 서버 제어부를 포함하는 스트리밍 서버를 제안한다.
상기 푸시(push)는, 상기 스트리밍 서버가 상기 클라이언트 단말에 상기 제1 멀티미디어 데이터를 전송한 후에, 상기 클라이언트 단말의 요청 유무에 상관없이 상기 클라이언트 단말에게 상기 제2 멀티미디어 데이터를 더 전송하는 것임을 특징으로 할 수 있다.
상기 서버 제어부는, 소정의 시간마다 상기 클라이언트 단말에 상기 제2 멀티미디어 데이터를 더 전송하는 것임을 특징으로 할 수 있다.
상기 소정의 시간은, 상기 제1 멀티미디어 데이터 또는 제2 멀티미디어 데이터의 개수 또는 재생 시간을 기반하는 것을 특징으로 할 수 있다.
상기 네트워크 환경은, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 전송률임을 특징으로 할 수 있다.
상기 전송부는, 상기 제1 멀티미디어 데이터의 전송 시작 시간과 상기 제1 멀티미디어 데이터의 전송 완료 시간 사이의 차이를 기반으로 상기 전송률을 산출하는 것을 특징으로 할 수 있다.
상기 차이는, 상기 제1 멀티미디어 데이터 전송 시작 시간과 상기 전송된 제1 멀티미디어 데이터에 대한 ACK(acknowledgement) 신호가 수신된 시점의 차이 값으로 결정됨을 특징으로 할 수 있다.
상기 제1 멀티미디어 데이터는, 세그먼트 단위로 나누어진 비디오 데이터 또는 오디오 데이터를 포함할 수 있다.
상기 서버 제어부는, 상기 제1 멀티미디어 데이터와 해상도가 상이한 제2 멀티미디어 데이터를 푸시하는 것을 특징으로 할 수 있다.
상기 서버 제어부는, 상기 산출된 전송률이 이전 전송률보다 낮은 경우, 상기 제1 멀티미디어 데이터의 해상도보다 낮은 해상도를 갖는 상기 제2 멀티미디어 데이터를 푸시하는 것을 특징으로 할 수 있다.
상기 서버 제어부는, 상기 산출된 전송률이 상기 제1 멀티미디어 데이터의 해상도에 대응되는 전송률보다 낮은 경우, 상기 제1 멀티미디어 데이터의 해상도보다 낮은 해상도를 갖는 상기 제2 멀티미디어 데이터를 푸시하는 것을 특징으로 할 수 있다.
본 개시는, 스트리밍 서버로부터 HTTP 적응적 스트리밍을 제공받는 클라이언트 단말에 있어서, 상기 스트리밍 서버로부터 제1 멀티미디어 데이터를 전송 받는 단말 통신부, 및 상기 제1 멀티미디어 데이터가 상기 단말 통신부에게 전송되는 때의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경에 관한 파라미터 값을 산출하고, 상기 네트워크 환경에 관한 파라미터 값에 기반하여 푸시(push)받을 적어도 하나의 제2 멀티미디어 데이터를 상기 스트리밍 서버에 요청하는 단말 제어부를 포함하는 클라이언트 단말을 제안한다.
상기 네트워크 환경에 관한 파라미터 값은, 상기 제1 멀티 데이터가 상기 스트리밍 서버에서 발송된 시점과 상기 제1 멀티 데이터가 상기 단말 통신부에 시점의 차이를 기반으로 산출되는 것을 특징으로 할 수 있다.
본 개시는 서버가 네트워크 환경을 모니터링함으로써 클라이언트 단말의 부하 없이도 네트워크 환경에 따라 적응적으로 변화하는 스트리밍 데이터를 제공할 수 있다.
본 개시는 데이터 전송 시작 시간과 ACK 도달 시간의 차이를 기반으로 네트워크 환경을 모니터링하므로, 보다 정확한 클라이언트 단말 맞춤형 HTTP 스트리밍 서비스를 제공할 수 있다.
도 1은 HTTP 적응적 스트리밍 기술에서 클라이언트와 서버간 통신을 나타내는 예시도;
도 2는 본 개시에 따른 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 스트리밍 시스템의 일 실시예를 도시한 도면;
도 3은 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 일 실시예를 도시한 흐름도;
도 4는, 도 3의 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 일 실시예를 도시한 예시도;
도 5는 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 다른 실시예를 도시한 흐름도;
도 6은, 도 5의 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법을 도시한 예시도;
도 7은 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 또 다른 실시예를 도시한 흐름도;
도 8은 본 개시에 따른 스트리밍 서버의 일 실시예를 도시한 블록도;
도 9는 본 개시에 따른 클라이언트 단말의 일 실시예를 도시한 블록도;
도 10은 본 개시에 따른 스트리밍 시스템의 일 실시예를 도시한 블록도이다.
이하, 첨부된 도면들을 참조하여 본 개시의 실시예를 상세하게 설명한다. 하기에서 본 개시를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 개시의 자세한 설명에 앞서, 명세서 전체에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA(field-programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트 데이터들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
한편, 본 개시에서 전송률은 데이터 전송률, 비트레이트, transfer rate, bitrate 등으로도 표현될 수 있으며, 단위 시간당 전송되는 정보량, 데이터가 전송되는 속도, 또는 특정한 시간 단위(이를테면 초 단위)마다 처리되는 비트의 수(비트/초 또는 bps)를 의미할 수 있다.
본 개시에서는 스트리밍 서버와 클라이언트 단말 사이의 네트워크 환경을 모니터링한 결과에 기반하는 HTTP 적응적 스트리밍(HTTP adaptive streaming)을 제공하는 스트리밍 서버, 클라이언트 단말, 스트리밍 시스템, 및 방법을 제안한다.
도 2는 본 개시에 따른 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 스트리밍 시스템(200)의 일 실시예를 도시한 도면이다.
도 2를 참조하면, 스트리밍 시스템(200)은 스트리밍 서버(220)와 클라이언트 단말(210)을 포함한다. 상기 스트리밍 서버(220)는 클라이언트 단말(210)과 통신하여 비디오와 같은 미디어 데이터를 제공하는 네트워크 상의 일 주체이고, 상기 클라이언트 단말(210)은 스트리밍 서버(220)와 통신하여 비디오와 같은 미디어 데이터를 제공받는 일 주체로서, 단말, 이동 단말, UE(user equipment), 이동국(mobile station; MS), 이동장비(mobile equipment; ME), 디바이스(device), 터미널(terminal) 등으로 지칭될 수도 있다.
스트리밍 서버(220)는 상기 클라이언트 단말(210)에 제공될 수 있는 멀티미디어 데이터를 저장할 수 있다. 상기 멀티미디어 데이터는 비디오 데이터, 오디오 데이터 등을 포함할 수 있다. 또한, 상기 멀티미디어 데이터는 아래에서 서술할 세그먼트 데이터를 지칭할 수도 있다. 한편, 스트리밍 서버(220)는 스트리밍 서버(220)의 외부로부터 유무선 통신을 통하여 획득된 멀티미디어 데이터를 임시로 저장할 수 있다.
스트리밍 서버(220)는 상기 멀티미디어 데이터를 복수의 세그먼트 데이터(segment data)로 나누어 저장할 수 있다. 상기 세그먼트 데이터는 청크(chunk)로 호칭될 수 있다. 한편, 상기 스트리밍 서버(220)에 저장되는 복수의 세그먼트는 재생 시간(예; 1초, 10초, 1분 등), 재생 시점(예; 00:04:30, 01:42:15 등), 해상도(예; 480p, 720p, 1080p 또는 High, Med, Low 등), 음질(예; 129kbps, 192kbps, 320kbps 등), 코딩 방법(예; MPEG-TS, MPEG-4 ASP, H.264/MPEG-4 AVC 등) 등의 조건들이 상이할 수 있다. 또한, 상기 스트리밍 서버(220)는 각 세그먼트 데이터의 파일명, 세그먼트 일련번호, 재생 시점, 재생 시간, 해상도 등의 정보들을 각 세그먼트 데이터에 대응시켜 함께 저장할 수 있다.
클라이언트 단말(210)은 재생하려는 멀티미디어 데이터를 선택 받을 수 있는 UI(user interface) 등의 컨트롤 환경을 생성할 수 있다. 상기 클라이언트 단말(210)이 생성하는 UI는 스트리밍 서버(220)에 저장되어 있는 멀티미디어 데이터의 목록, 비디오 데이터의 해상도 선택창, 오디오 데이터의 음질 선택창 등을 제공할 수 있으며, 상기 UI는 상기 클라이언트 단말(210)의 화면을 통하여 상기 클라이언트 단말(210)의 사용자에게 제공될 수 있다.
한편, 클라이언트 단말(210)이 UI를 통하여 멀티미디어 데이터의 선택을 입력 받으면, 상기 클라이언트 단말(210)은 스트리밍 서버(220)에 상기 선택된 멀티미디어 데이터의 전송을 요청(request)할 수 있다. 상기 클라이언트 단말(210)의 요청에는 상기 클라이언트 단말(210)이 전송 받으려는 멀티미디어 데이터에 대한 정보가 포함되며, 상기 멀티미디어 데이터에 관한 정보는 멀티미디어 데이터의 명칭, 세그먼트 데이터, 비트레이트(bitrate) 등이 포함될 수 있다. 상기 스트리밍 서버(220)가 해당 영상을 유무선 통신을 통하여 전달하면, 상기 클라이언트 단말(210)은 전달받은 영상을 재생하는 기능을 수행할 수 있다. 또한, 상기 클라이언트 단말(210)에서 실행되는 UI는 재생되고 있는 멀티미디어 데이터의 재생 시점, 해상도, 음질 등을 제어하거나, 새로운 멀티미디어 데이터를 재생하기 위한 컨트롤 환경을 제공하는 기능을 포함할 수 있다.
클라이언트 단말(210)과 스트리밍 서버(220)는 유무선 통신을 통하여 상호간에 통신할 수 있다. 상기 유선 통신은 USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232), POTS(plain old telephone service) 등을 포함할 수 있다. 또한, 상기 무선 통신은 블루투스(bluetooth) 통신, BLE(Bluetooth Low Energy) 통신, 근거리 무선 통신(Near Field Communication unit), WLAN(와이파이) 통신, 지그비(Zigbee) 통신, 적외선(IrDA, infrared Data Association) 통신, WFD(Wi-Fi Direct) 통신, UWB(ultra-wideband) 통신, Ant+ 통신, WIFI 통신, 3G, 4G 및 5G 통신 기술 등을 포함할 수 있다.
스트리밍 서버(220)는 UI를 통하여 멀티미디어 데이터에 대한 실행 요청이 수신되면, 소정의 개수만큼의 세그먼트 데이터를 클라이언트 단말(210)에 송신할 수 있다. 상기 소정의 개수는 사전에 사용자, 또는 프로세서에 의해 임의, 또는 기준에 따라 결정된 개수이거나, 스트리밍 서버(220)와 클라이언트 단말(210) 사이의 네트워크 환경을 기반으로 결정된 개수일 수 있다.
한편, 스트리밍 서버(220)는, 상기 스트리밍 서버(220)와 클라이언트 단말(210) 사이의 네트워크 환경을 기반으로 전송할 세그먼트 데이터를 선택하고, 선택된 세그먼트 데이터를 전송할 수 있다. 또한, 이에 대해서는 이하 도면 3 내지 6을 참조하면서 구체적으로 설명한다.
도 3은 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 일 실시예를 도시한 흐름도이다.
도 3을 참조하면, 스트리밍 서버는, 클라이언트 단말이 멀티미디어 데이터를 요청하면, 소정의 개수만큼의 세그먼트 데이터(즉, n 개의 세그먼트 데이터)를 상기 클라이언트 단말에게 전송한다(310). 상기 소정의 개수 n은 클라이언트 단말의 사용자, 개발자, 또는 상기 스트리밍 서버의 제어부(또는 프로세서)에 의해 설정될 수 있다.
상기 소정의 개수(n개)만큼의 세그먼트 데이터가 모두 상기 클라이언트 단말에게 전송되면, 상기 스트리밍 서버는 상기 스트리밍 서버에서 상기 클라이언트 단말에 전송된 상기 n 개의 세그먼트 데이터의 총 크기(즉, 총 데이터 용량) 및 상기 스트리밍 서버가 상기 클라이언트 단말에게 상기 n 개의 세그먼트 데이터를 전송하는데 소요된 시간 등을 기반으로, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경에 관한 파라미터 값을 산출, 즉 모니터링한다(320).
예컨대, 상기 스트리밍 서버는 아래의 수학식 1을 이용하여 각 세그먼트 데이터의 평균 전송률(즉, 네트워크 환경에 관한 파라미터 값)을 산출할 수 있다.
Figure 112017042658355-pat00001
스트리밍 서버는 상기 수학식 1을 이용하여 산출된 평균 전송률에 기반하여 클라이언트 단말에게 푸시(push)할 세그먼트 데이터의 해상도를 선택하고, 상기 선택된 해상도를 갖는 적어도 하나의 세그먼트 데이터를 상기 클라이언트 단말에게 푸시한다(330). 상기 푸시(push)라 함은, 상기 클라이언트 단말이 상기 스트리밍 서버에 세그먼트 데이터의 전송을 요청하여 상기 스트리밍 서버가 상기 클라이언트 단말에 최초로 전송한 이후에, 상기 클라이언트 단말의 추가적인 요청이 없어도 상기 스트리밍 서버가 상기 클라이언트 단말에 데이터를 자동적, 주기적으로 전송하는 것을 의미할 수 있다.
일 예로, 상기 수학식 1을 이용하여 산출한 평균 전송률이 이전(또는 최초) 전송률보다 낮은 경우, 상기 스트리밍 서버는 기전송된 세그먼트 데이터의 해상도보다 낮은 해상도를 갖는 세그먼트 데이터를 상기 클라이언트 단말에 푸시할 수 있다. 기 전송된 세그먼트 데이터의 해상도보다 낮은 해상도를 갖는 세그먼트 데이터를 푸시하는 것은, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 전송률이 이전보다 낮아졌음에도 불구하고 동일한 해상도를 갖는 세그먼트 데이터를 계속 푸시하면, 상기 클라이언트 단말에서 비디오 데이터를 재생할 때 지연(delay 또는 buffering)되는 현상이 발생할 수 있기 때문이다.
다른 예로, 상기 수학식 1을 이용하여 산출한 평균 전송률이, 소정의 해상도를 갖는 비디오 데이터를 상기 클라이언트 단말에서 지연 없이 재생하기 위하여 요구되는 최소 평균 전송률보다 낮은 경우, 상기 스트리밍 서버는 상기 소정의 해상도보다 낮은 해상도를 갖는 비디오 데이터에 관한 세그먼트 데이터를 상기 클라이언트 단말에 전송할 수 있다.
한편, 상기 스트리밍 서버가 세그먼트 데이터를 클라이언트 단말에 전송 중인 경우에도, 상기 클라이언트 단말이 상기 스트리밍 서버에게 세그먼트 데이터의 전송을 중단을 요청한 경우 상기 스트리밍 서버는 현재 진행 단계(또는 전송 단계)에 상관 없이 상기 세그먼트 데이터 전송을 즉시 또는 시간차를 두고 중단할 수 있다.
전술한 스트리밍 방법을 통하여, 상기 스트리밍 서버는 실제 네트워크 환경에 적절한 또는 적합한 세그먼트 데이터를 전송함으로써, 지연(delay 또는 buffering) 현상이 없는 스트리밍 서비스를 사용자에게 제공할 수 있다.
도 4는, 도 3의 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 일 실시예를 도시한 예시도이다.
도 3 및 도 4를 참조하면, 스트리밍 서버가 클라이언트 단말로부터 n개의 세그먼트 데이터의 전송을 요청 받으면(도 4의 request 1 to n), 상기 스트리밍 서버는 상기 n개의 세그먼트 데이터를 상기 클라이언트 단말에게 전송한다. 상기 스트리밍 서버는 상기 n개의 세그먼트 데이터(도 4의 seg_1 내지 seg_n)를 모두 상기 클라이언트 단말로 전송하고, 상기 n개의 세그먼트 데이터들의 크기 및 상기 n개의 세그먼트 데이터를 전송하는데 소요된 시간을 기반으로 상기 n개의 세그먼트 데이터를 상기 클라이언트 단말에게 전송하는 동안의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경에 관한 파라미터 값을 산출할 수 있다. 한편, 상기 파라미터 값은 전술한 수학식 1을 이용하여 산출되는 평균 전송률일 수 있다.
일 예로, 상기 수학식 1을 이용하여 산출한 평균 전송률이 이전 전송률(seg_1 내지 seg_n을 전송할 때의 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 평균 전송률)보다 낮은 경우, 상기 스트리밍 서버는 기 전송된 세그먼트 데이터의 해상도보다 낮은 해상도를 갖는 세그먼트 데이터를 상기 클라이언트 단말에게 푸시할 수 있다.
다른 예로, 상기 스트리밍 서버가 상기 수학식 1을 이용하여 산출한 평균 전송률이, 기 전송된 세그먼트 데이터의 해상도에 대응되는 전송률(즉, 기 전송된 세그먼트에 대응되는 비디오 데이터가 상기 클라이언트 단말에서 지연되는 현상 없이 재생되기 위해 요구되는 최소 전송률)보다 낮은 경우, 상기 스트리밍 서버는 기 전송된 세그먼트 데이터의 해상도보다 낮은 해상도를 갖는 세그먼트 데이터를 상기 클라이언트 단말에게 푸시할 수 있다. 예컨대, 기 전송된 세그먼트 데이터가 해상도 1080p를 갖는 경우(해상도 1080p의 영상을 지연되는 현상 없이 재생하기 위해서는 전송률이 최소 3Mbps보다 높아야 하는 경우로 가정), 상기 수학식 1에 의해 산출된 평균 전송률이 2Mbps이면, 상기 스트리밍 서버는 기 전송된 세그먼트 데이터의 해상도(1080p)보다 낮은 해상도(예를 들어, 480p 또는 720p 등)를 갖는 세그먼트 데이터를 클라이언트 단말에게 전송할 수 있다.
또 다른 예로, 상기 수학식 1을 이용하여 산출된 평균 전송률이, 이전(또는 푸시하기 전) 전송률보다 높은 경우 또는 기 전송된 세그먼트 데이터의 해상도에 대응되는 전송률 보다 높은 경우에는, 푸시할 세그먼트 데이터의 해상도를 이전에 전송한 세그먼트 데이터의 해상도와 동일하게 유지하거나, 소정의 기준 또는 클라이언트 단말에 입력된 사용자의 선택에 따라 이전에 전송한 세그먼트 데이터의 해상도보다 더 높은 해상도를 갖는 세그먼트 데이터를 상기 클라이언트 단말에 전송할 수 있다.
한편, 도 1에서 설명하는 방식은 n개의 세그먼트 데이터를 얻기 위해서는 n번의 요청을 전송해야 하므로 시스템에 부하가 많이 걸리는 단점이 있으나, 도 3 및 도 4의 방법은 1회 요청에 대응하여 복수의 세그먼트가 푸시(push)되기 때문에 요청 수가 줄어들어 시스템의 부하를 줄여주는 장점이 있다.
도 5는 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 다른 실시예를 도시한 흐름도이다.
도 5를 참조하면, 스트리밍 서버는, 클라이언트 단말이 UI(user interface)를 통하여 입력 받은 사용자의 선택에 기반하여, 상기 클라이언트 단말에서 생성된 초기 요청(request)을, 상기 클라이언트 단말로부터 수신 받는다(510). 상기 초기 요청은 예를 들어, HTTP request 메시지가 될 수 있으며, 상기 초기 요청 메시지는 멀티미디어 데이터의 명칭(Video File Name), 비트레이트, 및 세그먼트 일련번호 중 적어도 하나를 포함할 수 있다.
스트리밍 서버는, 상기 클라이언트 단말로부터 수신 받은 초기 요청에 대응하여 초기 응답(response)을 생성하고, 상기 생성된 초기 응답을 상기 클라이언트 단말에게 전송한다(520). 여기서 초기 응답은, 예를 들어 HTTP response 메시지가 될 수 있으며, 상기 초기 응답은 사용자가 상기 클라이언트 단말의 UI를 통하여 선택한 멀티미디어 데이터의 세그먼트 데이터 중 어느 하나를 포함할 수 있다.
클라이언트 단말은 상기 초기 응답이 상기 클라이언트 단말에 도달하면 ACK(acknowledgement) 신호를 생성하고, 상기 ACK 신호를 상기 스트리밍 서버에 전송한다(530). 상기 ACK 신호는 상기 초기 응답이 클라이언트 단말에 도달하였음을 통지하는 응답 문자 (acknowledgement code)일 수 있다.
스트리밍 서버는, 클라이언트 단말에 전송된 세그먼트 데이터의 크기와 세그먼트 데이터를 클라이언트 단말에 전송하는데 걸린 시간을 기반으로, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경에 관한 파라미터 값, 즉 전송률을 산출한다(540). 일 예로, 스트리밍 서버는 스트리밍 서버에서 세그먼트 데이터의 전송이 시작된 시점과 클라이언트 단말에서 발신된 ACK 신호가 스트리밍 서버에 도달한 시점의 차이를 기반으로 네트워크 환경을 판단할 수 있다. 구체적인 계산 방법은 상기 수학식 1을 응용한 아래의 수학식 2가 이용될 수 있다. 아래 수학식 2는 상기 수학식 1에서 소정의 개수가 1인 경우의 일 예이다.
Figure 112017042658355-pat00002
스트리밍 서버는 클라이언트 단말에서 전송된 ACK 신호가 상기 스트리밍 서버에 수신된 시점을 기반으로 네트워크 환경에 관한 파라미터 값(즉, 데이터 전송률)을 산출하므로, 실제로 사용자가 스트리밍 서비스를 지원받는 환경을 정확하게 반영한 모니터링 결과를 얻을 수 있다.
스트리밍 서버는 상기 수학식 2를 이용하여 산출된 파라미터 값(즉, 전송률)을 기반으로 상이한 상태의 세그먼트 데이터를 푸시(push)할 수 있다(550). 예컨대, 상기 수학식 2를 이용하여 산출한 전송률이 이전 전송률보다 낮은 경우, 상기 스트리밍 서버는 기 전송된 세그먼트 데이터의 해상도보다 낮은 해상도를 갖는 세그먼트 데이터를 클라이언트 단말에 푸시할 수 있다. 한편, 상기 스트리밍 서버가 상기 클라이언트 단말에게 전송할 세그먼트 데이터의 해상도가 변경되는 정도는 상기 수학식 2에 의해 산출된 전송률과 이전 전송률 사이의 차이의 정도에 따라 변경되거나, 단계적으로 변경될 수 있다.
전술한 바와 같이, 도 5에 개시된 방법은 클라이언트 단말이 아닌 스트리밍 서버에 의하여 네트워크 환경의 모니터링이 이루어지므로, 클라이언트 단말에 과부하가 미칠 염려가 적으므로 지속적인 네트워크 환경의 모니터링이 가능하다. 클라이언트 단말의 경우, 일반적으로 핸드폰과 같은 모바일 단말로써, 제한된 배터리, CPU 등의 자원을 가지고 있어 이를 효율적으로 사용해야 한다. 도 5에 개시된 방법은 네트워크 환경의 모니터링을 스트리밍 서버에서 수행함으로써 클라이언트 단말(즉, 모바일 단말)의 자원 소모를 줄여주는 효과가 있다는 점에서 클라이언트 단말의 자원을 효율적으로 사용할 수 있다.
한편, 도 5 및 수학식 2의 모니터링 방법은 도 3, 도 4, 및 수학식 1의 모니터링 방법과 아래와 같은 차이점을 갖는다.
도 3, 도 4, 및 수학식 1의 모니터링 방법의 경우, n개의 세그먼트가 모두 클라이언트 단말에 전송된 후에 네트워크 환경의 모니터링이 수행되고, 그 결과에 기반하여 비로소 다른 세그먼트 데이터가 푸시되므로, n개의 세그먼트가 모두 전송되기 전에는 네트워크 환경이 변하더라도 동일한 세그먼트 데이터를 전송할 수 밖에 없어, 네트워크 대역폭, 스트리밍 서버 및 클라이언트 단말의 자원이 낭비될 수 있다. 하지만, 도 5 및 수학식 2의 모니터링 방법은 초기 응답(response) 또는 하나의 푸시(push)에 대응되는 ACK를 이용하여 지속적인 네트워크 환경의 모니터링을 수행하므로 도 3, 도 4, 및 수학식 1의 모니터링 방법과는 달리 불필요한 대역폭 낭비 또는 전송 자원 낭비 등을 줄일 수 있다는 점에서 효과적이다.
스트리밍 서버와 클라이언트 단말 사이에 많은 수의 네트워크 노드가 존재하고, 각 네트워크 노드들은 많은 양의 버퍼를 지니고 있는 경우, 수학식 1을 이용하여 산출된 평균 전송률은 실제 평균 전송률보다 높은 것으로 측정될 수 있다. 이 경우 사용자는 해당 비디오 데이터를 적절한 속도로 받을 수 없어 비디오 데이터의 지연(delay 또는 buffering)되는 현상이 발생할 수 있다. 하지만, 상기 도 5 및 수학식 2의 모니터링하는 방법은 실제로 사용자가 스트리밍 서비스를 지원받는 환경을 정확하게 반영하여 모니터링하기 때문에 스트리밍 영상의 재생이 지연(delay 또는 buffering)되는 현상을 없애거나 줄일 수 있다.
한편, 도 3 및 도 4를 참조하여 설명된 방법의 경우, 클라이언트 단말이 일정 수만큼 세그먼트 데이터의 요청을 수행하여야 한다. 하지만, 도 5를 참조하여 설명된 방법의 경우, 한 차례의 세그먼트 요청(즉, 초기 요청)만 필요하다는 점에서 차이가 있다.
도 6은, 도 5의 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법을 도시한 또 다른 예시도이다.
사용자가 클라이언트 단말이 UI를 통하여 사용자로부터 멀티미디어 데이터를 선택 받으면, 상기 클라이언트 단말은 초기 요청(도 6의 Request)을 생성하여 스트리밍 서버에 전송한다. 상기 스트리밍 서버는, 클라이언트 단말로부터 생성된 초기 요청이 수신되면, 초기 응답(도 6의 Response)을 생성하고, 이를 클라이언트 단말에 전송한다. 상기 클라이언트 단말은 초기 응답이 상기 클라이언트 단말에 도달하면 ACK 신호를 생성하여 상기 스트리밍 서버에 전송할 수 있다.
스트리밍 서버는, 상기 수학식 2를 이용하여, i) 클라이언트 단말에 전송된 세그먼트 데이터의 크기, 및 ii) 상기 세그먼트 데이터를 클라이언트 단말에 전송하는데 걸린 시간 중 적어도 하나를 기반으로 하여, 상기 수학식 2를 이용하여 전송률을 산출할 수 있다.
스트리밍 서버는 상기 산출된 전송률을 기반으로, 상기 클라이언트 단말에게 푸시할 세그먼트 데이터의 상태를 결정하고, 상기 결정된 상태에 대응되는 세그먼트 데이터를 상기 클라이언트 단말에게 푸시할 수 있다. 도 6을 참조하면, 상기 스트리밍 서버는 상기 클라이언트 단말에게 response를 전송한 시점과 ACK_1을 수신 받은 시점 사이의 차이, 및 상기 수학식 2에 적용하여 상기 스트리밍 서버가 상기 클라이언트 단말에 resonse를 전송할 때의 전송률을 산출할 수 있고, 산출된 전송률을 기반으로 push_1로 전송할 세그먼트 데이터의 상태를 결정하고, 결정된 상태에 대응되는 세그먼트 데이터를 push_1로써 상기 클라이언트 단말에게 푸시할 수 있다. 이와 같은 규칙은 도 6의 push_2, push_(n-1) 등에도 적용될 수 있다.
추가적으로, 스트리밍 서버는 타이머(timer)를 이용하여 소정의 주기마다 세그먼트 데이터를 상기 클라이언트 단말에게 푸시(push)할 수 있다. 또한, 스트리밍 서버는 타이머를 이용하여 소정의 주기마다 추가 응답을 전송하는 동작뿐만 아니라, 클라이언트 단말이 전송한 ACK 신호를 이용하여 네트워크 환경을 모니터링하는 동작(Network Monitoring)을 수행을 할 수 있다. 한편, 타이머의 소정의 주기는 세그먼트 데이터의 개수 및 세그먼트 데이터의 길이 중 적어도 하나를 기반으로 설정될 수 있다.
도 7은 네트워크 환경을 모니터링하여 HTTP 적응적 스트리밍을 제공하는 방법의 또 다른 실시예를 도시한 흐름도이다.
도 7을 참조하면, 실행하고자 하는 멀티미디어 데이터가 클라이언트 단말의 UI를 통하여 사용자에 의해 입력되면, 상기 클라이언트 단말은 스트리밍 서버에게 상기 멀티미디어 데이터에 관한 세그먼트 데이터를 요청한다(710).
클라이언트 단말은 상기 스트리밍 서버로부터 상기 요청한 세그먼트 데이터를 수신 받는다(720). 여기서 상기 스트리밍 서버가 전송할 세그먼트 데이터는 상기 세그먼트 데이터가 스트리밍 서버에서 발송된 시점에 대한 시간 정보와 함께 클라이언트 단말에게 전송될 수 있다.
클라이언트 단말이 상기 스트리밍 서버로부터 세그먼트 데이터를 수신 받는 과정에서, 클라이언트 단말은 상기 클라이언트 단말과 상기 스트리밍 서버 사이의 네트워크 환경에 관한 파라미터 값을 산출한다(730). 구체적으로, 클라이언트 단말은 전송된 세그먼트 데이터의 크기, 및 상기 세그먼트 데이터가 스트리밍 서버에서 발송된 시간과 상기 세그먼트 데이터가 클라이언트 단말에 도달한 시간의 차이를 이용하여, 클라이언트 단말과 스트리밍 서버 사이의 네트워크 환경에 관한 파라미터 값, 즉 데이터 전송률을 산출할 수 있다.
클라이언트 단말은 산출된 네트워크 환경에 관한 파라미터 값에 기반하여, 추가적인 세그먼트 데이터를 요청한다(740). 예컨대, 산출된 데이터 전송률이 높은 것으로 판단되면 클라이언트 단말은 보다 높은 해상도의 비디오 데이터를 요청할 수 있고, 산출된 데이터 전송률이 낮은 것으로 판단되면 클라이언트 단말은 보다 낮은 해상도의 비디오 데이터를 요청할 수 있다.
클라이언트 단말은, 상기 스트리밍 서버에서 발신한 세그먼트 데이터를 수신 받을 수 있다. 상기 상기 스트리밍 서버가 클라이언트 단말에 발신한 세그먼트 데이터는, 상기 클라이언트 단말이 전송을 요청한 세그먼트 데이터일 수 있다. 한편, 클라이언트 단말은 수신된 상기 세그먼트 데이터를 재조합하고, 디코딩(decoding)하여 사용자가 선택한 멀티미디어 데이터를 재생한다(750).
도 8은 본 개시에 따른 스트리밍 서버의 일 실시예를 도시한 블록도이다.
도 8을 참조하면, 스트리밍 서버(800)는 서버 제어부(810) 및 서버 통신부(820) 중 적어도 하나를 포함하고, 상기 서버 제어부(810)는 네트워크 모니터부(830)를 포함할 수 있다.
상기 스트리밍 서버(800)는 클라이언트 단말에게 전송될 복수의 멀티미디어 데이터를 저장하는 저장부를 포함할 수 있으며, 상기 멀티미디어 데이터는 비디오 데이터, 오디오 데이터 중 적어도 하나를 포함할 수 있다.
서버 제어부(810)는 상기 저장부에 저장된 멀티미디어 데이터를 복수의 세그먼트 데이터로 나눌 수 있다. 상기 서버 제어부(810)에 의해 나누어진 상기 복수의 세그먼트 데이터는 상기 저장부에 저장될 수 있다. 일 예로, 서버 제어부(810)는 저장부에 저장된 비디오 데이터를 일정한 시간 간격(예를 들어, 10초 간격)으로 분리하고, 인코딩(encoding) 과정을 거쳐 일정한 포맷(예를 들어, MPEG-TS 등)으로 압축하여 상기 저장부에 저장할 수 있다.
한편, 상기 스트리밍 서버(800)는 스트리밍 서버의 외부로부터 전송받은 비디오 데이터, 오디오 데이터 중 적어도 하나를 임시로 저장, 관리하는 임시 저장부를 더 포함할 수 있다. 또한, 상기 서버 제어부(810)는 상기 스트리밍 서버(800)의 외부로부터 획득되어 임시 저장부에 임시로 저장된 멀티미디어 데이터를 복수의 세그먼트 데이터로 나눌 수 있다. 예컨대, 상기 서버 제어부(810)는 하나의 비디오 데이터를 재생 시간, 재생 시점, 해상도, 음질, 또는 코딩 방법 중 적어도 하나의 조건이 상이하게 적용된 복수의 세그먼트 데이터로 나눌 수 있다.
한편, 상기 저장부는 나누어진 복수의 세그먼트 데이터를 저장하면서, 각 세그먼트 데이터의 파일명, 일련번호, 시작시간, 및 길이 중 적어도 하나의 정보들을 각 세그먼트 데이터와 함께 저장할 수 있다.
서버 통신부(820)는 클라이언트 단말과 유무선 통신으로 연결된다. 상기 서버 통신부(820)는 클라이언트 단말로부터 전송된 멀티미디어 데이터 요청 신호 등을 수신받을 수 있고, 서버 제어부(820)에 전송하는 것이 결정된 복수의 세그먼트 데이터를 상기 클라이언트 단말에게 전송할 수도 있다.
서버 제어부(810)는 클라이언트 단말이 선택된 멀티미디어 데이터(즉, 비디오 데이터 또는 오디오 데이터)의 종류, 시간, 화질, 또는 음질에 기반하여 세그먼트 데이터를 선택하고, 상기 선택된 세그먼트 데이터를 상기 서버 통신부(820)를 통하여 클라이언트 단말에게 전송할 수 있다.
한편, 상기 서버 제어부(810)는 상기 클라이언트 단말이 데이터 요청을 한 번만 한 경우에도 복수의 세그먼트 데이터를 클라이언트 단말로 송신할 수 있다. 이에 따라 클라이언트 단말이 서버에 데이터를 요청하는 횟수가 줄어들고, 스트리밍 데이터 전송 요청에 따른 클라이언트 단말, 스트리밍 서버, 네트워크 등의 부하를 줄일 수 있다.
상기 서버 제어부(810)는 네트워크 모니터부(830)를 더 포함할 수 있고, 상기 네트워크 모니터부(830)는 상기 스트리밍 서버(800)와 클라이언트 단말 사이의 네트워크 환경을 모니터링할 수 있다. 예컨대, 네트워크 모니터부(830)는 클라이언트 단말에 전송된 세그먼트 데이터의 크기와 세그먼트 데이터를 클라이언트 단말에 전송하는데 걸린 시간을 기반으로 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 현재 전송률을 산출할 수 있다.
스트리밍 서버(800)는, 네트워크 로그부를 더 포함할 수 있고, 네트워크 로그부는 데이터가 송수신되는 시점에 관한 기록들을 포함하는 로그를 생성, 저장, 관리 등을 할 수 있다. 한편, 상기 네트워크 모니터부(830)는 상기 네트워크 로그부의 로그 정보를 기반으로 상기 스트리밍 서버(800)와 상기 클라이언트 단말 사이의 네트워크 환경을 판단할 수 있다.
추가적으로, 서버 제어부(810)는 클라이언트 단말의 메모리 총 용량, 메모리 잔여 용량, 클라이언트 단말이 실행할 수 있는 최고 해상도 중 적어도 하나를 기반으로, 상기 클라이언트 단말에게 전송할 세그먼트 데이터의 상태(멀티미디어 데이터의 재생 시점, 길이, 해상도, 음질 등)를 결정할 수 있다.
또한, 서버 제어부(810)는 상기 스트리밍 서버(800)와 클라이언트 단말 사이의 연결 수단이 유선 통신인지 또는 무선 통신인지에 따라 상기 클라이언트 단말에게 전송할 세그먼트 데이터의 태양을 결정할 수 있다. 예컨대, 상기 서버 제어부(810)는 상기 클라이언트 단말이 통신사(예를 들어, KT, SKT, LGT 등)의 유료 네트워크를 사용 중인지 아니면 와이파이에 연결되어 있는 것인지 여부를 기반으로 세그먼트 데이터의 상태를 결정할 수 있다. 만약, 상기 클라이언트 단말이 상기 통신사의 유료 네트워크를 사용 중이라면, 상기 스트리밍 서버와 상기 클라이언트 단말 사이의 네트워크 환경에 관한 파라미터 값(예를 들어, 데이터 전송률)보다 낮은 전송률에서도 지연(delay 또는 buffering) 없이 재생 가능한 해상도를 갖는 세그먼트 데이터를 클라이언트 단말에게 전송하거나, 상기 네트워크 환경의 조건과는 상관 없이 가장 낮은 해상도를 갖는 세그먼트 데이터를 클라이언트 단말에 전송할 수 있다.
도 9는 본 개시에 따른 클라이언트 단말의 일 실시예를 도시한 블록도이다.
도 9를 참조하면, 클라이언트 단말(900)은 단말 제어부(910) 및 단말 통신부(920)를 포함한다.
단말 제어부(910)는 인터페이스부(930), 재생부(940), 및 네트워크 모니터부(950)를 포함하고, 상기 단말 제어부(910)는 상기 클라이언트 단말(900)에서 실행되는 소프트웨어, 하드웨어 등의 제어, 관리, 상기 클라이언트 단말(900)의 기능을 실행하기 위한 명령어 생성 중 적어도 하나를 실행할 수 있다. 또한, 상기 단말 제어부(910)는 예를 들어 HTTP일 수 있으며, HTTP Request를 통하여 재생하려는 멀티미디어 데이터에 대한 정보를 스트리밍 서버에 전송할 수 있다.
상기 단말 통신부(920)는 상기 스트리밍 서버로부터 멀티미디어 데이터 또는 세그먼트 데이터를 전송 받을 수 있다.
상기 단말 제어부(910)는 상기 멀티미디어 데이터 또는 세그먼트 데이터가 상기 단말 통신부(920)에게 전송되는 때의 상기 스트리밍 서버와 상기 클라이언트 단말(900) 사이의 네트워크 환경에 관한 파라미터 값을 산출하고, 상기 산출된 파라미터 값에 기반하여 푸시(push)받을 적어도 하나의 멀티미디어 데이터를 상기 스트리밍 서버에 요청할 수 있다. 한편, 상기 단말 통신부(920)는 상기 스트리밍 서버로부터 상기 요청에 따른 멀티미디어 데이터 또는 세그먼트 데이터를 더 전송 받을 수 있다.
상기 재생부(940)는 세그먼트 데이터(예를 들어, 비디오 세그먼트 데이터)를 이용하여 미디어(예를 들어, 비디오)를 재생하는 역할을 한다. 상기 재생부(940)는 디코더(decoder) 및 응용 버퍼(application buffer)를 포함할 수 있다.
한편, 클라이언트 단말(900)은 디코더(decoder)부를 더 포함할 수 있다. 상기 디코더부는 스트리밍 서버에서 전송받은 세그먼트 데이터를 디코딩하여 실제 화면에 출력할 수 있도록 변환할 수 있다.
또한, 클라이언트 단말(900)은 재순서화부를 더 포함할 수 있다. 상기 재순서화부는 다수의 무선 네트워크로부터 수신한 세그먼트 데이터(예를 들어, 비디오 세그먼트 데이터)를 순서대로 조합하고, 상기 순서대로 조합된 세그먼트 데이터를 미디어 재생부의 응용 버퍼에게 전송할 수 있다.
네트워크 모니터부(950)는 멀티미디어 데이터가 스트리밍 서버에서 발신된 시점과 멀티미디어 데이터가 클라이언트 단말(900)에 수신된 시점의 차이를 기반으로 네트워크 환경을 모니터링하고, 네트워크 환경을 모니터링한 결과를 기반으로 스트리밍 서버에 상이한 세그먼트 데이터를 요청할 수 있다.
추가적으로, 상기 네트워크 모니터부(950)는 사용자가 재생을 요청한 멀티미디어 데이터의 재생이 지연(delay 또는 buffering)되는지 여부를 기반으로 네트워크 환경을 판단할 수 있다. 또한, 클라이언트 단말(900)은 상기 멀티미디어 데이터의 재생이 지연되는지 여부를 기반으로 스트리밍 서버에 상이한 세그먼트 데이터를 요청할 수 있다. 또한, 상기 멀티미디어 데이터의 재생이 지연되는 경우, 클라이언트 단말(900)은 UI를 통하여 사용자에게 표시할 알람 신호를 생성할 수 있다. 예컨대, 상기 알람 신호는 네트워크 환경에 비하여 높은 해상도의 멀티미디어 데이터를 재생할 것을 요청하여 멀티미디어 데이터의 재생이 지연된다는 경고문 또는 낮은 해상도의 멀티미디어 데이터를 재생할 것을 요청하는 안내 문구를 포함할 수 있다.
한편, 상기 클라이언트 단말(900)은 상기 재생부의 디코더에서 디코딩 데이터를 전달 받아 실제 화면으로 출력하는 디스플레이부를 더 포함할 수 있다.
도 10은 본 개시에 따른 스트리밍 시스템의 일 실시예를 도시한 블록도이다.
도 8 내지 도 10을 참조하면, 본 개시에 따른 HTTP 적응적 스트리밍을 제공하는 스트리밍 시스템(1000)은 스트리밍 서버(1010) 및 클라이언트 단말(1020)을 포함하고, 스트리밍 서버(1010)는 서버 통신부(1011) 및 서버 제어부(1012)를 포함하고, 클라이언트 단말(1020)은 단말 통신부(1021) 및 단말 제어부(1022)를 포함한다.
한편, 스트리밍 서버(1010)는 도 8의 스트리밍 서버(800)일 수 있으며, 클라이언트 단말(1020)은 도 9의 클라이언트 단말(900)일 수 있으나, 이에 한정되는 것은 아니다.
일 예로, 스트리밍 시스템(1000)에 포함된 스트리밍 서버(1010) 및 클라이언트 단말(1020)이 도 8 및 도 9의 경우와 같이, 스트리밍 서버(1010)와 클라이언트 단말(1020) 각각에 네트워크 환경을 모니터링하는 네트워크 모니터부를 구비한다면, 스트리밍 시스템(1000) 전체적으로 부하는 증가하겠지만, 스트리밍 서버(1010)와 클라이언트 단말(1020) 사이의 네트워크 환경을 모니터링의 정확성은 높아진다는 장점이 있다.
다른 예로, 스트리밍 서버(1010)의 서버 제어부(1012)만 네트워크 환경을 모니터링할 수 있는 네트워크 모니터부를 포함한다면, 일반적으로 자원이 한정되는 클라이언트 단말(1020)의 부하를 줄여줄 수 있다는 점에서 장점이 있다.
앞서 설명한 동작들은 해당 프로그램 코드를 저장한 메모리 장치를 통신 시스템의 서버, 또는 단말 장치 내의 임의의 구성부에 구비함으로써 실현될 수 있다. 즉, 서버, 또는 단말 장치의 제어부는 메모리 장치 내에 저장된 프로그램 코드를 프로세서 혹은 CPU(Central Processing Unit)에 의해 읽어내어 실행함으로써 앞서 설명한 동작들을 실행할 수 있다.
본 명세서에서 설명되는 서버, 또는 단말 장치의 다양한 구성부들과, 모듈(module)등은 하드웨어(hardware) 회로, 일 예로 상보성 금속 산화막 반도체(complementary metal oxide semiconductor) 기반 논리 회로와, 펌웨어(firmware)와, 소프트웨어(software) 및/혹은 하드웨어와 펌웨어 및/혹은 머신 판독 가능 매체에 삽입된 소프트웨어의 조합과 같은 하드웨어 회로를 사용하여 동작될 수도 있다. 일 예로, 다양한 전기 구조 및 방법들은 트랜지스터(transistor)들과, 논리 게이트(logic gate)들과, 주문형 반도체와 같은 전기 회로들을 사용하여 실시될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (28)

  1. 스트리밍 서버가 단말에게 HTTP(hypertext transfer protocol) 적응적 스트리밍을 제공하는 방법에 있어서,
    상기 단말로부터 멀티미디어 데이터에 대한 초기 요청 메시지를 수신하는 단계;
    사전에 결정된 사이클에서 상기 멀티미디어 데이터의 제1 세그먼트(segment)를 상기 단말에게 전송하는 단계;
    상기 멀티미디어 데이터의 상기 제1 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제1 세그먼트를 전송한 시작 시간과 상기 단말로부터 상기 멀티미디어 데이터의 상기 제1 세그먼트에 대한 응답인 제1 ACK(acknowledgement) 신호의 수신 시간의 차이로 나눔으로써 결정된 값을 기반으로 제1 네트워크 환경을 결정하는 단계;
    상기 제1 네트워크 환경에 기반하여 상기 멀티미디어 데이터의 제2 세그먼트를 결정하는 단계; 및
    상기 사전에 결정된 사이클에서 상기 멀티미디어 데이터의 상기 제2 세그먼트를 상기 단말에게 푸시(push)하는 단계를 포함하되,
    상기 사전에 결정된 사이클은 상기 멀티미디어 데이터의 세그먼트들의 총 개수 또는 상기 멀티미디어 데이터의 각 세그먼트의 재생 시간(playing duration) 중 적어도 하나를 기반으로 결정됨을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 멀티미디어 데이터의 상기 제2 세그먼트를 푸시(push)하는 단계는, 상기 단말에 상기 멀티미디어 데이터의 상기 제1 세그먼트를 전송한 후에, 상기 단말의 요청 유무에 상관 없이 상기 단말에게 상기 멀티미디어 데이터의 상기 제2 세그먼트를 전송하는 것임을 특징으로 하는 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 멀티미디어 데이터는, 비디오 데이터 또는 오디오 데이터를 포함함을 특징으로 하는 방법.
  8. 삭제
  9. 삭제
  10. 단말에게 HTTP(hypertext transfer protocol) 적응적 스트리밍을 제공하는 스트리밍 서버에 있어서,
    송수신기; 및
    상기 단말로부터 멀티미디어 데이터에 대한 초기 요청 메시지를 수신하도록 상기 송수신기를 제어하고, 사전에 결정된 사이클에서 상기 멀티미디어 데이터의 제1 세그먼트(segment)를 상기 단말에게 전송하도록 상기 송수신기를 제어하고, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 전송을 시작한 시간과 상기 단말로부터 상기 멀티미디어 데이터의 상기 제1 세그먼트에 대한 응답인 제1 ACK(acknowledgement) 신호의 수신 시간의 차이로 나눔으로써 결정된 값을 기반으로 제1 네트워크 환경을 결정하고, 상기 제1 네트워크 환경에 기반하여 상기 멀티미디어 데이터의 제2 세그먼트를 결정하고, 상기 사전에 결정된 사이클에서 상기 멀티미디어 데이터의 상기 제2 세그먼트를 상기 단말에게 푸시(push)하는 프로세서를 포함하되,
    상기 사전에 결정된 사이클은 상기 멀티미디어 데이터의 세그먼트들의 총 개수 또는 상기 멀티미디어 데이터의 각 세그먼트의 재생 시간(playing duration) 중 적어도 하나를 기반으로 결정됨을 특징으로 하는 스트리밍 서버.
  11. 제10항에 있어서, 상기 프로세서는,
    상기 단말에 상기 멀티미디어 데이터의 상기 제1 세그먼트를 전송한 후에, 상기 단말의 요청 유무에 상관 없이 상기 단말에게 상기 멀티미디어 데이터의 상기 제2 세그먼트를 전송하도록 상기 송수신기를 제어함을 특징으로 하는 스트리밍 서버.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제10항에 있어서,
    상기 멀티미디어 데이터는, 비디오 데이터 또는 오디오 데이터 중 적어도 하나를 포함함을 특징으로 하는 스트리밍 서버.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제1항에 있어서,
    상기 초기 요청 메시지는, 상기 멀티미디어 데이터의 이름, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 전송 레이트(transmission rate)에 대한 정보, 또는 상기 단말의 사용자에 의해 선택된 상기 멀티미디어 데이터의 세그먼트들 중 하나에 대한 정보 중 적어도 하나를 포함함을 특징으로 하는 방법.
  22. 제1항에 있어서, 상기 제1 네트워크 환경을 결정하는 단계는,
    상기 멀티미디어 데이터의 상기 제1 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제1 세그먼트를 전송한 상기 시작 시간과 상기 단말로부터 상기 제1 ACK(acknowledgement) 신호의 상기 수신 시간의 차이로 나눔으로써 결정된 상기 값을 기반으로 제1 전송 레이트를 결정하는 단계를 포함함을 특징으로 하는 방법.
  23. 제22항에 있어서, 상기 멀티미디어 데이터의 상기 제2 세그먼트를 결정하는 단계는,
    상기 제1 전송 레이트가 상기 멀티미디어 데이터의 상기 제1 세그먼트의 전송 레이트보다 낮은지 여부를 결정하는 단계; 및
    상기 제1 전송 레이트가 상기 멀티미디어 데이터의 상기 제1 세그먼트의 상기 전송 레이트보다 낮은 경우, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 제1 해상도(resolution)보다 낮은 제2 해상도를 가지는 상기 멀티미디어 데이터의 상기 제2 세그먼트를 결정하는 단계를 포함함을 특징으로 하는 방법.
  24. 제1항에 있어서,
    상기 멀티미디어 데이터의 상기 제2 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제2 세그먼트를 전송한 시작 시간과 상기 단말로부터 상기 멀티미디어 데이터의 상기 제2 세그먼트에 대한 응답인 제2 ACK 신호의 수신 시간의 차이로 나눔으로써 결정된 값을 기반으로 제2 네트워크 환경을 결정하는 단계;
    상기 제2 네트워크 환경에 기반하여 상기 멀티미디어 데이터의 제3 세그먼트를 결정하는 단계; 및
    상기 사전에 결정된 사이클에서 상기 멀티미디어 데이터의 상기 제3 세그먼트를 단말에게 푸시하는 단계를 더 포함함을 특징으로 하는 방법.
  25. 제10항에 있어서,
    상기 초기 요청 메시지는, 상기 멀티미디어 데이터의 이름, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 전송 레이트(transmission rate)에 대한 정보, 또는 상기 단말의 사용자에 의해 선택된 상기 멀티미디어 데이터의 세그먼트들 중 하나에 대한 정보 중 적어도 하나를 포함함을 특징으로 하는 스트리밍 서버.
  26. 제10항에 있어서, 상기 프로세서는,
    상기 멀티미디어 데이터의 상기 제1 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제1 세그먼트를 전송한 상기 시작 시간과 상기 단말로부터 상기 제1 ACK(acknowledgement) 신호의 상기 수신 시간의 차이로 나눔으로써 결정된 상기 값을 기반으로 제1 전송 레이트를 결정함을 특징으로 하는 스트리밍 서버.
  27. 제26항에 있어서, 상기 프로세서는,
    상기 제1 전송 레이트가 상기 멀티미디어 데이터의 상기 제1 세그먼트의 전송 레이트보다 낮은지 여부를 결정하고, 상기 제1 전송 레이트가 상기 멀티미디어 데이터의 상기 제1 세그먼트의 상기 전송 레이트보다 낮은 경우, 상기 멀티미디어 데이터의 상기 제1 세그먼트의 제1 해상도(resolution)보다 낮은 제2 해상도를 가지는 상기 멀티미디어 데이터의 상기 제2 세그먼트를 결정함을 특징으로 하는 스트리밍 서버.
  28. 제10항에 있어서, 상기 프로세서는,
    상기 멀티미디어 데이터의 상기 제2 세그먼트의 사이즈를, 상기 멀티미디어 데이터의 상기 제2 세그먼트를 전송한 시작 시간과 상기 단말로부터 상기 멀티미디어 데이터의 상기 제2 세그먼트에 대한 응답인 제2 ACK 신호의 수신 시간의 차이로 나눔으로써 결정된 값을 기반으로 제2 네트워크 환경을 결정하고, 상기 제2 네트워크 환경에 기반하여 상기 멀티미디어 데이터의 제3 세그먼트를 결정하고, 상기 사전에 결정된 사이클에서 상기 멀티미디어 데이터의 상기 제3 세그먼트를 단말에게 푸시함을 특징으로 하는 스트리밍 서버.
KR1020170056110A 2017-05-02 2017-05-02 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말 KR102307447B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170056110A KR102307447B1 (ko) 2017-05-02 2017-05-02 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
US15/962,605 US20180323899A1 (en) 2017-05-02 2018-04-25 Http adaptive streaming server, method, and client terminal based on network environment monitoring
EP18793757.8A EP3603015A4 (en) 2017-05-02 2018-04-30 HTTP ADAPTIVE CONTINUOUS BROADCAST SERVER, METHOD AND CLIENT TERMINAL BASED ON NETWORK ENVIRONMENT MONITORING
PCT/KR2018/005033 WO2018203643A1 (en) 2017-05-02 2018-04-30 Http adaptive streaming server, method, and client terminal based on network environment monitoring
CN201880029124.9A CN110583002A (zh) 2017-05-02 2018-04-30 基于网络环境监控的http自适应流服务器、方法和客户终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170056110A KR102307447B1 (ko) 2017-05-02 2017-05-02 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말

Publications (2)

Publication Number Publication Date
KR20180122099A KR20180122099A (ko) 2018-11-12
KR102307447B1 true KR102307447B1 (ko) 2021-09-30

Family

ID=64015143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170056110A KR102307447B1 (ko) 2017-05-02 2017-05-02 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말

Country Status (5)

Country Link
US (1) US20180323899A1 (ko)
EP (1) EP3603015A4 (ko)
KR (1) KR102307447B1 (ko)
CN (1) CN110583002A (ko)
WO (1) WO2018203643A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2019003955A1 (ja) * 2017-06-29 2020-04-30 ソニー株式会社 通信システムおよび制御装置
TW201924285A (zh) * 2017-10-06 2019-06-16 日商日本電氣股份有限公司 資料通信裝置、通信系統、資料通信方法及程式
CN111225455A (zh) * 2019-12-04 2020-06-02 广州市星翼电子科技有限公司 一种基于4g网络的无线终端设备及无线数据传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130282918A1 (en) * 2011-01-04 2013-10-24 Alcatel Lucent Method for providing an adaptive streaming service
US20140280760A1 (en) * 2013-03-15 2014-09-18 DISH Digital L.L.C. Playback stall avoidance in adaptive media streaming
US20170085620A1 (en) * 2015-09-23 2017-03-23 Adobe Systems Incorporated Power efficient multimedia content streaming based on media segment duration

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011158221A2 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for generating and handling streaming media quality-of-experience metrics
KR20120021246A (ko) * 2010-08-31 2012-03-08 (주)휴맥스 Http 스트리밍을 위한 미디어 정보 파일의 전송 및 수신 방법
US9137551B2 (en) * 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
AU2013288859B2 (en) * 2012-07-09 2016-05-19 Vid Scale, Inc. Power aware video decoding and streaming
US20140109153A1 (en) * 2012-10-11 2014-04-17 Affirmed Networks, Inc. Expansion of a Stream Set and Transcoding of HTTP Adaptive Streaming Videos in a Mobile Network
US9124672B2 (en) * 2012-11-08 2015-09-01 Morega Systems, Inc Adaptive video server with data rate control and methods for use therewith
US9917872B2 (en) * 2013-01-18 2018-03-13 Futurewei Technologies, Inc. Method and apparatus for performing adaptive streaming on media contents
US9131009B2 (en) * 2013-03-08 2015-09-08 Comcast Cable Holdings, Llc Resource request management
US8984569B2 (en) * 2013-03-15 2015-03-17 Echostar Technologies L.L.C. Chunking of multiple track audio for adaptive bit rate streaming
WO2015004276A2 (en) * 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control
US9635077B2 (en) * 2014-03-14 2017-04-25 Adobe Systems Incorporated Low latency live video streaming
EP3120520B1 (en) * 2014-03-17 2023-05-24 bitmovin GmbH Media streaming
US20150271233A1 (en) * 2014-03-20 2015-09-24 Samsung Electronics Co., Ltd. Method and apparatus for dash streaming using http streaming
GB2527116B (en) * 2014-06-12 2017-09-20 Canon Kk Adaptative persistent push
CA2953422C (en) * 2014-06-26 2021-04-13 Arris Enterprises Llc Server side adaptive bit rate control for http streaming clients
CN105306424B (zh) * 2014-07-08 2019-05-03 腾讯科技(深圳)有限公司 一种流媒体传输方法、流媒体发送装置及流媒体传输系统
US9854282B2 (en) * 2014-11-20 2017-12-26 Alcatel Lucent System and method for enabling network based rate determination for adaptive video streaming
US9686332B1 (en) * 2014-12-19 2017-06-20 Amazon Technologies, Inc. Live stream manifests for on demand content
US9769536B2 (en) * 2014-12-26 2017-09-19 System73, Inc. Method and system for adaptive virtual broadcasting of digital content
KR101942208B1 (ko) * 2015-01-08 2019-01-24 애리스 엔터프라이지즈 엘엘씨 Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어
GB2534849A (en) * 2015-01-28 2016-08-10 Canon Kk Client-driven push of resources by a server device
US11212334B2 (en) * 2015-06-23 2021-12-28 Convida Wireless, Llc Mechanisms to support adaptive constrained application protocol (CoAP) streaming for Internet of Things (IoT) systems
EP4030769A1 (en) * 2016-02-01 2022-07-20 Panasonic Intellectual Property Corporation of America Client, server, reception method and transmission method for dash with initialization segment push
US20190014358A1 (en) * 2016-02-12 2019-01-10 Sony Corporation Information processing apparatus and information processing method
US10142262B2 (en) * 2016-05-31 2018-11-27 Anchorfree Inc. System and method for improving an aggregated throughput of simultaneous connections
US11677799B2 (en) * 2016-07-20 2023-06-13 Arris Enterprises Llc Client feedback enhanced methods and devices for efficient adaptive bitrate streaming
JP2018045674A (ja) * 2016-09-07 2018-03-22 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
US20180109577A1 (en) * 2016-10-13 2018-04-19 Sharp Laboratories Of America, Inc. Systems and methods for enabling communications associated with digital media distribution
US10499411B2 (en) * 2016-11-04 2019-12-03 Mediatek Inc. Method and apparatus for data transmission enhancements in mobile communications
US10917202B2 (en) * 2016-11-12 2021-02-09 Lg Electronics Inc. Method and device for transmitting data unit, and method and device for receiving data unit
US10659512B1 (en) * 2017-12-05 2020-05-19 Amazon Technologies, Inc. Optimizing adaptive bit rate streaming at edge locations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130282918A1 (en) * 2011-01-04 2013-10-24 Alcatel Lucent Method for providing an adaptive streaming service
US20140280760A1 (en) * 2013-03-15 2014-09-18 DISH Digital L.L.C. Playback stall avoidance in adaptive media streaming
US20170085620A1 (en) * 2015-09-23 2017-03-23 Adobe Systems Incorporated Power efficient multimedia content streaming based on media segment duration

Also Published As

Publication number Publication date
CN110583002A (zh) 2019-12-17
EP3603015A1 (en) 2020-02-05
WO2018203643A1 (en) 2018-11-08
KR20180122099A (ko) 2018-11-12
US20180323899A1 (en) 2018-11-08
EP3603015A4 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
CN104412253B (zh) 用于在超文本传输协议上的质量知晓自适应流传输的方法
EP2904757B1 (en) Throttling a media stream for transmission via a radio access network
US10484750B2 (en) Methods, radio communication device and base station device for managing a media stream
US20210029181A1 (en) Link-aware streaming adaptation
TW201521474A (zh) 資訊處理裝置及資訊處理方法
KR102307447B1 (ko) 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
US10412553B2 (en) Wireless communication apparatus, wireless communication method, and program for using a threshold to control multicast retransmission
JP2009141931A (ja) 無線通信装置、プログラム、および無線通信方法
US11290727B2 (en) Camera communication channel selection
US10693992B2 (en) Apparatus and method for providing streaming service
US9680904B2 (en) Adaptive buffers for media players
US20230176915A1 (en) Method and device for providing split computing based on device capability
KR101540217B1 (ko) 자동으로 최적의 트랜스코딩을 수행하는 장치, 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR102209783B1 (ko) 스트리밍 제공 서버와 기지국 연동 노드를 통한 스트리밍 데이터 패킷 제공 방법, 이를 위한 기지국 연동 노드
US20150350283A1 (en) Content server, content distribution method, content distribution system, client device, and content acquisition
JP2015041800A (ja) 受信装置及び受信方法
WO2023169230A1 (zh) 业务速率调整方法及通信装置
WO2024078731A1 (en) Masked transmission of auto-encoded csi data
JP2016019140A (ja) コンテンツ転送方法、コンテンツ転送装置、コンテンツ受信装置およびコンテンツ転送プログラム
WO2017145781A1 (ja) ペーシング制御装置、ペーシング制御方法、及びプログラム

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