KR20030061853A - 오디오 및/또는 비디오 자료의 전송방법 및 장치 - Google Patents

오디오 및/또는 비디오 자료의 전송방법 및 장치 Download PDF

Info

Publication number
KR20030061853A
KR20030061853A KR10-2003-7007943A KR20037007943A KR20030061853A KR 20030061853 A KR20030061853 A KR 20030061853A KR 20037007943 A KR20037007943 A KR 20037007943A KR 20030061853 A KR20030061853 A KR 20030061853A
Authority
KR
South Korea
Prior art keywords
file
station
terminal
subfile
audio
Prior art date
Application number
KR10-2003-7007943A
Other languages
English (en)
Other versions
KR100908954B1 (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
Priority claimed from GBGB0030706.6A external-priority patent/GB0030706D0/en
Priority claimed from GB0108094A external-priority patent/GB0108094D0/en
Application filed by 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 filed Critical 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니
Priority claimed from PCT/GB2001/005543 external-priority patent/WO2002049343A1/en
Publication of KR20030061853A publication Critical patent/KR20030061853A/ko
Application granted granted Critical
Publication of KR100908954B1 publication Critical patent/KR100908954B1/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/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
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1106Call signalling protocols; H.323 and related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • 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/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • 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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • 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/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • 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/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Marketing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Cosmetics (AREA)
  • Compositions Of Macromolecular Compounds (AREA)

Abstract

본 발명은 통신링크를 통해서 디지털 부호화된 자료를 전달하여 사용자에게 제공하는 방법 및 장치에 관한 것으로서, 서버(1)로부터 단말기(3)로 통신링크(2)를 경유한 레코드 된 오디오 또는 비디오 자료의 전달은 상기 자료를 일련의 서브파일로 분할하여 이루어지며, 각 서브파일은 독립적으로 상기 단말기에 의해서 요구되고, 그에 의해서 전달하는 레이트(rate)가 제어되며, 대안의 데이터 레이트 전달모드를 나타내는 대안의 서브파일 세트 사이에서 전환이 제공된다.

Description

오디오 및/또는 비디오 자료의 전송방법 및 장치{TRANSMISSION AND RECEPTION OF AUDIO AND/OR VIDEO MATERIAL}
종래의 이런 형태의 시스템에서는, 흔히 스트리머라고 불리는 특별한 서버가 사용자단말기에 대한 자료의 전달을 통제한다. 미국 특허 제 5,610,841호는 "미디어 세그먼트 파일"로 분할된 자료를 저장하는 비디오서버를 기술하고 있지만, 종종 서버에서는 전송될 자료 항목이 단일 파일로서 저장된다. 또 다른 이런 시스템이 유럽 공개 특허출원 제 EP-A-669587호에 기술되어 있으며, 여기서는 네트워크 정체현상이 수신버퍼의 내용을 모니터링하는 단말기에 의해서 처리되고, 상기 서버에 비디오 데이터 레이트(data rate)를 조정하도록 적절히 요구한다.
본 발명은 통신링크 상에서 프레젠테이션하기 위한 디지털 자료를 사용자에게 전달하는 것에 관한 것이다.
도 1은 설명될 상기 시스템의 전체적인 아키텍처를 도시하는 도면,
도 2는 이와 같은 시스템에서 사용되는 단말기의 블록도,
도 3은 전형적인 인덱스파일의 내용을 도시하고,
도 4는 서브파일 생성의 수정된 방법을 도시하는 타이밍도,
도 5는 수정된 아키텍처를 도시하는 도면이다.
본 발명의 일 측면에 따르면, 원격지 서버에 저장된 오디오 또는 비디오 자료를 상기 자료의 연속적인 시간상의 부분을 나타내는 파일 세트로서 재생하는 단말기가 제공되는데, 상기 단말기는:
상기 서버와 통신을 위한 통신인터페이스,
상기 통신인터페이스로부터 상기 파일을 수신하기 위한 버퍼,
상기 버퍼의 내용을 재생하는 수단; 및
상기 버퍼의 상태에 대응하여 상기 버퍼의 보충을 위해 추가적인 파일에 대한 요구메시지를 생성하는 제어수단을 구비한다.
또 다른 측면으로, 본 발명은 디지털로 부호화된 오디오 또는 비디오 자료를 전송하는 방법을 제공하며,
각각이 상기 자료의 연속적인 시간의 부분을 나타내는 복수의 분리된 파일로 상기 자료를 분할하는 단계;
제 1 스테이션에서 상기 파일을 저장하는 단계; 및
제 2 스테이션에서,
a) 상기 제 1 스테이션에 상기 파일중 연속적인 각각의 파일에 대한 요구를 전송하는 단계;
b) 상기 파일을 수신하는 단계; 및
c) 상기 자료를 재생하기 위해서 상기 파일을 복호화하는 단계
를 구비한다.
본 발명의 다른 선택적인 측면이 특허청구범위의 종속항에서 제시된다.
이제, 본 발명의 몇몇 실시예가 첨부되는 도면을 참조하여 설명될 것이다.
도 1에 도시된 시스템의 목적은 사용자에게 통신망을 경유하여 디지털로 부호화된 오디오 신호(예를 들어, 녹음된 음악 또는 연설)를 전달하여 대응하는 소리가 상기 사용자에게 재생되도록 사용자 단말기에 전달하는 것이다. 그러나, 이하에서 보다 자세히 설명되는 바와 같이, 상기 시스템은 오디오 신호 대신에 또는 그에 추가하여 비디오 신호를 전달하는데 사용될 것이다. 원칙적으로 다른 디지털 링크나 네트워크가 사용될 수 있지만, 이 예에서 상기 네트워크는 인터넷 또는 하이퍼 텍스트 전송 프로토콜(HTTP, 상세는 RFC 1945/2068 참조)에 따라서 동작하는 다른 패킷 네트워크이다. 또한 상기 오디오 신호는 ISO MPEG-1 레이어 Ⅲ 표준을 사용하는 압축형태로 녹음된 것으로 생각된다; 그러나 이런 특정 포맷을 사용하는 것이 필수적인 것은 아니다. 특히 이용 가능한 비트 레이트(bit rate)가 제한되거나 저장공간이 한정된다면 압축하는 것이 아주 바람직하긴 하지만, 정말로 압축이 반드시 사용되어야 하는 것은 아니다. 도 1에서, 서버(1)는 인터넷(2)을 통해서 사용자 단말기(3)에 연결된다(단말기 한 대만 도시). 상기 서버(1)의 기능은 데이터 파일을 저장하고, 사용자 단말기로부터 원하는 데이터 파일의 전달 요구를 수신하고, 이와 같은 요구에 응답하여 상기 파일을 네트워크를 통해서 상기 사용자 단말기에 전송하는 것이다. 보통 이와 같은 요구는 요구되는 파일의 이름이 붙은 상기 서버의 네트워크 주소(예, www.server1.com)가 선행하는 네트워크 전달 메커니즘(예, 각각 하이퍼텍스트 전송 프로토콜에 대해서 http:// 또는 파일 전송 프로토콜에 대해서 file://)을 나타내는 처음 부분의 형태를 가진다. 주어진 예에서, 상기 이름은 인쇄상의 이유로 "\\"에 의해 대체된 "//"으로 나타낸다.
이들 예에서, 상기 하이퍼텍스트 전송 프로토콜의 사용이 가정된다; 이것은 필수적인 것은 아니지만, 상기 프로토콜에 의해서 제공된 인증 및 보안기능( Secure Socket Layer 등)의 사용을 허용하므로 유익하다.
종래, MP3 파일을 전달하는 서버는, 패킷손실에 의한 에러의 방지와 사용자와의 상호작용이 허용되면 서버와 클라이언트 사이에서 데이터 흐름을 제어하기 위해서, 사용자 단말기에서의 상기 재생 요구에 의존하여 데이터가 전송되는 속도를 동적 제어하기 위한 처리장치를 포함하는 소위 스트리머의 형태를 취한다; 그러나 여기서 서버(1)는 이와 같은 장치를 포함할 필요가 없다. 이와 같이 그것은 보통의 "웹서버"이다.
이제 상기 데이터 파일이 서버(1)에 저장되는 방식이 설명될 것이다. MP3포맷 파일이 생성되고 상기 서버에 저장된다고 가정하자. 그것을 보통 연주시간이 9분인 바흐작 토카다(toccata)와 푸가(fugue) D단조의 녹음이라고 가정하자. 원래 이것은 단일 파일로서 생성되었을 것이고, 종래의 스트리머로 하나의 단일 파일로 저장되었을 것이다. 그러나, 여기서 상기 파일은 상기 서버(1)에 저장되기 전에 더 작은 파일들로 분할된다. 우리는 이 더 작은 파일들이 정해진 연주시간, 아마 4초 동안에 부합하는 크기를 갖는 것을 더 좋아한다. MP3와 같은 압축포맷으로 이것은 상기 파일들이 실제로 포함하는 비트 수에 따라서 다른 크기를 갖는다는 것을 의미한다. 이와 같이 9분 짜리 바흐파일은 각각이 4초의 연주시간을 나타내는 135개의 더 작은 파일로 분할된다. 이 예에서는 원래 파일에서 순서를 나타내는 일련번호를 포함하는 파일이름이 분할된 파일에 주어진다. 예를 들면,
000000.bin
000001.bin
000002.bin
000003.bin
.
.
000134.bin
상기 파일을 더 작은 서브파일로 분할하는 것은 보통 파일을 웹서버(1)에 로드하기 위해서 준비하는 사람에 의해서 행해진다.(여기서 "서브파일"이라는 표현은 전체 녹음을 포함하는 원래 파일로부터 식별하기 위해서 사용된다: 그러나 서버에게 있어서 각 서브파일은 다른 파일과 똑같다는 것을 강조해둔다). 서브파일의 정확한 생성방법은 아래에서 더욱 확실히 설명될 것이다. 일단 생성되면, 이들 서브파일은 웹서버에 로드되어 있는 다른 파일과 같은 종래의 방법으로 서버에 업로드된다. 물론 파일이름은 특정 녹음(상기 서브파일은 추가적인 정보가 "태그 (tagged)"될 수도 있으며 - MP3 파일을 재생할 때 저작자, 복제권 등에 대한 정보를 얻는다)을 식별하는 문자를 포함할 수도 있지만, 이 예에서는 서브파일이 상기서버에 특정 녹음(예, mp3_bwv565) 전용의 디렉토리 또는 폴더에 저장된다. 이와 같이 서브파일은 요구될 때 다음의 형태로 요구된다:
http:\\www.server1.com/mp3_bwv565/000003.bin
여기서 "www.server1.com"은 서버(1)의 URL이다.
상기 서브파일을 서버에 로드하려고 준비하는 사람에게는 각 녹음에 대해서 상기 서버(아마 파일이름 mp3_bwv565/link.htm)에 역시 저장된 링크 페이지(보통 html 포맷)를 생성하는 것이 역시 편리하며, 그 구조 및 목적은 나중에 설명된다. 상기 웹서버는 이용할 수 있는 레코딩 목록을 포함하는 하나 이상의 메뉴페이지(예, menu.htm)와 링크 페이지에 해당하는 하이퍼링크를 함께 저장하는 것이 또한 편리하다.
이제 단말기에 대해서 설명하면, 단말기는 보통 종래의 데스크탑 컴퓨터의 형태를 갖지만, 상기 논의된 오디오 파일의 수신을 처리하는 추가적인 소프트웨어를 가진다. 원한다면, 상기 단말기는 휴대용 컴퓨터의 형태를 가질 수 있으며, 이동전화에 병합될 수도 있을 것이다. 이와 같이 도 2 는 중앙처리기(CPU)(30), 메모리(31), 디스크 저장장치(32), 키보드(33), 비디오 디스플레이(34), 통신 인터페이스(35), 오디오 인터페이스("사운드 카드")(36)를 갖는 단말기를 도시한다. 비디오 전송을 위해서는 상기 사운드 카드(36) 대신에 또는 추가적으로 비디오 카드가 장착된다. 상기 디스크 저장장치에는 메모리(31)로 회수되어 중앙처리기(30)에 의해 실행되는 프로그램들이 통상 존재한다. 이 프로그램들은 연결을 설정하고 html 페이지를 디스플레이 하는 통신프로그램을 포함한다. 즉, 넷스케이프 네비게이터 또는 마이크로소프트 익스플로러와 같은 웹브라우저 프로그램과 본 발명의 실시예에 따라 오디오 파일을 재생하는데 필요한 기능을 제공하는 본 명세서에는 "플레이어 프로그램"이라고 일컬어지는 프로그램을 추가적으로 포함한다. 또한 버퍼로서 할당되는 메모리(31)의 부분(39)이 도시된다. 이것은 재생되기를(보통 상기 버퍼의 재생시간은 10초가 될 것이다) 기다리는 데이터를 포함하는 부호화된 오디오 버퍼이다. 상기 오디오 인터페이스 또는 사운드 카드(36)는 종래의 카드일 수 있으며, 단지 PCM 오디오를 수신하여 그것을 예를 들면 스피커를 통해서 재생하기 위해 아날로그 오디오 신호로 변환한다. 먼저, 상기 HTTP와 임베디드 또는 플러그인 클라이언트를 사용할 때 원하는 레코딩의 검색 및 재생을 위한 단말기의 동작을 간단히 개괄하고자 한다.
1. 사용자는 서버(1)로부터 메뉴 페이지 menu.htm를 검색하여 디스플레이 하기 위해서 브라우저를 사용한다.
2. 사용자는 브라우저가 원하는 레코딩 - 이 예에서는 파일 mp3_bwv565_link.htm - 에 대한 링크 페이지를 서버로부터 검색하여 표시하도록 하는 상기 메뉴 페이지내의 하이퍼링크 중 하나를 선택한다. 이 페이지의 실제 디스플레이는 중요하지 않다(상기 시스템이 올바르게 작동하고 있다는 것을 사용자에게 재확인시키는 메시지를 포함할 수도 있다는 것을 제외하고). 이 페이지에 대해서 중요한 것은 이 페이지가 상기 플레이어 프로그램(37)이 실행되는 두 번째 프로세스를 중앙처리기(30)에 불러들이는 명령어(또는 "임베디드 태그")를 포함한다는 것이다. 이런 식으로 두 번째 프로세스를 불러들이는 것은 잘 알려진 예이다(이와같은 프로세스가 넷스케이프 시스템에서는 "플러그인"이라하고 마이크로소프트에서는 "액티브 엑스"라고 알려진다). 이와 같은 명령어는 또한 상기 두 번째 프로세스에 전달될 파라미터를 포함하며, 도 1의 시스템에서 상기 명령어는 상기 레코딩의 서버 URL을 포함하는데, 이것은 상기 바흐 작품에 대해서는,
http:\\www.server1.com/mp3_bwv565 이 될 것이다.
상기 플레이어 프로그램(37)은 MP3 디코더를 포함하며, 그 동작은 본질적으로 종래와 같다. 본 명세서에서 관심있는 상기 프로그램의 제어기능은 다음과 같다.
상기 URL을 수신한 플레이어 프로그램은 이것에 첫 번째 서브파일의 파일이름을 추가하여 상기 서브파일에 대한 완전한 주소를 생성한다 - 즉, http: \\www.server1.com/mp3_bwv565/000003.bin/000000.bin. 이 시스템은 상기 서브파일이 위에서 표시된 방식으로 명명될 것이라는 기초 위에 구성되므로, 상기 단말기는 파일이름에 대한 정보가 필요 없다는 것을 알 수 있을 것이다. 상기 프로그램은 이 URL을 갖는 파일에 대한 요구메시지를 구성하여 그것을 통신 인터페이스(35)와 인터넷(2)을 통해서 서버(1)로 전송한다.(상기 URL을 IP 주소로 변환하고 잘못되거나, 불완전하거나 이용할 수 없는 URL의 오류 보고에 대한 과정은 종래와 같으므로 설명되지 않는다). 상기 프로그램은 브라우저보다는 통신 인터페이스를 통해서 직접 상기 요구를 송신하는 것으로 생각한다. 서버는 요구된 서브파일을 전송함으로써 대응한다.
상기 플레이어 프로그램은 상기 파일로부터 이 서브파일에서 사용된 오디오 인코딩을 결정하고 관련 표준(본 실시예에서는 MP3)에 따라서 상기 파일을 원 PCM값으로 다시 디코드하면서 이 서브파일의 재생시간을 기록한다. 일반적으로 오디오 파일은 파일 시작부분에 사용된 인코딩을 나타내는 식별자를 포함한다. 디코드된 오디오 데이터는 그 다음에 상기 오디오 버퍼(38)에 저장된다.
상기 플레이어 프로그램은 재생시간(Tp)라고 하는 파라미터를 갖는다. 본 실시예에서는10초(이것은 원한다면 사용자가 선택할 수 있도록 할 수 있음) 사항으로 로 설정된다. 이것은 단말기가 행하는 버퍼링의 정도를 결정한다.
상기 플레이어 프로그램은 상기 파일이름을 000001.bin으로 증가시키고, 상기에서 설명된 바와 같이 이 두 번째 서브파일을 요구하고, 수신하고, 디코드하여 저장한다. 상기 버퍼의 내용이 상기 재생시간(Tp)에 도달하거나 초과할 때까지 이 과정을 반복한다. 상기 버퍼링 전에 디코딩이 일어나는 것이 필수적인 것은 아니지만 오디오가 다시 원 PCM 으로 디코드된 이후로 상기 버퍼링 된 자료의 기간이 명시적으로 알려지기 때문에 문제를 단순하게 한다. 만일 서브파일 각각이 같은 오디오 재생 크기를 가진다면 상기 오디오 버퍼를 제어하는 것을 단순하게 한다.
재생시간(Tp) 임계치에 도달하면 상기 디코드된 데이터는 상기 버퍼로부터 확성기(도시되지 않음)를 통해서 소리를 내는 오디오 인터페이스(36)로 보내진다.
상기한 바와 같이 소리를 재생하는 동안, 플레이어 프로그램은 계속해서 버퍼의 충만 상태를 모니터하고 이것이 Tp 이하로 떨어질 때마다 상기 파일이름을 증가시켜서 서버로부터 추가적인 서브파일을 얻는다. 이 과정은 "파일 발견할 수 없음"이라는 오류 메시지가 반환될 때까지 반복된다.
이 과정 동안에, 만일 상기 버퍼가 비워지게 되면, 플레이어 프로그램은 단지 추가적인 데이터가 도착할 때까지 재생을 정지한다.
여기서 사용된 서브파일 명명 규약 - 0으로 시작하는 간단한 고정길이의 일련번호 - 은 구현하기 용이하게 때문에 선호되지만, 플레이어 프로그램이 첫 번째 서브파일 이름을 포함하거나 또는 보내진다면 그리고 이어지는 서브파일을 계산할 수 있도록 하는 알고리즘을 포함한다면, 또는 대안으로 파일이름의 목록이 송신된다면 어떤 명명 규약이라도 사용될 수 있다.
상기한 시스템은 재생과정에서 사용자에게 간섭할 기회를 제공하지 않는다는 것을 알게 될 것이다. 그것은 서버의 언더플로우 가능성(예로서 네트워크 정체현상에 의한) 에 대한 어떤 치유책을 제공하지도 않는다. 그러므로 다음에 설명되는 본 발명의 두 번째보다 복잡한 실시예는 다음과 같은 추가적인 특징을 제공한다:
a) 서버는 상이한 압축률(예를 들어 (연속적인) 데이터 레이트 8, 16, 24, 32kbit/s로 각각에 대응하는 압축)로 기록된 둘 이상의 레코딩을 저장하고 상기 플레이어 프로그램은 자동으로 그들 사이에서 스위치할 수 있다.
b) 플레이어 프로그램은 사용자에게 제어판넬을 표시하며, 사용자에 그에 의해서 재생을 시작하거나, 일시 정지하거나, 다시 시작하거나(처음부터 또는 일시 정지된 지점부터), 레코딩에서 다른 지점으로(앞으로 또는 뒤로) 점프한다.
이들 특징은 상호 종속적이지 않으며, 사용자 제어는 데이터 레이트-전환 없이 또는 그 반대로 제공될 수 있다는 것을 주목하라.
레이트 스위칭을 제공하기 위해서, 서버에 파일의 로딩을 준비하는 사람은 동일한 PCM 파일을 수차례 상이한 데이터 레이트로 인코딩 하여 몇 개의 소스 파일을 준비한다. 그 다음 그는 각 서브파일을 전과 같이 서브파일로 분할한다. 이것들은 후속하는 예의 구조에서와 같이 상이한 데이터 레이트에 대응하는 분리된 디렉토리에 서버 상에 로드될 수 있으며, 여기서 디렉토리 명으로 "008k", "024k"는 데이터 레이트 8kbit/s 또는 24kbit/s 등을 표시한다.
그것은 또한 그 주요 목적이 이용 가능한 데이터 레이트의 목록을 제공하는 것인 인덱스파일(예, index.htm)을 생성한다.
전술한 바와 같이 서브파일의 길이는 고정된 시간길이에 대응하기 때문에 서브파일의 수는 각 데렉토리에 대해서 같다. 서브디렉토리 이름은 kbit/s(3자리)로 표시한 데이터 레이트에 문자 "k"를 더해서 이루어지며; 본 실시예에서는 오디오 샘플링률과 모노-스테레오 플래그가 검사를 위해서 부가된다.
이와 같이 인덱스파일은 다음 형태의 문장을 포함한다:
<!-- Audio = "024k_11_s 032k_11_s 018k_11_s 016k_11_m 008k_11_m" -->
( <!-- ... --> 는 단지 상기 문장이 html 파일(또는 단순한 텍스트 파일이 사용될 수도 있다)에서 코멘트로서 포함되는 것을 표시한다). 도 3에는 전형적인 인덱스파일이 나타나 있으며, 여기에는 다른 정보가 포함된다: LFI는 가장 높은 서브파일 번호(즉, 45개의 서브파일)이고 SL은 총 재생시간(178초)이다. "모드"는 "녹음된"(여기서처럼) 또는 "녹음이 아닌"(이하에서 논의됨) 것을 표시한다. 다른 엔트리는 자명하거나 표준 html 명령어이다.
디렉토리 서브디렉토리 화일명
mp3_bwv565 없음 link.htmindex.htm
mp3_bwv565 008k_11_m 000000.bin000001.bin000002.bin000003.bin..000134.bin
mp3_bwv565 016k_11_m 000000.bin000001.bin000002.bin000003.bin..000134.bin
mp3_bwv565 018k_11_s 000000.bin000001.bin000002.bin000003.bin..000134.bin
mp3_bwv565 024k_11_s 000000.bin000001.bin000002.bin000003.bin..000134.bin
mp3_bwv565 032k_11_s 000000.bin000001.bin000002.bin000003.bin..000134.bin
처음에 상기 플레이어 프로그램은 상기 링크 파일에 지정된 디렉토리로부터 인덱스 파일을 요청하여 시작하고 나중에 참조하기 하기 위해서 이용 가능한 데이터 레이트의 목록을 국부적으로 저장한다.(상기 플레이어 프로그램은 명시적으로 이 파일을 요구하거나 또는 단지 상기 디렉토리를 지정한다: 대부분의 서버는 파일이름이 지정되지 않으면 기본적으로 index.htm을 지정한다.) 그 다음에 전술한 바와 같이 오디오 서브파일을 인덱스파일 즉, 024k_11_s(또는 단말기는 그에 지역적으로 설정된 디폴트 레이트로 오디오 서브 파일을 수정함으로써 이것을 무시할 수 있다)에서 첫 번째로 언급된 "레이트" 디렉토리로부터 요구하기 시작한다. 그 이후의 프로세스는 상기 플레이어 프로그램이 상기 서버로부터 수신되는 실제 데이터 레이트을 측정하여 일정 시간주기 동안(예를 들어 30초) 평균한다. 이것은 모든 URL 요구에 대해서 시간을 측정함으로써 한다; 클라이언트와 서버 사이에 달성된 전송율(초당 비트수)이 결정된다. 이 수치의 정확도는 요구의 수가 증가하면서 개선된다. 상기 플레이어는 각각 현재 레이트와 상기 측정된 레이트를 표시하는 두개의 저장된 파라미터를 유지한다.
레이트 변동의 개시는 다음과 같이 기동된다:
a) 상기 버퍼가 비워지고 상기 측정된 레이트가 현재의 레이트보다 작고 상기 측정된 버퍼 로우 백분율(Buffer Low Percentage)이 스텝다운 쓰레쉬홀드(Step Down Threshold)(이하에서 기술됨)를 초과하면, 상기 현재 레이트를 감소시킨다;(상기 버퍼가 이미 비었을 때 변경하는 것이 상기 사운드 카드가 아무 것도 재생하지 않기 때문에 유리하며, 만일 상기 오디오 샘플링률, 스테레오-모노 설정 또는 비트폭(샘플당 비트수)이 변경되었으면 그것을 재구성하는 것이 필요할 것이다).
b) 상기 측정된 레이트가 현재의 레이트 뿐만 아니라 주어진 시간동안(예를 들면, 120초: 이것은 원한다면 사용자에 의해서 조정 가능하도록 될 수 있다) 그 다음 높은 레이트를 초과하면 현재의 레이트를 증가시킨다.
상기 버퍼 로우 백분율은 상기 버퍼의 내용이 재생시간의 25% 보다 더 적은 것을 나타내는 시간의 백분율이다. 만일 상기 스텝다운 쓰레쉬홀드가 0 %로 설정되면 상기 버퍼가 빌 때 상기 시스템은 다른 조건이 만족될 때 항상 저하된다. 상기 스텝다운 쓰레쉬홀드를 5%(이것이 우리가 선호하는 디폴트 값이다)로 설정하는 것은 만일 버퍼가 비어 있지만 상기 측정된 버퍼 로우 백분율이 5% 보다 크다면 저하되지 않을 것이라는 것을 의미한다. 추가적인 버퍼 공백은 틀림없이 이 측정된 레이트를 증가시키고 결국 상기 레이트가 유지될 수 없다면 버퍼 로우 백분율이 5%를 초과하는 경우 상기 버퍼를 다시 비운다.
실제 레이트 변화는 상기 서브파일의 관련부분, 예를 들면, 데이터 레이트을 8에서 24kbit/s로 증가시키기 위해서 "008K"를 "024K"을 변경시키고 현재의 레이트 파라미터를 부합시키기 위해서 변경시키는 플레이어 프로그램에 의해서 단지 영향을 받는다. 그 결과, 상기 서버에 대한 다음 요구는 더 높은(또는 더 낮은) 레이트에 대한 요구가 되며, 상기 새로운 디렉토리로부터의 서브파일이 수신되고, 디코드되어 상기 버퍼에 입력된다. 방금 기술된 프로세스는 다음의 흐름도에서 요약된다.
사용자 제어는 키보드나 마우스와 같은 다른 입력장치를 사용하여 선택할 수 있는 다음과 같은 옵션이 스크린에 제공되는 사용자에 의해서 구현된다.
a) 시작 : 단계 4로부터 상기 번호가 붙여진 단계를 구현한다. 한 레코딩이 처음 선택될 때 자동으로 재생이 시작되는지 아니면 시작 명령이 필요한지는 선택사항이다; 사실 원한다면, 상기 링크 파일에서 추가적인 "자동재생" 파라미터에 의해서 선택될 수 있다.
b) 일시정지 : 버퍼로부터 데이터 읽기를 중단하라는 MP3 디코더에 대한 명령에 의해서 구현된다.
c) 다시 시작 : 버퍼로부터 데이터 읽기를 다시 시작하라는 MP3 디코더에 대한 명령에 의해서 구현된다.
d) 점프 : 예를 들어, 레코딩의 전체 지속시간을 나타내는 표시막대 상의 원하는 지점에 커서를 이동함으로써 점프하고자 하는 상기 레코딩 부분을 표시하는 사용자에 의해서 구현된다; 그 다름 플레이어는 이 지점이 상기 막대를 따라서 x%인 것을 결정하고 필요한 다음의 서브파일 수를 계산하며, 이것은 다음의 요구를 위해서 사용된다. 125개의 서브파일을 갖는 상기 바흐의 예에서, 레코딩의 20% 지점으로부터 재생하는 요구는 결과적으로 26번째 서브파일 즉, 000025.bin 에 대한요구가 된다. 이 계산은 각 서브파일이 동일한 고정된 지속시간에 일치한다면 상당히 간편해진다. 우리는 상기 점프의 경우에서 상기 새로운 요구가 즉시 송신되도록 디코딩을 중단하고 상기 버퍼를 클리어 하는 것을 선호하지만, 이것은 사실 필수적인 것은 아니다.
대신에, 사용자에게는 점프를 기동하기 위해서 선택될 수 있는(마우스에 의해서) 텍스트 라벨이나 인덱스의 목록이 제공될 것이다. 이것은 다음과 같이 구현된다:
사용자 단말기 서버
메뉴 페이지 선택
http:\\server1.com/menu.htm을 요청
http:\\server1.com/menu.htm을 전송
menu.htm을 표시
메뉴로부터 아이템을 선택(바흐)
menu.htm으로부터 하이퍼링크 URL을 추출 (mp3_bwv565/link.htm)
http:\\server1.com/mp3_bwv565/link.htm을 요청
http:\\server1.com/mp3_bwv565/link.htm을 전송
link.htm을 표시
link.htm 내에 명시된 파라미터로 link.htm 내에 명시된 제 2 프로세스 (재생기 프로그램)을 실행
Stem을 명시된 그 값으로 설정
URL=Stem+"index.htm"으로 설정
이 URL을 요청
요청받은 화일을 전송
Rate List를 index.htm에서 명시된 속도로 설정LFI를 index.htm에서 명시된 값으로 설정
사용자 단말기 서버
StemC=Stem+"/"+RateList(아이템 1)로 설정CurrentRate=RateList(아이템 1)에서 규정된 속도로 설정RateU=리스트에서 다음번 고차 속도로 설정하거나 아무것도 없는 경우는 0으로 설정StemU=Stem+"/"+이 속도에 상응하는 속도 리스트에서의 아이템RateD=리스트에서 다음번 저차 속도로 설정하거나 아무것도 없는 경우는 0으로 설정StemD=Stem+"/"+이 속도에 상응하는 속도 리스트에서의 아이템
Current Subfile=000000.bin으로 설정
J1: URL=StemC+Current Subfine로 설정
이 URL을 요청
요청받은 서브화일이 존재하면, 요청받은 서브화일을 전송; 그렇지 않으면 에러 메시지를 전송
만약 에러 메시지가 수신되면, 중지
수신된 서브화일을 디코딩
버퍼에 써 넣음
J1A: 만약 Buffer Fullness>Tp초이면 단계 J3으로 가시오
J2: Current Subfile을 증가시킴
단계 J1으로 가시오
J3: 사운드 카드를 통해 버퍼 내용물의 재생을 시작/계속
J4: 만약 Buffer Fullness<Tp이면 단계 J2로 가시오
만약 BufferFullness=0 AND Mrate<CurrentRate AND BufferLow% > Td이면 Stepdown으로 가시오
만약 Mrate>NextRate AND NextRate<>0 이면 Stepup으로 가시오
사용자명령 입력
만약 UserCommand=Pause이면:버퍼로부터의 읽기를 중지;UserCommand=Resume일 때까지 루프수행;J3로 가시오
만약 UserCommand=Jump(j%)이면:버퍼를 클리어;CurrentSubfile =Integer[(LFI+1)*j/100]으로 설정;단계 J1으로 가시오
단계 J1A으로 가시오
사용자 단말기 서버
Stepup:버퍼를 클리어RateD=RateC로 설정StemD=StemC로 설정RateC=RateU로 설정StemC=StemU로 설정RateU=리스트에서 다음번 고차 속도로 설정하거나 아무것도 없는 경우는 0으로 설정StemU=Stem+"/"+이 속도에 상응하는 속도 리스트에서의 아이템단계 J1A로 가시오
Stepdown:버퍼를 클리어RateU=RateC로 설정StemU=StemC로 설정RateC=RateD로 설정StemC=StemD로 설정RateD=리스트에서 다음번 저차 속도로 설정하거나 아무것도 없는 경우는 0으로 설정StemD=Stem+"/"+이 속도에 상응하는 속도 리스트에서의 아이템단계 J1A로 가시오
단말기에 의해서 메모리에 보관된 index.htm 파일은 다음과 같은 형태의 문장(이 정보가 상기 문서 내에 코멘트로서 포함된 것으로 가정) 수개 라인을 포함한다.
<--!Odbits:Index = "0:01:22 Wireless" -->
여기서, "Odbits:"는 다음 텍스트가 프로그램에 의해서 처리될 것임을 상기 플레이어 프로그램에게 표시하는 키워드이고, "Index"는 상기 플레이어 프로그램이 수행하게 될 기능을 표시하고, 인용표 내의 텍스트는 재생이 시작되는 레코딩의 시작부터 시간(시간:분:초)으로 구성된다.
플레이어 프로그램이 상기 index.htm 파일을 읽고 인덱스 명령을 인식하면 메시지(("이벤트")를 표시된 페이지의 원하는 위치에 라벨을 표시하기 위한 이와 같은 이벤트를 처리하기 위해서 명령어(보통 자바스크립트로 쓰여짐)를 포함하는 link.htm 페이지에 생성한다.
상기 원래 파일을 서브파일로 분할하는 과정을 추가적으로 논의하는 것은 유익하다. 먼저, 만일 (상기한 제 1 버젼에서와 같이) 서브파일이 원래의 순서에서 바로 후속하는 것과 다른 서브파일이 후속된다는 기대가 전혀 없다면 상기 서브파일 사이에 경계가 어디에 위치되는가는 거의 중요하지 않다. 그 경우에는 서브파일 크기가 고정된 비트수이거나 또는 고정된 재생시간 길이(또는 둘 중 어느 것도 아님)일 수 있으며 - 유일한 실질적인 결정은 서브파일 크기를 얼마나 크게 해야 하는가 이다. 점프가 상상되는 곳에(시간 또는 상이한 데이터 레이트 사이에)는 다른 고려사항이 있다. 많은 형태의 연설 또는 오디오 코딩(MP3 포함)에서 처럼, 신호가 프레임으로 부호화되는 경우에 서브파일은 전체 프레임 수를 포함해야 한다. 레이트 스위칭의 경우에, 사실 필수적인 것은 아니지만 서브 파일 경계가 각 레이트에 대해서 동일하여 새로운 레이트에 대해서 수신된 제 1 서브파일이 과거 레이트의 마지막 서브파일이 종료된 레코딩의 동일 지점으로부터 계속되는 것이 아주 바람직하다. 모든 서브파일이 동일한 고정된 시간주기(예, 상기한 4초)를 나타내도록 배열하는 것은 이것을 달성하는 유일한 방법은 아니지만, 가장 편리하다. 그러나, 사용하는 부호화시스템에 따라서 서브파일이 전체 프레임 수를 포함해야한다는 요구사항은 상기 서브파일의 재생시간이 조금 변해야 한다는 것을 의미할 수 있다는 것을 주목해야 한다. 본 발명의 실시예에서, 상기 이용 가능한 데이터 레이트은 상이한 양자화 등급을 사용하고 모노 또는 스테레오로 인코드 하는가에 따라 다르지만 모두가 동일한 오디오 샘플링률을 사용하고 그 결과 프레임 크기가 같다. 상이한 프레임 크기가 사용될 때 다루어져야 할 필요가 있는 이슈에 대해서 이하에서 논의된다.
실제 서브파일 길이에 대해서, 너무 짧은 서브파일은 피하는 것이 바람직한데, (a) 그것은 서브파일들이 더 많은 요구의 형태로 과잉의 네트워크 트래픽을 생성하고, (b) IP 네트워크를 포함하는 어떤 패킷 네트워크 형태에서는 그것들이 더 작은 패킷으로 전달되어야 하기 때문에 상기 요구 프로세스와 패킷 헤더에 의해서 표현되는 오버헤드가 비례적으로 더 증가하게 된다는 점에서 낭비이다. 한편, 지나치게 큰 서브파일은 더 큰 버퍼를 필요로 하고 재생을 시작할 때 및/또는 점프 또는 레이트 변경이 요구될 때 과도한 지연을 초래하므로 불리하다. 상기 재생시간의 30% 와 130% 사이의 서브파일 크기 또는 바람직하게는 재생시간의 절반정도(상기 주어진 예에서와 같이)가 만족스러운 것으로 알았다.
상기 서브파일을 변환하는 실제 과정은 논의된 상기 기준에 따라서 프로그램된 컴퓨터에 의해서 구현될 수 있다. 아마도 이것은 격리된 컴퓨터에서 하는 것이 편리할 것이며, 그것으로부터 상기 서브파일이 서버에 업로드 될 수 있다.
추가될 수 있는 또다른 개선은 비인가 된 사람이 상기 서브파일을 복제하여 그것을 또다른 서버에 제공하는 것을 더욱 어렵게 만들어서 보안성을 증가시키도록더욱 복잡한 서브파일 명명 규약으로 대체하는 것이다. 일례가 슈도랜덤 시이퀀스 생성기를 사용하여 파일이름을 생성하는 것이며, 예를 들면 다음과 같은 형태의 파일이름을 생성한다:
01302546134643677534543134.bin
94543452345434533452134565.bin
...
이 경우에서 상기 플레이어 프로그램은 동일한 슈도랜덤 시이퀀스 생성기를 포함할 것이다. 서버는 첫 번째 파일이름 또는 아마 4자리의 "시드(seed)"를 보내고, 그러면 상기 플레이어의 생성기는 그 생성기와 동기를 이룰 수 있고 올바른 순서로 요구되는 서브파일을 생성할 수 있다.
레이트 스위칭의 상기 예에서, 사용된 모든 데이터 레이트는 똑같은 프레임 크기를 가졌으며, 특히 11.025KHz에서 1152 샘플의 프레임 크기로 샘플된 PCM 오디오의 MP3 부호화를 사용했다. 만일 상이한 프레임 크기를 갖는 MP3(또는 다른) 레코딩 사이에 레이트 스위칭을 완수하는 것이 요구된다면, 서브파일이 전체 프레임 수를 포함해야 한다는 요구 때문에 문제가 발생하는데, 이는 상기 프레임 경계가 일치하지 않기 때문이다. 이 문제는 상기 서브파일을 생성하는 다음의 수정된 절차에 의해서 해결될 수 있다. 이 절차는 레이트 스위칭이 요구되는 어떤 환경에서나 사용될 수 있고 상기 논의된 특정 전달방법에 한정되지 않는다는 것을 특히 주목해야 한다.
도 4는 오디오 일련의 오디오 샘플을 도식적으로 보여주며, 연속적인 4초의세그먼트가 경계표지(도에서) B1, B2 등에 의해서 도시되어 있다. 11.025KHz에서, 각 세그먼트에는 44,100개의 샘플이 있다.
1. 경계 B1 에서 시작하는 오디오를 프레임 단위로 인코드 하여 MP3 서브파일을 생성하고 적어도 4초의 전체 주기를 가지는 프레임의 전체 숫자가 인코드 될 때까지 계속한다. 1152 샘플의 프레임 크기는 4초는 38.3 프레임에 해당하므로 39 프레임을 나타내는 서브파일(S1)은 실제로 전체 주기 4.075초를 나타내도록 인코드 된다.
2. 동일한 방식으로 경계 B2에서 시작하는 오디오를 인코드 한다.
3. 부호화될 전체 오디오 시이퀀스에 대해서 이런 식으로 겹치는 서브파일 세트가 생성되도록 매회 4초 경계에서 반복한다. 마지막 세그먼트(4초보다 짧을 것임)는 물론 뒤따르는 것이 아무 것도 없고 0으로 메워진다(즉, 정적)
상이한 프레임 크기를 사용하는 다른 데이터 레이트의 부호화는 같은 식으로 진행한다.
단말기에서, 제어 메커니즘은 변경되지 않지만, 상기 디코딩 및 버퍼링 과정은 수정된다.
1. 서브파일 S1을 수취한다.
2. 서브파일 S1을 디코드한다.
3. 상기 디코드된 오디오 샘플 중 처음 4초만을 상기 버퍼에 쓴다.
4. 서브파일 S2를 수취한다.
5. 서브파일 S2를 디코드한다.
6. 상기 디코드된 오디오 샘플 중 처음 4초만을 상기 버퍼에 쓴다.
7. 서브파일 S3 등을 가지고 계속한다.
이런 식으로, 모든 레이트에 대한 서브파일 세트는 원래 PCM 샘플 시이퀀스에서 똑같은 지점에 대응하는 서브파일 경계를 확실히 갖게된다.
이와 같이, 마지막을 제외한 각각의 4초 주기는 인코딩에 앞서 그 다음 4초 주기로부터 오디오 샘플로 "메워져서", 서브파일 크기를 전체 MP3 프레임의 수가 되게 한다. 원한다면, 상기 메우는 샘플은 뒤따르는 것의 초반부 대신에(또는 뿐만 아니라) 선행하는 4초 추기의 후반부로부터 취해질 수 있다.
상기 MP3 표준은 어떤 정보가 하나의 오디오 프레임으로부터 또다른 것으로 운반되도록 ("비트 저장소"라고 알려진 기법에 의해서) 허용한다는 것을 주목하라. 본 명세서에서, 이것은 한 서브파일 내에서는 수용할 수 있지만, 서브파일간에는 수용할 수 없다. 그러나, 당연히 상기 표준은 레코딩의 초반부 또는 후반부에서 그와 같은 운반을 허용하지 않기 때문에, 단일 레코딩인 것처럼 이 문제는 각 서브파일을 분리해서 인코딩 함으로써 쉽게 해결된다.
샘플링률의 변화(그리고 모노와 스테레오 동작 사이의 스위칭)는 오디오 인터페이스(36)의 동작에 대해서 어떤 실질적인 관련이 있다. 많은 종래의 사운드 카드는 비록 상이한 설정 범위에서 동작할 수 있지만 샘플링률을 변화시키기 위해서는 재설정을 요구하며, 이것은 틀림없이 그 오디오 출력에 장애를 초래한다. 이와 같이 추가적인 수정에서, 우리는 상기 사운드 카드가 상상된 최고의 샘플링률에서 연속적으로 실행될 수 있는 것으로 제안한다. 상기 플레이어 프로그램이 상기버퍼에 더 낮은 샘플링률로 데이터를 공급할 때, 그때 이 데이터는 상기 버퍼 전 또는 후에 이 가장 높은 율로 업샘플링된다. 마찬가지로, 상기 사운드 카드가 항상 스테리오 모드에서 동작되면, 디코드된 모노 신호는 상기 사운드 카드 입력의 좌우 채널에 병렬로 입력될 수 있다. 또한, 상기 디코드된 신호의 샘플당 비트수가 상기 카드에 의해서 기대되는 것 보다 낮으면, 0으로 메워서 비트수가 증가될 수 있다.
자동 데이터 레이트 스위칭에 대한 이전에 논의된 기준은 버퍼 언더플로우(그리하여 출력에서의 방해를 포함함) 경우에만 레이트 감소를 상상했다는 것을 회상하면, 이 수정으로 이와 같은 방해를 피할 수 있으며, 그리고 그에 의해서 언더플로우를 예상하여 대부분의 경우에 그것을 피하는 기준을 채용하는 것이 바람직하다. 이 경우에 상기 언급된(즉 상기 버퍼가 빈 것) 3개의 AND 조건의 첫 번째는 생략될 것이다.
기술된 시스템의 관계에서 제공되는 또 다른 특징은 상기 사운드에 수반하는 부제목, 또는 정지사진과 같은 시각정보의 표시이다.
이것은 다음과 같이 구현될 것이다:
(a) 디스플레이 되는 도큐먼트(link.htm)는 상기 시각정보가 나타날 페이지에서 위치를 지정하는 포맷을 지정하는 정보를 포함한다.
(b) 상기 파일 index.htm은 다음과 같은 형태의 라인을 포함한다(이 정보는 상기 도큐먼트에 코멘트로서 내장된다고 가정)
<!--Odbits: Subtitle = "0:1:01 Subtitle text" -->
<!--Odbits:Image = "0:2:04 http://......../picture.jpg"-->
여기서 "Odbits:"는 그 다음 텍스트가 프로그램에 의해서 처리될 것을 상기 플레이어 프로그램에게 가리키는 키워드이고, "Subtitle" 또는 "Image"는 상기 플레이어 프로그램이 수행할 기능을 가리키며, 인용표시를 갖는 텍스트는 레코딩에서 해당하는 디스플레이가 시작되는 시작부터의 시간(시간:분:초)으로 구성되며 원하는 이미지의 URL 또는 실질적인 부제목에 이어지진다.
(c) 상기 플레이어 프로그램은 상기 현재 서브파일 인덱스와 상기 서브파일 길이의 곱인 활동시간을 계산하며, 이것은 상기 현재 서브파일이 재생된 시간에 의해서 증가된다.
(d) 상기 플레이어 프로그램은 상기 활동시간과 상기 index.htm 파일에 내장된 시간을 비교하며, 일치하는 경우에 상기 link.htm 페이지(원래 상기 플레이어를 불러낸)에 메시지를 반환한다. 이와 같은 메시지는 "이벤트"로 일컬어진다. 상기 link.htm 페이지가 상기 이벤트를 어떻게 처리하는지는 상기 link.htm 페이지를 쓰는 사람의 재량이다. 보통
(e) 부제목에 대해서는, 상기 link.htm 페이지는 상기 index.htm 파일로부터 상기 부제목을 읽어서 상기 이벤트에 대응하고 그것을 원하는 장소에 디스플레이 하는 실행 가능한 명령어(보통 자바스크립트로 쓰여진)를 포함한다.
(f) 이미지에 대해서는, 상기 link.htm 페이지는 상기 index.htm 파일로부터 상기 이미지의 URL을 읽어서 상기 URL을 갖는 이미지 파일의 다운로드를 요구하는 메시지를 생성하여 상기 페이지의 원하는 위치에 그것을 디스플레이 하여 상기 이벤트에 대응하는 그와 같은 명령어를 포함한다. 이 다운로드는 상기 이미지가 요구되는 때에 발생할 수 있으며: 대신에 사용자에게는 미리 로드된 이미지 파일이 선택적으로 주어질 수 있다. 만일 사용자가 이를 선택하면 상기 플레이어 프로그램은 임의의 오디오 재생 전에 리스트된 이미지를 모두 다운로드하여 로컬 캐시에 그것들을 저장할 것이다.
똑같은 원리가 비디오 레코딩 또는 물론 사운드 트랙을 수반하는 비디오 레코딩의 전달에 적용될 것이다. 오직 하나의 레코딩만 있는 보다 간단한 버전에서는, 상기 시스템은 파일이 비디오 파일(예, H.261 또는 MPEG 포맷)이고 상기 플레이어 프로그램이 비디오 디코더를 병합하고 있다는 점에서만 오디오 버전과 다르다. 상기 파일을 서브파일로 분할하는 방법은 변화되지 않는다.
상기 오디오의 경우처럼, 이미 설명된 제어 메커니즘에 의해서 선택된 상이한 데이터 레이트에 대응하는 둘 이상의 레코딩이 있을 수 있다. 또한 이미 설명된 사용자 제어설비의 확장에 의해서 선택될 수 있는 고속 전방향 또는 고속 역방향과 같은 상이한 재생 모드에 대응하는 추가적인 레코딩을 제공할 수 있다. 또한, 파일 및 디렉토리 명명을 위한 체계적인 규정이 상기 플레이어 프로그램이 예를 들면 상기 서브파일 주소를 수정함으로써 고속 전방향 명령에 대응할 수 있도록 지원될 수 있다.
그러나 비디오 레코딩의 전달은 스위칭이나 점프가 허용된다면 파일 분할을 위해서 추가적인 의미를 가진다. 사진의 각 프레임이 독립적으로 부호화되는 레코딩의 경우에, 서브파일이 사진의 전체 프레임 수를 포함하는 것으로 충분하다. 그러나, 인퍼프레임 기법을 포함하는 압축이 사용되면, 상황은 더욱 복잡해진다. 몇몇 이와 같은 시스템(예를 들면 MPEG 표준)은 독립적으로 부호화된 프레임("인트라 프레임(intra-frames)")과 예측 부호화된 프레임의 혼합을 생성하며; 이 경우에 각 서브파일은 바람직하게는 인트라 프레임으로 시작해야 한다.
인트라 프레임의 빈번한 규칙적인 포함을 제공하지 않는 ITU H.261과 같은 인터프레임 부호화시스템의 경우에서, 이것은 불가능하다. 이것은 - 레이트 스위칭을 예로 들면, 하위 비트 레이트 레코딩의 서브파일 n+1이 후속하는 상위 비트 레이트 레코딩의 서브파일 n을 요구했다면, 상기 하위 비트 레이트 서브파일의 첫 번째 프레임은 상기 하위 비트 레이트 레코딩의 서브파일 n의 마지막 디코드된 프레임을 사용하여 인터프레임 기초로 부호화되었을 것이며, 물론 상기 단말기는 마음대로 처리하지 않는다. - 그것은 상기 상위 비트 레이트 레코딩의 서브파일 n의 마지막 디코드된 프레임을 가진다. 이와 같이 상기 디코더의 심각한 미스트래킹이 발생한다.
정상재생과 고속재생 사이에서 전환의 경우에, 상기 상황은 실제상 조금 다르다. 예를 들면, 정상 속도보다 5배 빠른 전방향 재생에서, 5번째 프레임만 인코드 한다. 결과적으로 상기 인터프레임 상관성이 많이 감소되고 인터프레임 부호화는 매력적이지 않게 되므로, 고속 재생 시이퀀스를 인트라프레임으로 인코드 하는 것을 일반적으로 선호한다. 상기 인트라프레임은 어려움 없이 디코드될 수 있기 때문에, 정상에서 고속으로 전환하는 것이 아무런 문제를 나타내지 않는다. 그러나, 정상 재생으로 바꿀 때, 선행하는 프레임을 가지지 않는 예측 부호화된 프레임이 상기 단말기에 제공되기 때문에 상기 미스트래킹 문제가 다시 발생한다.
어느 한 경우에 있어서, 상기 문제는 우리의 국제특허출원 제 WO98/26604호(미국에서 특허 제6,002,440호)에서 설명된 원리를 사용하여 해결 될 수 있다. 이것은 선행 시이퀀스의 마지막 프레임과 새로운 시이퀀스의 첫 번째 프레임 사이의 갭을 연결하는 중간 시이퀀스의 프레임의 인코딩을 포함한다.
이제 이것의 작용이 고속 전방향 작용(유사하지만 역방향의 고속 되감기)의 관계에서 설명될 것이다. 이 예에서, 우리는 9분 짜리 비디오 시이퀀스가 상기 H.261 표준에 따라서 96kbit/s로 인코드 되었으며, 다시 H.261 인트라프레임에서 전체적으로 정상 레이트의 5배에서, 그리고 그 결과 파일은 각각 4초 서브파일로 분할되었다고 가정한다. 여기서, 4초는 원래 비디오 신호의 주기를 가리키며, 고속 전방향 재생시간을 가리키는 것은 아니다. 상기에서 적용된 것과 유사한 명명규정을 따르면, 상기 서브파일은 다음과 같이 될 것이다:
디렉토리 서브디렉토리 파일이름
mpg_name 096k_x1 000000.bin
000001.bin
...
000134.bin
096k_x5 000000.bin
...
000134.bin
여기서, "이름"은 특정 레코딩을 식별하는 이름이고, "x1"은 정상 레이트를 가리키고, "x5"는 정상 레이트의 5배, 즉 고속 전방향을 가리킨다.
정상 재생으로부터 고속 전방향 재생으로 전환하는 것은 상기 플레이어 프로그램이 상기 서브파일 주소가 상기 고속 전방향 시이퀀스를 지시하도록 수정하기만하면 된다. 예를 들면,
요구 mpg_name/096k_x1/000055.bin에는
요구 mpg_name/096K_x5/000056.bin 가 뒤따른다.
정상재생으로 다시 전환을 위한 상기 연결 시이퀀스를 구성하기 위해서 각 가능한 전이에 대해서 연결 서브파일을 구성하는 것이 필요하다. 상기 언급한 우리의 국제특허출원에서 설명된 바와 같이, 연속된 3 또는 4개의 프레임은 일반적으로 연결하기에 충분하므로, 간단한 구현방법은 단지 4 프레임 주기의 연결 서브파일을 구성하는 것이다. 예를 들면,
디렉토리 서브디렉토리 파일이름
mpg_name 096K_5>1 000001.bin
...
000133.bin
상기 전환이 일련의 다음과 같은 요구에 의해서 완성되도록:
요구 mpg_name/096k_x5/000099.bin
요구 mpg_name/096k_5>1/000099.bin
요구 mpg_name/096k_x1/000100.bin
상기 연결하는 서브파일은 다음과 같이 생성된다:
ㆍ 서브파일(99)의 마지막 프레임의 디코드된 버전을 얻기 위해서 상기 고속 전방향 시이퀀스를(원래 비디오 신호의 프레임 100,000에 해당하는 초당 25프레임으로) 디코드한다.
ㆍ 서브파일(100)(즉, 프레임 100,001)의 첫 번째 프레임의 디코드된 버전을 얻기 위해서 상기 정상 시이퀀스를 디코드한다. 상기 디코드된 프레임 100,000에기초한 H.261 인터프레임 코딩을 초기 기준 프레임으로서 사용하여 이 한 프레임을 4번 재 인코드 한다.
ㆍ 이와 같이, 상기 디코더가 연결 서브파일이 후속되는 고속 전방향 서브파일을 디코드할 때, 프레임 100,000을 올바르게 재구성하게 되고 정상(x1) 프레임을 디코드할 준비가 될 것이다. 의도적으로, 이 절차에서 동일한 프레임을 여러 차례 인코드 하는 이유는 단지 한번만 그렇게 하는 것은 H.261의 양자화 특성 때문에 낮은 사진 품질을 생성할 수 있기 때문이다.
레이트 스위칭(비록 이제 연결 서브파일이 양방향에서 요구되지만)을 위해서 정확히 같은 프로세스가 사용될 수 있을 것이다. 그러나, 기술된 바와 같이, 상기 연결 서브파일은 결국 4 프레임의 주기 동안 상기 사진이 정지된 것으로 관찰될 것이다 - 즉,(초당 25 프레임) 160ms. 고속에서 정상 재생으로의 전환에서 이것은 수용할 수 있다- 사실 이 지점에서 상기 버퍼의 클리어를 아마도 선택할 것이다. 레이트 스위칭에 대해서는 주관적으로 수용하지 않을 수도 있다. 그러므로 대안은 4초의 연결 시이퀀스를 구성하는 것일 것이다. 상기 요구는 다음과 같을 것이다:
mpg_name/096k_x1/000099.bin
mpg_name/096/128_x1/000100.bin
mpg_name/128k_x1/000101.bin
상기 연결 서브파일은 그 경우에 디코드 된 96kbit/s 프레임 100,000을 기준 프레임으로서 시작하여 상기 디코드 된 128kbit/s 시이퀀스의 5번째 디코드 된 프레임을 4회 재 부호화 하거나, 또는 디코드 된 96kbit/s 프레임 100,000을 기준 프레임으로서 시작하여 상기 디코드 된 128kbit/s 시이퀀스의 첫번째 4개의 프레임을 부호화 하여 구성될 것이다. 두 경우 모두에 있어서 상기 연결 서브파일의 나머지 96 프레임은 상기 128kbit/s 서브파일의 사본일 것이다.
전달될 파일은 "레코딩"으로 지칭되어 왔다. 그러나, 전체 오디오 또는 비디오 시이퀀스가 전달이 시작되기 전에 인코드 되거나 또는 존재했어야 할 필요는 없다. 이와 같이 컴퓨터는 실시간의 입력을 수신하고, 선택된 부호화 기법을 사용하여 그것을 부호화하고, "작동 중에" 서브파일을 생성하고 그것을 서버에 업로드하여, 일단 몇 개의 서브파일이 서버에 존재하면 전달이 시작된다.
이 전달시스템의 한 응용이 도 5에 도시된 바와 같은 음성메시징시스템 일 수 있으며, 여기서 서버(1), 네트워크(2), 및 단말기(3)는 다시 도시된다. 음성메시징 인터페이스(4)는 예를 들면 공중전화망(PSTN)을 통해서 전화호출을 수신하고, 메시지를 기록하고, 그것을 인코드하고, 서브파일로 분할하여 서버(1)에 업로드하며, 그것들은 이전에 설명된 방법으로 액세스 될 수 있다. 또는 단말기(3)에 유사한 방식으로 작용하지만 원격지 전화(5)에 의해서 상기 PSTN을 통해서 원격지에서 제어되는 제 2 인터페이스(6)가 제공될 수 있으며, 그 다음 상기 재생된 오디오 신호가 그것에 보내진다.
똑같은 시스템이 실시간 오디오(또는 비디오) 입력에 대해서 사용될 수 있다. 적어도 한 서브파일이 서버(1)에 기록되고 로드될 때까지 기다려야 한다는 점에서 당연히 본질적인 지연이 있지만, 그것은 어떤 의미에서 여전히 "기록된다" - 그 주요한 차이는 기록이 끝나기 전에 전달과 재생이 시작되는 점이다.
시스템은 상기한 바와 같이 진행될 수 있으며, 사용자가 가장 그럴 듯하게 원하는 것은 재생이 지금, 즉 가장 최근에 생성된 서브파일을 가지고 시작하는 것이지만 초기에 시작할 것이라는 사실을 제외하면 아주 만족스러울 것이다.
긴 오디오 시이퀀스를 저장장치에 저장하기 위해서 과거의 서브파일을 삭제하는 것을 선택할 것이다: 연속적인 입력(즉 하루 24시간)에 대해서 이것은 피할 수 없으며 또한 상기 서브파일 이름(우리의 프로토타입 시스템에서 우리는 000000.bin에서 009768.bin을 사용하고 그 다음 다시 000000.bin에서 시작한다)을 다시 사용할 필요가 있을 것이므로 상기 과거의 서브파일은 새로운 것으로 항상 중복되게 쓰여진다. 가장 최근의 서브파일을 가지고 전달의 시작을 보장하는 가장 간단한 방법은 상기 플레이어 프로그램이 적절한 서브파일을 요구함으로써 시작하도록 지시하는 여분의 명령을 인덱스파일에 포함하는 것일 것이다. 그러나 이것은 상기 인덱스 파일이 매우 자주 수정되어야 하는 불리한 점을 가지고 있으며 - 이상적으로는 새로운 서브파일이 생성될 때마다. 그러므로 우리는 상기 플레이어 프로그램이 다음과 같이 시작 서브파일을 찾기 위해서 서버를 검사하는 방법을 제안한다. 상기 인덱스 파일에서, 모드 파라미터는 상기 플레이어 프로그램이 이 방법을 불러내도록 기동하기 위해서 "실시간(live)"로 설정된다. LFI는 저장되는 서브파일의 최대수(예, 9768)를 표시하도록 설정된다. 상기 방법은 다음의 단계를 포함하며 (종래와 같이) 각 서브파일의 "최종 수정된" 시간과 날짜가 결정되었다는 전제로 한다. HTTP 프로토콜을 사용할 때, 결과적으로 요구된 서브파일이 아닌 상기 서브파일이 서버에 쓰여진 시간, 또는 상기 서브파일이 없는 경우에는 0을 표시하는 헤더 정보의 전달이 되는 HEAD 요구를 사용하여 달성될 수 있다. 이 시간은 아래에서 GetURL(LiveIndex)로서 나타나며, LiveIndex는 문제되는 상기 서브파일의 시이퀀스 번호이다. 코멘트는 "//" 뒤에 온다.
1LFI=9768 // 인덱스 파일로부터 읽는다.
LiveIndex = LFI / 2
StepSize = LFI / 2
LiveIndexModifiedAt = 0; //시간의 시작
10ThisIndexWasModifiedAt = GetURL(LiveIndex);
20If(StepSize = 1)
{
// LiveIndexModifiedAt 는 상기 파일이 쓰여진 시간 또는 파일이 발견되지 않으면 0 을 포함한다. LiveIndex 는 상기 인덱스를 포함한다.
goto 30
}
StepSize = StepSize / 2
if(ThisIndexWasModifiedAt > LiveIndexModifiedAt)
{
LiveIndexModifiedAt = ThisIndexWasModifiedAt;
LiveIndex = LiveIndex + StepSize
}
else
{
LiveIndex = LiveIndex - StepSize
}
goto 10
30FINISH
LiveIndex 를 찾았을 때, 상기 Tp(재생시간) 동안 물러나고 거기서부터 오디오 버퍼를 채우도록 요구하기 시작하는 것이 신중하다. 재생은 정상적인 방법으로 시작된다.
일단 레코딩이 실질적으로 끝났을 때, 상기 인덱스 파일은 원한다면 모드를 "녹음된"으로, 그리고 임의 길이 파라미터로 설정하기 위해서 수정될 수 있다.
원한다면 상기 플레이어 프로그램은 상기 인덱스 파일이 "실연중인"에서 "녹음된" 모드로 변경되었는지 그리고 그렇다면 "녹음된"모드 재생으로 전환하기 위해서 주기적으로 확인할 수 있다.
이제 상기 "가장 최근의" 서브파일을 식별하는 보다 간단하고 훨씬 더 빠른 방법이 먼저 단일 연속 서브파일 번호순서를 가정하여 설명될 것이다.
1. 단말기는 첫 번째 서브파일(예, 000000.bin)에 대한 HEAD 요구를 발행한다.
2. 서버는 이 파일의 헤더를 송신하여 대응하고 상기 마지막 수정된 날짜와시간(MODTIME) 그리고 이 대응이 송신된 날짜와 시간(REPLYTIME)을 포함한다(둘 다모두 표준 http 필드)
3. 단말기는 상기 두 값의 감산(ELTIME = REPLYTIME - MODTIME)으로 경과된 시간을 구하고, 이것을 서브파일의 재생시간(본 실시예에서는, 4초)으로 나누어 LIVEINDEX = ELTIME/4를 얻는다.
4. 단말기는 이 인덱스를 갖는 서브파일의 파일이름을 계산한다.
5. 단말기는 0(파일 없음)을 수신할 때까지 이 파일이름과 필요하면 각 후속하는 파일이름을 가지고 HEAD 요구를 발행하고 그 후에 발견된 최종 서브파일을 "현재의 서브파일"로 간주한다.
6. 단말기는 파일 요구를 시작하고, 이미 주어진 흐름도의 J1 지점에서 시작한다.
이 방법은 주기적으로 번호가 부여된 서브파일에 대해서 상기에서 설명된 것보다 훨씬 더 빠르다. 과거의 서브파일은 저장장치 요구를 감소시키기 위해서 상기 시작 서브파일이 유지되는 한 여전히 삭제될 것임을 주목해야 한다. 그러나 상기 방법은 파일이름 재사용(주기적인 주소)을 수용하기 위해서 수정될 수 있지만,
(i) 단계 2에서 헤더정보를 제공하기 위해서 항상 이용할 수 있도록 상기 시작 서브파일 이름(예, 000000.bin)은 재 사용되지 않는다. 이와 같이, 009768.bin에서 끝내어 서브파일 009768.bin 다음에는 서브파일 000001.bin이 계속된다.
(ii) 단계 3에서 상기 계산된 LIVEINDEX는 모듈로 9768 이 취해진다(즉, ELTIME/4 가 9768 에 의해서 나누어 질 때 그 나머지).
(iii) 최신의 서브파일과 가장 오래된 삭제되지 않은 서브파일 사이에는 몇몇의 파일이름이 존재하지 않도록, 기대되는 "파일 없음" 응답이 단계 5에서 발생하도록 서브파일 삭제는 항상 새로운 서브파일의 생성을 유도한다.
상기 기록동작보다 약간 더 빠르거나 더 느리게 실행하는 재생동작의 위험이 있을 수 있다. 이것을 방지하기 위해서 상기 플레이어 프로그램은 수신한 각 서브파일을 확인하여 이전 것보다 더 늦은 시간으로 표시된 것인지 여부를 확실히 하며: 그렇지 않으면 상기 서브파일은 무시되고 반복된 요구(아마도 3회)에는 이들 요구가 성공적이지 않다면 상기 인덱스 파일의 확인이 뒤따른다.
만약 상기 재생이 상기 기록 과정 이후로 지연되면 이것은 현재 요구되고 있는 것보다 더 최신의 상당한 수의 서브파일이 존재하는지 때때로 서버를 확인하는 상기 플레이어 프로그램에 의해서 확인될 수 있고, 만약 그와 같은 서브파일이 존재하면, 예를 들어, 규칙적으로 소량의 데이터를 버림으로써 "따라붙는(catching-up)" 프로세스를 시작한다.

Claims (32)

  1. 오디오 또는 비디오 자료의 연속적인 시간의 부분을 나타내는 파일의 세트로서 원격지 서버에 저장된 상기 비디오 또는 오디오 자료를 재생하는 단말기에 있어서,
    상기 단말기는,
    상기 서버와 통신을 위한 통신인터페이스,
    상기 통신인터페이스로부터 상기 파일을 수신하기 위한 버퍼,
    상기 버퍼의 내용을 재생하기 위한 수단, 및
    요구될 추가 파일의 주소를 결정하기 위해서 동작할 수 있고, 상기 버퍼의 보충을 위한 추가 파일에 대한, 상기 주소를 포함하는 요구 메시지를 생성하기 위해서 상기 버퍼의 상태에 응답하여 동작하는 제어수단을 구비하는 것을 특징으로 하는 단말기.
  2. 제 1 항에 있어서,
    상기 파일을 상기 버퍼에 저장하기 전에 상기 파일을 디코드 하도록 배열된 것을 특징으로 하는 단말기.
  3. 제 1 항 또는 제 2 항에 있어서,
    가장 최근의 파일을 식별하고, 상기 식별된 서브파일로 시작되는 디코딩을개시하기 위한 일련의 시행요구(trial request)를 생성하도록 동작하는 수단을 구비하는 것을 특징으로 하는 단말기.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 단말기는,
    각각 상이한 전달모드에 대응하는 복수의 파일 세트를 저장하는 서버와 함께 사용되고,
    후속하는 요구 메시지는 직전의 요구가 관련된 상기 세트와 다른 세트로부터 파일을 요구하도록 규정함으로써 모드전환을 달성하도록 동작하는 수단을 포함하는 것을 특징으로 하는 단말기.
  5. 제 4 항에 있어서,
    상기 단말기는,
    상기 파일 세트의 적어도 일부가 각각 상이한 데이터 레이트에 대응하는 서버와 함께 사용되고,
    상기 수신된 데이터 레이트를 모니터링하기 위한 수단을 포함하고,
    상기 모드전환 수단은,
    현재 요구된 파일이 속하는 상기 세트를 위해서 필요한 것보다 상기 측정된 레이트가 낮은 경우에, 후속하는 상기 요구 메시지가 더 낮은 데이터 레이트에 대응하는 세트로부터 파일을 요구하는 것을 규정하도록 동작하는 것을 특징으로 하는단말기.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 단말기는,
    상기 파일 세트의 적어도 일부가 각각 상이한 데이터 레이트에 대응하는 서버와 함께 사용되고,
    상기 수신된 데이터 레이트를 모니터링하기 위한 수단을 포함하고,
    상기 모드전환 수단은,
    현재 요구된 파일이 속하는 상기 파일 세트의 것보다 더 높은 데이터 레이트의 파일의 전달을 지원하기에 상기 측정된 레이트가 충분한 경우에, 후속하는 상기 요구 메시지가 더 높은 데이터 레이트에 대응하는 세트로부터 파일을 요구하는 것을 규정하도록 동작하는 것을 특징으로 하는 단말기.
  7. 제 4 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 단말기는,
    상기 파일 세트의 적어도 일부가 각각 상이한 재생모드에 대응하는 서버와 함께 사용되고,
    현재의 재생모드에서 명령에 대응하는 원하는 재생모드로 상기 모드전환을 수행하기 위해서 상기 단말기의 사용자로부터 상기 명령을 수신하는 수단을 포함하고,
    상기 모드전환 수단은 상기 명령을 수신하는 때 후속하는 상기 요구메시지가 상기 원하는 재생모드에 대응하는 세트로부터 파일을 요구하는 것을 규정하도록 동작하는 것을 특징으로 하는 단말기.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 단말기는,
    제 19 항 내지 제 22 항 중 어느 한 항의 방법을 이용하고,
    파일을 수신한 때 그것을 디코드하고 후속부의 상기 첫부분에 대응하는 디코드 된 자료의 상기 부분을 폐기하도록 동작하는 것을 특징으로 하는 단말기.
  9. 인터프레임코딩을 사용하여 적어도 일부의 프레임에 대해서 인코드 된 상기 파일의 적어도 일부인 상기 비디오 레코딩 형태의 상기 자료를 저장하는 서버와 함께 이용하는 제 4 항 내지 제 7 항 중 어느 한 항의 단말기에 있어서,
    상기 단말기는,
    상이한 세트로부터의 파일에 대한 요구 메시지를 생성하기 전에, 디코더 트래킹의 정정을 위해 파일에 대한 요구 메시지를 생성하도록 동작 중에 배열되는 것을 특징으로 하는 단말기.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 파일은 소정의 알고리즘에 의해서 주소가 할당되고,
    상기 단말기는,
    상기 요구 메시지가 상기 알고리즘에 의해서 상기 요구 메시지에 포함하기 위해서 주소를 계산하도록 동작하는 수단을 포함하는 것을 특징으로 하는 단말기.
  11. 디지털 부호화된 오디오 또는 비디오 자료를 전송하는 방법에 있어서,
    각각이 상기 자료의 연속하는 시간적인 부분을 나타내는 복수의 분리된 파일로 상기 자료를 분할하는 단계,
    제 1 스테이션에서 상기 파일을 저장하는 단계, 및
    제 2 스테이션에서,
    a) 상기 파일 중 연속하는 각각의 부분에 대한 요구를 상기 제 1 스테이션으로 전송하는 단계,
    b) 상기 파일을 수신하는 단계, 및
    c) 상기 자료를 재생하기 위해서 상기 파일을 디코딩하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  12. 제 11 항에 있어서,
    상기 자료는 버퍼에 저장되고, 상기 요구 메시지는 상기 버퍼의 상태에 종속하여 생성되는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  13. 제 12 항에 있어서,
    상기 자료는 디코딩 후에 상기 버퍼에 저장되는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 제 2 스테이션에서,
    첫 번째 파일에 대한 시행요구를 생성하는 단계,
    상기 첫 번째 파일의 오리지널 시간과 응답 시간을 나타내는 데이터를 포함하는 응답을 상기 제 1 스테이션으로부터 수신하는 단계, 및
    제 1 스테이션에서 가장 최근 파일의 추정된 동일성을 상기 데이터로부터 추정하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  15. 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,
    제 2 스테이션에서,
    상기 제 1 스테이션에서 가장 최근 파일을 식별하기 위해서 일련의 시험요구를 생성하는 단계와,
    상기 식별된 파일로 시작되는 상기 디코딩을 개시하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  16. 제 11 항 내지 제 15 항 중 어느 한 항에 있어서,
    각각 상이한 전달모드에 대응하는 복수의 파일 세트를 저장하는 단계와,
    제 2 스테이션에서, 후속하는 요구메시지가 직전의 요구와 관련된 상기 세트와 다른 세트로부터 파일을 요구하도록 규정함으로써 모드전환을 달성하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  17. 제 16 항에 있어서,
    상기 파일 세트의 적어도 일부가 각각의 상이한 데이터 레이트에 대응하고,
    상기 제 2 스테이션에서 상기 수신된 데이터 레이트를 모니터링하는 단계, 및
    상기 현재 요구된 파일이 속하는 상기 세트를 위해서 필요한 것보다 상기 측정된 레이트가 낮은 경우에, 후속하는 상기 요구메시지가 더 낮은 데이터 레이트에 대응하는 세트로부터 파일을 요구하도록 규정하기 위해서 모드전환을 수행하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  18. 제 16 항 또는 제 17 항에 있어서,
    상기 파일 세트의 적어도 일부가 각각 상이한 데이터 레이트에 대응하고,
    상기 제 2 스테이션에서 상기 수신된 데이터 레이트를 모니터링하는 단계, 및
    상기 현재 요구된 파일이 속하는 상기 세트의 것보다 상기 측정된 레이트가 더 높은 데이터 레이트의 파일의 전달을 지원하기에 충분한 경우에, 후속하는 상기요구메시지가 더 높은 데이터 레이트에 대응하는 세트로부터 파일을 요구하도록 규정하기 위해서 모드전환을 수행하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  19. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 파일 세트의 적어도 일부가 각각 상이한 재생모드에 대응하고,
    제 2 스테이션은,
    상기 스테이션 사용자로부터 명령을 수신하여 현재의 재생모드에서 상기 명령에 대응하는 원하는 재생모드로 상기 모드전환을 수행하는 수단을 포함하고,
    상기 모드전환 수단은,
    상기 명령을 수신하는 때, 후속하는 상기 요구 메시지가 상기 원하는 재생모드에 대응하는 세트로부터 파일을 요구하는 것을 규정하도록 동작하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  20. 제 11 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 자료는 오디오 자료이고,
    a) 상기 파일은 프레임 구조를 갖는 오디오 코딩 기법을 사용하여 인코드 되는 단계,
    b) 상기 자료를 복수의 시간상의 부분으로 개념상 분할하는 단계와,
    하나의 각 시간상의 부분과 부분이 함께 전체 프레임 수를 나타내도록 상기후속 부분의 첫부분을 부호화함으로써 마지막 이외의 각각의 상기 파일을 생성하는 단계를 포함하여, 상기 자료를 복수의 분리된 파일로 분할하는 단계,
    c) 디코딩 후에, 상기 후속 부분의 상기 첫부분에 대응하는 상기 디코드 된 자료의 상기 부분이 폐기되는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  21. 제 11 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 자료는 오디오 자료이고,
    a) 상기 파일은 프레임 구조를 갖는 오디오 코딩 기법을 사용하여 인코드 되는 단계,
    b) 상기 자료를 복수의 시간상의 부분으로 개념상 분할하는 단계와,
    하나의 각 시간상의 부분과, 상기 하나의 각 시간상의 부분으로 상기 프레임 구조의 전체 프레임수를 구성하도록 상기 직전의 시간상의 부분의 복수의 끝 부분 및/또는 상기 직후의 시간상의 부분의 첫부분을 부호화함으로써 상기 파일의 적어도 일부를 생성하는 단계를 포함하여, 상기 자료를 복수의 분리된 파일로 분할하는 단계,
    c) 디코딩 후에, 상기 직전의 시간상의 부분의 상기 끝 부분 및/또는 상기 직후의 시간상의 부분의 시작에 대응하는 상기 디코드 된 자료의 상기 부분이 폐기되는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  22. 제 20 항 또는 제 21 항에 있어서,
    상기 세트는 제 1 세트와 제 2 세트를 구비하고, 제 1 세트는 상기 제 2 세트를 인코딩하기 위해서 사용된 것과 프레임 길이가 다르고, 시간상의 부분으로의 분할은 두 세트 모두에 대해서 같은 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  23. 제 20 항 내지 제 22 항 중 어느 한 항에 있어서,
    제 13 항에 기재된 방법을 사용하는 경우 상기 후속 부분의 상기 첫부분에 대응하는 상기 디코드 된 자료의 상기 부분은 상기 버퍼에 저장되지 않는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  24. 제 16 항 또는 제 17 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 자료는 비디오 레코딩의 형태이고, 상기 파일의 적어도 일부는 인터프레임코딩을 사용하여 적어도 일부의 프레임에 대해서 인코드 되어지고, 제 2 스테이션에서, 다른 세트로부터의 파일에 대한 요구메시지를 생성하기 전에 디코더 트래킹의 정정을 위해서 파일에 대한 요구 메시지를 생성하는 단계를 포함하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  25. 제 11 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 파일은 소정의 알고리즘에 따라서 주소가 할당되고, 상기 알고리즘에 따라 제 2 스테이션에서, 요구메시지에 포함시키기 위해 주소를 계산하는 단계를 포함하는 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  26. 제 25 항에 있어서,
    상기 알고리즘은 키(key)에 따라서 상기 주소를 생성하고, 상기 주소를 계산하는데 사용하기 위해서 상기 키를 제 2 스테이션으로 전송하는 단계를 포함하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  27. 제 26 항에 있어서,
    상기 알고리즘은 슈도랜덤 시이퀀스(pseudo-random sequence)에 따라서 상기 주소를 생성하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  28. 제 27 항에 있어서,
    상기 알고리즘은 슈도랜덤 시이퀀스에 따라서 상기 주소를 생성하고 상기 키는 상기 슈도랜덤 시이퀀스의 시작점을 설정하는 종자값(seed value)이 되는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  29. 제 11 항 내지 제 28 항 중 어느 한 항에 있어서,
    제 2 스테이션에서,
    (a) 시간과 그 시간에 수행될 동작을 정의하는 데이터를 포함하는 목록을 제 1 스테이션으로부터 수신하는 단계,
    (b) 상기 자료의 시작에 대해서 상기 현재의 재생점에 의해서 표시된 시간을 계산하는 단계,
    (c) 상기 목록의 시간과 상기 계산된 시간을 비교하고, 일치하는 경우 상기 동작의 개시를 위한 각 데이터를 포함하는 명령을 생성하는 단계를 구비하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  30. 제 29 항에 있어서,
    상기 동작은 서브타이틀의 디스플레이를 포함하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  31. 제 29 항 또는 제 30 항에 있어서,
    상기 동작은 이미지의 디스플레이를 포함하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
  32. 제 31 항에 있어서,
    상기 데이터에 의해서 식별된 이미지에 대한 요구를 제 1 스테이션에 전송하는 단계와, 상기 이미지를 디스플레이가 요구될 때까지 제 2 스테이션에서 저장하는 단계를 포함하는 것을 특징으로 하는 오디오 또는 비디오 자료를 전송하는 방법.
KR1020037007943A 2000-12-15 2001-12-14 오디오 또는 비디오 자료의 전송방법 및 장치 KR100908954B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB0030706.6 2000-12-15
GBGB0030706.6A GB0030706D0 (en) 2000-12-15 2000-12-15 Delivery of audio and or video material
GB0108094A GB0108094D0 (en) 2001-03-30 2001-03-30 Delivery of audio and or video material
GB0108094.4 2001-03-30
GBPCT/GB01/05090 2001-11-19
PCT/GB2001/005090 WO2002049342A1 (en) 2000-12-15 2001-11-19 Delivery of audio and/or video material
PCT/GB2001/005543 WO2002049343A1 (en) 2000-12-15 2001-12-14 Transmission and reception of audio and/or video material

Publications (2)

Publication Number Publication Date
KR20030061853A true KR20030061853A (ko) 2003-07-22
KR100908954B1 KR100908954B1 (ko) 2009-07-22

Family

ID=32031868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037007943A KR100908954B1 (ko) 2000-12-15 2001-12-14 오디오 또는 비디오 자료의 전송방법 및 장치

Country Status (7)

Country Link
US (1) US7447791B2 (ko)
EP (1) EP2071827A3 (ko)
KR (1) KR100908954B1 (ko)
CN (1) CN1243442C (ko)
AT (1) ATE464740T1 (ko)
DE (1) DE60141850D1 (ko)
ES (1) ES2342357T3 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101446450B1 (ko) * 2010-07-23 2014-10-01 알까뗄 루슨트 비디오 청크들을 전송하기 위한 방법, 그러한 방법을 실현하는 서버 엔티티, 클라이언트 엔티티 및 중간 네트워크 엔티티

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7085845B2 (en) * 2001-05-09 2006-08-01 Gene Fein Method, apparatus and computer program product for identifying a playing media file and tracking associated user preferences
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2355360B1 (en) 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
US7536725B2 (en) * 2003-07-28 2009-05-19 Limelight Networks, Inc. Authentication of content download
US7779035B2 (en) * 2003-07-28 2010-08-17 Limelight Networks, Inc. Consistent browser file download
US8805966B2 (en) 2003-07-28 2014-08-12 Limelight Networks, Inc. Rich content download
US8122100B2 (en) * 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
US8209401B2 (en) * 2003-10-03 2012-06-26 Limelight Networks, Inc. Rich content download
CN101834610B (zh) 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
US9323571B2 (en) * 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
JP4971144B2 (ja) 2004-05-07 2012-07-11 デジタル ファウンテン, インコーポレイテッド ファイルダウンロードおよびストリーミングのシステム
US20050275566A1 (en) * 2004-06-14 2005-12-15 Nokia Corporation System and method for transferring content
US20060083194A1 (en) * 2004-10-19 2006-04-20 Ardian Dhrimaj System and method rendering audio/image data on remote devices
US7962854B2 (en) * 2004-10-19 2011-06-14 Sony Ericsson Mobile Communications Ab Systems, methods and computer program products for displaying content on multiple display screens using handheld wireless communicators
US20060140162A1 (en) * 2004-12-23 2006-06-29 Yojak Vasa Alternate-location content delivery apparatus, methods and computer program products
US20080189099A1 (en) * 2005-01-12 2008-08-07 Howard Friedman Customizable Delivery of Audio Information
US8589508B2 (en) * 2005-04-07 2013-11-19 Opanga Networks, Inc. System and method for flow control in an adaptive file delivery system
US7738768B1 (en) 2005-12-16 2010-06-15 The Directv Group, Inc. Method and apparatus for increasing the quality of service for digital video services for mobile reception
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US8606966B2 (en) * 2006-08-28 2013-12-10 Allot Communications Ltd. Network adaptation of digital content
US20080062322A1 (en) * 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
US7743161B2 (en) * 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
US20080120371A1 (en) * 2006-11-16 2008-05-22 Rajat Gopal Relational framework for non-real-time audio/video collaboration
US8520852B2 (en) * 2006-12-22 2013-08-27 Ibiquity Digital Corporation Method and apparatus for store and replay functions in a digital radio broadcasting receiver
AU2008298602A1 (en) 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8635360B2 (en) * 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US8543720B2 (en) 2007-12-05 2013-09-24 Google Inc. Dynamic bit rate scaling
US20090150259A1 (en) * 2007-12-09 2009-06-11 Arjun Yetukuri Collection of Magazine Articles
US7979557B2 (en) * 2008-04-11 2011-07-12 Mobitv, Inc. Fast setup response prediction
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
WO2009155356A1 (en) 2008-06-18 2009-12-23 Onion Networks, KK Traffic and cost containment for internet access by adapting the coding rate when distributing- media content
JP5517532B2 (ja) * 2008-10-15 2014-06-11 キヤノン株式会社 画像処理装置、その制御方法、記憶媒体及びプログラム
US8996547B2 (en) * 2008-10-31 2015-03-31 Microsoft Technology Licensing, Llc Dynamic fragmentation of digital media
US8375140B2 (en) 2008-12-04 2013-02-12 Google Inc. Adaptive playback rate with look-ahead
ES2524966T3 (es) 2008-12-05 2014-12-16 Abbvie Bahamas Ltd. Derivados de tieno[3,2-c]piridina como inhibidores de quinasas para uso en el tratamiento del cáncer
US8474001B2 (en) * 2009-02-10 2013-06-25 Cisco Technology, Inc. Near real time delivery of variable bit rate media streams
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
WO2010141460A1 (en) * 2009-06-01 2010-12-09 Swarmcast, Inc. Data retrieval based on bandwidth cost and delay
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
EP2491495A4 (en) 2009-11-04 2013-01-02 Huawei Tech Co Ltd SYSTEM AND METHOD FOR DIFFUSION OF CONTINUOUS MULTIMEDIA CONTENT
CN102055773B (zh) * 2009-11-09 2013-10-09 华为技术有限公司 实现基于http的流媒体业务的方法、系统和网络设备
WO2011054281A1 (zh) 2009-11-09 2011-05-12 华为技术有限公司 实现基于http的流媒体业务的方法、系统和网络设备
CN102055789B (zh) * 2009-11-09 2013-10-09 华为技术有限公司 实现基于http的流媒体业务的方法、系统和网络设备
KR101786050B1 (ko) * 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101786051B1 (ko) * 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
KR101750049B1 (ko) 2009-11-13 2017-06-22 삼성전자주식회사 적응적인 스트리밍 방법 및 장치
KR101750048B1 (ko) * 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR101737084B1 (ko) * 2009-12-07 2017-05-17 삼성전자주식회사 메인 콘텐트에 다른 콘텐트를 삽입하여 스트리밍하는 방법 및 장치
JP4904564B2 (ja) * 2009-12-15 2012-03-28 シャープ株式会社 コンテンツ配信システム、コンテンツ配信装置、コンテンツ再生端末およびコンテンツ配信方法
KR101777348B1 (ko) 2010-02-23 2017-09-11 삼성전자주식회사 데이터 전송 방법 및 장치와 데이터 수신 방법 및 장치
KR20110105710A (ko) * 2010-03-19 2011-09-27 삼성전자주식회사 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
KR101837687B1 (ko) * 2010-06-04 2018-03-12 삼성전자주식회사 콘텐트의 품질을 결정하는 복수의 인자에 기초한 적응적인 스트리밍 방법 및 장치
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
CN108270799B (zh) 2010-08-10 2021-06-04 瑞典爱立信有限公司 用于媒体流传输的会话控制
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
KR101472032B1 (ko) 2010-09-20 2014-12-16 (주)휴맥스 홀딩스 Http 스트리밍에서 표현 스위칭시 처리 방법
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US8953752B2 (en) * 2011-02-17 2015-02-10 Sonus Networks, Inc. Systems and methods for playing recorded announcements
JP2013031151A (ja) 2011-06-20 2013-02-07 Renesas Electronics Corp 暗号通信システムおよび暗号通信方法
WO2013012909A1 (en) 2011-07-20 2013-01-24 Abbott Laboratories Kinase inhibitor with improved aqueous solubility
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US20130227106A1 (en) * 2012-02-23 2013-08-29 Edward Grinshpun Method and apparatus for video session management
KR101904053B1 (ko) 2012-03-13 2018-11-30 삼성전자 주식회사 단말장치의 멀티미디어 처리장치 및 방법
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9386308B2 (en) * 2013-07-16 2016-07-05 Cisco Technology, Inc. Quality optimization with buffer and horizon constraints in adaptive streaming
US20180165358A1 (en) * 2014-06-30 2018-06-14 Sony Corporation Information processing apparatus and information processing method
US11076187B2 (en) 2015-05-11 2021-07-27 Mediamelon, Inc. Systems and methods for performing quality based streaming
US10298985B2 (en) 2015-05-11 2019-05-21 Mediamelon, Inc. Systems and methods for performing quality based streaming
KR102321859B1 (ko) 2016-07-21 2021-11-03 한화테크윈 주식회사 자바 스크립트를 이용한 실시간 미디어 스트리밍 방법 및 그 장치
CN106658176A (zh) * 2016-11-07 2017-05-10 广州视源电子科技股份有限公司 远程视频显示方法及系统
EP3688878B1 (en) * 2017-09-28 2021-11-03 British Telecommunications Public Limited Company Controlling communications in respect of local area networks
US11290149B2 (en) 2017-10-10 2022-03-29 British Telecommunications Public Limited Company Identifying interfering links in local area networks
CN109862193B (zh) * 2019-04-12 2020-10-02 珠海天燕科技有限公司 一种终端中来电视频的控制方法及装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US595716A (en) * 1897-12-21 Process of printing on two-color lithographic presses
US5701582A (en) * 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5610841A (en) * 1993-09-30 1997-03-11 Matsushita Electric Industrial Co., Ltd. Video server
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5608450A (en) * 1994-09-07 1997-03-04 Intel Corporation Video conferencing system with fast packet loss recovery
US6181867B1 (en) * 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US5835495A (en) * 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
KR19990072122A (ko) 1995-12-12 1999-09-27 바자니 크레이그 에스 실시간 영상 전송 방법 및 장치
CA2196622C (en) * 1996-02-06 2001-10-16 Hiroshi Jinzenji Network data distribution system
US6065050A (en) * 1996-06-05 2000-05-16 Sun Microsystems, Inc. System and method for indexing between trick play and normal play video streams in a video delivery system
US6118790A (en) * 1996-06-19 2000-09-12 Microsoft Corporation Audio server system for an unreliable network
US5732216A (en) * 1996-10-02 1998-03-24 Internet Angles, Inc. Audio message exchange system
WO1998026604A1 (en) 1996-12-10 1998-06-18 British Telecommunications Public Limited Company Video coding
US6029194A (en) * 1997-06-10 2000-02-22 Tektronix, Inc. Audio/video media server for distributed editing over networks
WO1999022563A2 (en) 1997-10-30 1999-05-14 Koninklijke Philips Electronics N.V. Method for coding a presentation
JP3407287B2 (ja) 1997-12-22 2003-05-19 日本電気株式会社 符号化復号システム
EP1217557A3 (en) 1997-12-24 2005-11-02 Avid Technology, Inc. Computer system and method for transferring high bandwith streams of data from files which are segmented across multiple storage units
US6374336B1 (en) * 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6515976B1 (en) 1998-04-06 2003-02-04 Ericsson Inc. Demodulation method and apparatus in high-speed time division multiplexed packet data transmission
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
JP2000059755A (ja) * 1998-08-07 2000-02-25 Matsushita Electric Ind Co Ltd データサーバシステム、データ受信装置およびデータ送信装置
US6016166A (en) * 1998-08-31 2000-01-18 Lucent Technologies Inc. Method and apparatus for adaptive synchronization of digital video and audio playback in a multimedia playback system
WO2000042773A1 (en) 1999-01-19 2000-07-20 Sony Electronics Inc. System and method for implementing interactive video
US6993788B1 (en) * 1999-08-20 2006-01-31 Mediaone Group, Inc. Method and system for manipulating broadcast signals
EP1273151B1 (en) * 2000-04-08 2004-09-29 Sun Microsystems, Inc. Resynchronizing media during streaming
US7103668B1 (en) * 2000-08-29 2006-09-05 Inetcam, Inc. Method and apparatus for distributing multimedia to remote clients

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101446450B1 (ko) * 2010-07-23 2014-10-01 알까뗄 루슨트 비디오 청크들을 전송하기 위한 방법, 그러한 방법을 실현하는 서버 엔티티, 클라이언트 엔티티 및 중간 네트워크 엔티티

Also Published As

Publication number Publication date
ES2342357T3 (es) 2010-07-06
US7447791B2 (en) 2008-11-04
CN1243442C (zh) 2006-02-22
KR100908954B1 (ko) 2009-07-22
EP2071827A3 (en) 2010-08-25
EP2071827A2 (en) 2009-06-17
ATE464740T1 (de) 2010-04-15
US20040064573A1 (en) 2004-04-01
DE60141850D1 (de) 2010-05-27
CN1481643A (zh) 2004-03-10

Similar Documents

Publication Publication Date Title
KR100908954B1 (ko) 오디오 또는 비디오 자료의 전송방법 및 장치
AU2002220927B2 (en) Transmission and reception of audio and/or video material
KR100838052B1 (ko) 오디오 신호의 인코딩 방법
AU2002220927A1 (en) Transmission and reception of audio and/or video material
AU2002215122A1 (en) Encoding audio signals
EP2475149B1 (en) Method for streaming multimedia data over a non-streaming protocol
WO2013008866A1 (ja) 生成装置、配信サーバ、生成方法、再生装置、再生方法、再生システム、生成プログラム、再生プログラム、記録媒体およびデータ構造
JP2007529121A (ja) ストリーミングメディアの疎(sparse)キャッシング
CN102045338A (zh) 内容再现系统、内容再现装置、程序及内容再现方法
WO1998037699A1 (en) System and method for sending and receiving a video as a slide show over a computer network
JP4315914B2 (ja) 画像再生装置及び画像再生方法
JP4882441B2 (ja) 配信サーバ装置、クライアント装置、及びそれらに用いるプログラム
JP2010081489A (ja) 動画ファイル送信サーバおよびその動作制御方法
WO2002049342A1 (en) Delivery of audio and/or video material
JP5144771B2 (ja) 画像処理装置、画像再生装置、画像記録装置、画像処理方法、画像再生方法、及び画像記録方法
US20020174239A1 (en) Data reproducing apparatus, data reproduction method, recording medium storing data reproduction program, and video on demand system
GB2348069A (en) Representation of a slide-show as video
JP2005318190A (ja) 映像配信方法およびシステム
JP2015222957A (ja) コンテンツ取得装置、コンテンツ取得方法、メタデータ配信装置、メタデータ配信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130704

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140704

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150702

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160707

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180705

Year of fee payment: 10