KR20030022830A - 멀티미디어 데이터 재생 방법 및 이를 위한 장치 - Google Patents

멀티미디어 데이터 재생 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20030022830A
KR20030022830A KR1020030005614A KR20030005614A KR20030022830A KR 20030022830 A KR20030022830 A KR 20030022830A KR 1020030005614 A KR1020030005614 A KR 1020030005614A KR 20030005614 A KR20030005614 A KR 20030005614A KR 20030022830 A KR20030022830 A KR 20030022830A
Authority
KR
South Korea
Prior art keywords
multimedia data
segment
data
streaming
playback
Prior art date
Application number
KR1020030005614A
Other languages
English (en)
Other versions
KR100507956B1 (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 문의선
Publication of KR20030022830A publication Critical patent/KR20030022830A/ko
Application granted granted Critical
Publication of KR100507956B1 publication Critical patent/KR100507956B1/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/4408Processing 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 stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 멀티미디어 데이터를 재생하기 위한 방법 및 장치에 관한 것으로, 멀티미디어 데이터가 스트리밍 방식으로 전송되는지 여부와 관계 없이 전송 받은 멀티미디어 데이터로부터 스트리밍 데이터를 생성하여 재생하는 멀티미디어 데이터 재생 방법 및 장치에 관한 것이다.
본 발명에 따른 멀티미디어 데이터 재생 방법은 재생 프로그램으로부터 재생 명령을 입력 받는 단계, 상기 재생 명령에 응답하여 상기 멀티미디어 데이터를 요청하는 단계, 임의의 프로토콜을 이용하여 상기 멀티미디어 데이터를 수신하고 저장하는 단계, 상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성하는 단계, 및 상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계를 포함하는 것을 특징으로 한다.

Description

멀티미디어 데이터 재생 방법 및 이를 위한 장치{A METHOD FOR PLAYING MULTIMEDIA DATA AND A SYSTEM OF ENABLING THE METHOD}
본 발명은 멀티미디어 데이터를 재생하기 위한 방법 및 장치에 관한 것으로, 멀티미디어 데이터가 스트리밍 방식으로 전송되는지 여부와 관계 없이 전송 받은 멀티미디어 데이터로부터 스트리밍 데이터를 생성하여 재생하는 멀티미디어 데이터 재생 방법 및 장치에 관한 것이다.
인터넷은 정보의 취득 경로를 획기적으로 전환시킨 계기를 마련했다. 현재는 오프라인(off-line)에서 구할 수 있는 모든 종류의 정보를 인터넷을 통해 검색할 수 있으며, 인터넷을 이용한 정보의 검색은 신속성과 편리성이란 장점으로 인해 점차 취득경로로써의 역할이 증가하고 있다. 인터넷과 더불어 정보의 유통 경로를 개선시킨 주요 요인 중의 하나가 월드와이드웹(World Wide Web)이다. 월드와이드웹을 이용하여 사용자들은 편리하고 직관적인 인터페이스를 통해 원하는 정보를 쉽고 빠르게 검색하게 되었다.
과거에는 컴퓨터 기술과 통신 기술 등이 미비하여 대용량의 데이터를 저장하고 신속히 전송하기에 부족함이 있었기 때문에, 인터넷을 통해 유출되는 정보들은 초기에는 그 크기가 작은 텍스트로 이루어진 데이터가 대부분을 차지했다. 그러나, 컴퓨터 기술과 통신 기술에 대한 한계가 점차 극복됨에 따라 인터넷을 통해 유통되고 있는 정보 중에 동영상이나 음성과 같은 멀티미디어 데이터가 점차 증가하고 있다.
동영상이나 음성과 같은 멀티미디어 데이터는 일반적으로 텍스트 데이터에비해 크기가 크다. 크기가 큰 데이터를 인터넷을 통해 전송하는 것은 크기가 작은 데이터를 전송하는 것에 비해 시간이 더 많이 걸리므로, 텍스트 데이터를 전송하는 것에 비해 멀티미디어 데이터를 전송하는 것이 훨씬 많은 시간이 소요된다. 이에 따라서, 멀티미디어 데이터를 인터넷을 통해 전송하고 수신한 멀티미디어 데이터를 재생하기 위한 새로운 방법의 필요성이 대두되었다.
인터넷을 통해 정보를 전송하는 가장 일반적인 방법은 다운로드 (download)방식이다. 이것은 과거 텍스트 위주의 정보를 주로 전송하던 당시부터 널리 사용된 것으로써, 사용자가 인터넷 상에서 찾아낸 데이터 전체를 전송 받아 자신의 컴퓨터에 저장한 다음에 이용하는 방식이다. 멀티미디어 데이터에 대해서도 다운로드 방식을 적용할 수 있고, 실제로도 후술하는 스트리밍 방식을 지원하지 않는 파일 포맷, 즉 AVI나 DIVX와 같은 포맷의 데이터를 스트리밍 방식을 사용하지 않고 서비스하는 경우에는 다운로드 방식을 사용할 수 밖에 없다. 그러나, 이런 경우에는 데이터 전체가 수신된 다음에야 멀티미디어 데이터를 재생할 수 있으므로, 사용자는 데이터의 수신이 완료될 때까지 오랜 시간 동안 기다려야 한다.
또한, 종래 기술은 멀티미디어 데이터 전체를 전송 받은 후에만 재생될 수 있는 구성을 하고 있기 때문에, 전체 멀티미디어 데이터의 일부만을 재생하고자 하는 경우, 또는 멀티미디어 데이터의 일부만을 재생하여 본 후 전체를 전송 받을지 여부를 선택하고자 하는 경우에는 사용될 수 없었다.
한편, 멀티미디어 데이터는 다른 데이터에 비해 크기가 크다는 점 외에도 순차적이고 규칙적으로 데이터를 읽어 들여서 재생한다는 특징이 있다. 즉, 멀티미디어 데이터를 이용하여 음성이나 동영상을 재생함에 있어서 시간의 흐름에 따라 정해진 순서에 의해 재생하며, 재생되는 부분에 해당하는 데이터만 있으면 사용자가 멀티미디어를 이용하는데 아무런 문제가 없다. 이와 같은 특징으로 인해 멀티미디어 데이터를 구동하는 데에는 데이터 파일 전체가 저장되어 있을 필요가 없어진다. 즉, 1시간 분량의 동영상에 해당하는 대용량의 멀티미디어 데이터를 재생하기 위해 멀티미디어 데이터 전체가 반드시 있어야만 하는 것이 아니라, 재생되고 있는 부분에 해당하는 멀티미디어 데이터만 있으면 동영상을 재생할 수 있다.
상술한 다운로드 방식을 문제점을 해소하기 위해, 멀티미디어 데이터 재생의 특징을 고려하여 멀티미디어 데이터의 전송과 재생을 위해 스트리밍(streaming) 방식이 고안되었다. 스트리밍 방식은 사용자가 통신망을 통해 전송 받은 멀티미디어 데이터를 재생하고자 하면, 서버로부터 멀티미디어 데이터의 수신을 시작하고, 정해진 크기의 버퍼에 멀티미디어 데이터가 차면 재생을 시작하며, 재생을 하는 도중에 멀티미디어 데이터를 소모하는 속도에 맞춰 실시간으로 서버로부터 멀티미디어 데이터를 수신하여 재생이 중단되지 않도록 한 것이다.
스트리밍의 기술적인 정의는 다음과 같다.
"스트리밍은 규칙적이고 지속적으로 처리되는 데이터를 전송하는 방법으로써, 스트리밍을 이용하여 원하는 데이터의 전체 파일이 전송이 완료되기 이전에 데이터를 처리하는 응용 프로그램이 데이터를 구동할 수 있다."
스트리밍 서비스를 구현하는 방법은 크게 주문형(On-Demand) 스트리밍 방법과 방송형(Broadcast) 스트리밍 방법으로 나눌 수 있다. 주문형 스트리밍 방법은 멀티미디어 데이터의 재생 시작, 재생 끝마침, 임의의 멀티미디어 데이터 부분부터 재생되도록 하는 것(즉, 재생 위치를 변경시키는 것) 등과 같은 동작을 클라이언트 단말기 측 사용자가 실행할 수 있도록 되어 있어서, 사용자가 스트리밍 데이터의 재생을 제어할 수 있도록 되어 있다. 반면, 방송형 스트리밍 방법은 단순히 스트리밍으로 전송되는 데이터(이하 '스트리밍 데이터')의 흐름에 대해 수동적이어서 통신망을 통해 전송된 스트리밍 데이터가 도착하는 데로 청취(또는 시청)할 수는 있지만, 이미 지나간 부분은 다시 청취(또는 시청)할 수도 없고, 임의의 데이터 부분부터 재생되도록 할 수도 없다. 따라서, 방송형 스트리밍 방법은 통상적인 방송 개념인 일방적인 단방향의 멀티미디어 데이터의 재생이라고 할 수 있다.
상기한 바와 같이, 스트리밍 서비스를 이용하면, 전체 데이터의 전송을 기다릴 필요가 없고, 주문형 스트리밍 방법의 경우 전체 데이터를 전송 받아 재생하는 경우와 같이 재생의 시작이나 재생 위치의 변경 등이 자유롭다.
또한, 스트리밍 서비스의 경우 멀티미디어 데이터가 클라이언트 단말기 측에 저장되지 않기 때문에, 멀티미디어 데이터가 유출되는 것(저작자 등 권리자의 동의나 허락 없이 유통되는 것)을 방지할 수 있다.
이와 같이 스트리밍 방식은 종래 기술에 비해 많은 장점을 가지고 있으나, 극복해야 할 것들이 남아 있다.
스트리밍 방식은 다운로드 방식과는 달리 멀티미디어 데이터 전체가 저장되지 않은 상태에서 필요한 부분의 멀티미디어 데이터만을 실시간으로 수신하여 재생하므로 데이터의 전송 속도에 민감하다. 데이터의 전송 속도가 빠르다면, 클라이언트 단말기는 여분의 데이터를 버퍼에 저장하였다가 재생에 필요할 때 재생되도록 하므로 문제가 없지만, 재생에 필요한 정도의 전송 속도보다 느리다면 데이터의 표현이 매끄럽지 못하게 되어 소리가 튀거나 화면이 순간 정지하여 데이터의 전송을 기다리다가 데이터가 전송되면 다시 재생되게 될 것이다.
또한, 데이터를 제공하는 서버에 다수의 클라이언트 단말기가 접속하여 스트리밍 데이터를 동시에 전송 받으려고 하는 경우, 클라이언트 수가 많을수록 전송 속도는 더욱 느려지므로, 멀티미디어 데이터의 재생이 원활하지 않게 되어 멀티미디어 데이터를 전송 받으면서 동시에 재생할 수 있다는 스트리밍 방식의 장점은 상쇄되어 버리고 만다. 예를 들면, n개의 클라이언트 단말기가 서버에 접속하여 250kbps로 인코딩된 데이터를 전송 받고자 하는 경우 필요한 회선은 (250 x n)kbps가 된다. 이와 같이, 스트리밍 서비스를 제공하는 서버 측으로서는 대용량의 전송 회선이 필요하게 된다는 문제가 있다.
또한, 실시간으로 데이터를 전송하는 스트리밍 방식은 클라이언트 컴퓨터에 멀티미디어 데이터를 저장하지 않으므로, 이미 재생한 부분을 반복하여 재생하기 위해서는 다시 서버로부터 같은 멀티미디어 데이터를 수신해야 하므로 불필요한 부하가 발생하게 된다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로서, 스트리밍 방식으로 전송 받지 않은 경우에도 재생하고자 하는 멀티미디어 데이터 전체를 수신하지 않은 상태에서 재생에 필요한 부분이 전송되면 재생할 수 있도록 하는 멀티미디어 데이터 재생 방법 및 장치를 제공하는 것을 목적으로 한다(스트리밍 서비스).
또한, 본 발명은 전송된 멀티미디어 데이터 중 저장되어 있는 부분을 파악하여 저장되어 있는 부분의 멀티미디어 데이터는 재전송 받지 않고 저장되어 있는 멀티미디어 데이터가 재생되는 멀티미디어 데이터 재생 방법 및 장치를 제공하는 것을 목적으로 한다(멀티미디어 데이터 저장).
또한, 본 발명은 컴퓨터에 저장되는 멀티미디어 데이터를 권리자의 동의나 허락 없이 재생하는 것을 방지하기 위해 멀티미디어 데이터를 암호화하여 저장하고 상기 암호화된 멀티미디어 데이터를 복호화하여 재생하는 멀티미디어 데이터 재생 방법 및 장치를 제공하는 것을 목적으로 한다(복제 방지).
또한, 본 발명은 멀티미디어 데이터가 재생되는 순서에 맞춰 필요한 부분을 예측하고 미리 수신함으로써 전송 속도에 따라 재생 품질이 저하되는 것을 방지할 수 있는 멀티미디어 데이터 재생 방법 및 장치를 제공한다(예측 전송).
또한, 본 발명은 스트리밍 서비스를 제공하면서도, 멀티미디어 데이터를 하나의 서버뿐만 아니라, 서버를 포함한 여러 데이터 제공자로부터 병렬 전송 받음으로써 전송 속도를 높이고 실시간 재생을 확실하게 하는 멀티미디어 데이터 재생 방법 및 장치를 제공하는 것을 목적으로 한다(병렬 전송).
도 1은 본 발명의 일실시예에 따른 멀티미디어 데이터 재생 방법을 제공하기 위한 네트워크 구성을 도시한 도면.
도 2는 본 발명의 일실시예에 따른 멀티미디어 데이터 재생 방법을 도시한 흐름도.
도 3은 본 발명의 다른 실시예에 따른 멀티미디어 데이터 재생 방법을 제공하기 위한 네트워크 구성을 도시한 도면.
도 4a 및 도 4b는 본 발명의 다른 실시예에 따른 멀티미디어 데이터 재생 방법을 도시한 흐름도.
도 5는 본 발명의 다른 실시예에 따른 멀티미디어 데이터 재생 방법에 따라 멀티미디어 데이터를 수신하는 단계를 설명하기 위한 도면.
도 6은 본 발명의 또 다른 실시예에 따른 멀티미디어 데이터 재생 장치를 도시한 블록도.
도 7은 본 발명의 또 다른 실시예에 따른 멀티미디어 데이터 재생 장치를 도시한 블록도.
도 8은 본 발명의 또 다른 실시예에 따른 멀티미디어 데이터 재생 장치에서사용되는 암호화 수단 및 복호화 수단을 설명하기 위한 도면.
도 9는 본 발명에 따라 멀티미디어 데이터를 재생하기 위해 사용될 수 있는 범용 컴퓨터를 설명하기 위한 도면.
<도면의 주요 부분에 대한 부호의 설명>
11, 31, 730서버
12, 32, 600, 700클라이언트 컴퓨터
630, 740, 750정보 처리기
611수신 모듈
612송신 모듈
711제1 송수신 모듈
712제2 송수신 모듈
613, 713, 812, 822저장 모듈
614, 714, 813, 823스트리밍 데이터 생성 모듈
620, 720재생 프로그램
631정보 처리기 측 송수신 모듈
632 정보 처리기 측 저장 모듈
731서버 측 송수신 모듈
732서버 측 세그먼트 저장 모듈
733위치 정보 저장 모듈
상기의 목적을 달성하고, 상술한 종래 기술의 문제점을 해결하기 위하여, 본 발명에 따른 멀티미디어 데이터 재생 방법은 재생 프로그램으로부터 재생 명령을 입력 받는 단계, 상기 재생 명령에 응답하여 상기 멀티미디어 데이터를 요청하는 단계, 임의의 프로토콜을 이용하여 상기 멀티미디어 데이터를 수신하고 저장하는 단계, 상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성하는 단계, 및 상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일측면에 따르면, 상기 멀티미디어 데이터는 멀티미디어 데이터를 구성하는 세그먼트로 구분될 수 있고 상기 각 단계는 상기 세그먼트 단위로 이루어진다. 본 출원 명세서에서는 상기 세그먼트를 상기 멀티미디어 데이터를 구성하는 고정적 또는 가변적 크기의 논리적 단위로 정의하기로 한다.
본 발명의 다른 측면에 따르면, 상기 멀티미디어 데이터 재생 방법은 상기 멀티미디어 데이터가 상기 클라이언트 컴퓨터에 저장되어 있는 경우에는, 상기 재생 명령에 응답하여 상기 저장된 멀티미디어 데이터로부터 스트리밍 데이터를 생성하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 상기 임의의 프로토콜은 스트리밍 프로토콜 이외의 프로토콜일 수 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법은 재생 프로그램으로부터 재생 명령을 입력 받는 단계, 상기 재생 명령에 응답하여 상기 멀티미디어 데이터를 구성하는 각 세그먼트를 저장하고 있는 복수의 정보 처리기로부터 복수의 세그먼트를 수신하여 저장하는 단계, 상기 저장된 세그먼트로부터 스트리밍 데이터를 생성하는 단계, 및 상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계를 포함한다.
본 발명의 일측면에 따르면, 상기 멀티미디어 데이터 재생 방법은 상기 세그먼트의 세그먼트 식별자를 판독하는 단계를 더 포함하고, 상기 저장된 세그먼트로부터 스트리밍 데이터를 생성하는 단계는 상기 세그먼트 식별자에 기초하여 이루어질 수 있다.
본 발명의 다른 측면에 따르면, 상기 각 세그먼트를 저장하고 있는 복수의 정보 처리기로부터 복수의 세그먼트를 수신하여 저장하는 단계는 상기 각 세그먼트를 저장하고 있는 복수의 정보 처리기의 위치 정보를 소정의 서버로부터 수신하는 단계 및 상기 위치 정보에 기초하여 상기 복수의 정보 처리기로부터 복수의 세그먼트를 병렬적으로 수신하여 저장하는 단계를 포함할 수 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법은 상기 수신된 멀티미디어 데이터 또는 그 세그먼트를 저장하기 전에 암호화하는 단계, 및 상기 스트리밍 데이터를 생성하기 전에 상기 암호화된 멀티미디어 데이터 또는 그 세그먼트를 복호화하는 단계를 더 포함할 수 있다.
또한, 본 발명은 상술한 멀티미디어 데이터 재생 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 특징으로 한다.
또한, 본 발명에 따른 멀티미디어 재생 장치는 재생 프로그램으로부터 재생 명령이 입력되면 상기 멀티미디어 데이터를 요청하는 멀티미디어 데이터 요청 명령을 송신하는 송신 모듈, 임의의 프로토콜을 이용하여, 서버 또는 다른 클라이언트 컴퓨터로부터 상기 멀티미디어 데이터 요청 명령에 대응하는 멀티미디어 데이터를 수신하는 수신 모듈, 상기 멀티미디어 데이터를 저장하는 저장 모듈, 및 상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성하여 상기 재생 프로그램에 제공하는 스트리밍 데이터 생성 모듈을 포함하는 것을 특징으로 한다.
본 발명의 일측면에 따르면, 상기 스트리밍 데이터 생성 모듈은 세그먼트 식별자에 기초하여 상기 스트리밍 데이터를 생성하기 위해 상기 세그먼트의 세그먼트 식별자를 판독하는 세그먼트 식별자 판독 수단을 포함할 수 있다.
본 발명의 다른 측면에 따르면, 상기 저장 모듈은 상기 세그먼트를 암호화하여 저장하는 암호화 수단을 포함하고, 상기 스트리밍 데이터 생성 모듈은 상기 암호화 된 세그먼트를 복호화하는 복호화 수단을 포함할 수 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법 및 장치에 있어서, 상기 재생 명령은 현재 재생되고 있는 세그먼트의 위치를 변경하고, 상기 변경된 위치에서부터 재생되도록 하는 재생 위치 변경 명령을 포함할 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다.
도 1 및 도 2에 기초하여 본 발명의 제1 실시예에 따른 멀티미디어 데이터 재생 방법(20)을 설명한다. 도 1은 멀티미디어 데이터 재생 방법(20)을 제공하기 위한 네트워크 구성을 도시한 도면이고, 도 2는 멀티미디어 데이터 재생 방법(20)을 도시한 흐름도이다.
멀티미디어 데이터 재생 방법(20)은 재생 명령을 입력 받는 단계(21), 멀티미디어 데이터를 요청하여 수신하는 단계(23), 멀티미디어 데이터를 암호화하는 단계(24), 멀티미디어 데이터를 저장하는 단계(25), 멀티미디어 데이터를 복호화하는 단계(26), 스트리밍 데이터를 생성하는 단계(27) 및 스트리밍 데이터를 생성하는 단계(28)를 포함한다.
단계(21)에서 클라이언트 컴퓨터(12)의 재생 프로그램으로부터 재생 명령을 입력 받는다. 상기 재생 프로그램은 윈도우 미디어 플레이어(Microsoft Windows Media Player) 또는 리얼 플레이어(Real Player) 등과 같은 종래의 재생 프로그램일 수도 있다. 단계(22)에서는 재생 명령에 따라 재생하고자 하는 멀티미디어 데이터가 클라이언트 컴퓨터(12)에 저장되어 있는지 여부를 판단하고, 클라이언트 컴퓨터(12)에 상기 멀티미디어 데이터가 저장되어 있는 경우에는 단계(27)에서 이 멀티미디어 데이터로부터 스트리밍 데이터를 생성한다. 본 발명의 다른 실시예에 따르면, 단계(22)에서 재생하고자 하는 멀티미디어 데이터가 클라이언트 컴퓨터(12)에 저장되어 있는지 여부뿐만 아니라, 클라이언트 컴퓨터(12)가 상기 멀티미디어 데이터를 수신 중인지 여부까지 판단하고, 수신 중인 경우에는 상기 멀티미디어 데이터가 수신 완료되면 스트리밍 데이터를 생성하도록 할 수도 있다.
클라이언트 컴퓨터(12)에 상기 멀티미디어 데이터가 저장되어 있지 않은 경우에는 단계(23)에서 상기 멀티미디어 데이터를 요청하여 수신한다. 상기 멀티미디어 데이터를 요청하는 단계는 상기 재생 프로그램이 실행되는 클라이언트 컴퓨터(12)와 네트워크를 통해 연결되고 상기 멀티미디어 데이터를 저장하고 있는서버(11) 또는 다른 클라이언트 컴퓨터에 요청하는 단계를 포함할 수 있다. 즉, 멀티미디어 데이터는 서버 외의 클라이언트 컴퓨터로부터 전송 받을 수 있다(이하에서는 기술(記述)상의 편의를 위해 멀티미디어 데이터를 제공하는 서버 또는 클라이언트 컴퓨터를 '정보 처리기'라고 칭하기로 한다).
단계(23)에서 멀티미디어 데이터는 임의의 프로토콜을 이용하여 요청하여 수신 받을 수 있다. 본 실시예에 따른 멀티미디어 데이터 재생 방법은 클라이언트 컴퓨터(12)에서 스트리밍 데이터를 생성하는 것을 주요한 특징으로 하고 있기 때문에, 멀티미디어 데이터를 제공하는 측(예를 들면, 서버(11))이 멀티미디어 데이터를 스트리밍으로 전송하지 않는 경우에도 스트리밍 프로토콜 외의 임의의 프로토콜을 사용하여 멀티미디어 데이터를 수신할 수 있다. 임의의 프로토콜을 사용할 수 있기 때문에 스트리밍 프로토콜에 의해 전송 받는 경우도 본 발명이 사용될 수 있다. 서버에서 스트리밍 서비스를 제공하는 경우에는 본 실시예에서 제공하는 스트리밍 서비스의 실익이 감소하나 후술하는 바와 같이, 본 실시예에 따른 멀티미디어 데이터 재생 방법(20)은 멀티미디어 데이터가 클라이언트 컴퓨터(12)에 저장되기 때문에 반복 재생을 하는 경우에 이미 저장되어 있는 멀티미디어 데이터 부분은 재전송 받을 필요가 없는 등 종래의 스트리밍 서비스와는 다른 장점들을 갖기 때문이다. 상기 멀티미디어 데이터는 재생 순서와 관계 없이 수신될 수도 있고, 스트리밍 데이터를 생성하기 용이하도록 재생 순서에 따라 순차적으로 수신될 수도 있다.
단계(24)에서 수신된 멀티미디어 암호화한다. 멀티미디어 데이터를 암호화하지 않아도 클라이언트 컴퓨터(12)에서 스트리밍 데이터를 생성하여 재생 프로그램에 제공하는 스트리밍 서비스에는 영향이 없다. 그러나, 본 실시예에 따른 멀티미디어 데이터 재생 방법(20)은 처음부터 서버(11)로부터 스트리밍으로 멀티미디어 데이터를 전송 받은 경우와는 달리, 클라이언트 컴퓨터(12)에 멀티미디어 데이터가 저장된다. 따라서, 클라이언트 컴퓨터(12)에 저장되어 있는 멀티미디어 데이터가 원저작자 등 권리자의 동의나 허락 없이 유출될 가능성이 존재하므로 이를 예방할 필요성이 있다. 또한, 멀티미디어 데이터가 유출되는 경우가 아니더라도, 멀티미디어 데이터를 전송 받아 저장한 후 허락 받은 사용 기간이 만료된 경우, 또는 멀티미디어 데이터를 사용하는 것이 허락되지 않은 프로그램(예를 들면, 복제 혹은 멀티미디어 데이터 추출 목적의 프로그램)을 이용하여 접근하는 경우 등도 동의나 허락 없는 사용으로 보아 방지할 필요성이 있다. 따라서, 수신한 멀티미디어 데이터를 암호화하여 저장하고, 후술하는 바와 같이 상기 암호화된 멀티미디어 데이터를 복호화한 후 스트리밍 데이터를 생성하는 단계를 포함시킴으로써 이러한 위험을 방지할 수 있다.
단계(25)에서 상기 암호화된 멀티미디어 데이터가 저장된다.
단계(26)에서 상기 암호화된 멀티미디어 데이터를 복호화하여, 단계(27)에서 상기 복호화된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성한다. 만약 암호화된 멀티미디어 데이터가 멀티미디어 데이터에 관한 권리자의 동의 없이 무단으로 복사되는 경우에는 멀티미디어 데이터가 재생되지 않도록 할 수 있다. 이러한 암호화는 멀티미디어 데이터를 저장할 때 허락된 클라이언트 모듈에 속한 스트리밍 데이터 생성 모듈에서만 읽힐 수 있도록 설정하여 멀티미디어 데이터가 다른클라이언트 컴퓨터로 복제되었을 때에는 재생되지 않도록 하는 방식을 사용할 수 있다. 이러한 암호화 및 복호화 방법은 본 발명의 범위를 벗어나고 비밀이 유지되어야 할 필요성이 크기 때문에, 본 출원 명세서에서는 그 상세한 설명을 생략하기로 한다. 또한, 본 발명의 또 다른 실시예에 따르면, 상기 암호화 및 복호화 방법은 종래의 공개된 알고리즘을 사용한 암호화 및 복호화 방법이 사용될 수 있다.
단계(28)에서 상기 스트리밍 데이터를 상기 재생 프로그램으로 제공하고 재생 프로그램은 상기 스트리밍 데이터를 재생한다. 이 때, 스트리밍 데이터가 일정 크기 이상 생성되면 상기 재생 프로그램에 제공하기 시작하도록 하여, 재생이 시작되기 전에 초기에 저장되어 있는 스트리밍 데이터의 양을 설정해 놓을 수 있다. 이는 초기에 재생될 스트리밍 데이터를 충분히 확보해 놓아 중간에 재생이 중지되고 다음 재생 순서에 해당하는 스트리밍 데이터가 생성되기를 기다리는 것을 방지하기 위함이다. 반면, 초기에 저장되는 스트리밍 데이터의 양을 너무 크게 설정하면 초기 버퍼링 시간이 증가하여, 재생 명령을 입력한 후부터 재생이 시작되기 전까지 사용자가 기다리는 시간이 증가하게 되므로 초기에 저장되는 스트리밍 데이터의 양을 너무 크게 설정하는 것도 바람직하지는 않다.
상술한 바와 같은 과정에 의해, 서버(또는 그 외의 정보 처리기일 수 있음)로부터 멀티미디어 데이터를 스트리밍 방식으로 전송 받지 않은 경우에도, 클라이언트 컴퓨터(12)의 소정의 모듈에서 전송 받은 멀티미디어 데이터를 스트리밍 방식의 스트리밍 데이터로 생성할 수 있기 때문에, 클라이언트 컴퓨터(12)의 재생 프로그램은 마치 스트리밍 방식으로 멀티미디어 데이터를 전송 받은 경우와 동일한 형태로 멀티미디어 데이터를 재생할 수 있게 된다.
본 발명의 또 다른 실시예에 따르면, 상기 멀티미디어 데이터는 세그먼트로 구성되어 있을 수 있다. 본 발명의 또 다른 실시예에 따르면, 멀티미디어 데이터 재생 방법은 저장되어 있는 세그먼트의 '세그먼트 식별자'를 판독하는 단계를 더 포함하고, 단계(27)에서는 상기 세그먼트 식별자에 기초하여 스트리밍 데이터를 생성할 수 있다. 상기 세그먼트는 상기 멀티미디어 데이터를 구성하는 고정적 또는 가변적 크기의 논리적 단위이고 세그먼트 식별자는 오프셋 또는 각 세그먼트에 부여되는 아이디(ID) 등과 같이 다양한 방식으로 구현될 수 있다.
이와 같이 멀티미디어 데이터가 세그먼트로 구성되어 있고 세그먼트 식별자를 판독하여 스트리밍 데이터를 생성하는 경우, 본 실시예에 따른 멀티미디어 데이터 재생 방법은 방송형 스트리밍 방식 외에 주문형 스트리밍 방식의 서비스를 제공할 수 있다. 재생 프로그램으로부터 입력 받는 재생 명령은, 현재 재생되고 있는 세그먼트의 위치를 변경하고 상기 변경된 위치에서부터 재생되도록 하는 재생 위치 변경 명령을 포함할 수 있다. 상기 재생 위치 변경 명령이 입력되면, 변경된 위치에 해당하는 세그먼트의 세그먼트 식별자로부터 상기 세그먼트의 위치를 결정할 수 있으므로, 해당하는 세그먼트로부터 멀티미디어 데이터가 재생되도록 할 수 있다.
도 3 내지 도 5를 이용하여 본 발명의 제2 실시예에 따른 멀티미디어 데이터 재생 방법(400)을 설명한다. 도 3은 본 실시예에 따른 멀티미디어 데이터 재생 방법(400)을 제공하기 위한 네트워크 구성을 도시한 도면, 도 4a 및 도4b는 멀티미디어 데이터 재생 방법(400)을 도시한 흐름도, 도 5는 멀티미디어 데이터 재생방법(400)에 따라 멀티미디어 데이터를 수신하는 단계를 설명하기 위한 도면이다.
멀티미디어 데이터 재생 방법(400)은 재생 명령을 입력 받는 단계(401), 위치 정보를 수신하는 단계(405), 복수의 정보 처리기로부터 세그먼트를 수신하는 단계(406), 세그먼트를 암호화하는 단계(407), 세그먼트를 저장하는 단계(408), 세그먼트를 복호화하는 단계(409), 세그먼트로부터 스트리밍 데이터를 생성하는 단계(410), 스트리밍 데이터를 재생 프로그램에 제공하여 재생되도록 하는 단계(411) 및 재생에 필요한 세그먼트를 예측하는 단계(413)를 포함한다.
본 실시예에 따른 멀티미디어 데이터 재생 방법(400)은 재생하고자 하는 멀티미디어 데이터를 세그먼트 단위로 취급하고, 이 세그먼트를 하나의 서버 또는 정보 처리기가 아닌 복수의 정보 처리기로부터 멀티미디어 데이터를 구성하는 세그먼트 단위로 병렬적으로 수신한다는 점에서 상술한 제1 실시예에 따른 멀티미디어 데이터 재생 방법(20)과 차이가 있다.
단계(401)에서 멀티미디어 컴퓨터(32)의 재생 프로그램으로부터 재생 명령을 입력 받는다. 제1 실시예에서와 마찬가지로, 본 실시예에서도 단계(402)에서 재생 명령이 입력되면 멀티미디어 데이터를 구성하는 세그먼트가 저장되어 있는 지 여부를 판단하고, 상기 세그먼트가 저장되어 있는 경우에는 저장되어 있는 세그먼트를 복호화하는 단계(409)로 진행되도록 할 수 있다. 또한, 단계(403)에서 상기 세그먼트가 수신 중인지 여부를 판단하고, 상기 세그먼트가 수신 중인 경우에는 수신이 완료되면 수신된 세그먼트를 암호화하는 단계(407)로 진행하도록 할 수도 있다.
상기 세그먼트가 저장되어 있는 경우 또는 수신 중인 경우가 아니라면 상기세그먼트를 수신한다. 멀티미디어 데이터 재생 방법(400)은 상기 세그먼트를 복수의 정보 처리기로부터 수신하는 것을 특징으로 한다. 즉, 복수의 세그먼트를 복수의 정보 처리기로부터 '병렬적'으로 전송 받고, 전송 받은 세그먼트를 이용하여 스트리밍 데이터를 생성하는 구성을 하고 있으므로 멀티미디어 데이터를 전송 받는 시간을 단축시킬 수 있다.
본 발명의 또 다른 실시예에 따르면, 복수의 정보 처리기로부터 세그먼트를 병렬적으로 전송 받는 경우, 상기 세그먼트가 저장되어 있는 정보 처리기의 위치가 기재되어 있는 정보인 '위치 정보'를 이용한다. 이를 위해, 단계(404)에서 클라이언트 컴퓨터(32)에 이미 위치 정보가 저장되어 있는지 여부를 판단하고, 위치 정보가 저장되어 있지 않은 경우에는 단계(405)에서 위치 정보를 저장하고 관리하는 서버(31)로부터 위치 정보를 수신한다. 그리고, 단계(406)에서 상기 위치 정보에 기초하여 상기 복수의 정보 처리기로부터 복수의 세그먼트를 병렬적으로 수신한다.
예를 들면, 재생에 필요한 세그먼트가 재생 순서에 따라 세그먼트(1), 세그먼트(2), 세그먼트(3)이라고 가정한다. 상기 세그먼트(1) 내지 세그먼트(3)은 멀티미디어 데이터에 포함된다. 병렬 전송을 이용하지 않는 경우에는 상기 세그먼트(1, 2, 3)는 세그먼트(1)이 전송 완료된 후에야 세그먼트(3) 또는 세그먼트(2)가 전송될 것이다(병렬 전송을 이용하지 않는 경우에도 재생 순서에 따라 전송 및 수신할 필요는 없다). 그러나, 복수의 정보 처리기로부터 병렬 전송을 받는 경우에는 각 세그먼트(1, 2, 3)은 다른 세그먼트가 전송 완료되었는지 여부와 관계없이 독립적으로 전송될 수 있다.
즉, 각 정보 처리기로부터 2Mbps로 전송이 가능하다면, 5개의 정보 처리기부터 병렬로 수신하는 경우에 10Mbps로 전송되는 효과가 발생한다. 이와 같은 병렬 전송으로 인해 멀티미디어 데이터의 전송 속도가 안정적이 된다. 하나의 정보 처리기, 예를 들어 하나의 서버로부터 멀티미디어 데이터를 수신하는 경우, 서버가 수행하는 다른 작업에 의한 부하의 발생으로 인해 전송 속도가 일정하지 않고 불규칙하다. 그러나, 여러 정보 처리기로부터 병렬로 전송하면 전체적인 전송 속도의 편차가 줄어듦으로써 안정적인 전송이 가능하다. 또한 병렬 전송은 하나의 멀티미디어 데이터 요청에 대해 전체 파일을 하나의 정보 처리기가 처리하는 것이 아니라 복수의 정보 처리기가 나누어 처리하게 되므로 부하의 분산 효과도 가져온다. 이와 같은 병렬 전송이 가능한 이유는 본 발명에 따른 멀티미디어 데이터 재생 방법이 소정의 서버로부터 스트리밍 데이터를 전송 받는 방식의 스트리밍 서비스가 아니라, 클라이언트 컴퓨터에서 클라이언트 컴퓨터에 저장된 세그먼트를 이용하여 스트리밍 데이터를 생성하여 스트리밍 서비스를 제공하도록 하는 구성을 하고 있기 때문에 굳이 하나의 정보 처리기로부터 세그먼트를 전송 받을 필요가 없기 때문이다.
상기 위치 정보는 각 세그먼트가 어떤 정보 처리기에 저장되어 있는지를 기재하고 있는 정보이다(클라이언트 컴퓨터(32)는 서버(31)로부터 세그먼트를 수신 받을 수 있는 것이 당연하므로 정보 처리기는 서버를 포함하는 개념이다). 상기 위치 정보는 실시예에 따라 다양한 방식으로 기재될 수 있고, 그 방식에 따라 정보 처리기로부터 세그먼트를 전송 받는 방식은 조금씩 상이해질 수 있다.
먼저, 상기 위치 정보가 소정의 세그먼트가 저장되어 있는 정보 처리기를 기재한 정보인 경우의 실시예에 대해 설명한다. 멀티미디어 데이터가 세그먼트(1), 세그먼트(2), 세그먼트(3), , 세그먼트(N)으로 구성되어 있는 경우를 예로 든다. 이 경우 상기 위치 정보는 각 세그먼트(1, 2, …, N)에 대하여,
[세그먼트(1) : 서버, 정보 처리기(C), 정보 처리기(E), …]
[세그먼트(2) : 정보 처리기(A), 정보 처리기(B), 정보 처리기(F), …]
[세그먼트(N) : 정보 처리기(D), 정보 처리기(G), 정보 처리기(A), …]
와 같이 기재될 수 있다.
먼저, 세그먼트(1)을 수신하고자 하는 경우에는 세그먼트(1)이 실제로 존재하고 있다는 응답을 하는 정보 처리기가 발견될 때까지, 정보 처리기(A)부터 세그먼트(1)이 존재하는지 여부를 문의할 수 있다. 문의 과정이 필요한 이유는 서버(31)에 상기 위치 정보가 저장되는 시점에서는 정보 처리기(A, C, E, …)에 세그먼트(1)이 저장되어 있었으나 상기 위치 정보를 이용하여 세그먼트(1)을 수신 받고자 하는 경우에는 정보 처리기(A)에서는 세그먼트(1)이 제거되었을 가능성 또는 정보 처리기(A)로부터 응답이 없을 가능성 등이 있기 때문이다. 도 5는 세그먼트(1)에 대한 위치 정보가 상술한 바와 같을 때, 상기 위치 정보에 기재되어 있는 정보 처리기 중에서 서버로부터 세그먼트(1)을 전송 받는 경우를 설명하는 도면이다.
이때, 위치 정보에 기재되어 있는 정보 처리기에 문의하는 순서는 임의로 결정하도록 할 수 있고, 웨이트(weight)를 부여하여 소정의 순서에 따라 문의하도록 할 수도 있다.
다음으로, 상기 위치 정보가 상기 멀티미디어 데이터를 구성하는 세그먼트가 저장되어 있는 정보 처리기를 기재한 정보인 경우의 실시예에 대해 설명한다. 이 때에는 특정되어 있는 세그먼트가 아니라 멀티미디어 데이터를 구성하는 어느 세그먼트라도 포함하는 정보 처리기에 대한 위치 정보를 제공하는 것이다. 멀티미디어 데이터(MD1)가 세그먼트(1), 세그먼트(2), 세그먼트(3), …, 세그먼트(N)으로 구성되어 있는 경우를 예로 든다. 이 경우 상기 위치 정보는,
[멀티미디어 데이터(MD1) : 정보 처리기(C), 정보 처리기(B), 정보 처리기(F), 정보 처리기(K)]
와 같이 기재될 수 있다. 이 위치 정보에 의하면, 정보 처리기(C)는 멀티미디어 데이터(MD1)를 구성하는 세그먼트 중 일부를 저장하고 있는 것은 알 수 있으나, 멀티미디어 데이터(MD1)를 구성하는 세그먼트 중 특정한 세그먼트(예를 들면, 세그먼트(1))가 어느 정보 처리기에 저장되었는지 여부는 알 수 없다. 따라서, 세그먼트(1, 2, 3)를 병렬 전송하고 싶은 경우, 먼저 정보 처리기(C)에 문의하여 어떤 세그먼트를 저장하고 있는지 문의하고 세그먼트(2)가 저장되어 있는 것이 확인되면 정보 처리기(C)로부터 세그먼트(2)를 전송 받는다. 이어서 정보 처리기(B)에 문의하여 어떤 세그먼트를 저장하고 있는지 문의했지만 세그먼트(5)가 저장되어 있다면 다음 정보 처리기(F)에 문의한다. 정보 처리기(F)가 세그먼트(1)을 저장하고 있는 것이 확인되면 정보 처리기(F)로부터 세그먼트(1)를 전송 받는다. 각 정보 처리기로부터 세그먼트를 전송 받는 과정은 다른 정보 처리기로부터 세그먼트가 전송 완료되었는지 여부와 독립적으로 실행되는 과정이므로 이 경우에도 병렬 전송이 이루어질 수 있음은 물론이다.
이와 같이, 복수의 정보 처리기로부터 복수의 세그먼트를 병렬 전송 받는 것은 동일하나 실시예에 따라 위치 정보의 기재 방식이 달라질 수 있으므로 세부적인 구현 알고리즘도 달라질 수 있을 것이다. 다만, 소정의 세그먼트 별로 위치 정보를 제공하는 전자의 방식이 위치 정보에 기재되어 있는 정보 처리기에 원하는 세그먼트가 저장되어 있는 확률이 높을 것이다.
본 발명의 또 다른 실시예에 따르면, 복수의 정보 처리기로부터 병렬적으로 수신한 상기 세그먼트를 저장하기 전에 상기 세그먼트를 암호화하는 단계(407)을 더 포함할 수도 있다. 제1 실시예에서 기술한 바와 같이 세그먼트를 암호화함으로써 멀티미디어 데이터가 권리자의 동의나 허락 없이 복제, 배포되는 것을 방지할 수 있다. 상기 암호화된 세그먼트는 단계(410)에서 스트리밍 데이터로 생성되기 전에 단계(409)에서 복호화 되어야 한다.
단계(410)에서 상기 복호화된 세그먼트로부터 스트리밍 데이터를 생성한다. 본 발명의 또 다른 실시예에 따르면, 상기 세그먼트의 세그먼트 식별자를 판독하는 단계를 더 포함하고, 단계(410)은 상기 세그먼트 식별자를 이용하여 이루어질 수 있다. 상술한 예에서 각 세그먼트에 대해 세그먼트(1), 세그먼트(2) 등으로 각 세그먼트를 구별한 것도 세그먼트 식별자(이 예에서는 아이디)를 부여한 것이라고 할 수 있다. 아이디를 세그먼트 식별자로 사용하는 경우에는 각 세그먼트의 크기가일정할 필요도 없고 그 크기가 고정적일 필요도 없다. 그 외에도 각 세그먼트를 식별할 목적으로 사용되는 것들은 모두 세그먼트 식별자라고 할 수 있다.
실시예에 따라 세그먼트 식별자를 판독하는 단계는 단계(409)에서 암호화되어 저장된 세그먼트를 복호화한 후에 이루어질 수도 있고, 단계(406)에서 세그먼트를 수신한 후에 이루어질 수도 있지만, 단계(410)에서 세그먼트로부터 스트리밍 데이터를 생성하기 전에 이루어져야 함은 당연하다.
단계(410)에서 생성된 스트리밍 데이터는 단계(411)에서 상기 재생 프로그램으로 제공되고 상기 재생 프로그램은 상기 스트리밍 데이터를 재생한다.
멀티미디어 데이터 재생 방법(400)은 서버가 아닌 클라이언트 컴퓨터에서 스트리밍 서비스가 제공된다는 점에서 종래기술과 차이가 있으나 스트리밍 서비스를 제공하는 것은 공통적이기 때문에 멀티미디어 데이터가 전부 전송되기 전에 재생을 시작할 수 있고 재생되고 있는 상태에서 다음 재생 순서의 멀티미디어 데이터를 전송 받을 수 있다. 그런데, 종래의 스트리밍 서비스에서는 전송 속도가 재생 속도에 비해 느린 경우에는 음악, 영상 등이 매끄럽지 못하게 재생되는 현상이 발생할 수 있다. 따라서, 이러한 문제점을 해결하기 위해, 본 발명의 또 다른 실시예에 따르면, 세그먼트로부터 생성된 스트리밍 데이터의 재생 중에 다음 재생에 필요한 세그먼트를 예측하여 미리 전송 받는 단계(413)을 포함한다. 다음 재생에 필요한 세그먼트를 예측하는 것은 재생 위치, 재생 속도, 전송 속도 등을 고려하여 이루어질 수 있다. 본 발명의 일실시예에 따르면, 재생 프로그램이 멀티미디어 데이터를 재생하는데 사용하는 코덱(CODEC)을 이용하여 재생에 필요한 순서를 예측하고 세그먼트 식별자를 계산하여 필요한 세그먼트를 예측할 수 있다. 재생에 필요한 세그먼트가 예측된 경우 다시 단계(402)로부터 각 단계가 진행될 것이다.
또한, 멀티미디어 데이터 재생 방법(400) 역시 제1 실시예에 따른 멀티미디어 데이터 재생 방법(20)에서와 마찬가지로 i) 재생 위치 변경 명령을 입력 받으면 현재 재생되고 있는 세그먼트의 위치를 변경하고, 상기 변경된 위치에서부터 재생되도록 하는 구성, ⅱ) 스트리밍 데이터가 일정 크기 이상 생성되면 재생 프로그램에 제공하기 시작하여 재생되도록 하는 구성을 포함할 수 있다. 이러한 구성은 제1 실시예에서 설명하였으므로 본 실시예에서는 그 자세한 설명은 생략한다.
한편, 본 발명은 상술한 바와 같은 다양한 실시예를 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.
도 6은 본 발명의 제3 실시예에 따른 멀티미디어 데이터 재생 장치(610)이다. 멀티미디어 재생 장치(610)는 송신 모듈(611), 수신 모듈(612), 저장 모듈(613) 및 스트리밍 데이터 생성 모듈(614)을 포함한다. 멀티미디어 재생 장치(610)는 재생 프로그램(620)과 마찬가지로 클라이언트 컴퓨터(600)에 설치된다.
송신 모듈(611)은 소정의 멀티미디어 데이터를 재생하기 위해 재생 프로그램(621)로부터 재생 명령이 입력되면 상기 멀티미디어 데이터를 요청하는 멀티미디어 데이터 요청 명령을 송신한다. 상기 멀티미디어 데이터 요청 명령을 수신하는 측은 상기 멀티미디어 데이터를 저장하고 있는 정보 처리기 (즉, 서버 또는 다른 클라이언트 컴퓨터) (630)의 정보 처리기 측 송수신 모듈(631)이다. 정보 처리기(630)는 상기 멀티미디어 데이터 요청 명령에 해당하고 정보 처리기 측 저장 모듈(632)에 저장되어 있는 멀티미디어 데이터를 멀티미디어 데이터 재생 장치(610)로 전송한다. 멀티미디어 데이터 재생 장치(610)의 수신 모듈(612)은 전송되는 멀티미디어 데이터를 수신한다. 이 때, 멀티미디어 데이터는 스트리밍 프로토콜 외의 임의의 프로토콜을 이용하여 수신될 수 있다. 멀티미디어 데이터 재생 장치(610)는 클라이언트 컴퓨터(600)에 설치되어 스트리밍 서비스를 제공하므로, 정보 처리기(630)로부터 스트리밍 방식으로 멀티미디어 데이터를 전송 받을 필요가 없기 때문이다.
저장 모듈(613)은 상기 전송 받은 멀티미디어 데이터를 저장한다. 저장 모듈(613)은 한번 요청된 데이터를 저장하고 축출되기 전까지 재생 프로그램(620)에 의해 멀티미디어 데이터가 요청되면 제공할 수 있도록 하는 역할을 수행하는 일종의 캐쉬(cache) 기능을 가질 수 있다. 종래의 스트리밍 서비스는 멀티미디어 데이터를 재생하는 클라이언트 컴퓨터에 멀티미디어 데이터를 저장하지 않는다. 그 결과, 반복 재생을 하고자 하는 경우나 이미 재생된 부분으로 되돌아가고자 하는 경우에, 서버에 데이터를 다시 요청해야 하므로 재생하는데 준비 시간(버퍼를 채우는 시간)이 필요하고, 서버에서의 부하도 많이 발생한다. 본 실시예에서는 상술한 바와 같이 캐쉬(cache) 기능을 하는 저장 영역에 한번 수신한 데이터를 저장함으로써 반복재생이나 이미 재생된 부분으로 되돌아가는 경우에는 별도의 데이터 송수신이 발생하지 않도록 하고, 결과적으로는 데이터 수신에 필요한 재생 준비 시간을 없애고 서버의 부하를 줄일 수 있다. 한편, 저장 모듈(613)의 저장 공간은 그 크기가가변적이거나 고정적일 수 있고, 멀티미디어 데이터가 축출되는 시점도 적용하는 정책에 의해 결정되는 등 구현자 또는 사용 분야의 요구 사항에 따라 달라질 수 있을 것이다.
스트리밍 데이터 생성 모듈(614)은 상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성한다. 스트리밍 데이터 생성 모듈(614)은 재생하고자 하는 멀티미디어 데이터가 전부 전송되기 전에, 이미 전송된 세그먼트를 이용하여 스트리밍 데이터를 생성할 수 있다. 즉, 스트리밍 데이터 생성 모듈(613)은 스트리밍 데이터가 재생되는 속도를 따라갈 수 있을 만큼 충분한 스트리밍 데이터가 생성되면 나머지 세그먼트가 전송되기 전이라도 이미 생성된 스트리밍 데이터를 재생 프로그램(620)에 제공하여 재생되도록 한다. 어느 정도의 스트리밍 데이터를 생성한 후에 재생이 시작될 때 도중에 음악이나 영상 등이 원활하게 재생되는가 하는 것은 전송 속도의 영향을 많이 받는다. 즉, 수신 모듈(612)이 세그먼트를 수신하는 속도가 빠르다면 스트리밍 데이터를 생성하는 속도도 빨라질 것이므로 초기에 너무 많은 스트리밍 데이터가 생성될 때까지 기다릴 필요는 없다. 재생이 시작되기 전에 과도하게 스트리밍 데이터를 생성하는 경우에는 재생 프로그램(620)으로부터 재생 명령이 입력된 시점부터 실제로 멀티미디어 데이터가 재생되기 전까지의 시간이 오래 걸릴 수 있고, 이러한 현상은 재생 프로그램(620)을 이용하여 멀티미디어 데이터를 재생하고자 하는 사용자들을 지루하게 할 수 있다. 반면, 재생을 시작하기 전에 스트리밍 데이터를 어느 정도 충분히 생성해 두지 않으면, 재생 도중에 스트리밍 데이터의 생성을 기다려야 하므로 음악이나 영상이 중지된 상태(또는 멀티미디어 데이터가 제대로 재생되지 않아 화질이 나쁜 상태)가 발생하여 사용자가 음악이나 영상을 감상하기에 부적절하다. 따라서, 스트리밍 데이터 생성 모듈(614)이 재생 시작 전에 스트리밍 데이터를 얼마나 생성해 놓느냐는 전송 속도 등을 고려하여 설정해야 할 것이다. 또한, 본 발명의 또 다른 실시예에 따르면 재생 명령이 입력될 때마다 클라이언트 컴퓨터(600)와 정보 처리기(630) 사이의 전송 속도를 측정하여 재생 시작 전에 생성되어야 하는 스트리밍 데이터의 양을 설정하도록 할 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 재생 시작 전에 생성되어야 하는 스트리밍 데이터의 양이 설정된 후에도, 스트리밍 데이터의 생성 속도가 재생 속도보다 느려져서 스트리밍 데이터가 부족해지는 상황을 방지하기 위해, 중간 중간에 생성되어 있는 스트리밍 데이터의 양과 재생 속도를 측정하여 정보 처리기(630)로부터 세그먼트가 전송되는 속도를 증감시킬 수 있다. 즉, 스트리밍 데이터가 재생 속도에 비해 충분히 생성되어 있다면 정보 처리기(630)로부터 클라이언트 컴퓨터(600)로 전송되는 속도를 감소시켜 세그먼트를 제공하는 정보 처리기(630)의 부하를 감소시키고, 스트리밍 데이터가 재생 속도에 비해 부족한 경우에는 정보 처리기(630)로부터 클라이언트 컴퓨터(600)로 전송되는 속도를 증가시켜 사용자에게 양질의 음악이나 영상 등을 제공할 수 있도록 한다.
재생 프로그램(620)은 스트리밍 데이터 생성 모듈(614)로부터 제공 받은 스트리밍 데이터를 재생한다.
본 발명의 또 다른 실시예에 따르면, 저장 모듈(613)은 상기 멀티미디어 데이터를 암호화하여 저장하는 암호화 수단(613a)을 포함하고, 스트리밍 데이터 생성 모듈(614)은 상기 암호화된 멀티미디어 데이터를 복호화하는 복호화 수단(614a)을 포함할 수 있다. 암호화 수단(613a) 및 복호화 수단(614a)은 후술하는 제4 실시예에서 상세히 설명되므로 본 실시예에서는 그 상세한 설명을 생략하기로 한다.
도 7은 본 발명의 제4 실시예에 따른 멀티미디어 데이터 재생 장치(710)이다. 멀티미디어 재생 장치(710)는 제1 송수신 모듈(711), 제2 송수신 모듈(712), 저장 모듈(713), 및 스트리밍 데이터 생성 모듈(714)을 포함한다. 상술한 멀티미디어 데이터 재생 장치(610)에 비해, 멀티미디어 데이터 재생 장치(710)는 멀티미디어 데이터를 세그먼트 단위로 취급한다는 점, 상기 세그먼트를 서버를 포함하는 복수의 정보 처리기로부터 전송 받는다는 점에 특징이 있다.
제1 송수신 모듈(711)은 재생 프로그램(720)으로부터 재생 명령을 입력 받고 서버(730)에 소정의 위치 정보를 요청한다. 상기 위치 정보는 상기 재생 명령에 대응하는 멀티미디어 데이터를 구성하는 세그먼트가 어떤 정보 처리기에 저장되어 있는지가 기재되어 있는 정보이다. 멀티미디어 데이터 재생 장치(710)은 복수의 정보 처리기로부터 상기 세그먼트를 전송 받기 때문에 각 세그먼트가 어느 정보 처리기에 저장되었는지에 대한 위치 정보가 필요하다. 상기 위치 정보의 예, 기재 방식, 기재 방식에 따른 구현 알고리즘에 대해서는 제2 실시예에 따른 멀티미디어 데이터 재생 방법(600)에서 자세히 설명하였으므로 본 실시예에서는 그 상세한 설명을 생략한다.
본 실시예에 있어서, 서버(730)는 클라이언트 컴퓨터(600)와 송수신 하기 위한 서버 측 송수신 모듈(731), 제1 송수신 모듈(711)로부터 위치 정보를 요청 받으면 제공하기 위해 위치 정보를 저장하는 위치 정보 저장 모듈(733), 및 세그먼트를 저장하는 서버 측 세그먼트 저장 모듈(732)을 포함한다. 서버 측 송수신 모듈(731)은 제1 송수신 모듈(711)로부터 위치 정보를 요청 받으면 위치 정보 저장 모듈(733)에서 해당하는 위치 정보를 선택하여 제1 송수신 모듈(711)로 전송한다. 제1 송수신 모듈(711)이 상기 위치 정보를 수신하면, 제2 송수신 모듈(712)은 상기 위치 정보에 기초하여 복수의 정보 처리기에 세그먼트를 전송해 줄 것을 요청하는 세그먼트 요청 명령을 송신하고 상기 복수의 정보 처리기로부터 상기 세그먼트를 병렬적으로 수신한다. 예를 들어, 위치 정보에 기초하여 세그먼트(71)은 서버(730)로부터, 세그먼트(72)는 정보 처리기(740)으로부터, 세그먼트 (73)은 정보 처리기(750)으로부터 전송 받기로 한 경우(어느 정보 처리기로부터 세그먼트를 전송 받을지 결정하기 위해 제2 실시예에서 상술한 바와 같은 '문의' 과정을 거친 후일 수 있다), 도 7에 도시한 바와 같이 제2 송수신 모듈(712)은 각 세그먼트(71, 72, 73)를 각 정보 처리기(서버(730), 740, 750)로부터 병렬적으로 전송 받을 수 있다. 이 때, 각 정보 처리기(서버(730), 740, 750)로부터 전송되는 데이터는 서로 중첩되지 않도록 제2 송수신 모듈에서 제어할 수 있다. 따라서, 소정의 멀티미디어 데이터를 전송 받기 위해, 본 실시예에서와 같이 멀티미디어 데이터를 세그먼트 단위로 취급하고 복수의 정보 처리기로부터 병렬 전송 받는 경우에는, 멀티미디어 데이터를 하나의 정보 처리기로부터 전송 받는 경우에 비해 전송에 걸리는 시간을 대폭 감소시킬 수 있다.
제2 송수신 모듈(712)이 수신한 세그먼트는 저장 모듈(713)에 의해 저장된다. 그런데, 본 발명의 또 다른 실시예에 따르면, 저장 모듈(713)은 수신된 세그먼트를 암호화하여 저장하는 암호화 수단(713a)을 포함할 수 있다. 종래의 스트리밍 서비스와는 달리 멀티미디어 데이터 재생 장치(710)를 이용하여 스트리밍 서비스를 제공하는 경우에는 클라이언트 컴퓨터(700)에 멀티미디어 데이터가 저장되는 구성을 하고 있기 때문에, 상기 멀티미디어 데이터가 다른 클라이언트 컴퓨터 또는 기타 기록 매체에 복제되어 유출될 우려가 있으므로, 이를 방지하기 위해 암호화 수단(713a)이 설치된다.
스트리밍 데이터 생성 모듈(714)은 저장 모듈(713)에 저장되어 있는 세그먼트로부터 스트리밍 데이터를 생성한다. 한편, 상술한 바와 같이 암호화 장치(713a)를 구비하고 세그먼트가 암호화 되어 저장된 경우에는, 스트리밍 데이터 생성 모듈(714)은 상기 암호화된 세그먼트를 복호화하기 위한 복호화 수단(714a)을 포함한다.
도 8을 참조하여 상술한 암호화 및 복호화 과정을 설명하기로 한다. 클라이언트 컴퓨터(81)에 설치된 제2 송수신 모듈(811)로부터 입력된 세그먼트가 암호화 수단(812a)(도시하지 않음)에 의해 암호화된 후에 저장 모듈(812)에 저장된 경우, 스트리밍 데이터 생성 모듈(813)은 복호화 수단(813a)에 의해 상기 암호화된 세그먼트가 복호화된 후에 스트리밍 데이터를 생성하여 재생 프로그램으로 전달하여 재생되도록 한다. 그런데, 만약 상기 암호화된 세그먼트가 클라이언트 컴퓨터(81)로부터 권리자의 동의 등이 없는 클라이언트 컴퓨터(82)(정확히는 저장 모듈(822))로복제된 경우에는, 상기 세그먼트가 암호화 되어 저장된 상태이기 때문에 스트리밍 데이터 생성 모듈(823)에 의해서는 스트리밍 데이터가 정상적으로 생성되지 않고 재생이 제대로 이루어지지 않게 된다. 본 실시예에서는 세그먼트에 대해 설명했으나, 제3 실시예에서와 같이 세그먼트가 아닌 멀티미디어 데이터를 사용하는 경우에도 멀티미디어 데이터가 암호화-> 저장-> 복호화-> 스트리밍 데이터 생성-> 재생하는 단계가 그대로 적용될 수 있다.
이러한 암호화 수단(713a) 및 복호화 수단(714a)의 구체적인 구성은 본 발명의 범위를 벗어나고 비밀이 유지되어야 할 필요성이 크기 때문에, 본 출원 명세서에서는 그 기재를 생략하기로 한다. 또한, 본 발명의 또 다른 실시예에 따르면, 암호화 수단(713a) 및 복호화 수단(714a)은 종래의 공개된 알고리즘을 사용한 암호화 수단 및 복호화 수단일 수 있다.
한편, 본 발명의 또 다른 실시예에 따르면, 스트리밍 데이터 생성 모듈(714)는 세그먼트 식별자에 기초하여 스트리밍 데이터를 생성하기 위해 세그먼트 식별자를 판독하는 세그먼트 식별자 판독 수단(714b)을 포함할 수 있다. 세그먼트 식별자는 각 세그먼트의 오프셋 또는 세그먼트마다 부여되는 아이디 일 수 있다. 세그먼트 식별자는 각 세그먼트를 식별할 수 있도록 하는 한편, 스트리밍 데이터 생성 수단(714)에 각 세그먼트가 재생되어야 하는 순서에 대한 정보를 줄 수 있다.
병렬적으로 전송되는 세그먼트(암호화 되어 있을 수도 있음)는 그 재생 순서에 관계 없이 저장될 수 있다. 이 때, 세그먼트 식별자 판독 수단(714b)이 각 세그먼트의 세그먼트 식별자를 판독하면, 스트리밍 데이터 생성 모듈(714)은 상기 식별 결과를 이용하여 스트리밍 데이터를 용이하게 생성할 수 있다.
또한, 세그먼트 식별자 판독 수단(714b)를 구비함으로써, 재생 위치를 변경하는 것이 용이하게 된다. 멀티미디어 데이터를 재생하기 위한 재생 명령이 입력된 상태에서 다른 명령이 입력되지 않는 경우, 스트리밍 데이터 생성 모듈(714)은 세그먼트 식별자 판독 수단(714b)이 판독한 세그먼트 식별자를 이용하여 재생 순서에 따라 스트리밍 데이터를 생성한다. 이 때, 재생 프로그램으로부터 현재 재생되고 있는 멀티미디어 데이터의 위치와 상이한 위치에서부터 재생되도록 하는 재생 위치 변경 명령이 입력되면, 세그먼트 식별자 판독 수단(714b)은 변경된 위치에 해당하는 세그먼트의 세그먼트 식별자를 판독하고 이 세그먼트 식별자를 이용하여 변경된 위치에 해당하는 세그먼트로부터 재생 순서에 따라 스트리밍 데이터를 생성할 수 있다.
한편, 본 발명의 각 실시예에서 설명한 스트리밍 데이터 생성 모듈, 송수신 모듈, 세그먼트 식별자 판독 수단 등 각 구성 요소는 기능에 따라 구분한 것으로서, 물리적으로 동일한 장치 또는 별개의 장치로 구현될 수 있다.
이하에서는, 본 발명에 따라 멀티미디어 데이터를 재생하기 위한 클라이언트 컴퓨터 또는 멀티미디어 데이터를 제공하는 정보 처리기로서 채용될 수 있는 범용 컴퓨터 시스템에 대해 설명한다. 도 9는 컴퓨터 시스템의 내부 블록도를 도시한 도면이다. 본 명세서에서 범용 컴퓨터 시스템이란 용어는 PC 등의 컴퓨터뿐만 아니라 도 9에서 도시한 구성요소의 전부 또는 일부를 구비한 셋탑 박스 형태의 어떠한 기계 장치도 포함하는 의미로 사용되었다.
컴퓨터 시스템(900)은 램(RAM: Random Access Memory)(902)과 롬(ROM: Read Only Memory)(903)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(901)를 포함한다. 프로세서(001)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(903)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전달하는 역할을 하며, 램(902)은 통상적으로 데이터와 명령을 양방향성으로 전달하는 데 사용된다. 램(902) 및 롬(903)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(904)는 양방향성으로 프로세서(901)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(904)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드디스크와 같은 보조기억장치이다. CD 롬(906)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(901)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(905)와 연결된다. 마지막으로, 프로세서(901)는 네트워크 인터페이스(907)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다.
상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
본 발명에 따른 멀티미디어 데이터 재생 방법 및 장치에 의하면, 스트리밍 서비스를 제공하지 않는 서버로부터 멀티미디어 데이터를 전송 받는 경우에도 클라이언트 컴퓨터에서 스트리밍 서비스를 제공할 수 있다는 기술적 효과가 있다. AVI나 DIVX와 같은 형식의 멀티미디어 데이터는 물리적인 기록방식에 순차성이 없기 때문에 스트리밍 서비스를 제공하기 위해서는 서버에 반드시 스트리밍 전송 모듈(즉, 스트리밍 서버)을 마련하여 순차적으로 전송하도록 해야 한다. 그러나, 본 발명은 정보 처리기가 순차적으로 멀티미디어 데이터를 전송하는 것이 아니라, 클라이언트 컴퓨터에서 멀티미디어 데이터로부터 스트리밍 데이터를 생성하여 재생 프로그램에 제공하도록 하고 있다. 그 결과로 서버와 클라이언트 컴퓨터 사이에 스트리밍 전송을 위한 스트리밍 프로토콜만을 사용할 수 있는 것이 아니라 구현하기 쉬운 임의의 일반 전송 프로토콜을 이용할 수 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법 및 장치에 의하면, 서버에 저장되어 있는 위치 정보에 기초하여 복수의 정보 처리기로부터 멀티미디어 데이터를 병렬 전송 받기 때문에 멀티미디어 데이터의 전송에 소요되는 시간이 감소한다는 기술적 효과가 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법 및 장치에 의하면, 재생 순서에 맞추어 재생에 필요한 멀티미디어 데이터(또는 세그먼트)를 예측하여 미리 전송 받을 수 있으므로 재생이 원활하게 이루어진다는 기술적 효과가 있다.
또한, 본 발명에 따른 멀티미디어 데이터 재생 방법 및 장치에 의하면, 전송된 멀티미디어 데이터 중 일부가 클라이언트 컴퓨터에 저장되고 멀티미디어 데이터를 반복 재생하는 경우 이미 저장되어 있는 부분인지 판단하는 과정을 포함하여 저장되어 있는 부분은 재전송 받을 필요가 없도록 구성되어 있어, 서버와 클라이언트 컴퓨터 사이의 로드를 감소시킬 수 있다는 효과가 있다. 한편, 멀티미디어 데이터를 재생하는 클라이언트 컴퓨터에 멀티미디어 데이터가 저장된다는 측면에서는 다운로드 전송과 유사하지만, 다운로드 전송은 사용자가 임의로 복사할 수 있는 형태의 파일로 데이터가 존재하므로 임의 복제 및 임의 재생이 가능한 반면, 본 발명에서는 암호화 및 복호화를 도입하여 멀티미디어 데이터를 수신한 정보 처리기에서만 재생이 가능하도록 할 수 있다.

Claims (22)

  1. 멀티미디어 데이터를 수신하여 재생하기 위한 멀티미디어 데이터 재생 방법에 있어서,
    재생 프로그램으로부터 재생 명령을 입력 받는 단계,
    상기 재생 명령에 응답하여 상기 멀티미디어 데이터를 요청하는 단계,
    임의의 프로토콜을 이용하여 상기 멀티미디어 데이터를 수신하고 저장하는 단계,
    상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성하는 단계, 및
    상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계
    를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  2. 제1항에 있어서,
    상기 멀티미디어 데이터는 멀티미디어 데이터를 구성하는 세그먼트로 구분될 수 있고, 상기 각 단계는 상기 세그먼트 단위로 이루어지는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  3. 제1항에 있어서,
    상기 멀티미디어 데이터를 요청하는 단계는,
    상기 재생 프로그램이 수행되는 클라이언트 컴퓨터와 네트워크를 통해 연결되고 상기 멀티미디어 데이터를 저장하고 있는 서버 또는 다른 클라이언트 컴퓨터에 요청하는 단계
    를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  4. 제3항에 있어서,
    상기 멀티미디어 데이터가 상기 클라이언트 컴퓨터에 저장되어 있는 경우에는 상기 재생 명령에 응답하여 상기 저장된 멀티미디어 데이터로부터 스트리밍 데이터를 생성하는 단계
    를 더 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  5. 제1항에 있어서,
    상기 수신된 멀티미디어 데이터를 저장하기 전에 암호화하는 단계, 및
    상기 스트리밍 데이터를 생성하기 전에 상기 암호화된 멀티미디어 데이터를 복호화하는 단계
    를 더 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  6. 제1항에 있어서,
    상기 임의의 프로토콜은 스트리밍 프로토콜 이외의 프로토콜인 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  7. 멀티미디어 데이터를 수신하여 재생하기 위한 멀티미디어 데이터 재생 방법에 있어서,
    재생 프로그램으로부터 재생 명령을 입력 받는 단계,
    상기 재생 명령에 응답하여 상기 멀티미디어 데이터를 구성하는 각 세그먼트를 저장하고 있는 복수의 정보 처리기로부터 복수의 세그먼트를 수신하여 저장하는 단계,
    상기 저장된 세그먼트로부터 스트리밍 데이터를 생성하는 단계, 및
    상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계
    를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  8. 제2항 또는 제7항에 있어서,
    상기 재생 명령은 현재 재생되고 있는 세그먼트의 위치를 변경하고, 상기 변경된 위치에서부터 재생되도록 하는 재생 위치 변경 명령을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  9. 제1항 또는 제7항에 있어서,
    상기 스트리밍 데이터를 상기 재생 프로그램에 제공하여 재생되도록 하는 단계는
    상기 스트리밍 데이터가 일정 크기 이상 생성되면 상기 재생 프로그램에 제공하기 시작하여 재생되도록 하는 단계
    를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  10. 제2항 또는 제7항에 있어서,
    상기 세그먼트의 세그먼트 식별자를 판독하는 단계를 더 포함하고,
    상기 저장된 세그먼트로부터 스트리밍 데이터를 생성하는 단계는 상기 세그먼트 식별자를 이용하여 이루어지는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  11. 제7항에 있어서,
    상기 세그먼트를 저장하고 있는 복수의 정보 처리기로부터 복수의 세그먼트를 수신하여 저장하는 단계는,
    상기 각 세그먼트를 저장하고 있는 복수의 정보 처리기의 위치 정보를 소정의 서버로부터 수신하는 단계, 및
    상기 위치 정보에 기초하여 상기 복수의 정보 처리기로부터 복수의 세그먼트를 병렬적으로 수신하여 저장하는 단계
    를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  12. 제11항에 있어서,
    상기 위치 정보는 소정의 세그먼트가 저장되어 있는 정보 처리기를 기재한 정보이고,
    상기 위치 정보에 기초하여 상기 복수의 정보 처리기로부터 복수의 세그먼트를 병렬적으로 수신하여 저장하는 단계는, 상기 위치 정보에 기재되어 있는 정보 처리기에 상기 세그먼트가 존재하는지 여부를 문의하여 상기 세그먼트가 존재한다는 응답을 한 정보 처리기로부터 상기 세그먼트를 수신하여 저장하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  13. 제11항에 있어서,
    상기 위치 정보는 상기 멀티미디어 데이터를 구성하는 세그먼트가 저장되어 있는 정보 처리기를 기재한 정보이고,
    상기 위치 정보에 기초하여 상기 복수의 정보 처리기로부터 복수의 세그먼트를 병렬적으로 수신하여 저장하는 단계는 상기 위치 정보에 기재되어 있는 정보 처리기에 소정의 세그먼트가 존재하는지 여부를 문의하여 상기 세그먼트가 존재한다는 응답을 한 정보 처리기로부터 상기 세그먼트를 수신하여 저장하는 단계를 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  14. 제7항에 있어서,
    상기 수신된 세그먼트를 저장하기 전에 암호화하는 단계, 및
    상기 스트리밍 데이터를 생성하기 전에 상기 암호화된 세그먼트를 복호화하는 단계
    를 더 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  15. 제1항 또는 제7항에 있어서,
    상기 재생 프로그램에서 상기 스트리밍 데이터가 재생되는 속도를 측정하여 재생에 필요한 멀티미디어 데이터를 예측하는 단계를 더 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 방법.
  16. 제1항 내지 제15항 중 어느 한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  17. 멀티미디어 데이터를 수신하여 재생하기 위한 멀티미디어 데이터 재생 장치에 있어서,
    재생 프로그램으로부터 재생 명령이 입력되면 상기 멀티미디어 데이터를 요청하는 멀티미디어 데이터 요청 명령을 송신하는 송신 모듈,
    임의의 프로토콜을 이용하여, 서버 또는 다른 클라이언트 컴퓨터로부터 상기 멀티미디어 데이터 요청 명령에 대응하는 멀티미디어 데이터를 수신하는 수신 모듈,
    상기 멀티미디어 데이터를 저장하는 저장 모듈, 및
    상기 저장된 멀티미디어 데이터를 이용하여 스트리밍 데이터를 생성하여 상기 재생 프로그램에 제공하는 스트리밍 데이터 생성 모듈
    을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
  18. 제17항에 있어서,
    상기 저장 모듈은 상기 멀티미디어 데이터를 암호화하여 저장하는 암호화 수단을 포함하고,
    상기 스트리밍 데이터 생성 모듈은 상기 암호화된 멀티미디어 데이터를 복호화하는 복호화 수단을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
  19. 멀티미디어 데이터를 수신하여 재생하기 위한 멀티미디어 데이터 재생 장치에 있어서,
    재생 프로그램으로부터의 재생 명령에 응답하여 서버에 상기 멀티미디어 데이터를 구성하는 각 세그먼트의 위치 정보를 요청하고, 상기 서버로부터 상기 위치 정보를 수신하는 제1 송수신 모듈,
    상기 위치 정보에 기초하여 복수의 정보 처리기에 상기 세그먼트 요청 명령을 송신하고, 상기 복수의 정보 처리기로부터 상기 세그먼트를 병렬적으로 수신하는 제2 송수신 모듈,
    상기 세그먼트를 저장하는 저장 모듈, 및
    상기 저장 모듈에 저장되어 있는 세그먼트로부터 스트리밍 데이터를 생성하고, 상기 스트리밍 데이터를 상기 재생 프로그램에 제공하는 스트리밍 데이터 생성 모듈
    을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
  20. 제19항에 있어서,
    상기 스트리밍 데이터 생성 모듈은
    세그먼트 식별자에 기초하여 상기 스트리밍 데이터를 생성하기 위해 상기 세그먼트의 세그먼트 식별자를 판독하는 세그먼트 식별자 판독 수단
    을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
  21. 제19항에 있어서,
    상기 저장 모듈은 상기 세그먼트를 암호화하여 저장하는 암호화 수단을 포함하고,
    상기 스트리밍 데이터 생성 모듈은 상기 암호화된 세그먼트를 복호화하는 복호화 수단을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
  22. 제19항에 있어서,
    상기 재생 명령은 현재 재생되고 있는 세그먼트의 위치를 변경하고, 상기 변경된 위치에서부터 재생되도록 하는 재생 위치 변경 명령을 포함하는 것을 특징으로 하는 멀티미디어 데이터 재생 장치.
KR10-2003-0005614A 2002-03-29 2003-01-28 멀티미디어 데이터 재생 방법 및 이를 위한 장치 KR100507956B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020020017394 2002-03-29
KR1020020017394A KR20020057837A (ko) 2002-03-29 2002-03-29 스트리밍 서비스 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20030022830A true KR20030022830A (ko) 2003-03-17
KR100507956B1 KR100507956B1 (ko) 2005-08-17

Family

ID=27725928

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020020017394A KR20020057837A (ko) 2002-03-29 2002-03-29 스트리밍 서비스 방법 및 장치
KR10-2003-0005614A KR100507956B1 (ko) 2002-03-29 2003-01-28 멀티미디어 데이터 재생 방법 및 이를 위한 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020020017394A KR20020057837A (ko) 2002-03-29 2002-03-29 스트리밍 서비스 방법 및 장치

Country Status (5)

Country Link
US (1) US20050240676A1 (ko)
KR (2) KR20020057837A (ko)
CN (1) CN100365619C (ko)
AU (1) AU2003207061A1 (ko)
WO (1) WO2003083698A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707060B1 (ko) 2005-09-27 2007-04-13 주식회사 케이티 홈 네트워크와 연동한 차량용 멀티미디어 재생 장치 및 그방법
KR101637022B1 (ko) * 2015-08-17 2016-07-20 한림대학교 산학협력단 컨텐트를 송신하는 방법 및 장치, 컨텐트를 수신하는 방법 및 장치
KR20170067448A (ko) * 2015-12-08 2017-06-16 네이버 주식회사 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427143B1 (ko) 2003-01-17 2004-04-14 엔에이치엔(주) 스트리밍 데이터 전송 및 다운로드 방법
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
CN100350765C (zh) * 2003-12-02 2007-11-21 明基电通股份有限公司 影音播放系统传输数据的方法
US7337273B2 (en) * 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
KR20060094838A (ko) * 2005-02-25 2006-08-30 엘지전자 주식회사 로컬 스토리지를 이용한 기록매체 재생방법 및 재생장치
US8601153B2 (en) * 2009-10-16 2013-12-03 Qualcomm Incorporated System and method for optimizing media playback quality for a wireless handheld computing device
US9124642B2 (en) * 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
US9961580B2 (en) * 2015-06-26 2018-05-01 Intel IP Corporation Mobile terminal devices and methods of performing radio measurements
WO2018158847A1 (ja) * 2017-02-28 2018-09-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびソフトウェア処理方法
CN108340998A (zh) * 2018-03-12 2018-07-31 郑州谦贤科技有限公司 一种第三方买单共享单车及使用方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3770616B2 (ja) * 1993-09-13 2006-04-26 オブジェクト テクノロジー ライセンシング コーポレイション オブジェクト指向ビデオ・システム
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US6014706A (en) * 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
US5996015A (en) * 1997-10-31 1999-11-30 International Business Machines Corporation Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6510553B1 (en) * 1998-10-26 2003-01-21 Intel Corporation Method of streaming video from multiple sources over a network
US6496980B1 (en) * 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6401126B1 (en) * 1999-03-10 2002-06-04 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
KR100640918B1 (ko) * 1999-03-12 2006-11-02 엘지전자 주식회사 인터넷 스트리밍 서비스를 위한 스트림 파일 제작 방법
US6252947B1 (en) * 1999-06-08 2001-06-26 David A. Diamond System and method for data recording and playback
AU5144500A (en) * 1999-09-01 2001-03-26 Audiobase, Inc. A system and method for streaming data in java
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US8341662B1 (en) * 1999-09-30 2012-12-25 International Business Machine Corporation User-controlled selective overlay in a streaming media
US20010047516A1 (en) * 2000-02-01 2001-11-29 Compaq Computer Corporation System for time shifting live streamed video-audio distributed via the internet
US7054443B1 (en) * 2000-03-27 2006-05-30 Microsoft Corporation System and method for protecting digital goods using random and automatic code obfuscation
AU2001251353A1 (en) * 2000-04-08 2001-10-23 Sun Microsystems, Inc. Streaming a single media track to multiple clients
KR20000050106A (ko) * 2000-05-16 2000-08-05 김의경 멀티미디어 스트리밍 서비스 방법 및 그를 위한 시스템
KR20040041082A (ko) * 2000-07-24 2004-05-13 비브콤 인코포레이티드 멀티미디어 북마크와 비디오의 가상 편집을 위한 시스템및 방법
JP2002140309A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd サービスシステム
KR20010079083A (ko) * 2001-06-12 2001-08-22 박준상 다운로드와 스트리밍 혼합 방법을 이용한 디지털 파일의활용 방법 및 관리 시스템
US20040128343A1 (en) * 2001-06-19 2004-07-01 Mayer Daniel J Method and apparatus for distributing video programs using partial caching
US6907466B2 (en) * 2001-11-08 2005-06-14 Extreme Networks, Inc. Methods and systems for efficiently delivering data to a plurality of destinations in a computer network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100707060B1 (ko) 2005-09-27 2007-04-13 주식회사 케이티 홈 네트워크와 연동한 차량용 멀티미디어 재생 장치 및 그방법
KR101637022B1 (ko) * 2015-08-17 2016-07-20 한림대학교 산학협력단 컨텐트를 송신하는 방법 및 장치, 컨텐트를 수신하는 방법 및 장치
KR20170067448A (ko) * 2015-12-08 2017-06-16 네이버 주식회사 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
US10313762B2 (en) 2015-12-08 2019-06-04 Naver Corporation Method and system for managing time machine function of video content

Also Published As

Publication number Publication date
AU2003207061A1 (en) 2003-10-13
KR100507956B1 (ko) 2005-08-17
WO2003083698A1 (en) 2003-10-09
US20050240676A1 (en) 2005-10-27
CN100365619C (zh) 2008-01-30
CN1656475A (zh) 2005-08-17
KR20020057837A (ko) 2002-07-12

Similar Documents

Publication Publication Date Title
US7639805B2 (en) Digital rights management scheme for an on-demand distributed streaming system
CN102611701B (zh) 通过非流化协议流化多媒体数据的方法
US7975065B2 (en) File splitting, scalable coding, and asynchronous transmission in streamed data transfer
US8850054B2 (en) Hypertext transfer protocol live streaming
US8875310B2 (en) System and method of protecting digital media contents
KR100507956B1 (ko) 멀티미디어 데이터 재생 방법 및 이를 위한 장치
CN1700768A (zh) 远程实时访问多媒体内容的方法、装置和系统
KR100446336B1 (ko) 데이터 암호화 방법 및 장치
US11347830B2 (en) Content recording and group encryption
JP4637602B2 (ja) コンテンツ配信システム、コンテンツ配信方法、およびプログラム
US10021158B2 (en) Converting data stream in user equipment
JP2006203887A (ja) Vodシステム及びvodシステムの再構成方法
JP4419293B2 (ja) 提供装置および方法、情報処理装置および方法、並びに記録媒体
KR20060012301A (ko) 공급자를 선택하기 위한 방법, 시스템 및 컴퓨터 사용가능미디어
EP1684183A1 (en) Content distribution system, content server, content receiving apparatus, content distribution method, program and recording medium
CN101630519A (zh) Ip流式拷贝控制方法和系统
US12010372B2 (en) Content recording and group encryption
KR20060122250A (ko) 스트리밍 서비스 방법
KR20040074805A (ko) 스트리밍 서비스 방법 및 장치
JP2002344440A (ja) データ再生装置、データ再生方法、データ再生プログラム、およびビデオ・オン・デマンド・システム
JP2006217314A (ja) インタラクティブコンテンツ配信システム、インタラクティブコンテンツ配信方法、およびプログラム
JP6963835B2 (ja) 再生制御装置、再生制御方法、およびプログラム
KR100823731B1 (ko) 고성능 스트리밍 서버 시스템에서 컨텐트 설치장치 및 방법
KR20230068861A (ko) Drm 컨텐트 재생을 위한 미디어 sdk 및 그 제어 방법
KR20090018476A (ko) Drm 콘텐츠 재생장치 및 그 방법

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: 20110804

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20120806

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee