KR101397592B1 - 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치 - Google Patents

멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101397592B1
KR101397592B1 KR1020120028628A KR20120028628A KR101397592B1 KR 101397592 B1 KR101397592 B1 KR 101397592B1 KR 1020120028628 A KR1020120028628 A KR 1020120028628A KR 20120028628 A KR20120028628 A KR 20120028628A KR 101397592 B1 KR101397592 B1 KR 101397592B1
Authority
KR
South Korea
Prior art keywords
interval
server
data
transmission rate
client
Prior art date
Application number
KR1020120028628A
Other languages
English (en)
Other versions
KR20130106942A (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 KR1020120028628A priority Critical patent/KR101397592B1/ko
Priority to JP2012287412A priority patent/JP5669818B2/ja
Priority to US13/773,087 priority patent/US9246966B2/en
Priority to EP13158243.9A priority patent/EP2642762A3/en
Priority to CN2013100927709A priority patent/CN103369019A/zh
Publication of KR20130106942A publication Critical patent/KR20130106942A/ko
Application granted granted Critical
Publication of KR101397592B1 publication Critical patent/KR101397592B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

멀티미디어 콘텐츠를 수신하기 위한 방법에 있어서, 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 멀티미디어 콘텐츠를 요청하는 과정과, 상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 과정을 포함하여, 멀티미디어 스트리밍 성능을 향상시킬 수 있는 이점이 있다.

Description

멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치{METHOD AND APPARATUS FOR RECEVING MULTIMEDIA CONTENTS}
본 발명은 일반적으로 전자장치(electronic device)에 관한 것으로, 특히
멀티미디어 스트리밍 가속 방법 및 장치에 관한 것이다.
현재 멀티미디어 스트리밍 서비스는 많은 웹사이트에서 제공하고 있으며, 개인 휴대 단말기의 보급으로 많은 사람이 손쉽게 실외에서도 멀티미디어 스트리밍 서비스에 의해 멀티미디어 콘텐츠를 이용하고 있다. 또한 고화질 고용량의 멀티미디어 콘텐츠에 대한 요구가 최근 많이 높아지고 있다.
네트워크를 통해 미디어 데이터를 전송하는 방식에는 다운로드 방식과 스트리밍 방식이 있다. 스트리밍 방식은 서버가 실시간으로 미디어 데이터를 전송하고, 클라이언트는 수신된 미디어 데이터를 실시간으로 재생하는 방식이다. 다시 말해, 스트리밍 방식은 오디오/비디오를 포함한 멀티미디어 콘텐츠를 다운로드가 아닌 실시간으로 주고받는 기술을 의미하며, 정보를 한번에 모두 다운로드 받아 처리하는 것이 아니고, 처리에 충분한 정보를 패킷 단위로 조금씩 지속적으로 받아 처리하는 기술이다. 그에 따라 사용자는 멀티미디어 콘텐츠를 한번에 다운로드할 필요가 없다.
미디어 데이터를 모두 송·수신한 후에 미디어 데이터의 재생이 시작되는 다운로드 방식과 달리, 스트리밍 방식은 서버와 클라이언트 사이에 설정된 통신 채널을 통해 실시간으로 미디어 데이터가 송·수신되어 재생된다. 특히 고화질 콘텐츠 경우는 기존 보다 더 많은 데이터 양을 실시간으로 보내야 하므로 스트리밍 재생 시 버퍼링 현상이 자주 보일 수 있으며, 이를 위해 스트리밍 속도를 올려 끊김 없이 멀티미디어 콘텐츠를 볼 수 있는 방법 및 장치가 필요하다.
본 발명의 목적은 초기에 데이터를 빨리 보내는 서버의 전송 특성을 이용하여 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 멀티미디어 스트리밍 성능을 향상시켜 멀티미디어 콘텐츠를 버퍼링 없이 재생시키기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 목적은 스트리밍 전송을 위한 연결 시간을 줄여, 스트리밍 전력 소모 효율이 향상시키기 위한 방법 및 장치를 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 멀티미디어 콘텐츠를 수신하기 위한 방법에 있어서, 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 멀티미디어 콘텐츠를 요청하는 과정과, 상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 과정을 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 메모리; 하나 이상의 프로세서; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행 가능하도록 구성되는 하나 이상의 모듈을 포함하는 전자 장치로서, 상기 모듈은, 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 멀티미디어 콘텐츠를 요청하고, 상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 명령어들을 포함하는 한다.
상기한 목적들을 달성하기 위한 본 발명의 제 3 견지에 따르면,멀티미디어 콘텐츠를 전송하기 위한 방법에 있어서, 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성이 있으며, 멀티미디어 콘텐츠를 클라이언트로부터 요청받는 과정과, 상기 요청한 멀티미디어 콘텐츠를 상기 클라이언트로 전송하는 과정을 포함하는 한다.
상기한 목적들을 달성하기 위한 본 발명의 제 4 견지에 따르면, 멀티미디어 콘텐츠를 전송하기 위한 서버 장치에 있어서, 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성이 있으며, 멀티미디어 콘텐츠를 클라이언트로부터 요청받고, 상기 요청한 멀티미디어 콘텐츠를 상기 클라이언트로 전송하는 제어기를 포함한다.
상술한 바와 같이, 멀티미디어 스트리밍 시, 서버의 전송특성 값을 고려하여 멀티미디어 스트리밍 성능을 향상시킬 수 있는 이점이 있다. 또한, 클라이언트에서 다양한 멀티미디어 스트리밍 서비스를 수신할 때, 더욱더 빠른 속도로 재생가능하며, 이로 인해 빈번한 버퍼링을 줄일 수 있다. 또한, 고화질 멀티미디어 데이터 스트리밍 시 더 많은 효과를 볼 수 있으며, 최근 태블릿 PC 등의 모바일 기기에서 성능이 차별화될 수 있다. 또한, 빨리 수신한 후 네트워크 연결을 차단함으로써 전력 소모 개선 기능이 극대화될 수 있다.
도 1은 본 발명에 따른 멀티미디어 스트리밍 서비스 시스템을 나타낸 도면이다.
도 2는 본 발명에 따른 서버의 전송 특성을 나타내는 그래프이다.
도 3은 본 발명의 제1 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 4는 본 발명의 제2 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 5는 본 발명의 제3 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 6은 본 발명의 실시 예에 따른 전송특성을 측정하기 위한 흐름도를 도시하고 있다.
도 7은 본 발명의 실시 예에 따른 전자 장치를 도시하고 있다.
도 8은 본 발명의 실시 예에 따른 서버 장치를 도시하고 있다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 본 발명은 초기에 데이터를 빨리 보내는 서버의 전송 특성을 이용하여 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치에 관해 설명하기로 한다. 구체적으로는 스트리밍 서버로부터 멀티미디어 콘텐츠를 제공받을 때 서버의 특성을 판단하여 최적의 임계값을 구한 후 클라이언트의 다운로드 속도를 향상시켜 스트리밍을 가속하는 방법 및 장치에 관한 것이다.
도 1은 본 발명에 따른 멀티미디어 스트리밍 서비스 시스템을 나타낸 도면이다.
도 1을 참조하면, 서버(100)는 네트워크(110)를 통해 클라이언트(120)에게 스트리밍 서비스를 제공한다. 클라이언트(120)는 인터넷 프로토콜과 멀티미디어 서비스 기능을 지원하며 전자장치가 될 수 있다. 전자장치는 휴대용 전자 장치(portable electronic device)일 수 있으며, 휴대용 단말기(portable terminal), 이동 전화(mobile phone), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant)와 같은 장치일 수 있다.
클라이언트(120)는 네트워크(110)를 통해 서버(100)에 멀티미디어 스트리밍 서비스를 요청할 수 있다. 예를 들어, 클라이언트(120)는 스트리밍 방식으로 서버(100)에 있는 멀티미디어 콘텐츠를 재생시키기 위해서, HTTP(HyperText Transfer Protocol) GET 메시지(130)를 통해 멀티미디어 콘텐츠에 해당하는 파일(140)을 다수의 패킷으로 수신한다. 제1 HTTP GET 메시지를 통해 콘텐츠에 해당하는 파일 중 0~n 바이트 패킷을 서버(100)에 요청하고, 제2 HTTP GET 메시지를 통해 콘텐츠에 해당하는 파일 중 n~2n 바이트 패킷을 서버(100)에 요청하고, 마찬가지로, 멀티미디어 콘텐츠에 해당하는 파일을 전부 수신할 때까지 HTTP GET를 통해 요청한다. 본 발명에서 클라이언트(120)는 서버(100)의 전송특성을 기반으로 요청 데이터 구간 및 네트워크 소켓 연결 개수 및 시점을 결정한다. 상세한 설명은 도 3 내지 도 6에서 설명하기로 한다.
서버(100)는 클라이언트(120)의 요청에 따라 멀티미디어 스트리밍 서비스를 제공하며, 이를 위해 각종 멀티미디어 콘텐츠를 데이터베이스화하여 저장한다.
도 2는 본 발명에 따른 서버의 전송 특성을 나타내는 그래프이다.
도 2를 참조하면, 스트리밍 서버의 네트워크 전송 패턴을 표현하고 있으며, 대부분 스트리밍 서버의 가지는 전송패턴이라고 할 수 있다. 스트리밍 서버의 전송 특성을 보면, 클라이언트의 초기 버퍼링 시간을 줄이기 위해, 서버는 클라이언트의 초기 데이터 요청 시에 데이터 전송을 빠르게 보내는 특성이 있다. 예를 들어, 서버는 0~x 시간 동안에(200) 멀티미디어 콘텐츠의 전송속도 높고 이후에는 완만한 전송속도를 보이는 특성이 있다.
도 3은 본 발명의 제1 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 3을 참조하면, 클라이언트는 300단계에서 멀티미디어 콘텐츠 재생 이벤트가 발생할 시, 302단계로 진행하여 서버의 전송특성 값이 데이터베이스에 있는지를 확인하다. 서버의 전송특성 값은 클라이언트의 내부 메모리에 저장되어 갱신되는 값이다. 구현에 따라, 별도의 서버에 저장되어 갱신될 수 있으며 이때 클라이언트는 해당 서버에 서버의 전송특성 값을 요청하거나 다수 서버에 대한 전송특성 값의 리스트를 요청할 수 있다.
이후, 클라이언트는 304단계에서 서버의 전송특성 값이 데이터베이스에 있을 시, 306단계로 진행하고 서버의 전송특성 값이 데이터베이스에 없을 시 310단계로 진행한다.
클라이언트는 306단계에서 서버의 전송특성 값을 기반으로 요청 데이터 구간, 네트워크 소켓 연결 개수 및 시점을 결정한다. 예를 들어, 초기에 데이터 패킷을 빨리 보내는 구간을 요청 데이터 구간으로 결정하고, 요청 데이터 크기에 따라 네트워크 소켓 연결 개수를 결정한다. 네트워크 소켓 연결을 동시에 한 개 이상 사용하여 동일 시각에 더 많은 데이터를 받을 수 있다. 그리고, 네트워크 연결 시점은 요청 데이터 구간이 종료되기 전에 새로운 네트워크 연결을 시도한다. 예를 들어, 서버에서 데이터를 요청 데이터 구간에 대응하는 1MB를 전송한다면, 새로운 네트워크 연결은 클라이언트가 800KB 정도 수신하는 시점에 새로운 네트워크 연결을 시도한다. 또한, 스트리밍 플레이어의 버퍼링 크기를 알고 있다면, 버퍼링 크기만큼 처음 채우기 위해 새로운 연결 개수를 최소화할 수 있다. 이는 버퍼링 구간 내에서 새로운 네트워크 연결이 자주 추가되면 기존보다 버퍼링 시간이 걸릴 수 있기 때문이다.
한편, 네트워크 연결 개수를 결정하는데 있어서, 요청 데이터 크기에 따라 동일 시각에 보통 두 개 이상의 네트워크 소켓 연결을 할 수 있지만, 한 개의 네트워크 소켓 연결을 선택할 수도 있다. 예를 들어, 서버가 같은 클라이언트에서 한 개 이상의 네트워크 스트리밍 소켓 연결을 지원하지 않는 경우 혹은 클라이언트의 네트워크 환경 또는 클라이언트의 제약적인 성능 등의 이유로 인해 한 개 연결이 최적인 경우이다. 클라이언트는 한 개 연결이 최적이라고 판단되면, 동시에 두 개 이상의 네트워크 스트리밍 소켓 연결로 인한 성능 향상 대신, 요청 데이터 구간에 대해 연결과 끊음을 반복하여 성능 향상이 될 수 있다. 이는 서버가 네트워크 소켓 연결 초기에 데이터를 빨리 보내 주는 점을 활용하여 빨리 보내 주는 부분이 계속 이어지는 효과를 얻을 수 있기 때문이다. 즉, 결정된 요청 데이터 구간만큼 데이터를 요청한 후, 모두 데이터를 수신하게 되면 네트워크 소켓 연결을 끊고 다시 네트워크 소켓 연결을 연결하여 앞에서 요청한 데이터 구간만큼 다시 요청하게 된다. 이와 같은 과정을 반복하게 되면 서버에서 빠른 속도로 주는 효과를 계속 이어나갈 수 있다.
이후, 클라이언트는 308단계에서 결정된 요청 데이터 크기, 네트워크 연결 개수 및 시점을 고려하여, 멀티미디어 콘텐츠를 서버에 요청한다.
한편, 클라이언트는 서버의 전송특성 값이 데이터베이스에 없을 시 310단계에서 디폴트 값에 따라 멀티미디어 콘텐츠를 서버에 요청한다. 디폴트 값은 서버 전송특성에 대한 통계 값으로 결정될 수 있다.
이후, 클라이언트는 312단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신한다.
이후, 클라이언트는 314단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하는 동안에, 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정한다.
이후, 클라이언트는 316단계에서 이전 데이터베이스에 있는 전송특성 값 대신 측정된 전송특성 값으로 갱신한다.
이후, 본 발명의 절차를 종료한다.
제1 실시 예에는 데이터베이스에 전송특성 값의 유무에 상관없이 항상 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정하여 갱신한다. 하지만, 제2 실시 예에처럼, 데이터베이스에 전송특성 값이 없을 때만 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정하여 갱신한다. 또 따른 제3 실시 예에처럼, 데이터베이스에 전송특성 값이 없을 때 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정하고, 측정 이후에 현재 연결을 끊고 측정된 전송특성 값을 이용하여 새로운 연결을 요청할 수도 있다.
도 4는 본 발명의 제2 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 4를 참조하면, 클라이언트는 400단계에서 멀티미디어 콘텐츠 재생 이벤트가 발생할 시, 402단계로 진행하여 서버의 전송특성 값이 데이터베이스에 있는지를 확인하다. 서버의 전송특성 값은 클라이언트의 내부 메모리에 저장되어 갱신되는 값이다. 구현에 따라, 별도의 서버에 저장되어 갱신될 수 있으며 이때 클라이언트는 해당 서버에 서버의 전송특성 값을 요청하거나 다수 서버에 대한 전송특성 값의 리스트를 요청할 수 있다.
이후, 클라이언트는 404단계에서 서버의 전송특성 값이 데이터베이스에 있을 시, 406단계로 진행하고 서버의 전송특성 값이 데이터베이스에 없을 시 412단계로 진행한다.
클라이언트는 406단계에서 서버의 전송특성 값을 기반으로 요청 데이터 구간, 네트워크 소켓 연결 개수 및 시점을 결정한다. 예를 들어, 초기에 데이터 패킷을 빨리 보내는 구간을 요청 데이터 구간으로 결정하고, 요청 데이터 크기에 따라 네트워크 소켓 연결 개수를 결정한다. 네트워크 소켓 연결을 동시에 한 개 이상 사용하여 동일 시각에 더 많은 데이터를 받을 수 있다. 그리고, 네트워크 연결 시점은 요청 데이터 구간이 종료되기 전에 새로운 네트워크 연결을 시도한다.
한편, 네트워크 연결 개수를 결정하는데 있어서, 요청 데이터 크기에 따라 동일 시각에 보통 두 개 이상의 네트워크 소켓 연결을 할 수 있지만, 한 개의 네트워크 소켓 연결을 선택할 수도 있다. 예를 들어, 서버가 같은 클라이언트에서 한 개 이상의 네트워크 스트리밍 소켓 연결을 지원하지 않는 경우 혹은 클라이언트의 네트워크 환경 또는 클라이언트의 제약적인 성능 등의 이유로 인해 한 개 연결이 최적인 경우이다. 클라이언트는 한 개 연결이 최적이라고 판단되면, 동시에 두 개 이상의 네트워크 스트리밍 소켓 연결로 인한 성능 향상 대신, 요청 데이터 구간에 대해 연결과 끊음을 반복하여 성능 향상이 될 수 있다. 이는 서버가 네트워크 소켓 연결 초기에 데이터를 빨리 보내 주는 점을 활용하여 빨리 보내 주는 부분이 계속 이어지는 효과를 얻을 수 있기 때문이다. 즉, 결정된 요청 데이터 구간만큼 데이터를 요청한 후, 모두 데이터를 수신하게 되면 네트워크 소켓 연결을 끊고 다시 네트워크 소켓 연결을 연결하여 앞에서 요청한 데이터 구간만큼 다시 요청하게 된다. 이와 같은 과정을 반복하게 되면 서버에서 빠른 속도로 주는 효과를 계속 이어나갈 수 있다.
이후, 클라이언트는 408단계에서 결정된 요청 데이터 크기, 네트워크 연결 개수 및 시점을 고려하여, 멀티미디어 콘텐츠를 서버에 요청하고, 410단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하다.
한편, 클라이언트는 서버의 전송특성 값이 데이터베이스에 없을 시 412단계에서 디폴트 값에 따라 멀티미디어 콘텐츠를 서버에 요청한다. 디폴트 값은 서버 전송특성에 대한 통계 값으로 결정될 수 있다.
이후, 클라이언트는 414단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신한다.
이후, 클라이언트는 416단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하는 동안에, 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정한다.
이후, 클라이언트는 418단계에서 데이터베이스에 측정된 전송특성 값으로 저장한다.
이후, 본 발명의 절차를 종료한다.
도 5는 본 발명의 제3 실시 예에 따른 멀티미디어 스트리밍 서비스를 위한 흐름도를 도시하고 있다.
도 5를 참조하면, 클라이언트는 500단계에서 멀티미디어 콘텐츠 재생 이벤트가 발생할 시, 502단계로 진행하여 서버의 전송특성 값이 데이터베이스에 있는지를 확인하다. 서버의 전송특성 값은 클라이언트의 내부 메모리에 저장되어 갱신되는 값이다. 구현에 따라, 별도의 서버에 저장되어 갱신될 수 있으며 이때 클라이언트는 해당 서버에 서버의 전송특성 값을 요청하거나 다수 서버에 대한 전송특성 값의 리스트를 요청할 수 있다.
이후, 클라이언트는 504단계에서 서버의 전송특성 값이 데이터베이스에 있을 시, 506단계로 진행하고 서버의 전송특성 값이 데이터베이스에 없을 시 512단계로 진행한다.
클라이언트는 506단계에서 서버의 전송특성 값을 기반으로 요청 데이터 구간, 네트워크 소켓 연결 개수 및 시점을 결정한다. 예를 들어, 초기에 데이터 패킷을 빨리 보내는 구간을 요청 데이터 구간으로 결정하고, 요청 데이터 크기에 따라 네트워크 소켓 연결 개수를 결정한다. 네트워크 소켓 연결을 동시에 한 개 이상 사용하여 동일 시각에 더 많은 데이터를 받을 수 있다. 그리고, 네트워크 연결 시점은 요청 데이터 구간이 종료되기 전에 새로운 네트워크 연결을 시도한다.
한편, 네트워크 연결 개수를 결정하는데 있어서, 요청 데이터 크기에 따라 동일 시각에 보통 두 개 이상의 네트워크 소켓 연결을 할 수 있지만, 한 개의 네트워크 소켓 연결을 선택할 수도 있다. 예를 들어, 서버가 같은 클라이언트에서 한 개 이상의 네트워크 스트리밍 소켓 연결을 지원하지 않는 경우 혹은 클라이언트의 네트워크 환경 또는 클라이언트의 제약적인 성능 등의 이유로 인해 한 개 연결이 최적인 경우이다. 클라이언트는 한 개 연결이 최적이라고 판단되면, 동시에 두 개 이상의 네트워크 스트리밍 소켓 연결로 인한 성능 향상 대신, 요청 데이터 구간에 대해 연결과 끊음을 반복하여 성능 향상이 될 수 있다. 이는 서버가 네트워크 소켓 연결 초기에 데이터를 빨리 보내 주는 점을 활용하여 빨리 보내 주는 부분이 계속 이어지는 효과를 얻을 수 있기 때문이다. 즉, 결정된 요청 데이터 구간만큼 데이터를 요청한 후, 모두 데이터를 수신하게 되면 네트워크 소켓 연결을 끊고 다시 네트워크 소켓 연결을 연결하여 앞에서 요청한 데이터 구간만큼 다시 요청하게 된다. 이와 같은 과정을 반복하게 되면 서버에서 빠른 속도로 주는 효과를 계속 이어나갈 수 있다.
이후, 클라이언트는 508단계에서 결정된 요청 데이터 크기, 네트워크 연결 개수 및 시점을 고려하여, 멀티미디어 콘텐츠를 서버에 요청하고, 510단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하다.
한편, 클라이언트는 서버의 전송특성 값이 데이터베이스에 없을 시 512단계에서 디폴트 값에 따라 멀티미디어 콘텐츠를 서버에 요청한다. 디폴트 값은 서버 전송특성에 대한 통계 값으로 결정될 수 있다.
이후, 클라이언트는 512단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신한다.
이후, 클라이언트는 516단계에서 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하는 동안에, 서버의 전송특성 측정 알고리즘을 수행하여 전송특성 값을 측정한다.
이후, 클라이언트는 518단계에서 데이터베이스에 측정된 전송특성 값으로 저장한다.
이후, 클라이언트는 520단계에서 현재 멀티미디어 콘텐츠에 대한 연결을 끊고 522단계에서 측정된 전송특성 값을 다시 멀티미디어 콘텐츠를 서버에 요청한다.
이후, 본 발명의 절차를 종료한다.
도 6은 본 발명의 실시 예에 따른 전송특성을 측정하기 위한 흐름도를 도시하고 있다.
도 6을 참조하면, 클라이언트는 600단계에서 m=0으로 설정한다. m은 전송특성 값을 갱신하기 위한 파라미터이다.
이후, 클라이언트는 602단계에서 HTTP GET 요청에 따라 서버로부터 수신되는 패킷에 대해 실시간 비트 전송 속도(bit rate) n를 측정한다. 비트 전송 속도 n은 일정간격(예 100ms~1s 간격) 동안 측정된 평균값이다. 비트 전송 속도 측정은 본 발명에 한정되지 않으며 종래의 비트 전송속도 측정 방법이 적용될 수 있다.
이후, 클라이언트는 604단계에서 패킷 수신이 원활하지 않은 경우 606단계로 진행하여 기정의된 측정값을 사용한다. 여기서, 패킷 수신이 원활한지를 판단하는 이유는, 네트워크 패킷의 수신이 일정하지 않거나 심한 약전계인 경우(즉, 채널상태가 나쁜 환경)에는 측정값에 신뢰성이 떨어지게 된다. 또한, 다른 여러 가지 이유로 측정이 불가능할 수도 있다. 이때, 미리 정의한 측정값을 사용할 수 있으며 이는 수많은 실험 데이터를 통해 나온다. 또한 미리 정의된 값은 다양한 동영상 특성 또는 서비스 특성에 따라 다양한 값이 정의될 수 있다.
이후, 클라이언트는 604단계에서 패킷 수신이 원활한 경우 608단계로 진행하여, m<n인지를 판단한다. 즉, 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 큰지를 판단한다.
만약 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 클 시, 614단계로 진행한다.
반면 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 같거나 작을 시, 610단계로 진행하여, 이전 비트 전송 속도(m)를 현재 측정된 비트 전송 속도(n)로 설정한다.
이후, 612단계로 진행하여 지속적으로 m 값이 변화하는지를 판단하여, m값이 지속적으로 변화할 때, 602단계로 진행하고, m값이 지속적으로 변화가 없을 때, 614단계로 진행한다. m값이 지속적으로 변화한다는 도 2에서처럼 초기 서버가 빨리 전송하는 구간이 지속할 것임을 나타내는 것이고, m값이 지속적으로 변화하지 않는다 것은 도 2에서처럼 초기 서버가 빨리 전송하는 구간 이후에 완만한 전송속도가 유지되는 것을 의미한다.
즉, 지속적으로 측정값 m이 변화가 있으면 계속 실시간 네트워크 비트전송속도 측정하고, 만약 지속적으로 측정값 m 이 변화가 없으면, 이는 서버가 초기에 데이터 빨리 보내는 구간 이후에 나타나는 완만한 전송속도를 유지한다고 판단한다.
이후, 클라이언트는 614단계에서 미리 정의된 측정값을 사용한 경우(606단계), 측정된 값이 이전보다 작아진 경우(608) 또는 지속적으로 측정값 변화가 없는 경우(614단계)에 따라, 서버에서 빨리 전송하는 데이터 크기를 결정한다. 예를 들어, 도 2의 0 - x 까지 시간만큼 스트리밍 서버로부터 전송받은 데이터 크기를 측정한다.
한편, 클라이언트는 서버의 전송 특성 측정이 완료된 후에는 네트워크 소켓 연결 시점 및 개수와 요청 데이터 구간을 결정한다. 이는 네트워크 소켓 연결을 동시에 한 개 이상 하여 동일 시각에 더 많은 데이터를 받을 수 있기 위함이며, 요청 데이터 구간은 최대 스트리밍 성능을 내기 위해 적절한 데이터 구간을 요청하는 것이다.
하지만, 네트워크 연결 개수를 결정하는데 있어서는 동일 시각에 보통 두 개 이상의 네트워크 소켓 연결을 하지만 한 개의 네트워크 소켓 연결을 선택할 수도 있다. 예를 들어 서버가 같은 클라이언트에서 한 개 이상의 네트워크 스트리밍 소켓 연결을 지원하지 않는 경우나 클라이언트에서 네트워크 환경 또는 클라이언트의 제약적인 성능 등의 이유로 인해 한 개 네트워크 소켓 연결이 최적이라고 판단하는 경우이다. 한 개 네트워크 소켓 연결이 최적이라고 판단되면, 동시에 두 개 이상의 네트워크 스트리밍 소켓 연결로 인한 성능 향상 대신, 한 개 네트워크 소켓 연결에서 요청 데이터 구간에 대해 연결과 끊음을 반복하여 성능 향상이 될 수 있다. 이는 서버가 네트워크 소켓 연결 초기에 데이터를 빨리 보내 주는 점을 활용하여 빨리 보내 주는 부분이 계속 이어지는 효과를 얻을 수 있기 때문이다. 즉, 결정된 요청 데이터 구간만큼 데이터를 요청한 후 모두 수신하면 네트워크 소켓 연결을 끊고 다시 네트워크 소켓을 연결하여 앞에서 요청한 데이터 구간만큼 다시 요청하게 된다. 이와 같은 과정을 반복하게 되면 서버에서 빠른 속도로 주는 효과를 계속 이어나갈 수 있다.
한편, 서버의 전송 특성 측정값을 이용하여 요청 데이터 구간을 결정할 시, 측정된 값을 요청 데이터 크기로 결정할 수 있다. 하지만, 네트워크 스트리밍은 약전계 또는 네트워크 특성으로 인해 패킷이 재전송될 수도 있으므로, 이때 최대한 효율을 높이기 위해서 재전송하는 중복되는 데이터량 줄일 수 있다. 따라서,재전송시 요청 데이터 구간을 I 프레임 또는 GOP(Group Of Pictures) 단위를 참고하여 결정할 수도 있다. 또는 재전송에 상관없이, I 프레임 또는 GOP(Group Of Pictures) 단위로 요청 데이터 구간을 결정할 수 있다.
도 7은 본 발명의 실시 예에 따른 전자 장치를 도시하고 있다. 전자 장치(700)는, 휴대용 전자 장치(portable electronic device)일 수 있으며, 휴대용 단말기(portable terminal), 이동 전화(mobile phone), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant)와 같은 장치일 수 있다. 또한, 이러한 장치들 중 두 가지 이상의 기능을 결합한 장치를 포함하는 임의의 휴대용 전자 장치일 수도 있다.
상기 도 7을 참조하면, 전자 장치(700)는 메모리(710), 프로세서 유닛(processor unit)(720), 제1 무선통신 서브시스템(730), 제2 무선통신 서브시스템(731), 외부 포트(760), 오디오 서브시스템(750), 스피커(751), 마이크로폰(752), 입출력(IO, Input Output) 시스템(770), 터치스크린(780) 및 기타 입력 또는 제어 장치(790)를 포함한다. 메모리(710)와 외부 포트(760)는 다수 개 사용될 수 있다.
프로세서 유닛(720)은, 메모리 인터페이스(721), 하나 이상의 프로세서 (722) 및 주변장치 인터페이스(peripheral interface)(723)를 포함할 수 있다. 경우에 따라서는, 프로세서 유닛(720) 전체를 프로세서로 칭하기도 한다. 메모리 인터페이스(721), 하나 이상의 프로세서(722) 및/또는 주변장치 인터페이스(723)는 별개의 구성요소일 수 있거나 하나 이상의 집적화된 회로에 집적화될 수 있다.
프로세서(722)는 여러 가지의 소프트웨어 프로그램을 실행하여 전자 장치(700)를 위한 여러 기능을 수행하며, 또한 음성 통신 및 데이터 통신을 위한 처리 및 제어를 수행한다. 또한, 이러한 통상적인 기능에 더하여, 프로세서(722)는 메모리(710)에 저장되어 있는 특정한 소프트웨어 모듈(명령어 세트)을 실행하여 그 모듈에 대응하는 특정한 여러 가지의 기능을 수행하는 역할도 한다. 즉, 프로세서(722)는 메모리(710)에 저장된 소프트웨어 모듈들과 연동하여 본 발명의 실시 예의 방법을 수행한다.
본 발명의 일 실시 예는, 프로세서(722)가 서버가 초기 빨리 전송하는 데이터 크기 및 시간을 측정한다. 이는 다양한 스트리밍 서버의 특성이 서로 다른 점을 파악할 수 있다. 프로세서(722)는 멀티미디어 스트리밍 시 실시간으로 데이터 크기 및 시간을 측정하기 힘든 경우는 미리 정의한 값을 사용한다.
또한, 프로세서(722)는 서버의 전송특성 값을 기반으로 스트리밍 성능을 최대화할 수 있는 네트워크 소켓 연결 시점 임계값을 결정한다. 예를 들어, 새로운 네트워크 소켓 연결 시점이 클라이언트에서 너무 늦으면 멀티미디어 스트리밍 시 다운로드 속도 성능이 저하될 수 있으며, 반대로 새로운 네트워크 소켓 연결 시점이 너무 빠르면 빈번한 소켓 생성 또는 소멸과 잦은 네트워크 연결 통로 생성 또는 소멸이 반복되어 서버 또는 클라이언트에게 필요 이상의 부하를 줄 수 있다.그리고, 네트워크 소켓 연결 개수 또한 서버의 전송특성 값을 기반으로 결정한다.
또한, 프로세서(722)는 한 개의 네트워크 소켓 연결에서 데이터를 지속적으로 얼마나 받을지 판단하여, 요청 데이터 구간을 결정한다. 요청 데이터 구간은 기존에 클라이언트가 서버에 요청한 데이터 구간보다 작거나 같아야 한다. 데이터 구간이 너무 짧거나 길게 되면 멀티미디어 스트리밍 다운로드 성능이 저하될 수 있다.
본 발명의 실시 예의 방법은 도 3 내지 도 6에서 기술된 설명을 참조한다.
프로세서(722)는 하나 이상의 데이터 프로세서, 이미지 프로세서, 또는 멀티미디어 콘텐츠 스트리밍 가속기를 포함할 수 있다. 데이터 프로세서, 이미지 프로세서 또는 멀티미디어 콘텐츠 스트리밍 가속기는 별도로 구성할 수도 있다. 또한, 서로 다른 기능을 수행하는 여러 개의 프로세서로 구성될 수도 있다. 주변 장치 인터페이스(723)는 전자 장치(700)의 입출력 서브시스템(770) 및 여러 가지 주변 장치를 프로세서(221) 및 메모리(710)(메모리 인터페이스를 통하여)에 연결시킨다.
전자 장치(700)의 다양한 구성요소들은 하나 이상의 통신 버스(참조번호 미기재) 또는 스트림 선(참조번호 미기재)에 의해 결합될(coupled) 수 있다.
외부 포트(760)는, 전자 장치(700)를 다른 전자 장치로 직접 연결되거나 네트워크(예컨대, 인터넷, 인트라넷, 무선 LAN 등)를 통하여 다른 전자 장치로 간접적으로 연결하는 데 사용된다. 외부 포트(760)는, 예를 들면, 이들에 한정되지는 않지만, USB(Universal serial Bus) 포트 또는 FIREWIRE 포트 등을 말한다.
센서(791)는 주변장치 인터페이스(723)에 결합되어 여러 가지 기능을 가능하게 할 수 있다. 예를 들어, 움직임 센서 및 광센서가 주변장치 인터페이스(723)에 결합되어 각각 전자 장치의 움직임 감지 및 외부로부터의 빛 감지를 가능하게 할 수 있다. 이외에도, 위치측정 시스템, 온도센서 또는 생체 센서 등과 같은 기타 센서들이 주변장치 인터페이스(723)에 연결되어 관련 기능들을 수행할 수 있다.
카메라 서브시스템(293)은 센서(791)와 결합하여, 사진 및 비디오 클립 레코딩과 같은 카메라 기능을 수행할 수 있다.
하나 이상의 무선 통신 서브시스템(730, 731)을 통해 통신 기능이 수행된다. 무선 통신 서브시스템(730, 731)은 무선 주파수(radio frequency) 수신기 및 송수신기 및/또는 광(예컨대, 적외선) 수신기 및 송수신기를 포함할 수 있다. 제1 통신 서브시스템(730)과 제2 통신 서브 시스템(731)은 전자 장치(700)가 통신하는 통신 네트워크에 따라 구분할 수 있다. 예를 들어, 통신 네트워크는, 이들에 한정하지는 않지만, GSM(Global System for Mobile Communication) 네트워크, EDGE(Enhanced Data GSM Environment) 네트워크, CDMA(Code Division Multiple Access) 네트워크, W-CDMA(W-Code Division Multiple Access) 네트워크, LTE(Long Term Evolution) 네트워크, OFDMA(Orthogonal Frequency Division Multiple Access) 네트워크, Wi-Fi(Wireless Fidelity) 네트워크, WiMax 네트워크 또는/및 Bluetooth 네트워크 등을 통해 동작하도록 설계되는 통신 서브시스템을 포함할 수 있다. 제1 무선 통신 서브시스템(730)과 제2 무선 통신 시스템(731)은 합하여 하나의 무선 통신 서브시스템으로 구성할 수도 있다.
오디오 서브시스템(750)이 스피커(751) 및 마이크로폰(752)에 결합되어 음성 인식, 음성 복제, 디지털 레코딩(recording) 및 전화 기능과 같은 오디오 스트림의 입력과 출력을 담당할 수 있다. 즉, 오디오 서브시스템(750)은 스피커(751) 및 마이크로폰(752)을 통해 사용자와 소통한다(communicate). 오디오 서브시스템(750)은 프로세서 유닛(720)의 주변장치 인터페이스(723)를 통하여 데이터 스트림을 수신하고, 수신한 데이터 스트림을 전기 스트림으로 변환한다. 변환된 전기 스트림(electric signal)는 스피커(751)로 전달된다. 스피커는 전기 스트림을 사람이 들을 수 있는 음파(sound wave)로 변환하여 출력한다. 마이크로폰(752)은, 사람이나 기타 다른 소리원(sound source)들로부터 전달된 음파를 전기 스트림으로 변환한다. 오디오 서브시스템(750)은 마이크로폰(752)으로부터 변환된 전기 스트림을 수신한다. 오디오 서브시스템(750)은 수신한 전기스트림을 오디오 데이터 스트림으로 변환하며, 변환된 오디오 데이터 스트림을 주변 인터페이스 (723)로 전송한다. 오디오 서브시스템(750)은 탈부착 가능한(attachable and detachable) 이어폰(ear phone), 헤드폰(head phone) 또는 헤드셋(head set)을 포함할 수 있다.
입출력(I/O, Input/Output) 서브시스템(770)은 터치 스크린 제어기(771) 및/또는 기타 입력 제어기(772)를 포함할 수 있다. 터치스크린 제어기(771)는 터치 스크린(780)에 결합될 수 있다. 터치 스크린(780) 및 터치 스크린 제어기(771)는, 이하에 한정되지는 않지만, 터치 스크린(780)과의 하나 이상의 접촉점을 결정하기 위한 용량성, 저항성, 적외선 및 표면 음향파 기술들 뿐만 아니라 기타 근접 센서 배열 또는 기타 요소들을 포함하는 임의의 멀티 터치 감지 기술을 이용하여 접촉 및 움직임 또는 이들의 중단을 검출할 수 있다. 기타 입력 제어기(772)는 기타 입력/제어 장치들(290)에 결합될 수 있다. 기타 입력/제어 장치들(790)에 하나 이상의 버튼[스피커와 마이크로폰(2230)의 볼륨 제어를 위한 업/다운 버튼 포함 가능하다. 또한, 버튼은 푸시 버튼(push button) 또는 로커 버튼(rocker button) 등을 사용 가능하다)]. 로커(rocker) 스위치, 섬 휠(thumb-wheel), 다이얼(dial), 스틱(stick), 및/또는 스타일러스와 같은 포인터 장치 등 일수 있다.
터치스크린(780)은 전자 장치(700)와 사용자 사이에 입력/출력 인터페이스를 제공한다. 즉, 터치스크린(780)은 사용자의 터치 입력을 전자 장치(700)에 전달한다. 또한 전자 장치(700)로부터의 출력을 사용자에게 보여주는 매개체이다. 즉, 터치스크린(700)은 사용자에게 시각적인 출력을 보여준다. 이러한 시각적 출력(visual output)은 텍스트(text), 그래픽(graphic), 비디오(video)와 이들의 조합의 형태로 나타난다.
터치스크린(780)은 여러 가지 디스플레이가 사용될 수 있다. 예를 들면, 이에 한정하지는 않지만, LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode) 또는 FLED(Flexible LED)를 사용할 수 있다.
메모리(710)는 메모리 인터페이스(721)에 결합될 수 있다. 메모리(710)는 하나 이상의 자기 디스크 저장 장치와 같은 고속 랜덤 액세스 메모리 및/또는 비휘발성 메모리, 하나 이상의 광 저장 장치 및/또는 플래시 메모리(예컨대, NAND, NOR)를 포함할 수 있다.
메모리(710)는 소프트웨어를 저장한다. 소프트웨어 구성요소는 운영 체제(operating system)(711) 모듈, 통신 모듈(712), 그래픽 모듈(713), 사용자 인터페이스 모듈(714) 및 DB 모듈(715), 카메라 모듈(716), 하나 이상의 애플리케이션 모듈(717) 등을 포함한다. 또한, 소프트웨어 구성요소인 모듈은 명령어들의 집합으로 표현할 수 있으므로, 모듈을 명령어 세트(instruction set)라고 표현하기도 한다. 모듈은 또한 프로그램으로 표현하기도 한다.
운영 체제 소프트웨어(711)[예를 들어, WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, 또는 VxWorks와 같은 내장 운영 체제]는 일반적인 시스템 작동(system operation)을 제어하는 여러 가지의 소프트웨어 구성요소를 포함한다. 이러한 일반적인 시스템 작동의 제어는, 예를 들면, 메모리 관리 및 제어, 저장 하드웨어(장치) 제어 및 관리, 전력 제어 및 관리 등을 의미한다. 이러한 운영 체제 소프트웨어는 여러 가지의 하드웨어(장치)와 소프트웨어 구성요소(모듈) 사이의 통신을 원활하게 하는 기능도 수행한다.
통신 모듈(712)은, 무선통신 서브시스템(730, 731)이나 외부 포트(760)를 통해 컴퓨터, 서버 및/또는 휴대용 단말기 등 다른 전자 장치와 통신을 가능하게 할 수 있다.
그래픽 모듈(713)은 터치스크린(780) 상에 그래픽을 제공하고 표시하기 위한 여러 가지 소프트웨어 구성요소를 포함한다. 그래픽(graphics)이란 용어는 텍스트(text), 웹 페이지(web page), 아이콘(icon), 디지털 이미지(digital image), 비디오(video), 애니메이션(animation) 등을 포함하는 의미로 사용된다.
사용자 인터페이스 모듈(714)은 사용자 인터페이스에 관련한 여러 가지 소프트웨어 구성요소를 포함한다. 사용자 인터페이스의 상태가 어떻게 변경되는지 또는 사용자 인터페이스 상태의 변경이 어떤 조건에서 이루어지는지 등에 대한 내용을 포함한다.
DB 모듈(715)은 측정된 서버의 전송특성 값과 디폴트 서버의 전송특성 값을 데이터베이스로 저장한다.
카메라 모듈(716)은 카메라 관련 프로세스 및 기능들을 가능하게 하는 카메라 관련 소프트웨어 구성요소를 포함한다. 애플리케이션 모듈(717)은 브라우저(browser), 이메일(email), 즉석 메시지(instant message), 워드 프로세싱(word processing), 키보드 에뮬레이션(keyboard emulation), 어드레스 북(address book), 접촉 리스트(touch list), 위짓(widget), 디지털 저작권 관리(DRM, Digital Right Management), 음성 인식(voice recognition), 음성 복제, 위치 결정 기능(position determining function), 위치기반 서비스(location based service) 등을 포함한다. 메모리(710)는 위에서 기술한 모듈 이외에 추가적인 모듈(명령어들)을 포함할 수 있다. 또는, 필요에 따라, 일부의 모듈(명령어들)을 사용하지 않을 수 있다.
본 발명에 더하여, 멀티미디어 콘텐츠 스트리밍 서비스를 수행하기 애플리케이션 모듈(717)은 멀티미디어 스트리밍 처리와 관련한 소프트웨어 구성요소를 포함할 수 있다. 애플리케이션 모듈(215)은 본 발명의 실시 방법에 대응하는 명령어 세트를 포함한다. 본 발명의 실시 예에 따른 명령어는, 멀티미디어 콘텐츠 재생 이벤트가 발생할 시, 서버의 전송특성 값이 데이터베이스에 있는지를 확인하고, 서버의 전송특성 값이 데이터베이스에 있을 시, 서버의 전송특성 값을 기반으로 요청 데이터 구간, 네트워크 소켓 연결 개수 및 시점을 결정하고, 결정된 요청 데이터 크기, 네트워크 연결 개수 및 시점을 고려하여, 멀티미디어 콘텐츠를 서버에 요청하고, 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하다. 그리고, 클라이언트는 서버의 전송특성 값이 데이터베이스에 없을 시, 디폴트 값에 따라 멀티미디어 콘텐츠를 서버에 요청하고, 이후 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신한다. 또한, 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하는 동안에, 서버의 전송 특성 측정 알고리즘을 수행하여 전송특성 값을 측정하고, 이후, 클라이언트는 데이터베이스에 측정된 전송특성 값으로 저장시키는 명령어를 포함한다.
본 발명의 다른 실시 예에 따른 명령어는, 서버의 전송특성 값이 데이터베이스에 없을 시 디폴트 값에 따라 멀티미디어 콘텐츠를 서버에 요청하여, 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하고, 서버로부터 멀티미디어 콘텐츠를 다수 패킷으로 수신하는 동안에, 서버의 전송특성 측정 알고리즘을 수행하여 전송특성 값을 측정하고, 데이터베이스에 측정된 전송특성 값으로 저장하고, 현재 멀티미디어 콘텐츠에 대한 연결을 끊고 측정된 전송특성 값을 다시 멀티미디어 콘텐츠를 서버에 요청하는 명령어를 포함한다.
또한 명령어는, HTTP GET 요청에 따라 서버로부터 수신되는 패킷에 대해 실시간 비트 전송 속도(bit rate) n를 측정하고, 패킷 수신이 원활하지 않은 경우 기정의된 측정값을 사용하고, 패킷 수신이 원활한 경우 608단계로 진행하여, m<n인지를 판단하고(즉, 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 큰지를 판단하고), 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 클 시, 미리 정의된 측정값으로 전송특성 값을 결정하고, 반면 이전 비트 전송 속도(m)가 현재 측정된 비트 전송 속도(n)보다 같거나 작을 시, 이전 비트 전송 속도(m)를 현재 측정된 비트 전송 속도(n)로 설정하고, 지속적으로 측정값 m이 변화가 있으면 계속 실시간 네트워크 비트전송속도 측정하고, 만약 지속적으로 측정값 m 이 변화가 없으면, 이는 서버가 초기에 데이터 빨리 보내는 구간 이후에 나타나는 완만한 전송속도를 유지한다고 판단한다.
또한, 위에서 언급한, 그리고 이하에서 언급할, 본 발명에 따른 전자 장치(700)의 다양한 기능들은 하나 이상의 스트림 프로세싱(processing) 및/또는 애플리케이션 특정 집적 회로(ASIC, Application Specific Integrated circuit)를 포함하는 하드웨어 및/또는 소프트웨어 및/또는 이들의 결합으로 실행될 수 있다.
도 7은 본 발명의 실시 예에 따른 서버 장치를 도시하고 있다.
도 7을 참조하면, 서버 장치는 제어기(800), 데이터베이스(802), 인터페이스부(804)를 포함하여 구성한다.
제어기(800)는 전반전인 서버의 동작을 제어하며, 클라이언트의 멀티미디어 콘텐츠 요청에 따라 데이터베이스(802)에 있는 저장되어 있는 콘텐츠를 인터페이스부(804)를 통해 클라이언트에 전송한다. 이때, 제어기(800)는 전송특성에 따라 멀티미디어 콘텐츠에 대한 스트리밍을 클라이언트에 제공한다.
데이터베이스(802)는 다수의 멀티미디어 콘텐츠를 저장하여, 필요시 제어기(800)로 제공한다.
인터페이스부(804)는 서버와 클라이언트를 연결하는 인터페이스로써, 네트워크 소켓통신을 지원한다.
본 발명은 실시 예에서 과 스트리밍 방식에 기반하여 멀티미디어 콘텐츠 수신에 대해 설명하였지만, 다운로드 방식에 기반하여 멀티미디어 콘텐츠 수신에도 적용할 수 있다.
본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금, 본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM, Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM, Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM, Compact Disc-ROM), 디지털 다목적 디스크(DVDs, Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 전자 장치에 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 전자 장치에 접속할 수 있다.
또한, 통신 네트워크상의 별도의 저장장치가 휴대용 전자 장치에 접속할 수도 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
700: 전자 장치,
710:메모리,
720: 프로세서 유닛,
730: 제1 무선통신 서브시스템,
731: 제2 무선통신 서브시스템
750: 오디오 서브시스템
760: 외부 포트,
751: 스피커
752: 마이크로폰,
770: 입출력 시스템,
780: 터치스크린,
790: 기타 입력 또는 제어 장치.

Claims (32)

  1. 멀티미디어 콘텐츠를 수신하기 위한 방법에 있어서,
    서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 멀티미디어 콘텐츠를 요청하는 과정과,
    상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 과정을 포함하는 방법.
  2. 제1항에 있어서,
    상기 멀티미디어 콘텐츠를 요청하는 과정은,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 기반으로, 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점 중 적어도 하나를 결정하는 과정과,
    상기 결정된 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점에 따라, 요청메시지를 상기 서버로 전송하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 네트워크 소켓 연결 개수를 결정할 시, 스트리밍 재생을 위한 버퍼크기를 더 고려하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 네트워크 소켓 연결 시점은 상기 요청 데이터 구간이 종료되기 전 시점인 것을 특징으로 하는 방법.
  5. 제2항에 있어서,
    상기 요청 데이터 구간은 I 프레임 또는 GOP(Group Of Pictures) 단위에 기반하여 상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간으로 결정되는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 신뢰할 수 없을 때, 기정의된 통계데이터를 사용하여 멀티미디어 콘텐츠를 요청하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신할 시, 네트워크 비트 전송속도를 계산하는 과정과,
    상기 계산된 네트워크 비트 전송속도와 이전 네트워크 비트 전송속도를 비교하여, 상기 비트 전송속도가 지속적으로 변화하는지를 판단하는 과정과,
    상기 비트 전송속도가 지속적으로 변화하지 않는 시점을 기반으로, 상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 결정하는 과정과,
    상기 결정된 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 전송특성 값으로 갱신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간이 결정된 후, 현재 네트워크 소켓 연결을 끊고,
    상기 갱신된 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 상기 멀티미디어 콘텐츠를 다시 요청하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 과정은,
    HTTP(Hypertext Transfer Protocol)를 이용하는 스트리밍 방식 또는 다운로드 방식에 기반하는 것을 특징으로 하는 방법.
  10. 메모리;
    하나 이상의 프로세서; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행 가능하도록 구성되는 하나 이상의 모듈을 포함하는 전자 장치로서,
    상기 모듈은,
    서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 멀티미디어 콘텐츠를 요청하고,
    상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신하는 명령어들을 포함하는 전자장치.
  11. 제10항에 있어서,
    상기 멀티미디어 콘텐츠를 요청하는 명령어는,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 기반으로, 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점 중 적어도 하나를 결정하고,
    상기 결정된 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점에 따라, 요청메시지를 상기 서버로 전송하는 명령어를 포함하는 것을 특징으로 하는 전자장치.
  12. 제11항에 있어서,
    상기 네트워크 소켓 연결 개수를 결정할 시, 스트리밍 재생을 위한 버퍼크기를 더 고려하는 것을 특징으로 하는 전자장치.
  13. 제11항에 있어서,
    상기 네트워크 소켓 연결 시점은 상기 요청 데이터 구간이 종료되기 전 시점인 것을 특징으로 하는 전자장치.
  14. 제11항에 있어서,
    상기 요청 데이터 구간은 I 프레임 또는 GOP(Group Of Pictures) 단위에 기반하여 상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간으로 결정되는 것을 특징으로 하는 전자장치.
  15. 제10항에 있어서,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 신뢰할 수 없을 때, 기정의된 통계데이터를 사용하여 멀티미디어 콘텐츠를 요청하는 명령어를 더 포함하는 것을 특징으로 하는 전자장치.
  16. 제10항에 있어서,
    상기 요청한 멀티미디어 콘텐츠를 상기 서버로부터 수신할 시, 네트워크 비트 전송속도를 계산하고,
    상기 계산된 네트워크 비트 전송속도와 이전 네트워크 비트 전송속도를 비교하여, 상기 비트 전송속도가 지속적으로 변화하는지를 판단하고,
    상기 비트 전송속도가 지속적으로 변화하지 않는 시점을 기반으로, 상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 결정하고,
    상기 결정된 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 전송특성 값으로 갱신하는 명령어를 더 포함하는 것을 특징으로 하는 전자장치.
  17. 제16항에 있어서,
    상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간이 결정된 후, 현재 네트워크 소켓 연결을 끊고,
    상기 갱신된 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 고려하여, 상기 멀티미디어 콘텐츠를 다시 요청하는 명령어를 더 포함하는 것을 특징으로 하는 전자장치.
  18. 제10항에 있어서,
    상기 요청한 멀티미디어 콘텐츠 수신은,
    HTTP(Hypertext Transfer Protocol)를 이용하는 스트리밍 방식 또는 다운로드 방식에 기반하는 것을 특징으로 하는 전자장치.
  19. 멀티미디어 콘텐츠를 전송하기 위한 방법에 있어서,
    데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성이 있으며, 멀티미디어 콘텐츠를 클라이언트로부터 요청받는 과정과,
    상기 요청한 멀티미디어 콘텐츠를 상기 클라이언트로 전송하는 과정을 포함하는 방법.
  20. 제19항에 있어서,
    상기 전송특성은,
    상기 클라이언트가, 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점 중 적어도 하나를 결정하는데 이용되는 것을 특징으로 하는 방법.
  21. 제20항에 있어서,
    상기 네트워크 소켓 연결 개수를 결정할 시, 스트리밍 재생을 위한 버퍼크기를 더 고려하는 것을 특징으로 하는 방법.
  22. 제20항에 있어서,
    상기 네트워크 소켓 연결 시점은 상기 요청 데이터 구간이 종료되기 전 시점인 것을 특징으로 하는 방법.
  23. 제20항에 있어서,
    상기 요청 데이터 구간은 I 프레임 또는 GOP(Group Of Pictures) 단위에 기반하여 상기 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간으로 결정되는 것을 특징으로 하는 방법.
  24. 제19항에 있어서,
    상기 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 신뢰할 수 없을 시, 상기 클라이언트로부터, 기정의된 통계데이터를 기반하여 멀티미디어 콘텐츠를 요청받는 과정을 더 포함하는 것을 특징으로 하는 방법.
  25. 제19항에 있어서,
    상기 전송특성에 따라 상기 멀티미디어 콘텐츠가 상기 클라이언트에 의해 수신될 시, 현재 네트워크 소켓 연결을 끊고,
    상기 클라이언트에 의해 측정된 전송특성에 따라, 상기 멀티미디어 콘텐츠를 다시 요청받는 과정을 더 포함하는 것을 특징으로 하는 방법.
  26. 멀티미디어 콘텐츠를 전송하기 위한 서버 장치에 있어서,
    데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성이 있으며, 멀티미디어 콘텐츠를 클라이언트로부터 요청받고,
    상기 요청한 멀티미디어 콘텐츠를 상기 클라이언트로 전송하는 제어기를 포함하는 장치.
  27. 제26항에 있어서,
    상기 서버의 전송특성은,
    상기 클라이언트가, 요청 데이터 구간 그리고 네트워크 소켓 연결 개수 및 시점 중 적어도 하나를 결정하는데 이용되는 것을 특징으로 하는 장치.
  28. 제27항에 있어서,
    상기 네트워크 소켓 연결 개수를 결정할 시, 스트리밍 재생을 위한 버퍼크기를 더 고려하는 것을 특징으로 하는 장치.
  29. 제27항에 있어서,
    상기 네트워크 소켓 연결 시점은 상기 요청 데이터 구간이 종료되기 전 시점인 것을 특징으로 하는 장치.
  30. 제27항에 있어서,
    상기 요청 데이터 구간은 I 프레임 또는 GOP(Group Of Pictures) 단위에 기반하여 상기 서버가 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간으로 결정되는 것을 특징으로 하는 장치.
  31. 제26항에 있어서,
    상기 제어기는,
    상기 데이터를 전송하는 구간 중 초기 전송속도가 임계치보다 높은 구간을 갖는 전송특성을 신뢰할 수 없을 시, 상기 클라이언트로부터, 기정의된 통계데이터를 기반하여 멀티미디어 콘텐츠를 요청받는 것을 특징으로 하는 장치.
  32. 제26항에 있어서,
    상기 제어기는,
    상기 전송특성에 따라 상기 멀티미디어 콘텐츠가 상기 클라이언트에 의해 수신될 시, 현재 네트워크 소켓 연결을 끊고,
    상기 클라이언트에 의해 측정된 전송특성에 따라, 상기 멀티미디어 콘텐츠를 다시 요청받는 것을 특징으로 하는 장치.
KR1020120028628A 2012-03-21 2012-03-21 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치 KR101397592B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120028628A KR101397592B1 (ko) 2012-03-21 2012-03-21 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치
JP2012287412A JP5669818B2 (ja) 2012-03-21 2012-12-28 マルチメディアコンテンツを受信及び送信するための方法並びに電子装置及びサーバー装置
US13/773,087 US9246966B2 (en) 2012-03-21 2013-02-21 Method and apparatus for receiving multimedia contents
EP13158243.9A EP2642762A3 (en) 2012-03-21 2013-03-07 Method and apparatus for receiving multimedia contents
CN2013100927709A CN103369019A (zh) 2012-03-21 2013-03-21 用于发送和接收多媒体内容的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120028628A KR101397592B1 (ko) 2012-03-21 2012-03-21 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130106942A KR20130106942A (ko) 2013-10-01
KR101397592B1 true KR101397592B1 (ko) 2014-05-20

Family

ID=47998151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120028628A KR101397592B1 (ko) 2012-03-21 2012-03-21 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US9246966B2 (ko)
EP (1) EP2642762A3 (ko)
JP (1) JP5669818B2 (ko)
KR (1) KR101397592B1 (ko)
CN (1) CN103369019A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065643A (zh) * 2014-05-07 2014-09-24 上海文广互动电视有限公司 基于树形逻辑的多媒体网络传输方法及系统
US9715475B2 (en) * 2015-07-21 2017-07-25 BigStream Solutions, Inc. Systems and methods for in-line stream processing of distributed dataflow based computations
US10033778B2 (en) * 2015-09-29 2018-07-24 International Business Machines Corporation Real-time statistical analysis on high speed streaming data
US10305952B2 (en) 2015-11-09 2019-05-28 T-Mobile Usa, Inc. Preference-aware content streaming
US10193943B2 (en) 2015-11-09 2019-01-29 T-Mobile Usa, Inc. Data-plan-based quality setting suggestions and use thereof to manage content provider services
US10728152B2 (en) * 2016-02-08 2020-07-28 T-Mobile Usa, Inc. Dynamic network rate control
KR102165837B1 (ko) 2019-04-03 2020-10-14 네이버웹툰컴퍼니 주식회사 효과적인 적응형 비트레이트 스트리밍을 위한 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525693A (ja) 2003-02-13 2006-11-09 ノキア コーポレイション マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法
JP4194837B2 (ja) 2000-08-02 2008-12-10 ノキア コーポレイション マルチメディア・ストリーミング・セッションを形成するための方法
KR20090043833A (ko) * 2007-10-30 2009-05-07 한국전자통신연구원 단말의 핸드오버를 대비한 스트리밍 데이터 버퍼링을지원하는 방법
KR20100086178A (ko) * 2009-01-22 2010-07-30 에스케이 텔레콤주식회사 영상 전송 시스템 및 방법

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000228669A (ja) * 1999-02-08 2000-08-15 Hitachi Ltd ストリーム配送システムにおけるストリームデータ配送方法
US6449658B1 (en) 1999-11-18 2002-09-10 Quikcat.Com, Inc. Method and apparatus for accelerating data through communication networks
US6377974B1 (en) 2000-01-19 2002-04-23 Speedbit Ltd. Methods and apparatus for downloading a file from a server
US7003580B1 (en) 2000-12-29 2006-02-21 Sprint Communications Company L.P. Bandwidth boost using a wireless communication path
US20020095509A1 (en) 2001-01-17 2002-07-18 World Channel Inc. Streaming booster and the method thereof
JP2002281103A (ja) * 2001-03-19 2002-09-27 Nippon Hoso Kyokai <Nhk> 蓄積連続メディア転送方法及びシステム及び蓄積連続メディア転送プログラム
JP2003288290A (ja) * 2002-03-28 2003-10-10 Nippon Telegr & Teleph Corp <Ntt> ファイル配信方法
US7228317B1 (en) 2002-06-18 2007-06-05 Yahoo! Inc. Method and apparatus for accelerating and improving access to network files
CN1695135A (zh) 2002-09-17 2005-11-09 伊迪蒂克公司 用于封装和分发数据的系统和方法
US7650421B2 (en) 2002-12-30 2010-01-19 Microsoft Corporation Adaptable accelerated content streaming
US20050021739A1 (en) 2003-05-15 2005-01-27 Carter Sharon E. Methods, systems and computer program products for communicating the expected efficacy of invoking a network turbo boost service
US8239516B2 (en) 2003-05-15 2012-08-07 At&T Intellectual Property I, L.P. Methods, systems and computer program products for proactively offering a network turbo boost service to end users
FR2855353A1 (fr) 2003-05-21 2004-11-26 France Telecom Procede et systeme de gestion de bande passante pour la mise en oeuvre d'un service de video a la demande presentant plusieurs modes d'acces, programme d'ordinateur et dispositif correspondants
US7690003B2 (en) 2003-08-29 2010-03-30 Fuller Jeffrey C System and method for increasing data throughput using thread scheduling
US7774499B1 (en) 2003-10-30 2010-08-10 United Online, Inc. Accelerating network communications
GB0326626D0 (en) 2003-11-14 2003-12-17 Filewave International Holding A method in a network of the delivery of files
WO2007148300A2 (en) 2006-06-20 2007-12-27 Gal Zuckerman Methods and systems for push-to-storage
JP4895016B2 (ja) 2006-09-28 2012-03-14 三洋電機株式会社 撮像装置
US8224981B2 (en) * 2006-11-30 2012-07-17 Speedbit Ltd. Accelerated multimedia file download and playback
JP5169178B2 (ja) 2007-11-29 2013-03-27 ソニー株式会社 配信サーバおよび配信サーバにおけるコンテンツ配信方法
CN101453295A (zh) 2007-12-06 2009-06-10 英业达股份有限公司 根据客户端的数据处理速度调整网络数据发送速度的方法
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
CN101321192B (zh) 2008-06-20 2010-12-15 南京大学 能使p2p流媒体系统中数据发布源快速切换的方法
US7886073B2 (en) 2008-08-08 2011-02-08 Cisco Technology, Inc. Systems and methods of reducing media stream delay
CN101383959B (zh) 2008-10-23 2012-01-11 中兴通讯股份有限公司 流媒体业务中获取关键帧的方法、系统及用户设备
KR101064002B1 (ko) 2008-11-24 2011-09-08 한국과학기술원 다중 인터페이스를 탑재한 이동 단말 및 멀티미디어 스트리밍 수신 방법, 다중 망을 이용한 멀티미디어 스트리밍 제공 서버 및 그 방법
EP2219342A1 (en) 2009-02-12 2010-08-18 BRITISH TELECOMMUNICATIONS public limited company Bandwidth allocation control in multiple video streaming
US9948708B2 (en) * 2009-06-01 2018-04-17 Google Llc Data retrieval based on bandwidth cost and delay
US8205004B1 (en) * 2009-06-26 2012-06-19 Adobe Systems Incorporated Multi-bit-rate streaming delivery
US20110055312A1 (en) 2009-08-28 2011-03-03 Apple Inc. Chunked downloads over a content delivery network
CN101640895B (zh) 2009-08-31 2012-03-21 北京邮电大学 一种保证流媒体服务质量的方法及系统
WO2011109788A1 (en) 2010-03-05 2011-09-09 Veetle, Inc. Pod-based server backend infrastructure for peer-assisted applications
US8386621B2 (en) 2010-03-12 2013-02-26 Netflix, Inc. Parallel streaming
US8902967B2 (en) 2010-03-31 2014-12-02 Citrix Systems, Inc. Systems and methods for distributed media stream transcoding and sharing
US20110299588A1 (en) 2010-06-04 2011-12-08 Apple Inc. Rate control in video communication via virtual transmission buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4194837B2 (ja) 2000-08-02 2008-12-10 ノキア コーポレイション マルチメディア・ストリーミング・セッションを形成するための方法
JP2006525693A (ja) 2003-02-13 2006-11-09 ノキア コーポレイション マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法
KR20090043833A (ko) * 2007-10-30 2009-05-07 한국전자통신연구원 단말의 핸드오버를 대비한 스트리밍 데이터 버퍼링을지원하는 방법
KR20100086178A (ko) * 2009-01-22 2010-07-30 에스케이 텔레콤주식회사 영상 전송 시스템 및 방법

Also Published As

Publication number Publication date
JP5669818B2 (ja) 2015-02-18
EP2642762A2 (en) 2013-09-25
US20130254345A1 (en) 2013-09-26
CN103369019A (zh) 2013-10-23
EP2642762A3 (en) 2015-05-20
KR20130106942A (ko) 2013-10-01
JP2013198149A (ja) 2013-09-30
US9246966B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
KR101397592B1 (ko) 멀티미디어 콘텐츠를 수신하기 위한 방법 및 장치
WO2020221190A1 (zh) 小程序状态同步方法、设备和计算机存储介质
KR102154800B1 (ko) 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
KR20140037673A (ko) 네트워크의 연결 상태를 변경할 수 있는 전자 장치 및 방법
US9860742B2 (en) Bandwidth estimation-based streaming content processing method and apparatus of terminal
WO2015058613A1 (zh) 一种检测数据包的方法、装置及存储介质
KR20150043373A (ko) 주변 디바이스와의 컨텐츠 공유
WO2021012952A1 (zh) 消息处理方法、装置及电子设备
KR101989016B1 (ko) 전자장치에서 영상통화중 파일 전송 방법 및 장치
KR20150079371A (ko) 단말기에서 근전도 검사 장치로 데이터를 전송하기 위한 장치, 시스템 및 방법
WO2018049971A1 (zh) 热点网络切换方法及终端
CN111245854B (zh) 一种媒体传输方法、媒体控制方法及装置
US20110167345A1 (en) Method and apparatus for selective media download and playback
KR20140025940A (ko) 터치 시간에 따라 컨텐츠의 페이지 수를 이동시키는 전자 장치 및 방법
WO2015062234A1 (zh) 移动终端资源处理方法、装置和设备
US20130290495A1 (en) Method of setting optimal ping interval and electronic device therefor
US20140223500A1 (en) Method and system for transmitting wirelessly video in portable terminal
KR101876394B1 (ko) 단말기에 미디어 데이터를 재생하는 방법 및 장치
KR102043127B1 (ko) 메신저 애플리케이션을 이용하여 데이터를 전송하는 전자 장치 및 방법
KR102140294B1 (ko) 전자 장치의 광고 방법 및 그 전자 장치
KR20150084192A (ko) 사운드 제공 방법 및 이를 구현하는 전자 장치
WO2015117550A1 (en) Method and apparatus for acquiring reverberated wet sound
CN106331887B (zh) 网页播放器的调用方法、多媒体文件的播放方法和装置
WO2021248988A1 (zh) 跨终端录屏方法、终端设备及存储介质
US10853412B2 (en) Scenario-based sound effect control method and electronic device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20170427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 5