KR100431734B1 - 멀티 펌핑을 이용한 동영상 동시 제공방법 - Google Patents

멀티 펌핑을 이용한 동영상 동시 제공방법 Download PDF

Info

Publication number
KR100431734B1
KR100431734B1 KR10-2001-0032276A KR20010032276A KR100431734B1 KR 100431734 B1 KR100431734 B1 KR 100431734B1 KR 20010032276 A KR20010032276 A KR 20010032276A KR 100431734 B1 KR100431734 B1 KR 100431734B1
Authority
KR
South Korea
Prior art keywords
client
video data
thread
disk access
video
Prior art date
Application number
KR10-2001-0032276A
Other languages
English (en)
Other versions
KR20020093490A (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 KR10-2001-0032276A priority Critical patent/KR100431734B1/ko
Publication of KR20020093490A publication Critical patent/KR20020093490A/ko
Application granted granted Critical
Publication of KR100431734B1 publication Critical patent/KR100431734B1/ko

Links

Classifications

    • 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
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

본 발명은 멀티 펌핑을 이용한 동영상 동시 제공방법에 관한 것으로, VOD 스트림 서버에서 다수의 클라이언트의 접속 요청에 따라 접속된 후, 해당되는 클라이언트에 대응하는 디스크 억세스 스레드와 데이터 전송 스레드를 생성한다. 이후, VOD 스트림 서버는 클라이언트에 대응하는 노드를 디스크 억세스 스레드에 등록하면, 디스크 억세스 스레드에서 클라이언트에 대한 디스크 억세스를 수행하여 동영상 데이터를 동영상 DB로부터 읽어와서 전송 버퍼에 적재한다. 적재가 완료되면, 데이터 전송 스레드는 전송 버퍼에 적재된 동영상 데이터를 다수의 클라이언트 중 해당 클라이언트에 전송하고 다음 동영상 데이터를 억세스하기 위해 디스크 억세스 스레드에 억세스를 요구한다. 데이터 전송 스레드는 동영상 데이터를 다수의 클라이언트에 모두 전송한 후, 다수의 클라이언트로부터 접속 해지 요청이 제공되면, 데이터 전송 스레드에서 노드 전체를 폐쇄한다. 따라서 VOD 스트림 서버에 탑재된 멀티 펌핑 방식은 데이터 억세스와 네트웍 대역폭등의 자원관리의 우수한 효율성과 함께 다양한 응용분야에 사용가능한 우수한 성능을 가지고 있는 효과가 있다.

Description

멀티 펌핑을 이용한 동영상 동시 제공방법{METHOD FOR OFFERING MOVE IMAGE THE SAME TIME BY USING MULTI PUMPING}
본 발명은 멀티 펌핑을 이용한 동영상 동시 제공방법에 관한 것으로, 특히 브이오디(Video On Demand : 이하, VOD라 약칭함) 시스템에서 스레드(thread)가 적용된 멀티 펌핑(multi pumping) 방식을 이용하여 다수의 동영상 데이터를 다수의 클라이언트에 동시 억세스(access)할 수 있도록 하는 시스템에 관한 것이다.
통상적으로, VOD 시스템은 다수의 엠펙(MPEG2) 영상을 근거리 통신망(LAN)을통해 다수의 클라이언트에 동시 서비스하는 것이다. 즉 VOD 시스템 내 VOD 서버는 대용량 저장소에 저장된 동영상 데이터를 다수의 클라이언트에 연속적으로 공급하기 위해 많은 부하를 갖으면서 다수의 동영상 데이터를 동시에 억세스(access)하여 서비스를 제공한다.
이에, VOD 서버 시스템은 다수의 중앙처리장치(CPU)를 병렬로 장착하여 처리하고, 다수개의 디스크를 사용해 구성하는 디스크어레이(disk array)의 총칭인 RAID(Redundant Array of Inexpensive Disks)와 같은 고가의 저장소를 사용해야 많은 부하를 갖지 않으면서 다수의 동영상 데이터를 동시에 억세스(access)하여야만 동시 서비스를 제공할 수 있는 것이다. 그러나, 이러한 장비, 즉 CPU의 성능 및 저장소의 용량에 비해 그 가격 면에서 상당한 고가이며, 설치비용이 많이 들어 경제적으로 많은 어려움이 있는 실정이다.
따라서, 본 발명은 상술한 문제점을 해결하기 위하여 안출한 것으로서, 그 목적은 이더넷에 연결된 다수의 클라이언트에 서로 다른 엠펙2(MPEG2) 영상 데이터를 동시에 지원하기 위해 스레드(thread)가 적용된 멀티 펌핑(multi pumping) 방식을 이용하여 시스템 자원을 90% 이상 사용하도록 하는 멀티 펌핑을 이용한 동영상 동시 제공방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명에서 멀티 펌핑을 이용한 동영상 동시 제공방법은 VOD 스트림 서버에서 클라이언트의 접속 요청에 따라 접속된 후, 디스크 억세스 스레드와 데이터 전송 스레드를 생성하는 단계; 생성된 디스크 억세스스레드에 클라이언트에 대응하는 노드를 등록하는 단계; 디스크 억세스 스레드에서 클라이언트에 대한 디스크 억세스를 수행하여 동영상 데이터를 동영상 데이터베이스에서 읽어와서 전송 버퍼에 적재하는 단계; 생성된 데이터 전송 스레드에서 전송 버퍼에 적재된 동영상 데이터를 클라이언트에 전송하고 다음 동영상 데이터를 억세스하기 위해 디스크 억세스 스레드에 억세스를 요구하는 단계; 동영상 데이터를 클라이언트에 모두 전송한 후, 클라이언트로부터 접속 해지 요청이 제공되면, 데이터 전송 스레드에서 노드를 폐쇄하는 단계를 포함하는 것을 특징으로 한다.
도 1은 본 발명에 따른 멀티 펌핑을 이용한 동영상 동시 제공방법을 수행하기 위한 블록 구성도이고,
도 2는 본 발명에 따른 동영상 데이터 버퍼 및 클라이언트 버퍼의 구조에 대하여 도시한 도면이며,
도 3은 본 발명에 따른 토큰 링 자료 구조와 스레드 관계에 대하여 도시한 도면이며,
도 4는 본 발명에 따른 멀티 펌핑을 이용한 동영상 동시 제공방법에 대한 상세 흐름도이며,
도 5는 개별 스레드 구조의 평균 디스크 억세스 시간을 그래프로 표현한 도면이며,
도 6은 동영상 데이터를 실제 이더넷을 통해 전송했을 때 평균 응답 시간을 디스크 억세스 시간과 같이 나타낸 도면이며,
도 7은 본 발명에 따른 멀티 펌핑 방식을 이용한 시스템에서의 디스크 억세스 시간을 그래프로 나타낸 도면이며,
도 8은 본 발명에 따른 동영상 데이터를 실제 이더넷을 통해 전송했을 때 평균 응답 시간을 디스크 억세스 시간과 같이 도시한 도면이며,
도 9는 본 발명에 따른 링 스레드 구조를 사용했을 때와 개별 스레드 구조를 사용했을 때의 평균 디스크 억세스 시간을 나타낸 도면이며,
도 10은 본 발명에 따른 CPU 자원관리의 상태를 화면에 출력해주는 결과에 대하여 도시한 도면이며,
도 11은 본 발명에 따른 링 스케줄링/개별 스레드 생성의 CPU 부하의 수치를 차트로 나타낸 도면이다.
<도면의 주요부분에 대한 부호의 설명>
10, 10-1,..., 10-n : 다수의 클라이언트
20 : VOD 스트림 서버 30 : 디스크 억세스 스레드
40 : 데이터 전송 스레드 50 : 동영상 DB
A : 이더넷
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세하게 설명하기로 한다.
도 1을 참조하면, 본 발명에 따른 멀티 펌핑을 이용한 동영상 동시 제공방법을 수행하기 위한 블록 구성도로서, 다수의 클라이언트(10, 10-1,...,10-n)와, VOD 스트림 서버(20)와, 디스크 억세스 스레드(30)와, 데이터 전송 스레드(40)와, 동영상 데이터베이스(DataBase : 이하, DB라 약칭함)(50)를 포함한다.
다수의 클라이언트(10, 10-1,...,10-n)는 내부적으로 전송 버퍼, 즉 클라이언트 버퍼를 각각 구비하며, 동영상 데이터를 제공받기 위해 VOD 스트림 서버(20)에 접속 요청을 수행한다. 이후, 다수의 클라이언트(10, 10-1,...,10-n)는 데이터 전송 스레드(40)로부터 제공되는 동영상 데이터를 각각의 클라이언트 버퍼에 저장한다. 이때, 다수의 클라이언트(10, 10-1,...,10-n)내 각각의 클라이언트 버퍼는 디스크 억세스 스레드(30)내 전송 버퍼, 즉 동영상 데이터 버퍼로부터 제공된1Mbyte 크기 단위의 동영상 데이터를 순차별로 각각 저장하며, 저장 공간이 없을 경우에 다음 저장 공간이 비어질 때까지 대기한다.
VOD 스트림 서버(20)는 VOD 시스템 내의 메인 서버로서, 다수의 클라이언트(10, 10-1,...,10-n)의 접속 요청에 따라 접속된 후, 클라이언트에 대응하는 디스크 억세스 스레드(30) 및 데이터 전송 스레드(40)를 클라이언트별로 각각 생성한다. 여기서, 다수의 클라이언트가 동시 접속하게 되면, 디스크 억세스 스레드(30) 및 데이터 전송 스레드(40)의 수가 증가한다.
클라이언트별로 스레드(30, 40)가 생성된 후, VOD 스트림 서버(20)는 디스크 억세스 스레드(30)에 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대응하는 노드를 각각 등록한다. 여기서, 각 노드는 하나의 클라이언트에 대응하고, 각각의 노드에는 클로즈(close), 읽기(read), 쓰기(write) 중 하나의 상태 값을 갖는다.
보다 상세하게 노드의 상태 값에 대하여 설명하면, 먼저 클로즈 상태 값은 노드에 대응되는 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트가 현재 접속되어 있지 않거나 디스크 억세스 요청이 없는 것을 의미한다. 그리고, 읽기 상태 값은 노드에 대응되는 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트가 디스크 접근 요청을 요구하고 대기 상태에 있거나 동영상 데이터를 클라이언트로 즉시 전송한 후 전송버퍼가 비워졌을 때 다음 번 동영상 데이터를 억세스하는 것을 나타내며 멀티펌핑 스케쥴링에 의해 디스크 억세스 권한을 제공받아 동영상 데이터를 동영상 데이터 버퍼에 적재하며 적재가 완료되면 상태 값을 쓰기 상태 값으로 변경하는 것을 의미한다. 마지막으로 쓰기 상태 값은 동영상 데이터 버퍼에 적재되어 있는 동영상 데이터를 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 전송하며 전송이 완료되면 상태 값을 읽기 상태 값으로 변경하는 것을 의미한다.
디스크 억세스 스레드(30)는 도 2에 도시된 바와 같이 링(ring)에 생성되어 동영상 데이터를 1Mbyte의 크기로 저장하는 동영상 데이터 버퍼(S1)를 구비하며, 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대한 디스크 억세스를 수행하면서 동영상 DB(50)에서 동영상 데이터를 읽어와서 1Mbyte 단위의 크기로 동영상 데이터 버퍼에 적재한다.
이때, 데이터 전송 스레드(40)는 디스크 억세스 스레드(30) 내 동영상 데이터 버퍼에 적재된 동영상 데이터를 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트(10) 내 클라이언트 버퍼에 전송하고, 다음 동영상 데이터를 억세스하기 위해 디스크 억세스 스레드(30)에 억세스를 요구한다. 이후, 데이터 전송 스레드(40)는 동영상 데이터를 다수의 클라이언트(10, 10-1,...,10-n)에 모두 전송한 후, 다수의 클라이언트(10, 10-1,...,10-n)에서 VOD 스트림 서버(20)에 접속 해지 요청을 제공할 경우, 클라이언트(10)에 대응하는 노드 전체를 폐쇄한다.
도 4의 플로우챠트를 참조하여 상술한 구성을 갖는 본 발명의 실시 예에 따른 멀티 펌핑을 이용한 동영상 동시 제공방법에 대하여 상세하게 설명한다.
먼저, 다수의 클라이언트(10, 10-1,...,10-n)(내부적으로 클라이언트 버퍼를 구비함)(10)는 동영상 데이터를 제공받기 위해 VOD 스트림 서버(20)에 접속 요청을수행한다. 여기서, 100Mbps 이더넷(A)에 연결된 다수의 클라이언트(10, 10-1,...,10-n)는 최대 22대의 클라이언트(예로, 6Mbps로 인코딩일 경우 최대 16대의 클라이언트이며, 4Mbps로 인코딩일 경우 최대 22대의 클라이언트)가 동시에 동영상 데이터를 제공받을 수 있다(단계 401).
VOD 스트림 서버(20)는 다수의 클라이언트(10, 10-1,...,10-n)의 접속 요청에 따라 접속된 후, 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대한 디스크 억세스 스레드(30) 및 데이터 전송 스레드(40)를 생성한 후(단계 402), 생성된 디스크 억세스 스레드(30)내 동영상 데이터 버퍼에 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대응하는 노드를 등록한다. 즉, 디스크 억세스 스레드(30)에 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대응하는 노드를 등록할 경우, 도 3에 도시된 바와 같이 각각의 노드에 클로즈(close)(C), 읽기(read)(R), 쓰기(write)(W) 중 하나의 상태 값을 갖도록 등록한다(단계 403).
상태 값이 등록된 상태에서, 토큰이 링을 따라 차례로 돌아가다가 체크 비트가 읽기(read)인 노드를 만나면 디스크 억세스 스레드(30)는 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트에 대한 디스크 억세스를 수행하여 동영상 DB(50)에 저장되어 있는 동영상 데이터를 읽어와서 1Mbyte 크기의 단위로 동영상 데이터 버퍼에 적재한다(단계 404).
이후, 디스크 억세스 스레드(30)는 그 다음 동영상 데이터를 다른 임의의 클라이언트에 전송할 수 있도록 체크 비트를 쓰기(write)인 상태로 변경하고, 다음노드로 토큰을 전달한다. 여기서, 다음 노드의 체크 비트가 쓰기(write) 또는 클로즈(close)일 경우 체크 비트가 읽기(read)인 노드를 만날 때까지 계속 다음 노드를 만날 때까지 계속 다음 노드로 토큰을 전달한다(단계 405).
데이터 전송 스레드(40)는 도 3에 도시된 바와 같이 링의 각 노드를 검사하여 체크 비트가 쓰기(write)(W) 상태 값으로 되어 있으면, 토큰의 할당과 관계없이 디스크 억세스 스레드(30) 내 쓰기(write)(W) 버퍼에 적재된 동영상 데이터를 다수의 클라이언트(10, 10-1,...,10-n)중 해당되는 클라이언트에 제공한다(단계 406). 동영상 데이터 전송이 완료되면, 다음 동영상 데이터를 억세스하기 위해 다시 그 노드의 체크 비트를 읽기(read) 상태 값으로 설정한다(단계 407).
데이터 전송 스레드(40)는 디스크 억세스 스레드(30)에 억세스를 요구하면서 마지막 동영상 데이터에 대한 억세스 요구인가를 체크한다(단계 408).
상기 체크 단계(408)에서 마지막 동영상 데이터에 대한 억세스 요구가 아닐 경우, 디스크 억세스 스레드(30)에 계속적인 억세스 요구를 수행한다(단계 409). 반면에, 상기 체크 단계(408)에서 마지막 동영상 데이터에 대한 억세스 요구일 경우, 마지막 동영상 데이터를 다수의 클라이언트(10, 10-1,...,10-n)중 해당 클라이언트에 전송한다(단계 410).
그러면, 도 2에 도시된 바와 같이 다수의 클라이언트(10, 10-1,...,10-n)중 임의의 클라이언트 내 클라이언트 버퍼(S2)에 데이터 전송 스레드(40)로부터 제공되는 동영상 데이터가 1Mbyte 크기 단위로 저장되며, 저장된 동영상 데이터는 엠펙 디코더를 통해 임의의 클라이언트가 볼 수 있도록 플레이(play)하는 것이다(단계411).
모든 동영상 데이터를 플레이한 후, 데이터 전송 스레드(40)는 클라이언트(10)에서 이더넷(A)을 통해 VOD 스트림 서버(20)에 접속 해지 요청을 제공할 경우, 체크 비트를 클로즈(close)로 변경하여 다수의 클라이언트(10, 10-1,...,10-n)에 대응하는 전 노드를 폐쇄한다(단계 412).
한편, VOD 시스템 내 VOD 스트림 서버(20)의 성능 분석에 대하여 설명하면 다음과 같다.
즉, VOD 스트림 서버(20)에서 클라이언트로 전송하는 데이터 양은 도 2에 도시된 바와 같이 동영상 데이터 버퍼 크기인 1Mbyte이다. MPEG2 6Mbps로 인코딩된 동영상 데이터에서 1Mbyte의 동영상 데이터로는 약 1.5초간의 동영상을 플레이한다. 이에 따라 임의의 클라이언트가 VOD 스트림 서버(20)에서 제공된 1Mbyte를 플레이하는 1.5초 동안 VOD 스트림 서버(20)는 1Mbyte의 동영상 데이터를 임의의 클라이언트에게 다시 전송해야 한다. 다시 말해서, 동영상 DB(50)에서 1Mbyte의 동영상 데이터를 억세스(access)하여 클라이언트 버퍼에 전달하기까지 소용되는 시간이 1.5초 이내여야 한다는 것이다.
또한, 도 5를 참조하면, 실제 개별 스레드 생성 구조를 구현하면서 다수의 스레드들이 동시에 디스크의 동영상 데이터를 억세스하는 환경에서 측정한 디스크 억세스 시간을 그래프로 표현한 도면으로서, 그래프의 Y축은 1Mbyte의 동영상 데이터를 억세스하는데 소요된 시간을 의미하며, X축은 VOD 스트림 서버 내의 디스크 억세스 스레드 수, 즉 클라이언트 수를 나타낸다.
즉, 이더넷에 접속된 클라이언트의 수가 5개 이하인 경우에는 디스크 억세스 시간이 클라이언트 수에 비례하여 서서히 증가하다가 클라이언트수가 5개를 넘어가면 급격히 억세스 시간이 증가한다. 10개의 클라이언트가 접속하면 디스크에서 1Mbyte의 동영상 데이터를 억세스하는데 1.9초가 걸리게 된다. 실제로 동영상 DB(50) 내에서의 처리 시간과 이더넷(A) 전송 딜레이, 클라이언트에서의 디코딩 시간 등을 고려하면 동시에 지원할 수 있는 클라이언트의 수는 급격히 감소하게 될 것이다. 실제 실험 시스템에서도 5개 이상의 클라이언트가 접속한 경우 영상이 중단되는 현상이 발생하였다.
그리고, 도 6을 참조하면, 실제 이더넷(A)을 통해 동영상 데이터를 전송했을 때 평균 응답 시간을 디스크 억세스 시간과 같이 나타낸 도면으로서, 이더넷(A) 전송에 필요한 시간은 클라이언트 수가 증가하여도 디스크 억세스 시간처럼 급격한 증가는 보이지 않는다. 즉, 디스크 억세스 스레드(30)와 같은 디스크 접근 스레드의 수가 전체 성능에 큰 영향을 주고, 데이터 전송 스레드(40)와 같은 데이터 전송 스레드의 수는 큰 영향을 주지 않음을 알 수 있으며, 디스크의 데이터 억세스 성능이 떨어짐에 따라 이더넷(A) 전송이 상대적으로 많이 일어나지 않고 트래픽이 증가하지 않는 원인도 있다.
따라서, 도 7을 참조하면, 멀티 펌핑 방식을 이용한 시스템에서의 디스크 억세스 시간을 그래프로 나타낸 것으로, 멀티 펌핑 방식을 이용한 단일 디스크 접근 스레드 구조로 해결할 수 있다. 즉 디스크 억세스를 하나의 링 스레드에서 일괄적으로 처리함으로써 이론상의 최대 수치에 좀 더 근접할 수 있는 것이다. 다시 말해서, 클라이언트 수의 증가가 디스크 억세스 시간에 큰 영향을 주지 않음을 알 수 있어서, 클라이언트의 수가 1개에서 15개로 변화해도 억세스 시간차는 20mS 밖에 되지 않음에 따라 클라이언트의 수에 무관하게 일정한 디스크 억세스 시간을 보장할 수 있다는 장점을 가진다.
그 장점을 분석해 보면, VOD 스트림 서버(20)의 링 스레드 구조에서는 하나의 스레드만이 디스크 접근 권한을 가지고 있으므로 스레드들 간의 자원경쟁으로 인한 빈번한 프로세스 스위칭 현상이 발생하지 않아 프로세스 스위칭에 필요한 서버의 부하를 감소시켰다. 또한 각 클라이언트마다 한 번 디스크를 접근할 때마다 적정한 양의 동영상 데이터를 억세스할 수 있도록 보장함으로써 디스크 탐색이나 탐구(seek)에 필요한 낭비 요소도 최소화할 수 있는 것이다.
도 8을 참조하면, 실제 이더넷(A)을 동영상 데이터를 전송했을 때 평균 응답 시간을 디스크 억세스 시간과 같이 도시한 도면으로서, 개별 스레드 구조와는 달리 네트워크 전송 응답시간이 클라이언트 수에 비례하여 증가함을 알 수 있다. 이런 결과는 디스크 억세스 속도가 클라이언트의 수에 무관하게 일정함으로써 클라이언트의 수가 증가하면 전송되어야 하는 데이터의 양도 클라이언트의 수에 비례하여 증가하게 된다. 따라서 이더넷(A)의 트래픽이 급격히 증가하게 되는 것이다. 즉, 구현된 VOD 스트림 서버(20)는 MPEG2 6Mbps 엔코딩급으로 최대 16개의 클라이언트를 지원한다.
도 9를 참조하면, 링 스레드 구조를 사용했을 때와 개별 스레드 구조를 사용했을 때의 평균 디스크 억세스 시간을 나타낸 도면으로서, 클라이언트 수가 증가함에 따라 개별 스레드 구조에서는 접근 시간이 급격히 증가 하지만 링 스레드 구조에서는 일정함을 알 수 있다.
상술한 링 스레드 구조의 효율성은 디스크 억세스 시간에만 국한된 것은 아니라 CPU 부하 측면에서도 많은 효율을 가지고 있는데 이 사실은 CPU 자원관리의 상태를 화면에 출력해주는 결과를 나타내는 도 10에 잘 나타나 있다.
도 11을 참조하면, 링 스케줄링/개별 스레드 생성의 CPU 부하의 수치를 차트로 나타낸 도면으로서, 동작대수가 늘어남에 따라 개별 스레드 생성은 급격히 CPU 부하가 증가하게 되고 링 스레드를 생성했을 때에는 CPU 부하가 안정적으로 증가하는 것을 볼 수 있다. 이 사실은 링 스레드 구조의 안정성을 나타내고 있으며 CPU를 더 효율적으로 사용하고 있음을 나타내고 있다.
즉, 링 스케쥴링 구조는 MPEG2 6Mbps 인코딩급 영상을 최대 16대의 클라이언트에 전송이 가능하다. 이더넷(A) 대역폭을 약 96% 사용하고 있으며 이것은 네트웍 자원을 효율적으로 사용하여 최대 대역폭에 근접한 자원을 사용한다는 것을 나타내고 있는 것이다.
그러므로, 본 발명은 이더넷에 연결된 다수의 클라이언트에 서로 다른 엠펙2(MPEG2) 영상 데이터를 동시에 지원하기 위해 스레드(thread)가 적용된 멀티 펌핑(multi pumping) 방식을 이용하여 동시 억세스(access)함으로써, 이더넷의 대역폭을 약 96% 사용할 수 있는 획기적인 것으로, 저가형 서버한대로 MPEG2 6Mbps 인코딩급 동영상 데이터를 최대 16대 까지 MPEG2 4Mbps 인코딩급으로 최대 22대까지 지원 가능한 것이다. 또한, VOD 스트림 서버는 저가형 서버에게만 해당되는 솔루션이 아니라 고가형 장비를 사용하는 서버에도 탑재가 가능하여 고가형 장비의 성능을 최대한으로 이용 가능토록 하는 솔루션으로, VOD 스트림 서버에 탑재된 멀티 펌핑 방식은 데이터 억세스와 네트웍 대역폭등의 자원관리의 우수한 효율성과 함께 다양한 응용분야에 사용가능한 우수한 성능을 가지고 있는 효과가 있다.

Claims (8)

  1. 브이오디(Video On Demand : 이하, VOD라 약칭함) 시스템의 동영상 제공 방법에 있어서,
    상기 VOD 시스템 내 VOD 스트림 서버에서 클라이언트의 접속 요청에 따라 접속된 후, 디스크 억세스 스레드와 데이터 전송 스레드를 생성하는 단계와,
    상기 생성된 디스크 억세스 스레드에 상기 클라이언트에 대응하는 노드를 등록하는 단계와,
    상기 디스크 억세스 스레드에서 상기 클라이언트에 대한 디스크 억세스를 수행하여 동영상 데이터를 동영상 데이터베이스에서 읽어와서 전송 버퍼에 적재하는 단계와,
    상기 생성된 데이터 전송 스레드에서 상기 전송 버퍼에 적재된 동영상 데이터를 상기 클라이언트에 전송하고 다음 동영상 데이터를 억세스하기 위해 상기 디스크 억세스 스레드에 억세스를 요구하는 단계와,
    상기 동영상 데이터를 상기 클라이언트에 전송한 후, 상기 클라이언트로부터 접속 해지 요청이 제공될 경우, 상기 데이터 전송 스레드에서 상기 노드를 폐쇄하는 단계
    를 포함하는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  2. 제 1 항에 있어서,
    상기 전송 버퍼는, 링(ring)에 생성되어 상기 동영상 데이터를 저장하는 동영상 데이터 버퍼와, 상기 동영상 데이터가 전송될 경우 상기 전송된 동영상 데이터를 저장하는 클라이언트 버퍼로 구분되는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  3. 제 2 항에 있어서,
    상기 클라이언트 버퍼는, 상기 동영상 데이터 버퍼로부터 전송된 동영상 데이터를 순차별로 저장하고, 상기 저장 공간이 없을 경우에 다음 저장 공간이 비워질 때까지 대기하는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  4. 제 1 항에 있어서,
    상기 노드는, 상기 클라이언트에 대응되어 상기 노드 각각에 클로즈(close), 읽기(read), 쓰기(write) 중 하나의 상태 값을 갖으며, 상기 상태 값에서, 상기 클로즈 상태 값은 상기 노드에 대응되는 클라이언트가 현재 접속되어 있지 않거나 디스크 억세스 요청이 없는 것이며, 상기 읽기 상태 값은 상기 노드에 대응되는 클라이언트가 디스크 접근 요청을 요구하고 대기 상태에 있음을 나타내며 디스크 억세스에 따라 상기 동영상 데이터를 전송 버퍼에 적재하며 상기 적재가 완료되면 상태 값을 쓰기 상태 값으로 변경하는 것이며, 상기 쓰기 상태 값은 상기 전송 버퍼에 적재되어 있는 동영상 데이터를 상기 클라이언트에 전송하며 상기 전송이 완료되면 상태 값을 읽기 상태 값으로 변경하는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  5. 제 4 항에 있어서,
    상기 노드가 쓰기나 클로즈의 상태 값일 경우, 상기 상태 값이 읽기 노드를 만날 때까지 계속 다음 노드로 토큰을 전달하는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  6. 제 1 항에 있어서,
    상기 클라이언트는, 다수의 클라이언트로서 6Mbps로 인코딩일 경우, 최대 16대의 클라이언트이며, 4Mbps로 인코딩일 경우, 최대 22대의 클라이언트인 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  7. 제 1 항 또는 제 6 항에 있어서,
    상기 다수의 클라이언트는, 상기 VOD 스트림 서버에 동시 접속하여 동영상 데이터를 동시에 제공받을 수 있는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
  8. 제 1 항에 있어서,
    상기 데이터 전송 스레드는, 링의 각 노드를 검사하여 체크 비트가 쓰기(write)(W) 상태 값일 경우, 상기 디스크 억세스 스레드 내 쓰기(write)(W) 버퍼에 적재된 동영상 데이터를 해당 클라이언트에 제공하며, 상기 동영상 데이터 전송이 완료되면, 다음 동영상 데이터를 억세스하기 위해 다시 그 노드의 체크 비트를 읽기(read)(R) 상태 값으로 설정하는 것을 특징으로 하는 멀티 펌핑을 이용한 동영상 동시 제공방법.
KR10-2001-0032276A 2001-06-09 2001-06-09 멀티 펌핑을 이용한 동영상 동시 제공방법 KR100431734B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0032276A KR100431734B1 (ko) 2001-06-09 2001-06-09 멀티 펌핑을 이용한 동영상 동시 제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0032276A KR100431734B1 (ko) 2001-06-09 2001-06-09 멀티 펌핑을 이용한 동영상 동시 제공방법

Publications (2)

Publication Number Publication Date
KR20020093490A KR20020093490A (ko) 2002-12-16
KR100431734B1 true KR100431734B1 (ko) 2004-05-17

Family

ID=27708407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0032276A KR100431734B1 (ko) 2001-06-09 2001-06-09 멀티 펌핑을 이용한 동영상 동시 제공방법

Country Status (1)

Country Link
KR (1) KR100431734B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101223875B1 (ko) * 2011-05-31 2013-01-17 김세호 브리지 서버를 이용한 동영상 데이터 서비스 시스템 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980025799A (ko) * 1996-10-05 1998-07-15 구자홍 콘텍스트 스위칭을 방지하기 위한 비디오 서버 시스템 및 그 제어방법
KR19990018205A (ko) * 1997-08-23 1999-03-15 서평원 비동기 전송모드 스위치를 내장한 주문형 비디오 서버
US5928327A (en) * 1996-08-08 1999-07-27 Wang; Pong-Sheng System and process for delivering digital data on demand
JPH11239334A (ja) * 1998-02-24 1999-08-31 Mitsubishi Electric Corp ブリッジ制御クライアント装置
US5978843A (en) * 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
KR20000021864A (ko) * 1998-09-30 2000-04-25 전주범 주문형 비디오 서버 로드 조절 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978843A (en) * 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
US5928327A (en) * 1996-08-08 1999-07-27 Wang; Pong-Sheng System and process for delivering digital data on demand
KR19980025799A (ko) * 1996-10-05 1998-07-15 구자홍 콘텍스트 스위칭을 방지하기 위한 비디오 서버 시스템 및 그 제어방법
KR19990018205A (ko) * 1997-08-23 1999-03-15 서평원 비동기 전송모드 스위치를 내장한 주문형 비디오 서버
JPH11239334A (ja) * 1998-02-24 1999-08-31 Mitsubishi Electric Corp ブリッジ制御クライアント装置
KR20000021864A (ko) * 1998-09-30 2000-04-25 전주범 주문형 비디오 서버 로드 조절 장치

Also Published As

Publication number Publication date
KR20020093490A (ko) 2002-12-16

Similar Documents

Publication Publication Date Title
US6240243B1 (en) Method and apparatus for storing and retrieving scalable video data in a disk-array-based video server
JP3730686B2 (ja) データを伝送する方法、データ通信システム、データ通信ネットワーク
US5808607A (en) Multi-node media server that provides video to a plurality of terminals from a single buffer when video requests are close in time
US5996025A (en) Network transparent access framework for multimedia serving
CN100430915C (zh) 交互式宽带服务器系统及内容引擎
US6212657B1 (en) System and process for delivering digital data on demand
JP3320985B2 (ja) ノードを選択する方法、分散ビデオ・サーバー・システム、記憶装置を選択する方法、および、分散計算システム
US20030079016A1 (en) Using NAS appliance to build a non-conventional distributed video server
CN1093660C (zh) 多媒体系统中高效传送数据流的系统方法和设备
US7684424B2 (en) Memory interleaving in a high-speed switching environment
WO1996017306A2 (en) Media server
WO1996017306A9 (en) Media server
KR20070088476A (ko) 분산형 멀티미디어 서버 시스템 및 멀티미디어정보분배방법 및 그 프로그램 및 기록 매체
JP2007193602A (ja) ストリーム・データ配信管理方法及び装置
US5940865A (en) Apparatus and method for accessing plural storage devices in predetermined order by slot allocation
KR100431734B1 (ko) 멀티 펌핑을 이용한 동영상 동시 제공방법
Lee et al. Design and analysis of a fault-tolerant mechanism for a server-less video-on-demand system
JP2901947B2 (ja) Atmバックボーンネットワークを利用したビデオサーバ
Kumar Video-server designs for supporting very large numbers of concurrent users
EP0713308B1 (en) Data sending device
KR100823731B1 (ko) 고성능 스트리밍 서버 시스템에서 컨텐트 설치장치 및 방법
Buddhikot et al. Distributed layout, scheduling, and playout control in a multimedia storage server
JP5580253B2 (ja) 呼接続装置およびその動作方法
EP0577362A2 (en) An expanded architecture for image storage and distribution
JPH11298880A (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
LAPS Lapse due to unpaid annual fee