KR100556748B1 - 스트리밍 데이터의 동적 버퍼 관리 방법 - Google Patents

스트리밍 데이터의 동적 버퍼 관리 방법 Download PDF

Info

Publication number
KR100556748B1
KR100556748B1 KR1020030092681A KR20030092681A KR100556748B1 KR 100556748 B1 KR100556748 B1 KR 100556748B1 KR 1020030092681 A KR1020030092681 A KR 1020030092681A KR 20030092681 A KR20030092681 A KR 20030092681A KR 100556748 B1 KR100556748 B1 KR 100556748B1
Authority
KR
South Korea
Prior art keywords
buffer
size
streaming data
streaming
client
Prior art date
Application number
KR1020030092681A
Other languages
English (en)
Other versions
KR20050060943A (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 KR1020030092681A priority Critical patent/KR100556748B1/ko
Publication of KR20050060943A publication Critical patent/KR20050060943A/ko
Application granted granted Critical
Publication of KR100556748B1 publication Critical patent/KR100556748B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations

Landscapes

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

Abstract

본 발명은 스트리밍 데이터의 동적 버퍼 관리 방법에 관한 것으로, 종래에는 클라이언트에 스트리밍 데이터가 서로 다른 시간 간격을 가지고 수신되므로 버퍼를 사용하여 스트리밍 서비스의 연속성을 보장하고 버퍼 용량을 효율적으로 사용해야 할 필요성이 있었다. 이러한 필요성을 감안한 본 발명은 현재 스트리밍 데이터 저장에 할당된 버퍼의 사용 비율을 계산하는 단계와; 상기 버퍼 사용 비율의 레벨을 판단하여 레벨 크기에 따라 버퍼 크기를 조절하는 단계로 이루어져 동적 버퍼를 사용하여 버퍼의 저장 용량을 네트워크 상황에 맞게 조절함으로써 사용자에게 연속적인 스트리밍 서비스를 제공할 수 있는 효과가 있다.

Description

스트리밍 데이터의 동적 버퍼 관리 방법{DYNAMIC BUFFER MANAGEMENT METHOD FOR STREAMING DATA}
도 1은 종래 클라이언트에 수신된 스트리밍 데이터의 도착 시간 간격이 불규칙하여 스트리밍 재생이 단절됨을 설명하는 예시도.
도 2는 종래 클라이언트에 수신된 스트리밍 데이터의 시간 간격이 모두 일정하여 스트리밍 재생이 이상적임을 설명하는 예시도.
도 3은 종래 클라이언트에 수신된 스트리밍 데이터의 시간 간격이 매우 불규칙하여 스트리밍 재생이 단절됨을 설명하는 예시도.
도 4는 본 발명의 실시 예에 따른 스트리밍 데이터의 동적 버퍼 관리 방법의 동작 흐름도.
도 5는 본 발명의 실시 예에 따른 클라이언트로 수신되는 스트리밍 데이터의 딜레이 지터에 따라 버퍼 크기를 가변함을 설명하는 예시도.
본 발명은 스트리밍 데이터의 동적 버퍼 관리 방법에 관한 것으로, 특히 스트리밍 데이터의 딜레이 지터에 따라 버퍼 크기를 가변하여 연속적인 스트리밍 서 비스를 제공할 수 있게 한 스트리밍 데이터의 동적 버퍼 관리 방법에 관한 것이다.
서버에서 클라이언트로 스트리밍 데이터를 전송할 때 주변 네트워크 전송 상황에 따라 딜레이 지터 값이 시간에 따라 서로 다르게 나타날 수 있다. 즉, 네트워크 전송 환경이 매우 양호할 때에는 전송되는 스트리밍 데이터가 일정한 시간 간격을 두고 수신되지만, 네트워크 전송 환경이 매우 열악한 상황에서는 클라이언트로 수신되는 스트리밍 데이터간의 시간 간격이 매우 불규칙하게 된다.
일반적으로 네트워크 전송 환경이 매우 불규칙하다고 할 때, 클라이언트에서 제공되는 텔레비전과 같은 스트리밍 서비스가 매우 불안정하게 동작할 수 있다. 텔레비전 재생 화면이 연속적이지 못하고 단절되므로 사용자는 텔레비전 시청시 불편함을 느낄 수 있다.
도 1은 종래 클라이언트에 수신되는 스트리밍 데이터의 도착 시간 간격이 불규칙하여 스트리밍 재생이 단절됨을 설명하는 예시도이다.
클라이언트에 스트리밍 데이터가 서로 다른 시간 간격을 가지고 수신되는 경우 디코더에서 스트리밍 데이터를 연속적으로 처리하지 못하고 단절될 수 있다. 즉, 비디오 스트리밍, 오디오 스트리밍 데이터가 연속적으로 재생되지 못하게 되므로 스트리밍 서비스의 연속성을 보장받을 수 없다.
클라이언트와 같이 스트리밍 데이터를 실시간으로 처리하는 네트워크 디바이스의 경우 클라이언트로 수신되는 스트리밍 데이터의 딜레이 지터의 값이 0이면 클라이언트에서 스트리밍 데이터를 실시간으로 처리할 수 있다.
도 2는 종래 클라이언트에 수신되는 스트리밍 데이터의 시간 간격이 모두 T 로 일정함을 설명하는 예시도이다.
즉, 클라이언트는 일정한 간격을 두고 수신되는 스트리밍 데이터를 일정 시간 안에 처리하면 되므로 연속적으로 스트리밍 데이터를 처리해서 출력단을 통해 사용자에게 연속적으로 제공해 줄 수 있다.
그러나, 이와 같은 상황은 매우 이상적인 예외 상황이며 일반적으로 스트리밍 데이터간의 시간 간격이 매우 불규칙하므로 스트리밍 데이터의 딜레이 지터 값은 상황에 따라 달라지게 된다.
도 3은 종래 클라이언트에 수신되는 스트리밍 데이터의 시간 간격이 매우 불규칙한 상황을 설명하는 예시도이다.
이와 같은 상황에서는 클라이언트에 수신되는 스트리밍 데이터가 어느 순간에는 수신되지 않다가 다시 어느 순간 갑자기 한꺼번에 집중되어 수신되는 상황이 발생할 수 있다.
이러한 문제점을 해소하기 위해 스트리밍 데이터의 지터 제어를 위한 동적 버터 관리 방법을 제안한다.
따라서, 본 발명은 상기와 같은 문제점을 감안하여 창안한 것으로, 딜레이 지터 값이 매우 가변적인 상황에서 이의 영향을 최소화하기 위해 클라이언트에 버퍼를 두고, 일정량 이상의 스트리밍 데이터를 모은 후 버퍼에서 일정 시간 간격으로 출력한다면 클라이언트의 디코더에서 규칙적인 시간 패턴에 따라 처리할 수 있도록 한 스트리밍 데이터의 동적 버퍼 관리 방법을 제공함에 그 목적이 있다.
또한, 상황에 따라 딜레이 지터 값이 변화하는 현상을 버퍼의 용량 결정에 반영하여 버퍼의 저장 용량을 효율적으로 사용할 수 있도록 한 스트리밍 데이터의 동적 버퍼 관리 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명은, 현재 스트리밍 데이터 저장에 할당된 버퍼의 사용 비율을 계산하는 단계와; 상기 버퍼 사용 비율의 레벨을 판단하여 레벨 크기에 따라 버퍼 크기를 조절하는 단계로 이루어진 것을 특징으로 한다.
이하, 본 발명에 따른 실시 예를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도 4는 본 발명의 실시 예에 따른 스트리밍 데이터의 동적 버퍼 관리 방법의 동작 흐름도로서, 이에 도시된 바와 같이 초기 버퍼의 저장 용량을 정하고 서버로부터 수신되는 스트리밍 데이터를 버퍼에 저장하는 단계와; 상기 버퍼에 저장된 스트리밍 데이터의 크기가 소정 크기를 초과하는지를 판단하여 참이면 버퍼 크기를 소정 배로 늘리고, 거짓이면 버퍼에 저장된 스트리밍 데이터의 크기가 소정 크기 미만인지를 판단하는 단계와; 상기 버퍼에 저장된 데이터의 크기가 소정 크기 미만이면 버퍼 크기를 소정 배로 줄이고 반대로 이상이면 초기 버퍼 크기를 그대로 유 지하는 단계로 이루어진다.
클라이언트는 초기 버퍼의 저장 용량을 정하고 서버로부터 수신되는 스트리밍 데이터를 버퍼에 저장하고 버퍼에 저장된 스트리밍 데이터의 크기가 80퍼센트를 초과하는지를 판단하여 참이면 버퍼 크기를 두 배로 늘린다. 버퍼 크기를 두 배로 늘려 버퍼의 오버플로우를 방지하여 스트리밍 데이터의 손실이 없도록 한다.
스트리밍 데이터의 크기가 80퍼센트 이하이면 버퍼에 저장된 스트리밍 데이터의 크기가 20퍼센트 미만인지를 판단한다. 상기 저장된 데이터 크기가 20퍼센트 미만이면 버퍼 크기를 반으로 줄인다. 버퍼 크기를 반으로 줄여 버퍼 사용 효율을 증가시킨다.
스트리밍 데이터의 크기가 20퍼센트 이상이면 초기 버퍼 크기를 그대로 유지한다. 스트리밍 데이터의 크기가 20퍼센트에서 80퍼센트 사이에 있는지를 판단하여 버퍼 크기를 증가시킬지 감소시킬지를 결정하여 스트리밍 데이터를 버퍼에 안정적으로 저장한다.
버퍼 사용이 20퍼센트 미만이면 80퍼센트의 저장용량이 낭비되고 있으므로 네트워크 환경과 버퍼 효율을 고려하여 버퍼 크기를 반으로 줄이고, 버퍼 사용이 80퍼센트 초과이면 남은 버퍼 저장용량이 20퍼센트이므로 스트리밍 데이터의 수신 집중에 의해 버퍼 오버플로우가 발생할 수 있으므로 버퍼 크기를 2배로 증가시켜 저장 용량을 늘린다.
버퍼 사용이 20퍼센트 미만일 때 버퍼 크기를 반으로 줄이고, 버퍼 사용이 80퍼센트 초과일 때 버퍼 크기를 두 배로 늘리는 것은 버퍼 사용이 40퍼센트 대를 유지하게 동작하여 버퍼에 오버플로우 혹은 언더플로우가 발생하지 않도록 한다.
이후, 버퍼에 저장된 스트리밍 데이터의 크기가 80퍼센트를 초과하는지, 20퍼센트 미만인지를 판단한다.
버퍼에 저장된 스트리밍 데이터의 크기가 80퍼센트를 초과하면 버퍼 크기를 1.8배로 늘리고, 20퍼센트 미만이면 버퍼 크기를 0.55배로 줄인다. 초기 버퍼 크기 조절 비율과는 다르게 1.8배, 0.55배로 조절하는 것은 버퍼 사용이 20퍼센트 미만이면 버퍼 사용을 36퍼센트로 조정하고, 버퍼 사용이 80퍼센트 초과이면 버퍼 사용을 44퍼센트로 조정한다.
버퍼 사용이 20퍼센트 미만일 때와 80퍼센트 초과일 때 버퍼 크기 조절 비율을 다르게 설정하여 네트워크 환경에 따라 변화하는 스트리밍 데이터의 수신율에 적응하게 한다.
버퍼 사용이 적을 때 버퍼 크기를 급속히 줄이지 않고 가변적으로 줄이고 버퍼 사용이 많을 때 버퍼 크기를 급속히 늘리지 않게 하여 시간당 버퍼 크기 조절율이 증가하는 것을 방지할 수 있다. 단위 시간 당 버퍼 크기 조절율이 증가하는 것은 버퍼 사용에 불확실성을 증가시키므로 버퍼 크기 조절율이 감소하는 방향으로 버퍼 크기 조절 비율을 조정하도록 한다.
도 5는 본 발명의 실시 예에 따른 클라이언트로 수신되는 스트리밍 데이터의 딜레이 지터에 따라 버퍼 크기를 가변함을 설명하는 예시도로서, 클라이언트로 수신되는 스트리밍 데이터의 딜레이 지터 값은 네트워크 상황에 따라 가변적일 수 있으므로 현재 네트워크 상황에 맞추어 버퍼 크기를 결정하는 동작에 대해 살펴보면 다음과 같다.
초기 시작은 용량이 C1인 버퍼에서 시작하고, 시간이 지남에 따라 버퍼의 오버플로우가 발생할 가능성이 있으면 버퍼의 저장 용량을 x배만큼 확장하여 용량이 C2인 버퍼로 만든다.
버퍼 사용이 증가하면 스트리밍 데이터의 수신 집중에 의해 오버플로우가 발생할 수 있으므로 버퍼 크기를 증가시켜 오보플로우 발생에 대비한다. 버퍼의 오버플로우 판단 기준으로 버퍼에 데이터가 80퍼센트만큼 채워졌는지를 비교하는 것으로 정해 사용한다.
그리고, 버퍼가 오버플로우될 가능성이 있으면 버퍼의 저장 용량을 y배만큼 확장하여 용량이 C3인 버퍼로 만든다. 시간이 지남에 따라 버퍼의 언더플로우가 생길 가능성이 있으면 버퍼의 저장 용량을 z배만큼 축소한다.
버퍼 사용이 감소하면 버퍼 효율이 떨어져 메모리 사용이 감소하므로 할당되는 버퍼 크기를 줄여 버퍼 효율을 증가시킨다. 버퍼 축소 판단 기준으로 버퍼에 데이터가 20퍼센트만큼 채워졌는지를 비교하는 것으로 정해 사용한다.
이와 같이, 버퍼 사용이 많고 적음을 판단하여 버퍼 크기를 변화시켜 버퍼 용량을 자동적으로 결정한다. 네트워크 상황이 이상적이지 못해 발생하는 스트리밍 데이터의 불균일 수신에 적응하여 버퍼 크기를 변화시키면서 현재 네트워크 상황에 맞추어 버퍼의 크기를 조절한다.
이상에서 상세히 설명한 바와 같이, 본 발명은 스트리밍 데이터를 수신하는 바로 처리하지 않고 버퍼에 일정량의 스트리밍 데이터를 저장한 후에 처리하므로 딜레이 지터에 의한 영향을 감소시키고, 현재 네트워크 상황에 맞게 버퍼의 저장 용량을 가변적으로 조절하므로 클라이언트에서 스트리밍 데이터를 효과적으로 처리할 수 있는 효과가 있다.
또한, 동적 버퍼를 사용하여 버퍼의 저장 용량을 네트워크 상황에 맞게 조절함으로써 사용자는 연속적인 스트리밍 서비스를 제공받을 수 있는 효과가 있다.

Claims (4)

  1. 현재 스트리밍 데이터 저장에 할당된 버퍼의 사용 비율을 계산하는 단계와;
    상기 버퍼 사용 비율의 레벨을 판단하여 레벨 크기에 따라 버퍼 크기를 조절하는 단계로 이루어진 것을 특징으로 하는 스트리밍 데이터의 동적 버퍼 관리 방법.
  2. 제1항에 있어서, 상기 버퍼 사용 비율의 계산은
    현재 버퍼 크기와 버퍼에 저장된 스트리밍 데이터의 크기 사이의 비율을 계산하게 이루어진 것을 특징으로 하는 스트리밍 데이터의 동적 버퍼 관리 방법.
  3. 제1항에 있어서, 상기 버퍼 크기의 조절 단계는
    버퍼 사용 비율이 제1소정 크기를 초과하면 버퍼 크기를 소정 배로 늘리는 단계와;
    버퍼 사용 비율이 제2소정 크기 미만이면 버퍼 크기를 소정 배로 줄이는 단계와;
    버퍼 사용 비율이 제2소정 크기 이상이고 제1소정 크기 이하이면 초기 버퍼 크기를 그대로 유지하는 단계로 이루어진 것을 특징으로 하는 스트리밍 데이터의 동적 버퍼 관리 방법.
  4. 제3항에 있어서,
    상기 버퍼의 사용이 적은 때와 많은 때에 각각 크기 조절 비율을 다르게 적용하여 버퍼 크기를 조절하는 단계를 더 포함하여 이루어진 것을 특징으로 하는 스트리밍 데이터의 동적 버퍼 관리 방법.
KR1020030092681A 2003-12-17 2003-12-17 스트리밍 데이터의 동적 버퍼 관리 방법 KR100556748B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030092681A KR100556748B1 (ko) 2003-12-17 2003-12-17 스트리밍 데이터의 동적 버퍼 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030092681A KR100556748B1 (ko) 2003-12-17 2003-12-17 스트리밍 데이터의 동적 버퍼 관리 방법

Publications (2)

Publication Number Publication Date
KR20050060943A KR20050060943A (ko) 2005-06-22
KR100556748B1 true KR100556748B1 (ko) 2006-03-10

Family

ID=37253582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030092681A KR100556748B1 (ko) 2003-12-17 2003-12-17 스트리밍 데이터의 동적 버퍼 관리 방법

Country Status (1)

Country Link
KR (1) KR100556748B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104728B1 (ko) * 2008-10-31 2012-01-11 에스케이플래닛 주식회사 가변 버퍼링을 이용한 스트리밍 서비스 제공 방법 및 장치
KR20170018604A (ko) 2015-08-10 2017-02-20 에스케이텔레콤 주식회사 버퍼용량과 재생속도 조정을 활용한 스트리밍 컨텐츠 제공 방법, 이를 위한 장치, 기록매체 및 컴퓨터 프로그램

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101390192B1 (ko) * 2008-01-17 2014-04-29 삼성전자주식회사 동영상 전송 시스템의 송신 장치 및 수신 장치, 그 버퍼제어 방법
KR100979311B1 (ko) * 2008-11-06 2010-08-31 주식회사 엘지유플러스 VoD 서비스를 위한 버퍼링 처리 방법, 및 적응적 버퍼링기능을 갖는 IPTV 셋톱박스
KR102040675B1 (ko) * 2013-02-06 2019-11-27 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104728B1 (ko) * 2008-10-31 2012-01-11 에스케이플래닛 주식회사 가변 버퍼링을 이용한 스트리밍 서비스 제공 방법 및 장치
KR20170018604A (ko) 2015-08-10 2017-02-20 에스케이텔레콤 주식회사 버퍼용량과 재생속도 조정을 활용한 스트리밍 컨텐츠 제공 방법, 이를 위한 장치, 기록매체 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20050060943A (ko) 2005-06-22

Similar Documents

Publication Publication Date Title
US10277530B2 (en) Allocating portions of a shared network resource based on client device groups
EP2974207B1 (en) Playback stall avoidance in adaptive media streaming
US10200432B2 (en) HTTP streaming client adaptation algorithm based on proportional-integral control
CN110198495B (zh) 一种视频下载和播放的方法、装置、设备和存储介质
US6625656B2 (en) Method and apparatus for continuous playback or distribution of information including audio-visual streamed multimedia
US6625655B2 (en) Method and apparatus for providing continuous playback or distribution of audio and audio-visual streamed multimedia reveived over networks having non-deterministic delays
CN104125482B (zh) 一种流媒体播放方法及装置
KR101982290B1 (ko) 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법
KR20150117204A (ko) 통신 접속을 통한 데이터의 적응형 스트리밍 관리
JPH11161505A (ja) メディア送出装置
US8861372B2 (en) Method and device for fast pushing unicast stream in fast channel change
JP2004172830A (ja) 動画像符号化ビットレート選択方式
Su et al. Smooth control of adaptive media playout for video streaming
CN112702649A (zh) 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备
WO2023051350A1 (zh) 视频播放档位确定方法、视频播放方法及相关装置
CN102547449A (zh) 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器
KR100556748B1 (ko) 스트리밍 데이터의 동적 버퍼 관리 방법
US8095228B2 (en) Data distribution apparatus, its control method, program, and storage medium
CN113645477A (zh) 直播数据处理方法、装置、直播客户端设备及存储介质
Nam et al. Adaptive multimedia stream presentation in mobile computing environment
CN111083094B (zh) 一种流媒体的码流切换方法及装置、计算机存储介质
US20230199267A1 (en) Method and apparatus for processing adaptive multi-view streaming
CN118660185A (zh) 一种视频档位决策方法、装置、设备、存储介质及产品
CN114416236A (zh) 一种虚拟桌面数据的处理方法、装置、设备和介质
JP2022039452A (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091230

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee