KR19990052962A - 연속매체 서버의 동적 버퍼 제어장치 - Google Patents
연속매체 서버의 동적 버퍼 제어장치 Download PDFInfo
- Publication number
- KR19990052962A KR19990052962A KR1019970072520A KR19970072520A KR19990052962A KR 19990052962 A KR19990052962 A KR 19990052962A KR 1019970072520 A KR1019970072520 A KR 1019970072520A KR 19970072520 A KR19970072520 A KR 19970072520A KR 19990052962 A KR19990052962 A KR 19990052962A
- Authority
- KR
- South Korea
- Prior art keywords
- buffer
- disk
- data
- dynamic
- scheduler
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 89
- 230000006835 compression Effects 0.000 claims abstract description 11
- 238000007906 compression Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 5
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
본 발명은 연속매체 서버의 동적 버퍼 제어장치에 관한 것으로, 종래에는 정적인 버퍼공간의 할당은 불필요한 버퍼 공간을 더 할당해서 충분히 활용하지 못하는 결과를 초래하고, 이것은 주어진 메인 메모리로 동시에 수용할 수 있는 클라이언트 수를 늘리는데 걸림돌의 원인이 되는 문제점이 있다. 따라서 본 발명은 압축된 연속매체를 저장하는 디스크(10)와, 상기 디스크(10)로 부터 데이터를 읽어들이는 디스크 드라이버(20)와, 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하는 디스크 스케줄러(30)와, 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당하고, 그 할당된 공간에 연속매체 스트림을 저장하고 있는 자유버퍼풀(45)과, 상기 디스크 스케줄러(30)로 부터의 정보와 메타 데이터를 이용해서 각 클라이언트가 윈도우 주기동안 필요한 최대 버퍼량을 계산해서 매 윈도우의 주기마다 필요한 버퍼의 공간을 상기 자유버퍼풀(45)로 부터 할당하고, 이 할당 결과를 상기 디스크 스케줄러(30)로 전송하는 동적버퍼 제어부(35)와, 상기 동적버퍼 제어부(35)의 제어에 따라 디스크로 부터 읽어오는 과정에 있는 데이터를 저장하는 입력버퍼(41)와, 상기 동적버퍼 제어부(35)의 제어에 따라 클라이언트(60)로 전송되고 있는 데이터를 저장하고 있는 출력버퍼(42)와, 상기 출력버퍼(42)에 저장된 데이터를 네트워크로 전송하는 네트워크부(50)와, 네트워크를 통해 전송되어온 데이터를 디스플레이 해서 이용하는 클라이언트부(60)로 구성하여,버퍼를 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당함으로써 버퍼의 사용량을 최소화하면서, 디스크에서 읽어온 데이터의 처리의 효율성을 극대화하여 동시에 수용할 수 있는 재생 스트림 수를 최대화할 수 있도록 한 것이다.
Description
본 발명은 연속 매체의 비디오 데이터를 제공하는 연속 매체 서버에 관한 것으로, 특히 버퍼를 연속 매체의 가변 비트율 압축 특성에 따라 동적으로 몇 개의 그룹으로 나누어 관리함으로써 버퍼의 사용량을 최소화하면서 처리의 효율성을 극대화하기 위한 연속매체 서버의 동적 버퍼 제어장치에 관한 것이다.
도 1은 종래의 연속매체 서버 구조도로서, 이에 도시한 바와같이, 압축된 연속매체를 저장하는 디스크(10)와, 상기 디스크(10)로 부터 데이터를 읽어들이는 디스크 드라이버(20)와, 버퍼의 상태를 체크하여 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하는 디스크 스케줄러(30)와, 상기 디스크 스케줄러(30)에 의해서 결정된 스트림의 해당 데이터를 디스크 드라이버(20)에서 읽어온 데이터를 저장하는 버퍼부(40)와, 상기 버퍼부(40)에 저장된 데이터를 네트워크로 전송하는 네트워크부(50)와, 네트워크를 통해 전송되어온 데이터를 디스플레이 해서 이용하는 클라이언트부(60)로 구성된다.
이와같이 구성된 종래 기술에 대하여 상세히 살펴보면 다음과 같다.
디스크 스케줄러(30)가 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하고, 그 결정한 데이터를 읽어들이라는 정보를 디스크 드라이버(20)로 출력하면, 상기 디스크 드라이버(20)는 압축된 연속매체를 저장하는 디스크(10)로 부터 해당 데이터를 읽어들여 버퍼들로 이루어진 버퍼부(40)로 출력한다.
그러면 상기 버퍼부(40)는 디스크 드라이버(20)로 부터 전달된 데이터를 저장한다.
상기 버퍼부(40)에 저장된 데이터를 네트워크부(50)에서 읽어들여 네트워크로 전송하면, 클라이언트부(60)의 클라이언트들이 네트워크를 통해 전송되어 오는 데이터를 디스플레이하여 이용한다.
상기에서와 같은 동작을 행하는 연속매체 서버는 다양한 디스크 스케줄링을 위해서 버퍼관리를 했다.
이러한 버퍼관리의 목적은 대부분 동시에 수용할 수 있는 클라이언(Client) 수를 최대화 하기 위한 것과, 클라이언트의 실시간 요구를 보장하면서 필요한 버퍼공간을 최소화하는 것이다.
상기 버퍼부(40)를 구성하는 버퍼의 버퍼공간을 예약할 때, 버퍼 공간을 일정하게 할당해서 사용하고, 가변비트율 압축을 고려하지 않았다.
예를 들면 최대 재생율이 1.5Mbps이면, 이 재생율로 해당하는 버퍼공간을 할당해서 연속매체 서비스가 완전히 끝날 때 까지 그 버퍼 사이즈는 변하지 않는다.
그러나, 상기에서와 같은 종래기술에서 연속 매체 스트림율은 가변비트율(VBR) 압축 때문에 변하고 보통, 최대 전송율 보다 작다. 따라서 정적인 버퍼공간의 할당은 불필요한 버퍼 공간을 더 할당해서 충분히 활용하지 못하는 결과를 초래하고, 이것은 주어진 메인 메모리로 동시에 수용할 수 있는 클라이언트 수를 늘리는데 걸림돌의 원인이 되는 문제점이 있다.
따라서 상기에서와 같은 종래의 문제점을 해결하기 위한 본 발명의 목적은 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당함으로써 버퍼의 사용량을 최소화하면서, 디스크로 부터 읽어온 데이터의 처리의 효율성을 극대화하도록 한 연속매체 서버의 동적 버퍼 제어장치를 제공함에 있다.
도 1은 종래의 연속매체 서버 구조도.
도 2는 본 발명의 연속매체 서버의 동적 버퍼 제어장치의 구성도.
도 3은 도 2에서, 각 그룹의 윈도우 주기 시작을 보여주는 설명도.
*** 도면의 주요부분에 대한 부호의 설명 ***
10 : 디스크 20 : 디스크 드라이버
30 : 디스크 스케줄러 35 : 동적버퍼 제어부
41 : 입력 버퍼 42 : 출력 버퍼
45 : 자유버퍼풀 50 : 네트워크부
60 : 클라이언트부
상기 목적을 달성하기 위한 본 발명은 연속매체 스트림을 저장하고 있는 자유버퍼풀과, 메타 데이터를 이용해서 각 클라이언트가 윈도우 주기동안 필요한 최대 버퍼량을 계산해서 매 윈도우의 주기마다 필요한 버퍼의 공간을 상기 자유버퍼풀로 부터 할당하는 동적버퍼 제어부와, 상기 동적버퍼 제어부의 제어에 따라 디스크로 부터 읽어오는 과정에 있는 데이터를 저장하는 입력버퍼와, 상기 동적버퍼 제어부의 제어에 따라 클라이언트로 전송되고 있는 데이터를 저장하고 있는 출력버퍼로 구성된 것을 특징으로 한다.
이하, 첨부한 도면에 의거하여 상세히 살펴보면 다음과 같다.
도 2는 본 발명 연속매체 서버의 동적 버퍼 제어장치에 대한 블록 구성도로서, 이에 도시한 바와같이, 압축된 연속매체를 저장하는 디스크(10)와, 상기 디스크(10)로 부터 데이터를 읽어들이는 디스크 드라이버(20)와, 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하는 디스크 스케줄러(30)와, 연속매체 스트림을 저장하고 있는 자유버퍼풀(45)과, 상기 디스크 스케줄러(30)로 부터의 정보와 메타 데이터를 이용해서 각 클라이언트가 윈도우 주기동안 필요한 최대 버퍼량을 계산해서 매 윈도우의 주기마다 필요한 버퍼의 공간을 상기 자유버퍼풀(45)로 부터 할당하고, 이 할당 결과를 상기 디스크 스케줄러(30)로 전송하는 동적버퍼 제어부(35)와, 상기 동적버퍼 제어부(35)의 제어에 따라 디스크로 부터 읽어오는 과정에 있는 데이터를 저장하는 입력버퍼(41)와, 상기 동적버퍼 제어부(35)의 제어에 따라 클라이언트(60)로 전송되고 있는 데이터를 저장하고 있는 출력버퍼(42)와, 상기 출력버퍼(42)에 저장된 데이터를 네트워크로 전송하는 네트워크부(50)와, 네트워크를 통해 전송되어온 데이터를 디스플레이 해서 이용하는 클라이언트부(60)로 구성한다.
이와같이 구성된 본 발명의 동작 및 작용 효과에 대하여 상세히 설명하면 다음과 같다.
비디오 데이터가 엠펙(MPEG) 표준과 같이 가변비트율 압축으로 엔코딩되어서 디스플레이시간이 똑같은 세그먼트로 나누어져 디스크에 저장되면, 각 세그먼트는 같은 프레임 수의 데이터를 가지지만 가변비트율 압축에 의해 그 크기는 달라진다.
따라서 자유버퍼풀(45)은 단방향 서비스 등급에 대한 G개와 양방향 서비스 등급에 대한 1개의 세그먼트, 즉 G+1개의 세그먼트로 나누어져 비디오 데이터가 저장된다.
여기서 단방향 서비스 등급은 정상적인 전진방향 재생만 제공하는 서비스이고, 양방향 서비스 등급은 빨리감기, 되감기, 일시정지와 같은 기능을 행하는 서비스이다.
클라이언트부(60)의 클라이언트가 데이터를 요구하면, 그 요구가 양방향 서비스 등급인지 단방향 서비스 등급인지를 확인 한 후 자유버퍼풀(45)을 할당하고, 서비스 종류를 디스크 스케줄러(30)로 알려준다.
그러면 상기 디스크 스케줄러(30)는 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하고, 그 결정한 데이터를 읽어들이라는 정보를 디스크 드라이버(20)로 출력하고, 그리고 동시에 모든 클라이언트의 버퍼공간을 재 할당하는 것을 피하기 위하여 현재 서비스되고 있는 클라이언트들을 몇 개의 그룹으로 나누어서 관리한다.
여기서 몇 개의 그룹은 단방향 서비스 등급의 그룹과 양방향 서비스 등급의 그룹으로 나누어 관리한다.
이에 따라 상기 디스크 드라이버(20)는 압축된 연속매체를 저장하는 디스크(10)로 부터 해당 데이터를 읽어들여 입력버퍼(41)로 출력한다.
그러면 상기 입력버퍼(41)는 읽어들인 비디오 데이터는 자유버퍼풀(45)에 저장시켜 두고, 읽어오는 과정에 있는 데이터는 저장하고 있는다.
이와같은 방식으로 상기 자유버퍼풀(45)에 클라이언트가 요구하는 데이터를 저장하여 둔다.
그런다음 출력버퍼(42)는 자유버퍼풀(45)로 부터 데이터를 읽어들여 네트워크부(50)로 전송하면, 상기 네트워크부(50)는 출력버퍼(42)로 부터 전송되는 비디오 데이터를 네트워크로 전송한다.
한 사이클 시간 t동안 출력버퍼(42)로 부터 소비되는 데이터량은 앞 사이클에서 디스크(10)로 부터 검색되어야 하고, 사이클 시간 t가 시작될 때 출력버퍼(42) 속에 데이터가 저장되어 있어야 한다.
동적버퍼 제어부(35)는 그룹의 버퍼 공간을 라운드로빈 방식으로 관리하기 위해 각 그룹에 대한 윈도우 주기(T)의 시작 시간값을 다르게 할당한다.
예를 들면, 도 3에서와 같이 재생되는 두 개의 비디오1,3을 갖는 하나의 그룹1과, 재생되는 두 개의 비디오2,4를 갖는 또 다른 하나의 그룹2이 있을 경우, 그룹1의 윈도우 주기는 사이클 시간 S1에서 시작하고, 반면에 그룹2의 윈도우 주기는 S2(=S1+3)에서 시작된다.
여기서 3은 비디오 갯수에서 1을 뺀 값이다.
이상에서와 같이 버퍼를 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당함으로써 버퍼의 사용량을 최소화하면서, 디스크에서 읽어온 데이터의 처리의 효율성을 극대화하여 동시에 수용할 수 있는 재생 스트림 수를 최대화할 수 있다.
따라서, 본 발명은 버퍼를 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당함으로써 버퍼의 사용량을 최소화하면서, 디스크에서 읽어온 데이터의 처리의 효율성을 극대화하여 동시에 수용할 수 있는 재생 스트림 수를 최대화할 수 있도록 한 효과가 있다.
Claims (2)
- 압축된 연속매체를 저장하는 디스크와, 상기 디스크로 부터 데이터를 읽어들이는 디스크 드라이버와, 현재 서비스 되고 있는 스트림중에서 어느 스트림을 어떤 순서로 디스크에서 읽어올 것인가를 결정하는 디스크 스케줄러와, 연속매체의 가변비트율 압축의 특성에 따라 동적으로 몇 개의 그룹으로 나누어 할당하고 그 할당된 공간에 연속매체 스트림을 저장하고 있는 자유버퍼풀과, 상기 디스크 스케줄러로 부터의 정보와 메타 데이터를 이용해서 각 클라이언트가 윈도우 주기동안 필요한 최대 버퍼량을 계산해서 매 윈도우의 주기마다 필요한 버퍼의 공간을 상기 자유버퍼풀로 부터 할당하고, 이 할당 결과를 상기 디스크 스케줄러로 전송하는 동적버퍼 제어부와, 상기 동적버퍼 제어부의 제어에 따라 디스크로 부터 읽어오는 과정에 있는 데이터를 저장하는 입력버퍼와, 상기 동적버퍼 제어부의 제어에 따라 클라이언트로 전송되고 있는 데이터를 저장하고 있는 출력버퍼를 포함하여 구성된 것을 특징으로 하는 연속매체 서버의 동적 버퍼 제어장치.
- 제1항에 있어서, 동적버퍼 제어부는 단방향 서비스 등급에 대한 G개의 그룹과 양방향 서비스 등급에 대하여 1개의 그룹으로 나누어 관리하도록 한 것을 특징으로 하는 연속매체 서버의 동적 버퍼 제어장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970072520A KR100273367B1 (ko) | 1997-12-23 | 1997-12-23 | 연속매체 서버의 동적 버퍼 제어장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970072520A KR100273367B1 (ko) | 1997-12-23 | 1997-12-23 | 연속매체 서버의 동적 버퍼 제어장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990052962A true KR19990052962A (ko) | 1999-07-15 |
KR100273367B1 KR100273367B1 (ko) | 2000-12-15 |
Family
ID=19528316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970072520A KR100273367B1 (ko) | 1997-12-23 | 1997-12-23 | 연속매체 서버의 동적 버퍼 제어장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100273367B1 (ko) |
-
1997
- 1997-12-23 KR KR1019970072520A patent/KR100273367B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100273367B1 (ko) | 2000-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6138221A (en) | Method and system for supplying streams of data having identical maximum consumption rate in a storage medium | |
KR0152486B1 (ko) | 중지-재개 지원 방법 및 시스템 | |
EP1224527B1 (en) | Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests | |
EP1222813B1 (en) | Apparatus and method for configuring a media storage system | |
US8571098B1 (en) | Variable bit rate encoding | |
US6240243B1 (en) | Method and apparatus for storing and retrieving scalable video data in a disk-array-based video server | |
US6496899B1 (en) | Disk scheduling system with bounded request reordering | |
KR950027805A (ko) | 중지-재개시 지원 방법 | |
JPH07236132A (ja) | 映像蓄積配送装置及び映像蓄積配送システム | |
KR970012201A (ko) | 주문형 비디오 시스템 및 이 시스템의 비디오 스케쥴링 방법, 주문형 고객 서비스 시스템의 물리적 자원 스케쥴링 방법, 컴퓨터 판독가능한 메모리 | |
US7747143B2 (en) | Digital video recorder | |
US5940865A (en) | Apparatus and method for accessing plural storage devices in predetermined order by slot allocation | |
US6477541B1 (en) | Multimedia server | |
KR100273367B1 (ko) | 연속매체 서버의 동적 버퍼 제어장치 | |
JP2001111969A (ja) | Tsパケットデータ多重方法及びtsパケットデータ多重装置 | |
CN100541472C (zh) | 用于本地视频服务器的许可控制系统 | |
Ryu et al. | A dynamic buffer management technique for minimizing the necessary buffer space in a continuous media server | |
US6292875B1 (en) | Control device for storage device and method of accessing the storage device | |
JP2001016567A (ja) | マルチメディアデータ再生/送出装置 | |
JP3219953B2 (ja) | メディアサーバシステム | |
Chen | A disk scheduling scheme and MPEG data layout policy for interactive video access from a single disk storage device | |
JP2914188B2 (ja) | データ送出装置 | |
US8644681B2 (en) | Device and method for delayed reading of digital video data | |
Anastasiadis et al. | Resource Utilization Balancing in Disk Storage of VBR Streams | |
KR20030017917A (ko) | 화상그룹 기반의 고속재생 지원을 갖는 동적 전송스케줄작성 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20060616 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |