KR20210065604A - 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치 - Google Patents

분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치 Download PDF

Info

Publication number
KR20210065604A
KR20210065604A KR1020190154556A KR20190154556A KR20210065604A KR 20210065604 A KR20210065604 A KR 20210065604A KR 1020190154556 A KR1020190154556 A KR 1020190154556A KR 20190154556 A KR20190154556 A KR 20190154556A KR 20210065604 A KR20210065604 A KR 20210065604A
Authority
KR
South Korea
Prior art keywords
fragment
time
stream
latest
index file
Prior art date
Application number
KR1020190154556A
Other languages
English (en)
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 KR1020190154556A priority Critical patent/KR20210065604A/ko
Priority to US17/010,876 priority patent/US11509702B2/en
Publication of KR20210065604A publication Critical patent/KR20210065604A/ko

Links

Images

Classifications

    • H04L65/4092
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • H04L65/604
    • H04L65/607
    • 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/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 

Abstract

분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치가 제공된다. 상기 방법에 따르면, 수신 장치가, 인덱스 서버로부터 채널에 관한 인덱스 파일을 수신하고, 인덱스 파일로부터 수신 장치의 현재 시간과 최초 스트리밍 시작 시점의 시간 차이를 획득한다. 그리고 수신 장치가, 시간 차이를 기반으로, 밀티미디어 스트림이 조각화된 복수의 조각 중에서, 수신할 스트림을 포함하는 조각을 선택하고 요청한다.

Description

분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치{Method and apparatus for selecting and receiving stream in distributed network based multimedia streaming service}
본 발명은 분산 네트워크 기반 멀티미디어 스트리밍 서비스에 관한 것으로, 더욱 상세하게 말하자면, 스트림을 선택하여 수신하는 방법 및 장치에 관한 것이다.
분산 네트워크 기반 멀티미디어 스트리밍 서비스는 사업자측의 서버에서 사용자들에게 멀티미디어 스트림을 전송하는 것과 달리, 사업자측의 서버에서 일부 사용자들에게 멀티미디어 스트림을 전송하면, 해당 사용자들과 나머지 사용자들간의 연동을 통해 멀티미디어 스트림이 공유되는 방식이다. 현재 사용되고 있는 분산 네트워크 기반 멀티미디어 스트리밍 서비스는 사용자간 재생 시점 정보를 공유하고, 공유된 재생시점을 비교하여 보다 최근에 생성된 스트림을 수신하는 방법을 사용하고 있다.
그러나 기존에는 사용자간 재생 시점 정보에 기반하기 때문에 정확한 최신 스트림이 무엇인지 판단할 수 없다. 경우에 따라서는 예전에 생성된 스트림을 최신 스트림으로 오해할 수도 있다. 또한, 우연하게 최신 스트림을 찾아 수신하게 되어도 스트림의 전송 속도 등의 이유로 영상이나 음성이 끊기는 등 정상적인 재생이 어려울 수도 있다.
본 발명이 해결하고자 하는 과제는 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서, 최적의 스트림을 선택하여 수신하는 방법 및 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 방법은, 멀티미디어 스트리밍 서비스에서 스트림을 선택하고 수신하는 방법으로서,수신 장치가, 인덱스 서버로부터 채널에 관한 인덱스 파일 - 상기 인덱스 파일은 소스가 최초 스트리밍 시작 시점에 관련된 정보를 포함 - 을 수신하는 단계; 상기 수신 장치가, 상기 인덱스 파일로부터 상기 수신 장치의 현재 시간과 상기 최초 스트리밍 시작 시점의 시간 차이를 획득하는 단계; 및 상기 수신 장치가, 상기 시간 차이를 기반으로, 밀티미디어 스트림이 조각화된 복수의 조각 중에서, 수신할 스트림을 포함하는 조각을 선택하고 요청하는 단계를 포함한다.
일 구현 예에서, 상기 최초 스트리밍 시작 시점은 상기 소스가 첫번째 멀티미디어 스트림을 생성한 시점에 관련된 것이며, 상기 최초 스트리밍 시작 시점에 관련된 정보는 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜를 포함하며, 표준시 정보를 추가적으로 포함할 수 있다. 이 경우, 상기 시간 차이를 획득하는 단계는 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜와 상기 현재 시간과의 차이를 토대로 상기 시간 차이를 획득할 수 있다.
일 구현 예에서, 상기 조각 스트림을 선택하고 요청하는 단계는, 상기 시간 차이를 기반으로 조각 현황을 분석하는 단계; 상기 분석 결과를 기반으로 상기 수신 장치가 수신할 조각을 선택하는 단계; 및 상기 선택된 조각을 요청하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 조각 현황을 분석하는 것은, 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇번째 조각이 최신 조각이고 몇번째 조각이 최신 스트림을 포함하고 있는지를 분석하는 것을 나타낼 수 있다.
일 구현 예에서, 상기 인덱스 파일은 시간 단위의 키 프레임 생성 주기를 더 포함할 수 있다. 이 경우, 상기 조각 현황을 분석하는 단계는 상기 시간 차이와 상기 시간 단위의 키 프레임 생성 주기를 기반으로 상기 최신 조각을 파악할 수 있다.
일 구현 예에서, 상기 인덱스 파일은 프레임 단위의 키 프레임 생성 주기 및 멀티미디어 스트림의 초당 프레임 수를 더 포함할 수 있다. 이 경우, 상기 조각 현황을 분석하는 단계는 상기 프레임 단위의 키 프레임 생성 주기를 상기 초당 프레임 수로 나누어서 시간 단위의 조각 생성 주기를 획득하는 단계; 및 상기 시간 단위의 조각 생성 주기와 상기 시간 차이를 기반으로 상기 최신 조각을 파악하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 조각을 선택하는 단계는, 임의 조각을 선택하여 수신한 이후부터 서비스 종료때까지 재생이 수행되면서 상기 소스가 생성하는 최신 스트림에 최대한 가까운 스트림을 포함하고 있는 조각을 상기 수신 장치가 수신할 조각으로서 선택할 수 있다.
일 구현 예에서, 상기 선택하는 단계는 상기 수신 장치의 가용한 하향 대역폭과 상기 인덱스 파일에 포함된 멀티미디어 스트림의 비트레이트를 토대로, 상기 수신할 조각을 선택할 수 있다.
일 구현 예에서, 상기 선택하는 단계는 상기 가용 하향 대역폭이 상기 비트레이트의 값보다 작으면, 상기 최신 조각 이전에 생성된 조각을 상기 수신할 조각으로 선택할 수 있다.
일 구현 예에서, 상기 선택하는 단계는 상기 가용 하향 대역폭이 상기 비트레이트의 값보다 크면, 조각의 전송 시간과 조각의 처리 시간 그리고 재생 시간을 추가적으로 고려하여 상기 수신할 조각을 선택할 수 있다.
일 구현 예에서, 상기 선택하는 단계는 상기 최신 조각 이후에 전송되는 다음 조각의 조각 전송 시간과 조각 처리 시간을 더한 시간이, 상기 최신 조각의 조각 처리 시간과 재생 시간을 더한 시간보다 설정 시간 이상 작은 경우에, 상기 최신 조각을 상기 수신할 조각으로 선택할 수 있다.
본 발명의 다른 실시 예에 따른 장치는, 멀티미디어 스트리밍 서비스에서 스트림을 수신하는 장치로서, 네트워크를 통하여 다른 장치와 통신을 수행하도록 구성된 네트워크 인터페이스 장치; 및 상기 네트워크 인터페이스 장치에 연결되어 수신할 스트림을 선택하도록 구성된 프로세서를 포함하며, 상기 프로세서는 상기 네트워크 인터페이스 장치를 통해 인덱스 서버로부터 채널에 관한 인덱스 파일 - 상기 인덱스 파일은 소스가 최초 스트리밍 시작 시점에 관련된 정보를 포함 - 을 수신하고, 상기 인덱스 파일로부터 현재 시간과 상기 최초 스트리밍 시작 시점의 시간 차이를 획득하며, 상기 시간 차이를 기반으로, 밀티미디어 스트림이 조각화된 복수의 조각 중에서, 수신할 스트림을 포함하는 조각을 선택하며, 상기 네트워크 인터페이스 장치를 통해 상기 선택된 조각을 요청하도록 구성된다.
일 구현 예에서, 상기 최초 스트리밍 시작 시점은 상기 소스가 첫번째 멀티미디어 스트림을 생성한 시점에 관련된 것이며, 상기 최초 스트리밍 시작 시점에 관련된 정보는 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜를 포함하며, 표준시 정보를 추가적으로 포함할 수 있다. 이 경우, 상기 프로세서는 구체적으로, 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜와 상기 현재 시간과의 차이를 토대로 상기 시간 차이를 획득하도록 구성될 수 있다.
일 구현 예에서, 상기 상기 프로세서는 구체적으로, 상기 시간 차이를 기반으로 조각 현황을 분석하고, 상기 분석 결과를 기반으로 상기 수신 장치가 수신할 조각을 선택하며, 상기 선택된 조각을 요청하도록 구성될 수 있다. 여기서, 상기 조각 현황을 분석하는 것은, 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇번째 조각이 최신 조각이고 몇번째 조각이 최신 스트림을 포함하고 있는지를 분석하는 것을 나타낼 수 있다.
일 구현 예에서, 상기 인덱스 파일은 시간 단위의 키 프레임 생성 주기를 더 포함할 수 있다. 이 경우, 상기 프로세서는, 상기 시간 차이와 상기 시간 단위의 키 프레임 생성 주기를 기반으로 상기 최신 조각을 파악하도록 구성될 수 있다.
일 구현 예에서, 상기 인덱스 파일은 프레임 단위의 키 프레임 생성 주기 및 멀티미디어 스트림의 초당 프레임 수를 더 포함할 수 있다. 이 경우, 상기 프로세서는, 상기 프레임 단위의 키 프레임 생성 주기를 상기 초당 프레임 수로 나누어서 시간 단위의 조각 생성 주기를 획득하고, 상기 시간 단위의 조각 생성 주기와 상기 시간 차이를 기반으로 상기 최신 조각을 파악하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는, 상기 수신 장치의 가용한 하향 대역폭과 상기 인덱스 파일에 포함된 멀티미디어 스트림의 비트레이트를 토대로, 상기 수신할 조각을 선택하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는, 상기 가용 하향 대역폭이 상기 비트레이트의 값보다 작으면, 상기 최신 조각 이전에 생성된 조각을 상기 수신할 조각으로 선택하고, 상기 가용 하향 대역폭이 상기 비트레이트의 값보다 크면, 조각의 전송 시간과 조각의 처리 시간 그리고 조각의 재생 시간을 추가적으로 고려하여 상기 수신할 조각을 선택하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는, 상기 최신 조각 이후에 전송되는 다음 조각의 조각 전송 시간과 조각 처리 시간을 더한 시간이, 상기 최신 조각의 조각 처리 시간과 재생 시간을 더한 시간보다 설정 시간 이상 작은 경우에, 상기 최신 조각을 상기 수신할 조각으로 선택하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 원활한 재생을 위한 적합한 스트림을 선택할 수 있다. 특히, 피어(peer)가 최신 스트림에 대한 현황을 파악하고 자신에게 적정한 스트림을 포함하는 조각에 대한 정보를 파악하고, 더불어 피어의 다양한 환경 정보에 기반하여 자신에게 적절한 스트림을 포함하는 조각을 선택하여 수신할 수 있다.
따라서, 본 발명의 구성에 따르면, 사용자는 원활하게 재생할 수 있는 최신 스트림을 수신할 수 있으며, 사용자간 재생 동기화도 기대할 수 있다.
도 1은 분산 네트워크 기반 멀티미디어 스트리밍 서비스를 나타낸 도이다.
도 2는 인덱스 파일을 나타낸 예시도이다.
도 3은 본 발명의 실시 예에 따른 인덱스 파일의 예를 나타낸 도이다.
도 4는 본 발명의 실시 예에 따른 인덱스 파일의 다른 예를 나타낸 도이다.
도 5는 본 발명의 실시 예에 따른 멀티미디어 스트림을 조각화하는 것을 나타낸 예시도이다.
도 6은 본 발명의 실시 예에 따른 멀티미디어 스트림을 조각화하는 것을 나타낸 다른 예시도이다.
도 7은 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스 방법의 흐름도이다.
도 8은 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스에서 스트림을 선택하고 수신하는 방법의 흐름도이다.
도 9는 본 발명의 실시 예에 따른 피어의 조각 선택 방법을 나타낸 흐름도이다.
도 10은 본 발명의 실시 예에 따른 조각 전송을 나타낸 예시도이다.
도 11은 본 발명의 실시 예에 따른 수신 장치의 구조를 나타낸 도이다.
도 12는 본 발명의 다른 실시 예에 따른 수신 장치의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
또한, 본 발명의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 본 발명의 실시 예에 따른 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치에 대하여 설명한다.
도 1은 분산 네트워크 기반 멀티미디어 스트리밍 서비스를 나타낸 도이다.
첨부한 도 1에 도시되어 있듯이, 멀티미디어 콘텐츠의 소스가 되는 시드(Seed)는 멀티미디어 스트리밍 채널을 개설하기 위해서 인덱스 서버(index server, IXS)와 연동하여(S101) 인덱스 파일을 업로드한다.
도 2는 인덱스 파일을 나타낸 예시도이다.
시드가 인덱스 서버(IXS)로 업로드하는 인덱스 파일은 첨부한 도 2에 예시된 바와 같이, 버전 정보(version), 명칭(title), 콘텐츠 식별자(content-id), 소유자 식별자(owner-id), 오버레이 식별자(overlay-id), OMS 주소(oms-address), 조작 사이즈(piece-size), 콘텐츠 유형(content-type), 트랜스포트(transport)를 포함한다.
또한, 시드는 해당 채널의 멀티미디어 스트림을 배포하기 위한 오버레이 네트워크의 구성을 위해서 오버레이 관리 서버(OMS)와 연동할 수 있다(S102).
이후 멀티미디어 스트리밍 서비스가 시작되면, 시드는 멀티미디어 스트림을 생성하고 각 스트림을 하나 혹은 그 이상의 조각으로 나누는 작업을 수행할 수 있다. 이 과정에서 멀티미디어 스트림을 수신하려는 피어(peer)(예를 들어, 피어1, 피어 2)들이 인덱스 서버(IXS)와 오버레이 관리 서버(overlay management server, OMS)와의 연동을 통해 시드와 연결될 수 있다. 시드 또는 다른 피어들과 연결된 피어들은 서로의 연동을 통해 조각화된 멀티미디어 스트림을 수신하고, 수신된 조각들에서 멀티미디어 스트림을 추출함으로써 멀티미디어 콘텐츠를 시청할 수 있다.
각 피어는 적정 시간대에 해당하는 멀티미디어 스트림을 수신하기 위해서 적정한 조각을 선택하고, 해당 조각부터 이후 조각들을 수신해야 한다.
각 피어는 적정 시간대에 해당하는 멀티미디어 스트림을 수신하기 위해서 적정한 조각을 선택하고, 해당 조각부터 이후 조각들을 수신해야 한다. 피어가 적정한 조각을 찾을 수 있는 방법을 제공하기 위해서, 본 발명의 실시 예에서는 멀티미디어 스트림을 생성하는 시드가 인덱스 서버(IXS)에 인덱스 파일을 업로드할 때 관련 정보를 개시한다. 특히, 시드가 최초 스트리밍 시작 시점에 관한 정보를 인덱스 파일에 기록한다.
도 3은 본 발명의 실시 예에 따른 인덱스 파일의 예를 나타낸 도이다.
본 발명의 실시 예에 따른 일례에서, 시드는 인덱스 파일에 최초 스트리밍 시작 시점에 관한 정보, 시간 단위의 키 프레임 생성 주기, 멀티미디어 스트림의 비트레이트, 멀티미디어 스트림의 인코딩 유형을 기록할 수 있다.
구체적으로, 본 발명의 실시 예의 일례에 따른 인덱스 파일은 첨부한 도 3에서와 같이, 버전 정보(version), 명칭(title), 콘텐츠 식별자(content-id), 소유자 식별자(owner-id), 오버레이 식별자(overlay-id), OMS 주소(oms-address), 조작 사이즈(piece-size), 콘텐츠 유형(content-type), 트랜스포트(transport) 이외에, 첫번째 멀티미디어 스트림을 생성한 시간(init-time), 첫번째 멀티미디어 스트림을 생성한 날짜(init-date), 표준시(GMT), 시간 단위의 키 프레임 생성 주기(keyFrame-interval-inSec), 멀티미디어 스트림의 비트레이트(bitrate), 멀티미디어 스트림의 인코딩 유형(encoding)을 포함한다. 여기서, 첫번째 멀티미디어 스트림을 생성한 시간(init-time), 첫번째 멀티미디어 스트림을 생성한 날짜(init-date)가 최초 스트리밍 시작 시점에 관한 정보에 대응한다.
도 4는 본 발명의 실시 예에 따른 인덱스 파일의 다른 예를 나타낸 도이다.
본 발명의 실시 예에 따른 다른 예에서, 시드는 인덱스 파일에 최초 스트리밍 시작 시점에 관한 정보, 프레임 단위의 키 프레임 생성 주기, 멀티미디어 스트림의 비트레이트, 멀티미디어 스트림의 인코딩 유형을 기록할 수 있다. 즉, 도 3의 예와는 달리, 시간 단위의 키 프레임 생성 주기 대신에 프레임 단위의 생성 주기가 기록되며, 멀티미디어 스트림의 초당 프레임 수를 함께 기록한다.
이에 따라, 본 발명의 실시 예의 다른 예에 따른 인덱스 파일은 첨부한 도 4에서와 같이, 버전 정보(version), 명칭(title), 콘텐츠 식별자(content-id), 소유자 식별자(owner-id), 오버레이 식별자(overlay-id), OMS 주소(oms-address), 조작 사이즈(piece-size), 콘텐츠 유형(content-type), 트랜스포트(transport) 이외에, 첫번째 멀티미디어 스트림을 생성한 시간(init-time), 프레임 단위의 키 프레임 생성 주기(keyFrame-interval-inFrame), 멀티미디어 스트림의 초당 프레임 수(framerate), 멀티미디어 스트림의 비트레이트(bitrate), 멀티미디어 스트림의 인코딩 유형(encoding), 첫번째 멀티미디어 스트림을 생성한 날짜(init-date), 표준시(GMT)를 포함한다. 여기서, 첫번째 멀티미디어 스트림을 생성한 시간(init-time), 첫번째 멀티미디어 스트림을 생성한 날짜(init-date)가 최초 스트리밍 시작 시점에 관한 정보에 대응한다.
이러한 인덱스 파일은 멀티미디어 스트림을 조각화에 관련된 정보를 기반으로 한다.
도 5는 본 발명의 실시 예에 따른 멀티미디어 스트림을 조각화하는 것을 나타낸 예시도이다.
도 5에서는 설명의 편의를 위해, 비디오와 오디오에 대한 상세한 처리를 나타내지 않고, 멀티미디어 스트림을 조각화하는 것을 단순화시켜 도시한다.
인코더로부터 인코딩된 멀티미디어 스트림이 제공되면, 조각 생성부가 멀티미디어 스트림을 하나 혹은 그 이상의 조각(SG1~SG5)으로 나누며, 이때, 첨부한 도 5에서와 같이, 모든 조각(SG1~SG5)이 동일한 크기를 가진다. 각 조각은 메시지 헤더, 그리고 키 프레임인 리프레시 프레임을 포함하고, 재생할 프레임인 일반 프레임을 포함한다. 조각 생성부에 의해 생성된 각 조각(SG1~SG5)은 송신 버퍼에 저장된다.
도 6은 본 발명의 실시 예에 따른 멀티미디어 스트림을 조각화하는 것을 나타낸 다른 예시도이다.
전술한 도 5의 조각 생성과는 달리, 동일하지 않은 크기의 조각을 생성할 수도 있다. 예를 들어, 도 6에 도시되어 있듯이, 조각 생성부가 멀티미디어 스트림을 하나 혹은 그 이상의 조각(SG1~SG5)으로 나누며, 이때, 각 조각(SG1'~SG5')이 동일하지 않은 크기를 가질 수 있다. 예를 들어, 인코더가 CVBR(constrained VBR(variable bit rate)) 방식을 사용했을 때, 조각 생성부가 멀티미디어 스트림을 동일하지 않은 크기의 조각들로 나눌 수 있다. 인코딩 방식으로 CVBR이 사용되는 경우, 인덱스 파일의 인코딩 유형(encoding)(도 3 및 도 4 참조)의 값을 CVBR로 설정할 수 있다. CVBR로 설정하더라도 각 조각이 독립적으로 재생될 수 있도록 각 조각의 멀티미디어 스트림 데이터 부분이 리프레쉬 프레임 형태의 키 프레임부터 시작되어야 한다.
본 발명의 실시 예에서, 인덱스 파일은 시드가 각 멀티미디어 스트림을 하나 혹은 그 이상의 조각으로 나눌 때, 모든 조각이 동일한 크기를 가지고 있고 독립적으로 재생될 수 있는 것을 가정하고 생성된다. 즉, 각 조각의 멀티미디어 스트림 데이터는 키 프레임으로 시작되며, 독립 재생을 위해서 키 프레임은 H.264의 IDR 프레임과 같은 리프레시 프레임 형태로서 존재하여, 키 프레임 이후의 프레임들이 키 프레임 이전의 프레임들을 참조하지 않음을 가정한다. 그러나 본 발명은 반드시 이에 한정되는 것은 아니다.
다음에는 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스 방법에 대해 설명한다.
도 7은 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스 방법의 흐름도이다.
첨부한 도 7에서와 같이, 시드(1)는 배포하고자 하는 멀티미디어 스트림을 생성한다(S100).
시드(1)는 인덱스 서버(IXS)(2)에 채널 생성을 요청하면서, 인덱스 파일을 업로드한다(S110). 인덱스 파일에 최초 스트리밍 시작 시점에 관한 정보가 포함된다. 인덱스 서버(2)는 시드(1)로부터의 채널 생성 요청에 따라 채널을 생성하고, 생성된 채널에 대응하여 시드(1)로부터 제공된 인덱스 파일을 저장한다(S120).
이후, 멀티미디어 스트림을 수신하려는 피어(3)는 인덱스 서버(2)에 가입을 원하는 채널의 정보를 요청한다(S130). 이에 따라 인덱스 서버(2)는 요청된 채널의 정보를 피어(3)로 제공하며(S140), 피어(3)는 해당 채널의 정보를 담고 있는 인덱스 파일을 수신하고 이를 토대로 시간 차이를 획득한다(S150). 즉, 최초 스트리밍 시작 시점과 현재 시간과의 시간 차이를 획득한다.
피어(3)는 시간 차이를 기반으로 조각 현황을 분석하고, 분석된 다양한 정보들을 기반으로, 자신에게 가장 적합한 조각을 선택하며, 선택된 조각을 요청한다(S160).
이러한 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스 방법에서의 피어의 동작에 대해 보다 구체적으로 살펴보면 다음과 같다.
도 8은 본 발명의 실시 예에 따른 멀티미디어 스트리밍 서비스에서 스트림을 선택하고 수신하는 방법의 흐름도이다.
도 8의 방법은 피어에 의해 수행되며, 피어는 적절한 시간대부터 멀티미디어 스트리밍 서비스를 수신하기 위해 다음과 같이 동작한다.
첨부한 도 8에서와 같이, 피어는 인덱스 서버(IXS)에게 채널 정보를 요청한다(S300). 이러한 피어의 채널 정보 요청에 따라 인덱스 서버(IXS)는 인덱스 파일을 피어로 제공한다. 여기서 인덱스 파일은 도 3 또는 도 4와 같은 정보를 포함할 수 있다.
피어는 채널 정보 요청 후, 인덱스 서버(IXS)로부터 인덱스 파일을 획득한다(S310). 피어는 인덱스 파일로부터 최초 스트리밍 시작 시점에 관한 정보를 획득하고, 현재 시간과 최초 스트리밍 시작 시점 사이의 시간 차이를 획득한다(S320). 예를 들어, 인덱스 파일로부터 첫번째 멀티미디어 스트림을 생성한 시간(init-time), 첫번째 멀티미디어 스트림을 생성한 날짜(init-date), 표준시(GMT)를 이용하여 최초 스트리밍 시작 시점을 획득하고, 현재 시간과 최초 스트리밍 시작 시점 사이의 시간 차이를 획득할 수 있다.
또한, 피어는 인덱스 파일에 포함된 정보를 토대로 조각 현황을 분석한다(S330).
다음, 피어는 분석된 다양한 정보들을 기반으로, 수신할 조가 즉, 자신에게 가장 적합한 조각을 선택하고(S340), 선택된 조각부터 수신할 수 있도록 다른 피어들과 통신한다(S350). 적합한 조각을 선택하는 것에 대해서는 추후에 보다 구체적으로 설명한다.
위와 같이 수행되는 수신 방법에서, 조각 현황을 분석하는 방법에 대해 보다 구체적으로 설명한다.
여기서는 피어와 시드의 시간이 동기화되어 있는 것으로 가정하며, 시간 동기화는 NTP(network time protocol) 등을 통해서 가능할 수 있다.
일례로, 시드가 첫번째 멀티미디어 스트림을 생성하여 하여 최초 스트리밍을 시작한 시점을 "2019년 1월 1일 13시 55분 19초(20190101135519)"라고 가정한다(도 7 참조). 이러한 최초 스트리밍 시작 시점에 관련된 정보가 인덱스 파일에 기록된다. 예를 들어, 첫번째 멀티미디어 스트림을 생성한 날짜(init-date)의 값이 "20190101"로 기록되고, 첫번째 멀티미디어 스트림을 생성한 시간(init-time)의 값이 "135519"로 기록되며, 표준시(GMT)의 값은 "+9"로 기록된다.
위에 기술된 바와 같이, 피어가 채널의 인덱스 파일을 수신하고, 현재 시간과 최초 스트리밍 시작 시점 사이의 시간 차이를 획득한다. 예를 들어, 현재 시간이 "2019년 1월 1일 13시 55분 28초(20190101135528)"이라고 가정한다. 피어는 먼저 인덱스 파일의 init-date의 값 "20190101"과 init-time의 값 "135519"를 토대로, 최초 스트리밍 시작 시점이 20190101135528임을 파악한다. 그리고 최초 스트리밍 시작 시점(20190101135528)과 현재 시간(20190101135528)의 시간 차이 즉, "9"를 획득한다. 이에 따라 최초 스트리밍 시작 시점과 현재 시간의 시간 차이가 9초임을 알 수 있다(도 7 참조).
그리고 시간 차이를 기반으로 조각 현황을 파악한다. 여기서 조각 현황을 파악한다는 것은 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇 번째 조각이 최신 조각이고 몇 번째 조각이 최신 스트림을 포함하고 있는지를 파악하는 것을 의미한다. 이를 위해, 피어는 인덱스 파일에서 제공되는 시간 단위의 키 프레임 생성 주기를 이용하거나, 또는 프레임 단위의 키 프레임 생성 주기 및 멀티미디어 스트림의 초당 프레임 수를 이용한다.
구체적으로, 인덱스 파일에 시간 단위의 키 프레임 생성 주기(KeyFrame-interval-inSec)가 제공되는 경우(도 3 참조), 피어는 자신의 현재 시간과 인덱스 파일로부터 획득된 최초 스트리밍 시작 시점과의 시간 차이 그리고 시간 단위의 키 프레임 생성 주기를 이용하여 몇 번째 조각이 최신 스트림을 포함하고 있는지를 알 수 있다. 예를 들어, 2초마다 키 프레임이 생성되고(KeyFrame-interval-inSec 의 값이 "2"임), 최초 스트리밍 시작 시점과 현재 시간의 시간 차이가 9초인 경우, 4번째 조각이 최신 조각이고 최신 스트림을 포함하는 5번째 조각이 생성 중임을 나타내는 조각 현황을 파악할 수 있다.
이와는 달리, 인덱스 파일에 프레임 단위의 키 프레임 생성 주기(keyFrame-interval-inFrame) 및 멀티미디어 스트림의 초당 프레임 수(framerate)가 제공되는 경우(도 4 참조), 프레임 단위의 키 프레임 생성 주기를 초당 프레임 수로 나누어서 시간 단위의 조각 생성 주기를 획득한다. 예를 들어, 초당 프레임 수가 30 프레임이고(framerate의 값이 30임), 60 프레임 당 키 프레임을 하나 생성한다면(keyFrame-interval-inFrame의 값이 60임)인 경우, 2초마다 키 프레임이 생성됨(시간 단위의 조각 생성 주기가 "2"임)을 알 수 있다. 따라서 2초마다 키 프레임이 생성되고 최초 스트리밍 시작 시점과 현재 시간의 시간 차이가 9초이므로, 4번째 조각이 최신 조각이고 최신 스트림을 포함하는 5번째 조각이 생성 중임을 나타내는 조각 현황을 파악할 수 있다. 최신 조각은 가장 최근에 생성되어 제공된 조각 스트림을 나타낸다.
위에 기술된 바와 같이 조각 현황을 파악한 피어가 자신에게 적합한 조각을 선택하는 방법에 대해 구체적으로 설명한다.
조각 현황을 파악한 피어는 최신 조각 또는 그 이전에 생성된 조각 중에서 자신에게 적합한 조각을 선택한다. 여기서 적합한 조각이란 피어가 해당 조각을 선택하여 수신한 이후부터 서비스 종료때까지 재생이 문제가 없으면서 동시에 시드가 생성하는 최신 스트림에 최대한 가까운 스트림을 포함하고 있는 조각을 의미한다.
적합한 조각을 선택하기 위해 피어를 다양한 파라미터를 고려한다. 즉, 피어의 가용한 하향 대역폭을 고려하여 적합한 조각을 선택할 수 있으며, 이외에도, 키 프레임 생성 주기, 멀티미디어 스트림의 비트레이트 등을 고려하여 적합한 조각을 선택할 수 있다.
파라미터를 고려하여 적합한 조각을 선택하는 방법은 다음과 같다.
예를 들어서, 키 프레임 생성 주기가 2초이고 멀티미디어 스트림의 비트 레이트가 1Mbps라면 각 조각은 2M의 크기를 가진다고 할 수 있다. 이는 피어가 하나의 조각을 수신한 후 재생을 시작하면 2초 이내에 다음 조각이 준비되어 있어야 하므로, 피어의 가용한 하향 대역폭이 최소한 1Mbps 이상이어야 한다는 것을 의미한다. 1Mbps로 수신할 수 있어야 한다는 조건은 시드 혹은 다른 피어들로부터 1Mbps 이상으로 조각을 제공받을 수 있다는 것을 전제로 할 수 있다. 다만, 1Mbps로 수신할 수 있는 경우에 최신의 조각을 선택하지 않을 수 있다. 이는 키 프레임 생성 주기와 전송 시간뿐만 아니라, 송수신단에서의 조각 처리 시간을 고려해야 하기 때문이다. 즉, 시드 측에서는 멀티미디어 스트림을 수신한 후 조각을 생성하고 전송할 때까지 걸리는 시간이 존재하고, 피어 측에서는 조각을 수신한 후 조각에서 멀티미디어 스트림을 재생하기까지의 시간(예를 들어, 조각을 수신한 다음부터 조각을 처리하여 재생부로 전달할 때까지 걸리는 시간)이 존재하며, 따라서 이러한 시간들을 모두 고려해야 한다.
본 발명의 실시 예에서는 위에 기술된 바를 고려하여 다음과 같이 적합한 조각을 선택할 수 있다.
키 프레임 생성 주기가 TKEY이고 멀티미디어 스트림의 비트 레이트가 BMUL이며, 피어가 원하는 멀티미디어 스트림을 가진 조각을 요청하고 수신하여 처리하는데 걸리는 시간을 TPROC라고 하고, 상기 조각에서 추출한 멀티미디어 스트림을 재생완료할 때까지 걸리는 시간을 TPLAY라고 하며, 피어가 조각을 수신하는데 활용할 수 있는 대역폭을 BRECV 라고 하면, 각 조각의 크기는 SPIECE = TKEY * BMUL이고 조각의 전송 시간은 TTRANS = SPIECE/BRECV 이다.
피어는 위에 기술된 바와 같이 조각 현황을 파악한 후, 가장 최신 조각 Pi와 다음 조각 Pi+1에 대해서 다음의 조건을 만족하는지를 판단한다.
Figure pat00001
위의 조건이 만족되면 피어는 해당 조각 즉, 가장 최신 조각 Pi을 적합한 조각으로 선택하여 수신한다.
한편, Pi+1를 Pi의 재생이 끝난 이후까지 수신하지 못한다면, Pi가 아닌 Pi+1와 그 다음 조각 Pi+2에 대해서 다음의 조건을 만족하는지를 판단한다.
Figure pat00002
조건이 만족되면 피어는 해당 조각 즉, Pi+1를 적합한 조각으로 선택하여 수신한다.
위에 기술된 바를 정리하면, 피어는 1부터 시작하여 j를 찾을 때까지 다음의 조건을 만족하는지를 판정하는 과정을 반복한다.
Figure pat00003
여기서, 설정 시간값은 동작의 유연화를 위해서 임의로 설정할 수 있는 값이다.
이러한 수학식 3에 따른 조건을 만족하는 j를 찾으면, j-1번째 조각부터 수신한다. 따라서, 이전 조각의 재생이 완료되기 전에 다음 조각을 수신할 수 있도록, 적합한 조각을 선택할 수 있다.
만약 다양한 품질의 멀티미디어 스트림 중 선택하여 시청할 수 있는 ABR(Adaptive Bit rate) 서비스가 제공될 때, 서비스시 제공되는 메니패스트(manifest) 파일에 기반하여 적합한 조각을 선택하고, 또한 가입할 오버레이 네트워크를 선택할 수 있다. 단, ABR 서비스에 대한 구체적인 방법은 본 발명에서 다루지 않는다.
도 9는 본 발명의 실시 예에 따른 피어의 조각 선택 방법을 나타낸 흐름도이다.
조각 현황을 토대로 적합한 조각을 선택하기 위해, 피어는 인덱스 파일로부터 비트레이트를 획득한다(S500). 그리고 자신의 가용 하향 대역폭과 인덱스 파일에 포함된 비트레이트를 비교한다(S510).
피어의 가용 하향 대역폭이 인덱스 파일에 포함된 비트레이트의 값보다 작으면(또는 작거나 같으면), 최신 조각이 아닌 최신 조각 이전에 생성된 조각을 적합한 조각으로 선택한다(S520). 여기서, ABR 서비스가 제공될 경우, 메니패스트 파일에 기반하여 적절한 품질에 해당하는 멀티미디어 스트림의 비트레이트와의 비교를 다시 수행할 수 있다.
한편, 피어의 가용 하향 대역폭이 인덱스 파일에 포함된 비트레이트의 값보다 크면(또는 크거나 같으면), 피어의 가용 하향 대역폭이 충분한 것으로 판단하여 조각의 전송 시간과 조각의 처리 시간을 토대로 적합한 조각을 선택한다(S530).
도 10은 본 발명의 실시 예에 따른 조각 전송을 나타낸 예시도이다.
피어(3)가 최신 조각인 n번째 조각을 수신하고 해당 조각에 2초 동안 재생할 수 있는 프레임들이 있다고 가정한다. n+1번째 조각은 늦어도 피어가 n번째 조각을 처리하기 전에 도착해야 한다. 따라서 시드(1)에서 조각이 생성되고 해당 조각이 피어(3)에서 수신된 다음에 처리되는 시간을 고려하여, 다음 조각이 시드(1)로부터 피어(3)로 전송되는 시간이 충분히 짧아야 한다. 예를 들어, 첨부한 도 10에서와 같이, 프레임 생성 시간(T11) 이후에 조각이 생성되기까지의 시간인 조각 생성 시간(T12)과 조각이 피어에 수신된 다음에 처리되기까지의 시간인 조각 처리 시간(T23) 그리고 이전 조각이 처리되는 시간인 조각 처리 시간(T21)과 재생 시간(T22)을 고려하여, 시드에서 조각이 생성된 다음에 전송되기까지의 시간인 조각 전송 시간(T13)이 충분히 짧아야 한다.
따라서 단계(S530)에서 조각의 처리 시간을 고려하여 조각의 전송 시간이 충분히 짧은 경우(예를 들어, n+1번째 조각에 대응하는 조각 전송 시간(T13)과 조각 처리 시간(T23)을 더한 시간이, 최신 조각(n번째 조각)의 조각 처리 시간(T21)과 재생 시간(T22)을 더한 시간보다 설정시간 이상 작은 경우, 여기서, T13는 수학식에서의 TRANS에 대응하며, T21과 T23은 수학식에서의 TPROC에 대응하고, T22는 수학식에서의 TPLAY에 대응함), 최신 조각(n번째 조각)을 적합한 조각으로 선택한다. 즉, 피어의 가용 하향 대역폭이 인덱스 파일에 포함된 비트레이트의 값보다 크고 각각의 조각을 충분히 짧은 시간안에 수신할 수 있다면 최신 조각을 적합한 조각으로 선택한다.
다만, 분산 네트워킹의 특성상 시드로부터 직접 조각을 수신하지 않고 중계 전송으로 조각을 받을 수도 있으므로, 조각의 수신 시간은 좀 더 길어질 수도 있다. 이를 고려하여 보다 안정적으로 조각을 수신하기 위해, 최신 조각 이전의 조각을 적합한 조각으로 선택할 수도 있다. 예를 들어, 최신 조각이 n번째 조각이라고 할 때, n-1번째 조각이나 n-2번째 조각을 적합한 조각으로 선택할 수 있다. 이에 대한 설명은 위에 기술된 바를 참조하여, 여기서는 상세한 설명을 생략한다.
이와 같이 피어는 수신을 시작할 조각을 선택한 후, 시드 혹은 자신이 알고 있는 다른 피어들과 통신하여 해당 조각을 수신하기 위한 동작을 수행한다.
도 11은 본 발명의 실시 예에 따른 수신 장치의 구조를 나타낸 도이다.
본 발명의 실시 예에 따른 수신 장치(100)는, 채널 정보 요청부(110), 정보 수신부(120), 선택 정보 획득부(130), 조각 현황 분석부(140), 조각 선택부(150) 및 조각 요청부(160)를 포함한다.
채널 정보 요청부(110)는 인덱스 서버에게 채널 정보를 요청하도록 구성된다.
정보 수신부(120)는 인덱스 서버로부터 요청된 정보를 수신하도록 구성된다. 정보 수신부(120)는 채널 정보 요청에 대응하여 인덱스 서버로부터 인덱스 파일을 수신한다.
선택 정보 획득부(130)는 정보 수신부(120)에 의해 수신된 정보를 기반으로 수신할 조각을 선택하기 위한 정보(선택 기반 정보)를 획득하도록 구성된다. 구체적으로, 선택 정보 획득부(130)는 인덱스 파일로부터 최초 스트리밍 시작 시점을 획득하고, 수신 장치(100)의 현재 시간과 최초 스트리밍 시작 시점의 시간 차이를 선택 기반 정보로서 획득하도록 구성된다.
조각 현황 분석부(140)는 선택 정보 획득부(130)에 의해 획득된 선택 기반 정보를 토대로 시드로부터 전송되는 조각 현황을 분석하도록 구성된다. 조각 현황 분석부(140)는 구체적으로, 현재 시간과 최초 스트리밍 시작 시점의 시간 차이와 인덱스 파일을 토대로, 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇번째 조각이 최신 조각이고 몇번째 조각이 최신 스트림을 포함하고 있는지를 파악한다.
조각 선택부(150)는 조각 현황 분석부(140)의 분석 결과와 수신 장치(100)의 환경 정보를 토대로 최신 조각 또는 그 이전에 생성된 조각 중에서 자신에게 적합한 조각을 선택하도록 구성된다. 여기서 환경 정보는 가용한 하향 대역폭을 포함하며, 이외에도 키 프레임 생성 주기, 멀티미디어 스트림의 비트레이트 등을 더 포함할 수 있다.
조각 요청부(160)는 조각 선택부(150)에 의해 선택된 조각을 다른 장치(시드나 다른 피어들)에게 요청하여 수신하도록 구성된다.
이러한 수신 장치(100)의 각 부(110~160)의 구체적인 동작은 위에 기술된 방법 실시 예를 참조하며, 여기서는 상세한 설명을 생략한다. 이러한 구조의 수신 장치(100)는 피어에 포함되는 형태로 구현될 수 있다.
도 12는 본 발명의 다른 실시 예에 따른 수신 장치의 구조를 나타낸 도이다.
첨부한 도 12에 도시되어 있듯이, 본 발명의 실시 예에 따른 수신 장치(200)는, 프로세서(210), 메모리(220), 입력 인터페이스 장치(230), 출력 인터페이스 장치(240), 네트워크 인터페이스 장치(250) 및 저장 장치(260)를 포함하며, 이들은 버스(270)를 통해 통신할 수 있다.
프로세서(210)는 위의 도 3 내지 도 11을 토대로 설명한 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(210)는 선택 정보 획득부, 조각 현황 분석부, 조각 선택부 및 조각 요청부의 기능을 수행하도록 구성될 수 있다.
프로세서(210)는 중앙 처리 장치(CPU)이거나, 또는 메모리(220) 또는 저장 장치(260)에 저장된 명령을 실행하는 반도체 장치일 수 있다.
메모리(220)는 프로세서(210)와 연결되고 프로세서(210)의 동작과 관련한 다양한 정보를 저장한다. 메모리(220)는 프로세서(210)에서 수행하기 위한 명령어를 저장하고 있거나 저장 장치(260)로부터 명령어를 로드하여 일시 저장할 수 있다. 프로세서(210)는 메모리(220)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 메모리는 ROM(221) 및 RAM(222)를 포함할 수 있다.
본 발명의 실시 예에서 메모리(220)/저장 장치(260)는 프로세서(210)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(210)와 연결될 수 있다.
입력 인터페이스 장치(230)는 입력되는 데이터를 제공받아 프로세서(210)로 전달하도록 구성될 수 있다. 출력 인터페이스 장치(230)는 프로세서(210)의 처리 결과를 출력하도록 구성될 수 있다.
네트워크 인터페이스 장치(250)는 네트워크를 통해 입력되는 데이터를 제공받아 프로세서(210)로 전달하거나, 프로세서(210)의 처리 결과를 네트워크를 통해 다른 장치로 전송하도록 구성될 수 있다. 예를 들어, 네트워크 인터페이스 장치(250)는 전술한 채널 정보 요청부, 정보 수신부, 조각 요청부의 기능을 수행하도록 구성될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (19)

  1. 멀티미디어 스트리밍 서비스에서 스트림을 선택하고 수신하는 방법으로서,
    수신 장치가, 인덱스 서버로부터 채널에 관한 인덱스 파일 - 상기 인덱스 파일은 소스가 최초 스트리밍 시작 시점에 관련된 정보를 포함 - 을 수신하는 단계;
    상기 수신 장치가, 상기 인덱스 파일로부터 상기 수신 장치의 현재 시간과 상기 최초 스트리밍 시작 시점의 시간 차이를 획득하는 단계; 및
    상기 수신 장치가, 상기 시간 차이를 기반으로, 밀티미디어 스트림이 조각화된 복수의 조각 중에서, 수신할 스트림을 포함하는 조각을 선택하고 요청하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 최초 스트리밍 시작 시점은 상기 소스가 첫번째 멀티미디어 스트림을 생성한 시점에 관련된 것이며, 상기 최초 스트리밍 시작 시점에 관련된 정보는 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜를 포함하며, 표준시 정보를 추가적으로 포함하고,
    상기 시간 차이를 획득하는 단계는
    상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜와 상기 현재 시간과의 차이를 토대로 상기 시간 차이를 획득하는, 방법.
  3. 제1항에 있어서,
    상기 조각 스트림을 선택하고 요청하는 단계는,
    상기 시간 차이를 기반으로 조각 현황을 분석하는 단계;
    상기 분석 결과를 기반으로 상기 수신 장치가 수신할 조각을 선택하는 단계; 및
    상기 선택된 조각을 요청하는 단계
    를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 조각 현황을 분석하는 것은, 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇번째 조각이 최신 조각이고 몇번째 조각이 최신 스트림을 포함하고 있는지를 분석하는 것을 나타내는, 방법.
  5. 제4항에 있어서,
    상기 인덱스 파일은 시간 단위의 키 프레임 생성 주기를 더 포함하며,
    상기 조각 현황을 분석하는 단계는
    상기 시간 차이와 상기 시간 단위의 키 프레임 생성 주기를 기반으로 상기 최신 조각을 파악하는, 방법.
  6. 제4항에 있어서,
    상기 인덱스 파일은 프레임 단위의 키 프레임 생성 주기 및 멀티미디어 스트림의 초당 프레임 수를 더 포함하며,
    상기 조각 현황을 분석하는 단계는
    상기 프레임 단위의 키 프레임 생성 주기를 상기 초당 프레임 수로 나누어서 시간 단위의 조각 생성 주기를 획득하는 단계; 및
    상기 시간 단위의 조각 생성 주기와 상기 시간 차이를 기반으로 상기 최신 조각을 파악하는 단계
    를 포함하는, 방법.
  7. 제3항에 있어서,
    상기 조각을 선택하는 단계는, 임의 조각을 선택하여 수신한 이후부터 서비스 종료때까지 재생이 수행되면서 상기 소스가 생성하는 최신 스트림에 최대한 가까운 스트림을 포함하고 있는 조각을 상기 수신 장치가 수신할 조각으로서 선택하는, 방법.
  8. 제4항에 있어서,
    상기 선택하는 단계는
    상기 수신 장치의 가용한 하향 대역폭과 상기 인덱스 파일에 포함된 멀티미디어 스트림의 비트레이트를 토대로, 상기 수신할 조각을 선택하는, 방법.
  9. 제8항에 있어서,
    상기 선택하는 단계는
    상기 가용 하향 대역폭이 상기 비트레이트의 값보다 작으면, 상기 최신 조각 이전에 생성된 조각을 상기 수신할 조각으로 선택하는, 방법.
  10. 제8항에 있어서,
    상기 선택하는 단계는
    상기 가용 하향 대역폭이 상기 비트레이트의 값보다 크면, 조각의 전송 시간과 조각의 처리 시간 그리고 재생 시간을 추가적으로 고려하여 상기 수신할 조각을 선택하는, 방법.
  11. 제10항에 있어서,
    상기 선택하는 단계는
    상기 최신 조각 이후에 전송되는 다음 조각의 조각 전송 시간과 조각 처리 시간을 더한 시간이, 상기 최신 조각의 조각 처리 시간과 재생 시간을 더한 시간보다 설정 시간 이상 작은 경우에, 상기 최신 조각을 상기 수신할 조각으로 선택하는, 방법.
  12. 멀티미디어 스트리밍 서비스에서 스트림을 수신하는 장치로서,
    네트워크를 통하여 다른 장치와 통신을 수행하도록 구성된 네트워크 인터페이스 장치; 및
    상기 네트워크 인터페이스 장치에 연결되어 수신할 스트림을 선택하도록 구성된 프로세서
    를 포함하며,
    상기 프로세서는 상기 네트워크 인터페이스 장치를 통해 인덱스 서버로부터 채널에 관한 인덱스 파일 - 상기 인덱스 파일은 소스가 최초 스트리밍 시작 시점에 관련된 정보를 포함 - 을 수신하고, 상기 인덱스 파일로부터 현재 시간과 상기 최초 스트리밍 시작 시점의 시간 차이를 획득하며, 상기 시간 차이를 기반으로, 밀티미디어 스트림이 조각화된 복수의 조각 중에서, 수신할 스트림을 포함하는 조각을 선택하며, 상기 네트워크 인터페이스 장치를 통해 상기 선택된 조각을 요청하도록 구성되는, 수신 장치.
  13. 제12항에 있어서,
    상기 최초 스트리밍 시작 시점은 상기 소스가 첫번째 멀티미디어 스트림을 생성한 시점에 관련된 것이며, 상기 최초 스트리밍 시작 시점에 관련된 정보는 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜를 포함하며, 표준시 정보를 추가적으로 포함하고,
    상기 프로세서는 구체적으로, 상기 첫번째 멀티미디어 스트림을 생성한 시간 및 날짜와 상기 현재 시간과의 차이를 토대로 상기 시간 차이를 획득하도록 구성되는, 수신 장치.
  14. 제12항에 있어서,
    상기 상기 프로세서는 구체적으로, 상기 시간 차이를 기반으로 조각 현황을 분석하고, 상기 분석 결과를 기반으로 상기 수신 장치가 수신할 조각을 선택하며, 상기 선택된 조각을 요청하도록 구성되며,
    상기 조각 현황을 분석하는 것은, 채널에서 제공하는 멀티미디어 스트림의 조각들 중에서 몇번째 조각이 최신 조각이고 몇번째 조각이 최신 스트림을 포함하고 있는지를 분석하는 것을 나타내는, 수신 장치.
  15. 제14항에 있어서,
    상기 인덱스 파일은 시간 단위의 키 프레임 생성 주기를 더 포함하며,
    상기 프로세서는, 상기 시간 차이와 상기 시간 단위의 키 프레임 생성 주기를 기반으로 상기 최신 조각을 파악하도록 구성되는, 수신 장치.
  16. 제14항에 있어서,
    상기 인덱스 파일은 프레임 단위의 키 프레임 생성 주기 및 멀티미디어 스트림의 초당 프레임 수를 더 포함하며,
    상기 프로세서는, 상기 프레임 단위의 키 프레임 생성 주기를 상기 초당 프레임 수로 나누어서 시간 단위의 조각 생성 주기를 획득하고, 상기 시간 단위의 조각 생성 주기와 상기 시간 차이를 기반으로 상기 최신 조각을 파악하도록 구성되는, 수신 장치.
  17. 제14항에 있어서,
    상기 프로세서는, 상기 수신 장치의 가용한 하향 대역폭과 상기 인덱스 파일에 포함된 멀티미디어 스트림의 비트레이트를 토대로, 상기 수신할 조각을 선택하도록 구성되는, 수신 장치.
  18. 제17항에 있어서,
    상기 프로세서는,
    상기 가용 하향 대역폭이 상기 비트레이트의 값보다 작으면, 상기 최신 조각 이전에 생성된 조각을 상기 수신할 조각으로 선택하고, 상기 가용 하향 대역폭이 상기 비트레이트의 값보다 크면, 조각의 전송 시간과 조각의 처리 시간 그리고 조각의 재생 시간을 추가적으로 고려하여 상기 수신할 조각을 선택하도록 구성되는, 수신 장치.
  19. 제18항에 있어서,
    상기 프로세서는, 상기 최신 조각 이후에 전송되는 다음 조각의 조각 전송 시간과 조각 처리 시간을 더한 시간이, 상기 최신 조각의 조각 처리 시간과 재생 시간을 더한 시간보다 설정 시간 이상 작은 경우에, 상기 최신 조각을 상기 수신할 조각으로 선택하도록 구성되는, 수신 장치.
KR1020190154556A 2019-11-27 2019-11-27 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치 KR20210065604A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190154556A KR20210065604A (ko) 2019-11-27 2019-11-27 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치
US17/010,876 US11509702B2 (en) 2019-11-27 2020-09-03 Method and apparatus for selecting and receiving stream in distribution network-based multimedia streaming service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190154556A KR20210065604A (ko) 2019-11-27 2019-11-27 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210065604A true KR20210065604A (ko) 2021-06-04

Family

ID=75975255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190154556A KR20210065604A (ko) 2019-11-27 2019-11-27 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치

Country Status (2)

Country Link
US (1) US11509702B2 (ko)
KR (1) KR20210065604A (ko)

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1915866A2 (en) 2005-08-12 2008-04-30 Nokia Siemens Networks Gmbh & Co. Kg A multi-source and resilient video on demand streaming system for a peer-to-peer subscriber community
CN100518088C (zh) * 2006-05-24 2009-07-22 中兴通讯股份有限公司 一种流媒体数据内容管理方法
GB2469763B (en) * 2008-02-22 2011-03-09 Ericsson Telefon Ab L M Method and apparatus for obtaining media over a communications network
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
KR101104729B1 (ko) 2008-11-28 2012-01-11 에스케이플래닛 주식회사 최적의 캐시조각 획득방식을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101831775B1 (ko) * 2010-12-07 2018-02-26 삼성전자주식회사 멀티미디어 컨텐츠를 송수신하는 송신 장치 및 수신 장치와, 그 재생 방법
KR20120108138A (ko) 2011-03-23 2012-10-05 한국전자통신연구원 피어-투-피어 기반의 멀티미디어 스트리밍 서비스를 위한 환형 버퍼 및 그 동작 방법
MX2013014269A (es) * 2011-06-08 2014-02-19 Sling Media Pvt Ltd Aparatos, sistemas y metodos para presentar un resumen de un evento de contenido de medios.
US20130124999A1 (en) * 2011-11-14 2013-05-16 Giovanni Agnoli Reference clips in a media-editing application
US9432426B2 (en) * 2013-02-04 2016-08-30 Qualcomm Incorporated Determining available media data for network streaming
CN104469433B (zh) * 2013-09-13 2018-09-07 深圳市腾讯计算机系统有限公司 一种视频直播回看方法及装置
KR102064792B1 (ko) 2013-12-17 2020-01-10 한국전자통신연구원 Http 기반의 멀티미디어 스트리밍 서비스를 위한 네트워크 대역폭 적응적 콘텐츠 생성 방법 및 시스템
US9905271B2 (en) * 2015-06-15 2018-02-27 Sling Media Pvt Ltd Real-time positioning of current-playing-position marker on progress bar and index file generation for real-time content
DE102015218852A1 (de) * 2015-09-30 2017-03-30 Siemens Healthcare Gmbh Verbessertes Verfahren zur Akquisition von Messdaten bei gleichzeitiger Manipulation räumlich getrennter Subvolumina
US20170155697A1 (en) * 2015-12-01 2017-06-01 Le Holdings (Beijing) Co., Ltd. Method and device for processing streaming media
US10313721B1 (en) * 2016-06-22 2019-06-04 Amazon Technologies, Inc. Live streaming media content using on-demand manifests
EP3571848A1 (en) * 2017-01-17 2019-11-27 Labs.FM (Pty) Ltd Content streaming system and method
KR102190235B1 (ko) 2017-06-19 2020-12-11 한국전자통신연구원 피어의 동작 방법 및 피어
US10667016B2 (en) 2017-06-19 2020-05-26 Electronics And Telecommunications Research Institute Peer and method for adjusting starting point of the peer
US10645134B2 (en) 2017-06-19 2020-05-05 Electronics And Telecommunications Research Institute Peer and operation method thereof
KR102135737B1 (ko) 2017-06-19 2020-08-26 한국전자통신연구원 피어 및 피어의 시작 지점 조정 방법
US10432987B2 (en) * 2017-09-15 2019-10-01 Cisco Technology, Inc. Virtualized and automated real time video production system
CN107707937A (zh) * 2017-09-22 2018-02-16 烽火通信科技股份有限公司 基于hls协议的时移优化方法及系统
CN110446113A (zh) * 2019-07-23 2019-11-12 广州易方信息科技股份有限公司 回放ppt与视频流的方法

Also Published As

Publication number Publication date
US11509702B2 (en) 2022-11-22
US20210160296A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
US10034064B2 (en) System and method for advancing to a predefined portion of a decompressed media stream
EP1233591B1 (en) Progressive streaming media rendering
EP2733936A1 (en) Transmission device, method for controlling transmission device, control program, and recording medium
RU2543568C2 (ru) Плавная потоковая передача клиентского мультимедиа без фиксации состояния
WO2017161998A1 (zh) 视频处理方法和装置、计算机存储介质
JP6981257B2 (ja) 情報処理装置および情報処理方法
US20140173055A1 (en) Media streaming method and device using the same
EP2413564B1 (en) Method and apparatus for transmitting and receiving streaming data based on RTSP sessions
JPWO2012096372A1 (ja) コンテンツ再生装置、コンテンツ再生方法、配信システム、コンテンツ再生プログラム、記録媒体、およびデータ構造
US11356493B2 (en) Systems and methods for cloud storage direct streaming
KR20150042191A (ko) 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들
WO2011146898A2 (en) Internet system for ultra high video quality
WO2012011490A1 (ja) コンテンツ取得装置、コンテンツ送信装置、コンテンツ送受信システム、データ構造、制御方法、制御プログラム、及び記録媒体
EP3207686B1 (en) Adaptive bit rates during broadcast transmission in distributed content delivery networks
GB2516112A (en) Methods for providing media data, method for receiving media data and corresponding devices
JP2011082977A (ja) P2pネットワークシステム及びそのデータ送受信方法
US8521844B2 (en) Information processing apparatus and method and program
CN108307248A (zh) 视频播放方法、装置、计算设备及存储介质
Baik et al. VSync: Cloud based video streaming service for mobile devices
JP2023515003A (ja) ネットワークでストリーミングされたコンテンツをクライアントデバイスのプレーヤで再生する方法
JP6305738B2 (ja) メディア再生制御装置、メディア再生制御方法、及びプログラム
KR20210065604A (ko) 분산 네트워크 기반 멀티미디어 스트리밍 서비스에서 스트림을 선택하여 수신하는 방법 및 장치
EP3193508B1 (en) Distribution device and information device
US11622135B2 (en) Bandwidth allocation for low latency content and buffered content
Hesse Design of scheduling and rate-adaptation algorithms for adaptive HTTP streaming

Legal Events

Date Code Title Description
E902 Notification of reason for refusal