WO1998038798A1 - Device, system, and method for distributing video data - Google Patents

Device, system, and method for distributing video data Download PDF

Info

Publication number
WO1998038798A1
WO1998038798A1 PCT/JP1997/000562 JP9700562W WO9838798A1 WO 1998038798 A1 WO1998038798 A1 WO 1998038798A1 JP 9700562 W JP9700562 W JP 9700562W WO 9838798 A1 WO9838798 A1 WO 9838798A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
video data
video
frame
picture
Prior art date
Application number
PCT/JP1997/000562
Other languages
English (en)
French (fr)
Inventor
Tomohisa Yamaguchi
Original Assignee
Mitsubishi Denki Kabushiki Kaisha
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 Mitsubishi Denki Kabushiki Kaisha filed Critical Mitsubishi Denki Kabushiki Kaisha
Priority to PCT/JP1997/000562 priority Critical patent/WO1998038798A1/ja
Priority to JP53748798A priority patent/JP3393143B2/ja
Priority to EP97905407A priority patent/EP0901285A4/en
Publication of WO1998038798A1 publication Critical patent/WO1998038798A1/ja

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/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • 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/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/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/64Addressing
    • H04N21/6405Multicasting

Definitions

  • Video data distribution device Description Video data distribution device, video data distribution system, and video data distribution method.
  • the present invention relates to a video data distribution device that distributes video data on demand, a video data distribution system, and a video data distribution method.
  • FIG. 33 is a functional block diagram showing a system configuration for distributing high bit rate video data such as MPEG from a video server to a client through a network.
  • 1 is a network dedicated to video data distribution
  • 2 is a video server that is connected to the dedicated network 1 and distributes video data
  • 3 is connected to the dedicated network 1 and distributed from the video server 2.
  • Client that receives video data and plays it back.
  • the video server 2 Upon receiving the data transfer request from the client 3, the video server 2 starts to flow the requested video data to the dedicated network 1.
  • the client 3 receives the video data distributed through the dedicated network 1, decodes the video data, and plays back the video.
  • a dedicated network for video distribution is used for the network, so if the network has sufficient bandwidth, the video can be almost completely dropped. Can play but client 3 As a result, the amount of video data to be distributed increases and the amount of video data to be distributed increases. As a result, when the network load increases, video data cannot be transmitted, and frames are dropped for a long time.
  • a high transfer rate video such as MPEG
  • a dedicated video distribution network such as a normal network
  • the bandwidth is not sufficient
  • the network load increases and the network becomes stable. This can result in poor video delivery and can adversely affect other traffic on the network. Disclosure of the invention
  • the present invention has been made to solve the above-described problems.
  • the present invention reduces the network load required for video data distribution, stabilizes the entire system connected to the network, and reduces the playback time.
  • An object of the present invention is to obtain a video data distribution device, a video data distribution system, and a video data distribution method capable of real-time display with little disturbance.
  • a load measuring unit that measures the load status of the network or the video data distribution device, and video data including a plurality of frame data, the number of frame data corresponding to the measurement result of the load measuring unit is calculated from the load data.
  • a data extraction unit to be extracted and a transmission unit to transmit the frame data extracted by the data extraction unit are provided.
  • the data extraction unit extracts all frame data of the video data when the load is low, and extracts part of the video data when the load is high, based on the measurement result of the load measurement unit. I decided.
  • the data extraction unit performs a process between a plurality of frame data in the video data. By decimating the frame data, we decided to extract the number of frame data based on the measurement result of the load measurement unit.
  • the data extraction unit removes the video data having the inter-frame compression frame data from the video data having the intra-frame compression frame data and the inter-frame compression frame data based on the measurement result of the load measurement unit.
  • the transmission unit extracts the video data, and transmits the video data extracted by the data extraction unit.
  • the video data is MPEG data.
  • the data extraction unit is configured to generate, from the MPEG data having the I picture and the P picture, MPEG data from which the P picture has been deleted according to the measurement result of the load measurement unit.
  • the data extraction unit is configured to generate, from the MPEG data having the I picture and the B picture, MPEG data in which the B picture is deleted according to the measurement result of the load measurement unit.
  • the data extraction unit is configured to generate, from the MPEG data having the I picture, the P picture, and the B picture, MPEG data in which the P picture and the B picture are deleted according to the measurement result of the load measurement unit.
  • the data extraction unit extracts a plurality of I pictures from the MPEG data having a plurality of I pictures at intervals according to the measurement results of the load measurement unit.
  • An encoder for encoding a video signal from a video camera in real time to generate video data having a plurality of frame data, and a buffer for temporarily storing video data generated by the encoder.
  • the data extracting unit thins out frame data among a plurality of frame data in the video data stored in the buffer, thereby obtaining a number of frame data based on the measurement result of the load measuring unit from the video data. Was extracted.
  • a load measuring unit that measures a load state of the video data distribution system; a data extracting unit that extracts a number of frame data according to the measurement result of the load measuring unit from video data including a plurality of frame data; A transmission unit for transmitting the frame data extracted by the data extraction unit via a network, and a frame data transmitted from the transmission unit of the video data distribution device from the network. And a video data reproducing device for reproducing the received frame data.
  • the load measurement unit measures the load on the processor that controls the operation of the video data playback device.
  • a plurality of video data reproduction devices are connected to a network, and one frame data transmitted from the transmission section of the video data distribution device onto the network is received by each of the plurality of video data reproduction devices.
  • the video data reproducing device transmits a data transfer request specifying a data amount to the video data distribution device a plurality of times, and the video data distribution device receives the plurality of data transfer requests and receives the data transfer request. Frame data based on the data amount specified for each data transfer request is transmitted for each data transfer request.
  • the video data reproducing device transmits a data transfer request in which the video data is specified, and the video data distribution device receives the data transfer request and, when receiving the data transfer request, a bucket having a part of frame data of the video data. Are transmitted at predetermined intervals.
  • the transmission level determining step is executed by the video data reproducing apparatus, and the load measuring step measures a load of a processor that controls the operation of the video data reproducing apparatus; and a transmission level corresponding to the measurement result of the load measuring step. And a transmission level transmitting step of transmitting the transmission level determined by the determining step from the video data reproducing device to the video data distribution device.
  • the video data reproducing apparatus is provided with a reproducing step of receiving the frame data transmitted in the transmitting step and reproducing the received frame data.
  • the transmission level determining step is such that, when the video data reproducing apparatus performs fast forward reproduction of the video data, video data obtained by thinning out some frame data from a plurality of frame data included in the video data is extracted.
  • the transmission level was determined in advance, and when fast-forward playback was not performed, the transmission level was determined so as not to skip the frame data of the video data.
  • FIG. 1 is a system configuration diagram of a client / server system according to Embodiments 1, 2, and 4 of the present invention.
  • FIG. 2 is a software configuration diagram of a playback portion of the LBR data distribution according to the first, third, and fourth embodiments of the present invention.
  • FIG. 3 is a sequence diagram showing a client-driven operation of the present invention.
  • FIG. 4 is a flowchart illustrating processing of a client program according to the first embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a data structure of an OPEN request according to the first embodiment of the present invention.
  • FIG. 6 is a diagram showing a data structure of a READ request according to the first embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a CPU load measurement process according to the first embodiment of the present invention.
  • FIG. 8 is a flowchart for explaining a network load measuring process according to the first embodiment of the present invention.
  • FIG. 9 is a diagram for explaining offset adjustment processing according to the first embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating MPEG data distribution processing of the video server according to the first embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating an LBR process according to the first embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating a picture check process according to the first embodiment of the present invention.
  • FIG. 13 is a flowchart for explaining an I picture check process according to the first embodiment of the present invention.
  • FIG. 14 is a flowchart illustrating an IP picture check process according to the first embodiment of the present invention.
  • FIG. 15 is a flowchart illustrating an IPB picture check process according to the first embodiment of the present invention.
  • FIG. 16 is a diagram illustrating a table for explaining a thinning interval according to the first embodiment of the present invention and a determination as to whether or not to extract a found picture.
  • FIG. 17 is a diagram showing a data structure of the MPEG1 system.
  • FIG. 18 is a diagram showing a data structure up to the G0P layer of the MPEG1 system.
  • FIG. 19 is a sequence diagram of a video distribution process according to the first embodiment of the present invention.
  • FIG. 20 is a sequence diagram of a video distribution process according to the first embodiment of the present invention.
  • FIG. 21 is a software configuration diagram of an LBR data distribution Z playback part according to the second embodiment of the present invention.
  • FIG. 22 is a sequence diagram showing a server-driven operation of the present invention.
  • FIG. 23 is a flowchart illustrating processing of a client program according to the second embodiment of the present invention.
  • FIG. 24 is a flowchart illustrating a distribution process of a video server according to the second embodiment of the present invention.
  • FIG. 25 is a system configuration diagram of a client / server system according to the third embodiment of the present invention.
  • FIG. 26 is a sequence diagram of a video distribution process according to the third embodiment of the present invention.
  • FIG. 27 is a flowchart illustrating processing of a server program according to the third embodiment of the present invention.
  • FIG. 28 is a diagram illustrating the processing of the client program according to the third embodiment of the present invention. It is a flowchart explaining.
  • the 290th flowchart is a flowchart for explaining the processing of the server program according to the fourth embodiment of the present invention.
  • FIG. 30 is a flowchart illustrating processing of a client program according to the fourth embodiment of the present invention.
  • FIG. 31 is a functional block diagram of the video server according to the present invention.
  • FIG. 32 is a functional block diagram illustrating the LBR processing according to the present invention.
  • FIG. 33 is a system configuration diagram of a video server according to the background art. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 shows an embodiment of a system configuration of a client server system according to the present invention.
  • MPEG data is used as video data.
  • reference numeral 4 denotes a normal network through which data other than video data flows
  • reference numeral 5 denotes a video server which distributes MPEG data through the network 4.
  • the functions of the network server Use a computer with a well-known OS that has 6 is a disk device for storing MPEG data
  • 7 is a server buffer for reading MPEG data from the disk device 6.
  • Reference numeral 8 denotes an LBR buffer used to write out the LBR data when changing the MPEG data read into the server buffer 7 into LBR data (hereinafter, LBR data).
  • Reference numeral 9 denotes a client that receives the distributed LBR data and reproduces the data.
  • a computer equipped with Microsoft's OS and Windows95 having a network function is used. The client 9 can simultaneously execute applications other than video data reproduction.
  • 10 is for temporarily storing the MPEG data distributed from the video server 5. This is a client buffer.
  • FIG. 31 is a function block diagram for explaining functions of the video server 5.
  • Reference numeral 18 denotes a network load measuring unit that measures the load of the network 4
  • 19 denotes a CPU load measuring unit that measures the load of the CPU of the video server 5.
  • the CPU of the video server 5 is a processor for controlling the operation of the video server 5. 91, based on the load information measured by the network load measuring unit 18 or the CPU load measuring unit 19, selectively outputs the MPEG data D1 received from the disk device 6 to the transmitting unit 92 or the LBR processing unit 12. It is a switching unit.
  • Reference numeral 12 denotes an LBR processing unit that performs a process of reducing the data amount of the MPEG data D1 received from the disk device 6 via the switching unit 91.
  • Reference numeral 92 denotes a transmission unit for transmitting the full MPEG data received from the switching unit 91 or the MPEG data (LBR data) having a small amount of data received from the LBR processing unit 12 onto the network 4. is there. Details of the LBR processing will be described later.
  • the client 9 is a video playback device.
  • the network load measuring unit 18 or the CPU load measuring unit 19 is a load measuring unit.
  • the LBR processing unit 12 is a data extraction unit.
  • the network load measuring unit 18 constantly monitors the load on the network 4.
  • the CPU load measurement unit 19 also constantly monitors the CPU load.
  • the video server 5 reads full MPEG data D 1 from the disk device 6.
  • the switching unit 91 receives the full data D1 of the MPEG data, and selects the transmitting unit 92 or the LBR processing unit 12 based on the load information received from the network load measuring unit 18 and the CPU load measuring unit 19, respectively. To output full data D1.
  • the rule data is video data that has not been subjected to LBR processing.
  • the switching unit 91 selects the transmission unit 92 and outputs the full data D2.
  • This full data D2 is the same as the full data D1.
  • the LBR processing unit 12 is selected to output full data D1 of MPEG data.
  • the determination that the load is high / low is made based on a predetermined threshold.
  • the LBR processing unit 12 Upon receiving the full data D1, the LBR processing unit 12 performs LBR processing, deletes, for example, a P picture and a B picture from the full data D1, extracts L pictures, creates LBR data D3, and generates MPEG data. Reduce the amount of data for The LBR data D3 whose data amount has been reduced by the LBR processing unit 12 is output to the transmission unit 92.
  • Each of the I picture, B picture, and P picture is one frame of image data, that is, frame data. Details of each picture will be described later.
  • the transmitting unit 92 that has received the full data D2 or the LBR data D3 from the switching unit 91 or the LBR processing unit 12 transmits the received MPEG data D2 and D3 onto the network 4.
  • the MPEG data D2 and D3 transmitted to the network 4 are received by the client 9, and the client 9 reproduces the MPEG data D2 and D3 received.
  • the LBR processing unit 12 converts each of the I data into LBR data D3 can also be extracted by thinning out I pictures between pictures.
  • the client 9 Video played on the network 4 in order to adjust the amount of MPEG data transmitted on the network 4 according to the system load such as the load on the network 4 and the load on the CPU, the client 9 Video played on The phenomenon of not being updated for a long time can be suppressed and real-time playback can be performed.
  • the video data occupies the network for a long time, preventing transmission of other traffic from being in a wait state for a long time.
  • other important traffic can be transmitted to reduce the transmission amount of video data according to the load of the network or the like.
  • FIG. 2 shows the software configuration of the distribution Z playback portion of the MPEG data and LBR data of the video server 5 and the client 9.
  • 11 is a server program for distributing MPEG / LBR data
  • 12 is an LBR processing unit for converting MPEG data into LBR
  • 13 is a client program for processing the MPEG / LBR data sent from the video server 5
  • 14 is an MPEG data reproduction application which is a well-known technology
  • 18 is a network load measuring unit for measuring the load of the network 4
  • Reference numeral 19 denotes a CPU load measuring unit for measuring a client CPU load.
  • the client CPU is a processor for controlling the operation of the client 9.
  • the video data distribution system of the present embodiment operates in a client-driven manner in which the video server 5 generates and distributes LBR data in real time in accordance with a data transfer request from the client 9.
  • the video server 5 transfers requested video data according to a data transfer request from the client 9.
  • Client The packet 9 determines the transfer size, offset, transfer mode (MPEG data request or LBR data request), etc. according to the load of the network 4, the load of the client 9 itself, LBR and special playback request, etc. Request video data from server 5.
  • the system of the present embodiment is configured as described above, and the LBR data distribution / reproduction is performed by the server program shown in FIGS. 10 to 15, and the client program shown in FIGS. 4, 7, and 8. The operation will be described in detail below based on the processing flow of the program and the protocol between the client and the server in FIGS. 19 and 20.
  • step S101 in FIG. 4 the client program 13 sends a MOUNT request to the server program 11 immediately after startup as a server confirmation request (step S241 in FIG. 19). This is to check if the server is running. If no REPLY is returned from the server, the server is not started, an error message is output, and the operation ends. If it has returned, go to step S103.
  • the client program 13 measures the network load and the CPU load (steps S103 and S104). Execute these processes as separate processes or threads so that they are performed at regular intervals. These processes will be described later with reference to FIGS. 7 and 8.
  • step S105 it waits for various requests from the MPEG data reproduction application 14 (step S105).
  • the data program 13 determines whether the received request is a data transfer request (step S106). If the received request is a data transfer request, the process proceeds to step S110. If the received request is not a data transfer request, the process proceeds to step S110. Proceed to step S107.
  • step S109 transmits the request received from the MPEG data reproduction application 14 to the server (step S107), waits for a REPLY to be returned (step S108), and returns the returned REPLY to the MPEG data.
  • This is the process of transmitting to the playback application 14 (step S109).
  • step S109 is completed, the process returns to step S105 and waits for a request again.
  • one of the requests transmitted in step S107 is an OPEN request (step S243 in FIG. 19).
  • the MPEG data reproduction application 14 sends the above-described OPEN request specifying a file to be transferred.
  • the OPEN request includes the data (thinning interval) specified by the MPEG playback application 14 that indicates the LBR mode, that is, whether to transfer full data or LBR data. There is s .
  • Step S110 is a decision step.
  • the decimation interval is the transmission level.
  • to determine the decimation interval of each picture for example,
  • the decimation interval can be composed of, for example, picture designation data indicating which picture is to be extracted, and interval designation data designating an extraction interval for each of the pictures designated in the picture designation data. Which of the above processes (1) to (4) is to be executed is determined based on a predetermined threshold value.
  • step S111 it is determined whether or not the thinning interval has been changed. If there has been a change, the process proceeds to the next step S112. If there is no change, the process proceeds to step S114 to transmit a data transfer request to the video server 5.
  • the client 9 sends a change request to the video server 5.
  • This change request transmission process is a transmission level transmission step.
  • the change request includes the identifier indicating the change request command and the identifiers (1) to (4) described in step S110.
  • the server program 11 Upon receiving this change request, the server program 11 rewrites the transfer mode flag stored internally in accordance with the mode specified in the change request,
  • the client program 13 Upon receiving the REPLY from the video server 5 (step S113), the client program 13 proceeds to step S114 and shifts to processing of the data transfer request.
  • 1.5 Data transfer request processing The client program 13 sends a data transfer request to the video server 5 by specifying the size requested by the MPEG data reproduction application 14 (Step S114, Step S245 in FIG. 19). Next, it waits for data to be transmitted from the video server 5 (step S115), receives the data (step S248 in FIG. 19), and stores the received data in the client buffer 10 (step S115). 1 16), calculate the offset for the received data.
  • the calculation of the offset is based on the fact that the data transmitted from the video server 5 may be different from the data size requested in step S114 because the data transmitted from the video server 5 may be LBR.
  • the offset is calculated from the total amount of data stored in the client buffer 10 by repeating the above processing.
  • step S114 If not reached, the flow returns to step S114 to transmit a data transfer request again. If it has reached, the data stored in the client buffer 10 is passed to the MPEG data reproduction application 14 (step
  • the determination is made based on the offset calculated in step S117.
  • step S119 ends, the process returns to step S105, and the process of waiting for a request from the MPEG data reproduction application 14 is repeated again.
  • the operation of the client program 13 is as described above.
  • the current time (T 1) is measured and stored (step S121).
  • the process with the lower priority is executed (step S122), and the time required for this process, that is, the priority Measures and stores the time (T2) during which the process with the lower power actually used the CPU (Step S_123).
  • the current time (T3) is measured again (step S124).
  • the CPU utilization is obtained from the time information as follows (step S125).
  • the current time (T1) is measured and stored (step S131).
  • data of a certain size for example, 8 KB
  • the time (T2) spent on this is measured and stored.
  • the current time (T3) is measured again (step S134). From these time information, an index for planning the network load is obtained as follows (step S134) c
  • the LBR mode has two types: LBR processing (0N) and no LBR processing (OFF).
  • LBR mode is turned OFF at time TO, LBR mode 0N at time T2, and LBR mode OFF at time T5.
  • the amount of LBR data is assumed to be half of the amount of original MPEG data (full data).
  • the MPEG data application 14 issues a data request at time T0, offset 0, and size 10. This request sends data of size 10 via client program 13 ⁇ server program 11 ⁇ client program 13.
  • the MPEG video playback application 14 issues a data request at time Tl, offset 10, size 10. Data of size 10 is sent as before.
  • the MPEG data reproduction application 14 makes an LBR mode ON request at time T2, and makes a data request at offset 20 and size 10.
  • the client program 13 sends an LBR mode ON request to the server program 11 and makes a data request at offset 20 and size 10.
  • the server program 11 takes out the data of the offset 20 and the size 10 and performs the LBR conversion, converts it into the LBR data of the size 5 and sends this to the client program 13.
  • the client program 13 compares the size of the LBR data sent from the server program 11 with the request size from the MPEG data playback application 14, and determines the size of the sent data from the MPEG data playback application 14 Since the requested size is not satisfied, a data request is made to server program 11 at offset 30 and size 10. As before, the server program 11 sends the LBR data to the client program 13.
  • the client program 13 combines the data size already sent with the data size just sent, and compares the data size with the request size from the MPEG data reproduction application 14. This time, since the requested size from the MPEG data reproduction application 14 is satisfied, the data sent from the server program 11 is sent to the MPEG data reproduction application 14.
  • the client program 13 stores both the offset and size from the MPEG data playback application 14 and the offset and size of the video file actually used, and stores such an offset from the MPEG data playback application 14. It manages the difference between the requested size and the data size sent from the server program 11.
  • the MPEG data reproduction application 14 makes a data request at time T3 as before.
  • the client program 13 sends a data request to the server program 11 until the required size from the MPEG data reproduction application 14 is satisfied.
  • the server program 11 sends the LBR data to the client program 13 as before.
  • the MPEG data reproduction application 14 issues an LBR mode OFF request at time T4, and issues a data request at offset 40 and size 10.
  • the client program 13 sends an LBR mode OFF request to the server program 11 and makes a data request at offset 60 and size 10.
  • the server program 11 retrieves the data at offset 60, size 10, and sends it to the client program 13.
  • the MPEG data playback application 14 plays back the data sent as described above. If the playback position is changed by the MPEG data playback application 14, the offset value is set to the same value as the offset requested by the MPEG data playback application 14 and the offset of the video file actually used. To initialize.
  • the MPEG data playback application 14 determines whether the playback of the video data starts with normal data or LBR data, and sends it to the client program 13 when starting with LBR data. Can also.
  • the MPEG data reproduction application 14 can make a request to change the data transmitted from the server program 11 from normal data to LBR data or from LBR data to normal data at any time.
  • the server program 11 waits for a request from the client 9 (step S141), and upon receiving the request, judges whether the received request is a data transfer request (step S142).
  • step S143 the processing performed in step S143 is, for example, processing such as 0PEN and CLOSE of a file related to MPEG data.
  • the process of changing the LBR mode is also performed in step S143.
  • the request is a data transfer request
  • MPEG data is read from the disk device 6 and the read data is stored in the server buffer 7.
  • the read MPEG data is the MPEG data of the requested size specified by the client 9 (step S145).
  • the MPEG data stored in the server buffer 7 is transmitted to the client 5 (step S149, step S247 in FIG. 19).
  • the MPEG data stored in the server buffer 7 is subjected to the LBR processing according to the LBR mode, and the MPEG data after the LBR processing is performed.
  • the data is stored in the LBR buffer 8 (step S147).
  • the MPEG data stored in the LBR buffer 8 is transmitted to the client 9 (step S148). This step S148 is a transmission step.
  • the LBR processing will be described later.
  • the LBR process is a process of extracting a predetermined picture from MPEG data having an I picture, a P picture, and a B picture to create MPEG data having a small data size.
  • Fig. 17 shows the MPEG1 system
  • Fig. 18 shows the MPEG1 video structure up to the GOP (Group of Pictures) layer.
  • the structure of these MPEG1 data is described in the document IS0 / IEC11172-1 / 2: Information technology-Coding of moving pictures and associated audio for digital Storage media at up to about 1.5 Mbit / S ", INTERNATIONAL STANDARD, 1993. It is described in detail.
  • the MPEG1 system synchronizes and multiplexes MPEG1 video and MPEG1 audio.
  • This MPEG1 system is used for actual application.
  • the start codes such as PACK START C0DE and Packet Start code are 32-bit data, and are arranged in bytes and recorded.
  • the bit patterns of these start codes which are never generated in the MPEG1 bit stream, are used to identify various headers.
  • the System header contains an information group that describes the outline of the entire stream (for example, bit rate).
  • Other header data contains information such as time stamp (PTS, DTS).
  • SCR System Clock Reference
  • STC System Time Clock, basic synchronization signal
  • G information for calibration.
  • G0P of MPEG1 video is a random access unit in MPEG1 video, and G0P usually has a playback time of about 0.5 seconds.
  • Fig. 18 shows the details when the packet data in Fig. 17 is video data, and I, P, and B in the G0P layer represent I picture, P picture, and B picture, respectively. I have.
  • the contents of each picture are as follows.
  • I picture Intra-Picture (intra-frame coded image)
  • An I-picture is a picture coded from its information alone, irrespective of the preceding and following pictures, and is generated without using inter-frame prediction.
  • An I-picture is a type of compressed frame data.
  • P-picture Predictive Picture (inter-frame forward-predicted coded image)
  • a P-picture is a screen created by performing prediction from an I or P-picture. That is, it is represented by the difference from the previous I or P picture.
  • a P picture is a type of data of an inter-frame compressed frame.
  • a B picture is a screen created by bidirectional prediction, which is a feature of MPEG. That is, it is represented by the difference from the previous or next I or P picture.
  • a B picture is a type of data of an inter-frame compressed frame.
  • the LBR processing unit 12 determines whether the position of the pack header of the MPEG data stored in the server buffer 7 has been determined (step S151). If the position has been determined, the process proceeds to step S159. If it has not been determined, the process proceeds to step S152 to perform processing for determining the position of the pack header.
  • the processing for determining the position of the pack header first, the contents of the MPEG data stored in the server buffer 7 are sequentially examined from the beginning of the data, and the data of the pack header is searched (step S152). The pack header is copied to the LBR buffer 8 (step S153).
  • step S154 it is checked whether the data following the pack header is a system header (step S154). If it is a system header, the system header is copied from the server buffer 7 to the LBR buffer 8 (step S155). If it is not the system header, the process skips step S155 and proceeds to step S156.
  • step S154 or step S155 it is checked whether or not the data in the subsequent server buffer 7 is a video bucket (step S156). If it is a video packet, a picture check in step S157 is performed. By this picture check, a predetermined picture is extracted into the LBR buffer 8. The picture check will be described in detail with reference to FIG. On the other hand, if it is not a video bucket, the flow advances to step S158 to copy data up to the end of the packet from the server buffer 7 to the LBR buffer 8. As packets other than video packets, there is a small packet, and this audio packet is copied to the LBR buffer 8.
  • step S159 it is checked whether the next data is a pack header (step S159), and if it is a pack header, the pack header is copied from the server buffer 7 to the LBR buffer 8. If it is not a pack header, Proceed to top S161.
  • step S159 or step S160 ends, it is checked whether the next data is a system header (step S161). If it is a system header, the system header is copied from the server buffer 7 to the LBR buffer 8 (step S162). If not, the process proceeds to step S163.
  • step S161 or step S162 it is checked whether the subsequent data is a video packet (step S163), and if it is a video packet, a picture check is performed (step S165). This picture check is the same process as in step S157 described above. On the other hand, if it is not a video packet, the data up to the end of the packet is copied from the server buffer 7 to the LBR buffer 8 (step S164).
  • step S164 or step S165 it is checked whether the above-mentioned processing is completed up to the end of the MPEG data in the server buffer 7 (step S166), and the MPEG data in the server buffer 7 is checked. If the processing has not been completed until the end of the data, the process proceeds to step S159, and the processing from step S159 to step S165 is repeated.
  • the LBR header is written into the LBR buffer 8 at the head of the LBR buffer, that is, at the head of the packet (step S167).
  • the LBR header is a header for distinguishing between MPEG data and LBR data.
  • the bucket written to the LBR buffer is Changes the packet length in the bucket header based on the length.
  • FIG. 12 shows three types of picture check processing, and the details of each picture check processing are described in FIGS. 13 to 15, respectively.
  • step S171 it is determined whether or not to extract I, P, and B pictures based on the thinning interval notified to the server when the MPEG data is opened in step S112 of FIG. 4 described above (step S171). If it is determined that the picture is to be taken out, an IPB picture check process (step S172) is performed, and then the picture check process ends. When it is determined that the I and P pictures are not to be extracted, it is determined whether to extract the I and P pictures (step S173). When it is determined that the picture is to be taken out, an IP picture check process (step S174) is performed, and then the picture check process ends.
  • step S175 When it is determined not taken to determine whether to take out the I Pic Chiya (step S175) when it is determined to perform the c taking out, after I-picture check processing (step S176), the picture check The process ends. If it is determined not to perform this, the picture check processing ends.
  • the I picture check process is a process of extracting a part or all of an I picture from MPEG data and generating data in which a P picture and a B picture are deleted.
  • the I-picture flag is a flag that indicates whether or not the data pointed to by the pointer is present in the I-picture data.When ON, it is in the I-picture, and when OFF, it is not in the I-picture. Represent.
  • the pointer is a file pointer, which is a well-known technique, and is used to access MPEG data stored in the server buffer 7.
  • the position indicated by the pointer at present is the force in the I picture, that is, it is determined whether or not the I picture flag is ON (step S182). If there is, the data from the position indicated by the pointer to the end of the packet is copied from the server buffer 7 to the LBR buffer 8 (step S190), and the I picture check processing (step S176) ends. (Step S191).
  • the thinning interval is the interval notified by the client 9. For example, the judgment is made as shown in FIG. FIG. 16 is an example of a table showing the judgment of step S184 and the like for the interval designation data of the thinning interval. If the interval specification data of the specified decimation interval is “2”, if this is the first execution of step S184, it is determined as Yes and the process proceeds to step S185 to extract a picture. If the process returns to step S184 again through step S189 and the like, that is, if it is the second execution, it is determined to be No, and the process proceeds to step S189, and no picture is taken out. Similarly, the third time is YeS, the fourth time is No, etc. Judge as follows. In other thinning intervals, judgment is made in the same manner as shown in FIG.
  • step S184 If an I picture is extracted in step S184, that is, if it is determined to be Yes, the process proceeds to step S185, and the I picture flag is set to ON.
  • the end of the I picture is searched from the position of the pointer toward the end of the packet (step S186). If there is no end to the end of the bucket, it is determined that all the data is an I-picture, and the data from the pointer position before the search in step S186 to the end of the bucket is transferred to the server buffer 7. Then, the data is copied to the LBR buffer 8 (step S187), and the I-picture check process (step S176) is completed (step S191).
  • step S186 if the end of the I picture is found in step S186, the picture flag that was turned on in step S185 is turned off, and the data from the pointer position before the search in step S186 to the end of the found I picture is turned off.
  • the data is copied from the server buffer 7 to the LBR buffer 8 (step S188).
  • step S189 it is checked whether the check processing has been completed until the end of the packet.
  • the I picture check processing (step S176) ends (step S191). If the check processing has not been completed yet until the end of the bucket, the process returns to step S183, and the above processing is repeated (step S189).
  • the pointer pointing to the bucket data in the server buffer 7 advances by the copied data. Also, when a search is performed, it moves to the position where the search was performed.
  • IP picture check processing is a process of extracting part or all of an I picture and a P picture from MPEG data and generating data in which a B picture is deleted.
  • the IP picture check is basically the same as the I picture check processing (step S176) shown in FIG. 13 except that the data to be extracted is an I picture and a P picture.
  • the P picture flag is a flag that indicates whether the data currently pointed to by the pointer is in the data of the P picture.When ON, P picture is not present, and when OFF, P picture is not present. Represent.
  • step S202 it is determined whether the position indicated by the pointer at present is the force in the I or P picture, that is, whether the I or P picture flag is ON (step S202). ), If it is in the I or P picture, the data from the position indicated by the pointer to the end of the bucket is copied from the buffer 7 for the server 1 to the LBR buffer 8 (step S210). Then, the IP picture check processing (step S174) ends (step S211).
  • step S203 search for the beginning of the I or P picture from the current position toward the end of the bucket. If the head of the I or P picture is not found, the IP picture check ends (step S211).
  • step S204 it is determined whether to extract the found picture based on the thinning interval.
  • the thinning interval is set for each of I picture and P picture from client 3. This is the interval notified. For example, the judgment is made as shown in FIG. If the head of the I picture is found in step S203, the determination as shown in FIG. 16 is performed at the specified thinning interval for the I picture. On the other hand, if the head of the P-picture is found in step S203, the judgment as shown in FIG. 16 is performed at the thinning interval designated for the P-picture. If a picture is extracted in step S204, that is, if it is determined to be Yes, the process proceeds to step S205, and the I-picture flag or the P-picture flag is turned ON corresponding to the head of the picture found in step S203.
  • step S206 the end of the I or P picture is searched from the position of the pointer toward the end of the packet. If there is no end to the end of the bucket, it is determined that all data is an I or P picture, and the data from the pointer position before the search in step S206 to the end of the bucket is stored in the server buffer. Copy the data to the LBR buffer 8 from step 7 (step S207), and end the IP picture check processing (step S174) (step S211).
  • step S206 if the end of the I or P picture is found in step S206, the picture flag that was turned on in step S205 is turned off, and the I or P picture found from the position of the pointer before the search in step S206 is found.
  • the data up to the end is copied from the server buffer 7 to the LBR buffer 8 (step S208).
  • step S209 It is checked whether the check processing has been completed until the end of the packet (step S209). If the check processing has been completed to the end, the IP picture check processing (step S174) ends (step S211). If the check processing has not yet been completed until the end of the packet, the process returns to step S203, and the above processing is repeated (step S209).
  • the pointer to the bucket data in the server buffer 7 is only for the copied data. move on. Also, when a search is performed, it moves to the position where the search was performed.
  • the IPB picture check process is a process of generating data in which some or all of the I picture, P picture, and B picture are extracted from the MPEG data.
  • the IPB picture check is basically the same as the I picture check processing (step S176) shown in Fig. 13 except that the data to be extracted are I pictures, P pictures, and B pictures. is there.
  • the B picture flag is a flag that indicates whether the data currently pointed to by the pointer is in the data of the B picture.When ON, the picture is not in a B picture, and when OFF, it is not in the B picture. Represent.
  • the position indicated by the pointer at present is the force in the I, P, or B picture, that is, whether the I, P, or B picture flag is ON. (Step S222), and if the picture is in the I, P, or B picture, the data from the position indicated by the pointer to the end of the packet is transferred from the server buffer 7 to the LBR buffer. Then, the IPB picture check processing (step S172) is completed (step S231).
  • step S223 A search is made for the beginning of an I, P, or B picture toward the end of the packet. If the head of the I, P, or B picture is not found, the IPB picture check ends (step S231).
  • the decimation interval is the interval notified from the client 3 for each of the I picture, P picture, and B picture. For example, the judgment is made as shown in FIG. If the head of the I picture is found in step S223, the determination as shown in FIG. 16 is performed at the thinning interval specified for the I picture. On the other hand, if the beginning of the P picture is found in step S223, the decimation interval specified for the P picture is used, and if the beginning of the B picture is found, the decimation interval specified for the B picture is used. The judgment as shown in is performed.
  • step S224 If the picture is extracted in step S224, that is, if it is determined to be Yes, the process proceeds to step S225, and the I, P, or B picture flag is turned on corresponding to the beginning of the picture found in step S223-next Then, the end of the I, P, or B picture is searched from the position of the pointer toward the end of the packet (step S226). If the end has not been reached to the end of the packet, it is determined that all data is an I, P, or B picture, and the data from the position of the pointer before the search in step S226 to the end of the bucket is transmitted. Copy from buffer 7 to buffer 8 for LBR (step S227), and end the IPB picture check processing (step S172) (step S231).
  • step S226 if the end of the I, P, or B picture is found in step S226, the picture flag turned on in step S225 is turned off, and the I, P, and Desperately Copies the data up to the end of the B picture from the server buffer ⁇ to the LBR buffer 8 (step S228).
  • Step S229 it is checked whether the check processing is completed until the end of the packet. If the check processing is completed to the end, the IPB picture processing (step S172) is ended (step S231). If the check processing has not yet been completed until the end of the packet, the process returns to step S223, and the above processing is repeated (step S229).
  • step S271 to S273 transmission and reception of high-quality full data (steps S271 to S273) and LBR data with a small amount of data are performed in accordance with the network 4 and the load state of the CPU.
  • the transmission and reception (steps S274 to S277) are switched, so that MPEG data can be distributed in real time even under severe load conditions.
  • the CPU load of the video playback device is measured, and the LBR process is performed according to the CPU load.
  • the network load can be reduced by transmitting LBR data with a reduced data amount.
  • MPEG data has been described as an example of video data. As long as the video data has a compressed frame within a frame and a compressed frame between frames, even if it is other video data, a compressed frame or a frame between frames is used. By appropriately thinning out the internal compression frames and the inter-frame compression frames, the amount of data to be transferred can be adjusted by performing LBR.
  • the data of the intra-frame compressed frame is the frame data compressed based on the data in the own frame, and the inter-frame compressed frame data is compressed based on the difference from other frames.
  • Frame data is the frame data compressed based on the difference from other frames.
  • FIG. 1 shows a system configuration according to the second embodiment of the present invention.
  • FIG. 21 shows the S / W configuration of the distribution / playback part of the MPEG data and LBR data of the video server 5 and the client 9.
  • the same reference numerals as those in FIG. 2 denote the same or corresponding parts, and the network load measuring unit 18 and the CPU load measuring unit 19 are provided not in the client program 13 but in the server program 11.
  • the second embodiment is a server-driven system.
  • the server-initiated type means that the video server 5 generates and distributes full data or LBR data in real time according to the data transfer request from the client 9, and as shown in FIG. Distribution starts as a trigger, after which the video server 5 considers information from the network load measurement unit 18 and CPU load measurement unit 19 and takes appropriate action on the video server 5 side It continues to deliver large amounts of data to clients.
  • Client 9 receives and plays back the data sent. It is also possible to switch from server-driven to client-driven on the way.
  • the system of the second embodiment is configured as described above. Full data or LBR data distribution / reproduction is performed based on the processing flowchart of the server program in FIG. 24 and the client program in FIG. This is explained in detail below.
  • FIG. 23 the same reference numerals as those in FIG. 4 indicate the same or corresponding parts, and in FIG. 24, the same reference numerals as in FIG. 10 indicate the same or corresponding parts.
  • the MPEG data reproducing application 14 first transmits a data transfer request (step S114 in FIG. 23). This request is passed from the client program 13 to the server program 11 via the network 4.
  • the network load measurement unit 18 and the CPU load measurement processing unit 19 are started by independent processes when the program is started, and the network load and the CPU load are constantly measured.
  • the server program 11 Upon receiving the LBR start request (steps S141 and S142 in FIG. 24), the server program 11 reads MPEG data from the disk device 6 into the server buffer 7 to generate LBR data (step S145).
  • the server program 11 determines the LBR mode based on the network load and the CPU load measured by the network load measuring unit 18 and the CPU load measuring unit 19. This determination method is the same as the method described in the first embodiment.
  • step S146 it is determined whether to perform the LBR process (step S146), and if so, the LBR process is performed in step S147.
  • This LBR processing is performed in the same manner as in the first embodiment.
  • the server program 11 distributes the full data or the LBR data generated in the LBR buffer 8 to the client program 13 (Step S148 or Step S149).
  • step S301 it is determined whether the transmission has been completed up to the end of file (EOF) of the MPEG data specified by the client 9 in the data transfer request (step S301).
  • the process returns to step S141, and a process of waiting for a request from the next client 9 is performed. If the transmission up to the end of the file has not been completed, the process returns to step S145 to perform the transmission processing of the next MPEG data.
  • the client program 13 receives the transmitted LBR data (step S115 in FIG. 23), stores it in the client buffer 10 (step S116), and requests the MPEG data reproduction application 14
  • the full data or LBR data corresponding to the size is passed to the MPEG data reproduction application (step S119).
  • C The MPEG data reproduction application 14 reproduces this data.
  • video data can be reproduced in real time because the amount of MPEG data to be transferred is automatically adjusted and distributed according to the state of the network load and the CPU load.
  • MPEG data has been described as an example of video data. However, as long as the video data has an intra-frame compression frame and an inter-frame compression frame, other video data can be used. Adjusting the amount of data to be transferred by performing LBR by appropriately compressing compressed frames or intra-frame and inter-frame compressed frames Can be Example 3.
  • FIG. 25 shows a system configuration according to the third embodiment of the present invention.
  • Reference numeral 15 denotes a video camera
  • 16 denotes a real-time encoder for inputting a video signal from the video camera 15 and encodes the MPEG data in real time
  • 17 stores the MPEG data encoded by a relay time encoder. This is a real-time data buffer.
  • the video server 5 has a parameter storage buffer for storing various parameters of MPEG data used for intermediate reproduction of MPEG data at the time of multicasting, for example, a frame rate and the like. ing.
  • FIG. 2 shows the S / W configuration of the LBR data distribution / playback part of the video server 5 and the client 9 of this embodiment.
  • MPEG data encoded in real time is generated from LBR data generated by performing LBR processing in real time on the video server 5 or normal MPEG data stored in the disk device 6 described in the first embodiment.
  • the LBR data to be generated is distributed to each client 9 by multicast (hereinafter referred to as multicast LBR distribution).
  • multicast LBR distribution hereinafter referred to as multicast LBR distribution.
  • a client-driven operation is performed. It is also possible to switch from the client-driven type to the server-driven type described in the second embodiment.
  • FIG. 26 is a sequence diagram for explaining the multi-transmission mode of data transfer, and shows a case where the video server 5 transfers data to two clients 9 at the same time.
  • the MPEG playback application 14 issues an OPEN request by specifying the multicast mode.
  • the client program 13 that has received the OPEN request sends a multicast group participation request to the video server 5 via the network 4 (step S107 in FIG. 28, step S320 in FIG. 26).
  • This multicast group participation request is a request having the role of the OPEN request in the first embodiment and the role of requesting participation in the multicast group.
  • the client program 13 performs the processing from step S108 to step S113, and transmits either a data transfer request or a real-time data transfer request based on an instruction from the MPEG playback application 14 (No. 28).
  • step S141 the server program 11 having received the request from the client 9 determines whether the received request is a data transfer request or a real-time data transfer request (step S310).
  • step S311 it is determined whether the received request is a multicast group participation request. If the request is a multicast group join request, the server program 11 sends the multicast group join request. Is registered in the multicast group (step S312), and a reply including the information of the ID of the registered multicast group is returned (step S144). In this case, the process proceeds to step S143 to perform the processing as described in Embodiment 1. On the other hand, if it is determined in step S310 that the received request is a data transfer request or a real-time data transfer request, It is determined whether the received request is the first real-time data transfer request (step S313).
  • a start request is output to the real-time encoder 16 (step S314). ).
  • the encoding is started, that is, the real-time encoder 16 inputs the video taken by the video camera 15, encodes the MPEG data in real time, writes the MPEG data to the disk device 6, and simultaneously outputs the real-time data buffer. It is also possible to write to 7. Here, it is also possible to perform multi-casting using the MPEG data written to the disk device 6.
  • the real-time encoder 16 then performs real-time encoding until a stop request is issued from the server program 11.
  • the server program 11 stores the MPEG data sent from the real-time encoder 16 in the parameter storage buffer.
  • the MPEG data is read into the server buffer 7 (step S315).
  • the source of the MPEG data is different depending on whether it is a data transfer request or a real-time data transfer request. If it is, read from the disk device 6 as described in step S145 in FIG. In the case of a real-time data transfer request, the MPEG data is read from the real-time data buffer 17.
  • the process of reading MPEG data from the real-time data buffer 17 is the same as the process described in step S145 of FIG. 10, except that the source of reading is different.
  • the processing of steps S146 to S149 is performed in the same manner as in the first embodiment, and the MPEG data is distributed to the client 9.
  • the distribution of the MPEG data is transmitted by multicast to all the clients 9 registered in the multicast group registered in step S311. Specifically, this is performed by specifying the multicast group ID as the output destination of the data transfer packet and transmitting the packet.
  • Each client has received the reply transmitted in step S144, and determines whether or not the ID of its own manorecast cast group specified in this reply matches the ID transmitted on the network 4. Judgment is made, and if they match, the bucket is received.
  • FIG. 26 is a sequence diagram illustrating distribution of video data by multicast.
  • client A one of the clients 9, sends a multicast group join request (step S320).
  • the video server 5 having received the group joining request registers the client A to the multicast group as described above.
  • the client A outputs a data transfer request (step S321) and receives video data from the video server 5 (step S322).
  • client B has not yet joined the multicast group and cannot receive this data.
  • the data transfer request is output here, a real-time data transfer request is also transmitted.
  • the data transfer request is output again (step S323).
  • step S327 when one of the clients 9, client B, sends a multicast group join request (step S327), the video server 5 registers client B in the multicast group, and enters a multicast group. Returns a reply with ID information.
  • a data transfer request is output from client A or client B (step S330, etc.), and in response to this data transfer request, the process of video server 5 delivering video data (step S329, etc.) is repeated.
  • the video data distributed here is received by client A and client B, and the video data is reproduced by client A and client B. Since the MPEG playback application 14 or the client program 13 does not output a data transfer request when a predetermined amount of MPEG data remains in the client buffer 10, any client 9 transmits the data transfer request. Is determined based on the amount of MPEG data stored in each client buffer 10, and the client 9 whose data amount becomes the predetermined amount or less first transmits a data transfer request. .
  • MPEG data is used as an example of video data.
  • video data has an intra-frame compression frame and an inter-frame compression frame
  • the inter-frame compression frame or the intra-frame compression frame and the inter-frame compression frame can be properly interpreted.
  • the amount of data to be transferred can be adjusted by LBR. Example 4.
  • FIG. 1 shows a system configuration according to a fourth embodiment of the present invention.
  • the system configuration is the same as that of the first embodiment, but the LBR buffer 8 is used as a fast-forward buffer.
  • Fig. 2 shows the s / w configuration of the fast-forward data distribution Z playback part of the video server 5 and the client program 9, and the s / w configuration is the same as in the first embodiment, but the LBR processing unit 12 Used as a fast-forward processing unit.
  • the operation is client-driven.
  • the fast-forward data in this embodiment is the same as that of the LBR data of the first embodiment, except that the I-picture is taken out.
  • the difference from the LBR data is the deletion of the small packet, the removal of the PTS and DTS in the bucket. Changing the value for fast forward playback.
  • the system of this embodiment has the above-described configuration.
  • the fast-forward distribution will be described below in detail with reference to the processing flowchart of the server program 11 in FIG. 29 and the client program 13 in FIG.
  • FIG. 29 is a flow chart for explaining the fast-forward data distribution process of the video server 5.
  • the same reference numerals as those in FIG. 10 denote the same or corresponding parts.
  • FIG. 30 is a flowchart for explaining the processing of the client program 13.
  • the same reference numerals as those in FIG. 4 denote the same or corresponding parts. Represent.
  • the MPEG data reproduction application 14 issues a fast forward request.
  • This fast-forward request is performed by transmitting a packet containing an identifier indicating a fast-forward request and data specifying video data.
  • the fast-forward request may be during playback or stoppage of the video.
  • This request is received by the client program 13 (step S101), and transmitted by the client program 13 to the video server 5 (step S350). The operation of the video server 5 at this time will be described later.
  • step S115 When fast-forward data is sent from the video server 5 (step S115), the data is stored in the client buffer 10 (step S116), and the offset is calculated (step S117). Steps S350 to S117 are repeated until data of the requested size is stored in the buffer 10 (step S118). When the requested size data is stored in the client buffer 10, the fast-forward data is passed to the MPEG playback application 14 (step S119). This fast-forward data is MPEG data. Next, the same data transfer process is repeated between the client program 13 and the server program 11.
  • the data transfer process first waits for a fast-forward request from the MPEG playback application 14 (step S101).
  • step S101 When data of the requested size is stored in the client buffer 10, the MPEG playback application 14
  • the fast-forward data is passed to 14 (step Sll 9 ), and the offset is calculated (step S117).
  • step S 119 in the data transfer processing is the same as the fast-forward data already transmitted to the MPEG playback application 14.
  • the client program 13 is stored in the client buffer 10.
  • the fast-forward data for one screen
  • the fast-forward data may be passed only once (normal) or the same data may be passed multiple times.
  • the playback speed of fast forward can be changed. For example, if the same data is passed twice in a row, the playback speed will be halved compared to the playback speed when the data is passed only once. Also, of course, the data flowing through the network is halved.
  • the fast-forward data passed in this way is reproduced by the reproduction application 11. Next, the operation of the server program 11 will be described.
  • the server program 11 which has received the fast-forward request in step S341 reads MPEG data from the disk device 6 into the server buffer 7 to generate fast-forward data (step S145).
  • LBR processing is performed on the MPEG data, and fast-forward data is generated in the same manner as in the first embodiment (step S147).
  • the following procedure is different from the LBR data generation method of the first embodiment.
  • the packet is not written out to the fast-forward buffer 8.
  • the server program 11 distributes the fast-forward data generated in the fast-forward buffer 8 to the client 9 (step S148).
  • the server program 11 distributes fast-forward data by repeating the above.
  • the MPEG data has been described as the video data.
  • the load measurement unit that measures the load state of the network or the video data distribution device, and the video data including a plurality of frame data
  • a data extraction unit that extracts the number of frame data according to the measurement result and a transmission unit that transmits the frame data extracted by the data extraction unit are provided, so that the display quality of video data is prevented from deteriorating.
  • the network load can be reduced.
  • the data extraction unit extracts all frame data of video data when the load is low, based on the measurement result of the load measurement unit, and In some cases, since a part of the frame data of the video data is extracted, the network load can be reduced while suppressing the deterioration of the display quality of the video data.
  • the data extraction unit extracts the number of frame data based on the measurement result of the load measurement unit by thinning out frame data among a plurality of frame data in the video data. It is possible to reduce the network load while suppressing it.
  • the data extraction unit is configured to delete the video data of the inter-frame compression frame from the video data having the data of the intra-frame compression frame and the data of the inter-frame compression frame based on the measurement result of the load measurement unit. Since the transmitting unit transmits the video data extracted by the data extracting unit, it is possible to reduce the network load while suppressing the deterioration of the display quality of the video data.
  • the video data is MPEG data
  • the data extraction unit generates MPEG data from which P-pictures have been deleted from MPEG data having I-pictures and P-pictures in accordance with the measurement results of the load measurement unit. Even if it is reduced, it is possible to provide video data with little image disturbance.
  • the data extraction unit generates MPEG data from which the B picture has been deleted according to the measurement result of the load measurement unit from the MPEG data having the I picture and the B picture. Data can be provided.
  • the data extraction unit generates real-time MPEG data from which the P-picture and the B-picture are deleted from the MPEG data having the I-picture, the P-picture, and the B-picture according to the measurement result of the load measurement unit. Playback is one
  • the data extraction unit extracts MPEG data having a plurality of I-pictures from the MPEG data at intervals according to the measurement result of the load measurement unit, thereby providing MPEG data that can be reproduced in real time. Can be.
  • An encoder that encodes a video signal from the video camera in real time to generate video data having a plurality of frame data; and a buffer that temporally stores the video data generated by the encoder.
  • the unit extracts the number of frame data based on the measurement result of the load measurement unit from the video data by thinning out frame data among a plurality of frame data in the video data stored in the buffer. It is possible to reduce the network load while suppressing the deterioration of the display quality.
  • a load measuring unit for measuring the load state of the video data distribution system, and a number of frames corresponding to the measurement result of the load measuring unit from the video data including a plurality of frame data.
  • a video data distribution device comprising: a data extraction unit for extracting frame data; and a transmission unit for transmitting the frame data extracted by the data extraction unit via a network.
  • a video data reproducing device that receives the frame data transmitted from the transmitting unit and reproduces the received frame data is provided, so that the video data can be reproduced in real time.
  • the load measuring unit measures the load of the processor that controls the operation of the video data reproducing apparatus, it is possible to suppress the transmission of unused frame data and to reduce the amount of video data to be transmitted.
  • a plurality of video data reproducing devices are connected to the network, and one of the video data reproducing devices transmitted on the network from the transmitting unit of the video data distributing device. Since the frame data is received by each of the plurality of video data reproducing devices, the video data can be transmitted to the plurality of video data reproducing devices at one time, and the load on the network can be reduced. Further, the video data reproducing device transmits the data transfer request with the specified data amount to the video data distribution device a plurality of times. When the video data distribution device receives the data transfer request, the video data reproduction device specifies the data transfer request. Since the frame data is transmitted based on the data size, the video data can be reproduced in real time based on an instruction from the video data reproducing apparatus.
  • the video data reproducing device transmits a data transfer request in which the video data is specified, and the video data distribution device receives the data transfer request and, when receiving the data transfer request, outputs a bucket having a part of frame data of the video data. Since multiple transmissions are made at predetermined intervals, video data can be reproduced in real time.
  • the transmission level is determined from a transmission level determination step for determining a transmission level according to the load of the video data distribution system, and video data including a plurality of frame data.
  • the transmission level determining step is executed by the video data reproducing apparatus, and the load measuring step measures a load of a processor that controls the operation of the video data reproducing apparatus; and a transmission level corresponding to the measurement result of the load measuring step. And transmitting the transmission level determined by the determining step from the video data reproducing apparatus to the video data distribution apparatus. Since the transmission level transmission step is provided, real-time video data can be reproduced.
  • the video data reproducing device includes a reproducing step of receiving the frame data transmitted in the transmitting step and reproducing the received frame data, real-time reproduction of the video data becomes possible.
  • the transmission level determining step is such that, when the video data playback device performs fast-forward playback of video data, video data obtained by thinning out some frame data from a plurality of frame data included in the video data is extracted. If the transmission level is determined and fast-forward playback is not performed, the transmission level is determined so as not to skip the frame data of the video data, so that the network load can be further reduced.
  • the video data reproducing device performs fast-forward reproduction of video data including a plurality of frame data and audio data
  • the audio data is deleted from the video data, and the number of frames corresponding to the transmission level is reduced.
  • the transmitting step of generating video data from which data has been extracted and transmitting the video data generated by the data extracting step can further reduce the network load.
  • the video data distribution device, the video data distribution system, and the video data distribution method according to the present invention are suitable for being used in, for example, a video data distribution system that distributes a large amount of video data.

Description

明 細 書 ビデオデータ配信装置、 ビデオデータ配信システム、 並びに、 そのビ デォデータ配信方法。 技術分野
この発明は、 要求に応じてビデオデータを配信するビデオデータ配信 装置、 ビデオデータ配信システム、 並びに、 そのビデオデータ配信方法 に関するものである。 背景技術
第 33図を用いて背景技術を説明する。 第 33図はネッ トワークを通して、 MPEG 等の高ビッ トレ一トのビデオデータをビデオサーバからクライア ントへ配信するためのシステム構成を示す機能プロック図である。第 33 図において 1 はビデオデータ配信専用のネッ トワーク、 2 は専用ネッ ト ワーク 1 に接続され、 ビデオデータを配信するビデオサーバ、 3 は専用 ネッ トワーク 1 に接続され、 ビデオサーバ 2から配信されてきたビデオ データを受け取り、 その再生を行うクライアントである。
次に動作について説明する。
ビデオサーバ 2はクライアント 3からのデータ転送要求を受け取ると、 専用ネッ トワーク 1 に要求されたビデオデータを流しはじめる。 専用ネ ッ トワーク 1を通して配信されてきたビデオデータをクライアント 3が 受け取り、 デコードし、 ビデオの再生を行う。
第 33図のような構成のシステムではネッ トワークにビデオ配信専用の ネッ トヮ一クを使用しているので、 ネッ トヮ一クのバンド幅が十分であ ればほぼフレーム落ち無しでビデオの再生を行えるが、 クライアント 3 の数が増加し、 配信するビデオデータの量が増加した結果、 ネッ トヮー ク負荷等が増大した場合に、 ビデオデータを送信できないために長時間 に渡ってフレーム落ちが発生する。
また、 通常のネッ トワークのようなバン ド幅が十分ではないビデオ配 信専用ネッ トワーク以外のネッ トワーク上で MPEG のような高転送レー トのビデオを利用すると、 ネッ トワーク負荷が増大し、 安定したビデオ 配信が行われないばかり力 、 ネッ トワーク上の他のトラフィックにも悪 影響を及ぼす場合がある。 発明の開示
本発明は以上のような問題を解決するためになされたものであり、 ビ デォデータの配信にかかるネッ トワーク負荷を軽減し、 ネッ トワークに 接続されたシステム全体の安定化を図るとともに、 再生時の乱れが少な いリアルタイムな表示が行えるビデオデータ配信装置、 ビデオデータ配 信システム、 並びに、 そのビデオデータ配信方法を得ることを目的とす る。
この目的を達成するため、 ネッ トワーク又はビデオデータ配信装置の 負荷状態を測定する負荷測定部と、 複数のフレームデータを含むビデオ データから、 上記負荷測定部の測定結果に応じた数のフレームデータを 抽出するデータ抽出部と、 このデータ抽出部が抽出したフレームデータ を送信する送信部と、 を備えることとした。
また、 データ抽出部は、 負荷測定部の測定結果に基づいて、 負荷が低 いときにはビデオデータの全てのフレームデータを抽出し、 負荷が高い ときには、 上記ビデオデータの一部のフレームデータを抽出することと した。
また、 データ抽出部は、 ビデオデータ内の複数のフレームデータ間の フレームデータを間引く ことによって、 負荷測定部の測定結果に基づい た数のフレームデータを抽出することとした。
また、 データ抽出部は、 フレーム内圧縮フレームのデータ及びフレー ム間圧縮フレームのデータを有するビデオデータから、 負荷測定部の測 定結果に基づいて、 フレーム間圧縮フレームのデータを削除したビデオ データを抽出し、 送信部は、 データ抽出部が抽出したビデオデータを送 信することとした。
また、 ビデオデータは、 MPEGデータであることとした。
また、 データ抽出部は、 Iピクチャ及び Pピクチャを有する MPEGデー タから、 負荷測定部の測定結果に応じて、 Pピクチャを削除した MPEGデ ータを生成することとした。
また、 データ抽出部は、 Iピクチャ及び Bピクチャを有する MPEGデ一 タから、 負荷測定部の測定結果に応じて、 Bピクチャを削除した MPEGデ ータを生成することとした。
また、 データ抽出部は、 Iピクチャ、 Pピクチャ及び Bピクチャを有す る MPEGデータから、 負荷測定部の測定結果に応じて、 Pピクチャ及び B ピクチャを削除した MPEGデータを生成することとした。
また、 データ抽出部は、複数の I ピクチャを有する MPEGデータから、 負荷測定部の測定結果に応じた間隔で複数の I ピクチャを抽出すること とした。
また、 ビデオカメラからの映像信号をリアルタイムにェンコ一ドし、 複数のフレームデータを有するビデオデータを生成するエンコーダと、 このエンコーダが生成したビデオデ一タをー時的に記憶するバッファ と、 を備え、 データ抽出部は、 上記バッファに記憶されたビデオデータ内の 複数のフレームデータ間のフレームデータを間引く ことによって、 上記 ビデオデータから負荷測定部の測定結果に基づいた数のフレームデータ を抽出することとした。
また、— ビデオデータ配信システムの負荷状態を測定する負荷測定部、 複数のフレームデータを含むビデオデータから、 上記負荷測定部の測定 結果に応じた数のフレームデータを抽出するデータ抽出部と、 このデー タ抽出部が抽出したフレームデータをネッ トワークを介して送信する送 信部と、 を備えたビデオデータ配信装置、 上記ネッ トワークから上記ビ デォデータ配信装置の送信部から送信されたフレームデータを受信する とともに、 受信したフレームデータを再生するビデオデータ再生装置、 を備えることとした。
また、 負荷測定部は、 ビデオデータ再生装置の動作を制御するプロセ ッサの負荷を測定することとした。
また、 複数のビデオデータ再生装置がネッ トワークに接続され、 ビデ ォデータ配信装置の送信部から上記ネッ トワーク上に送信された 1つの フレームデータは、 上記複数のビデオデータ再生装置それぞれにおいて 受信されることとした。
また、 ビデオデータ再生装置は、 それぞれデータ量が指定されたデ一 タ転送要求を複数回ビデオデータ配信装置へ送信し、 ビデオデータ配信 装置は、 上記複数回のデータ転送要求を受信すると、 これらのデータ転 送要求それぞれに指定されたデータ量に基づいたフレームデータを、 上 記データ転送要求ごとに送信することとした。
また、 ビデオデータ再生装置は、 ビデオデータが指定されたデータ転 送要求を送信し、 ビデオデータ配信装置は、 上記のデータ転送要求を受 信すると、 上記ビデオデータの一部のフレームデータを有するバケツ ト を所定の間隔で複数送信することこととした。
また、 ビデオデータ配信システムの負荷に応じた送信レベルを決定す る送信レベル決定ステップと、 複数のフレームデータを含むビデオデー タから、 上記送信レベル決定ステップにおいて決定された送信レベルに 応じた数のフレームデータを抽出するデータ抽出ステップと、 上記デ一 タ抽出ステップにおいて抽出されたフレームデータを送信する送信ステ ップと、 を備えることとした。
また、 送信レベル決定ステップは、 ビデオデータ再生装置で実行され、 ビデオデータ再生装置の動作を制御するプロセッサの負荷を測定する負 荷測定ステップと、 この負荷測定ステップの測定結果に対応した送信レ ベルを決定する決定ステップと、 この決定ステップによって決定した送 信レベルをビデオデータ再生装置からビデオデータ配信装置へ送信する 送信レベル送信ステップと、 を備えることとした。
また、 ビデオデータ再生装置が、 送信ステップによって送信されたフ レームデータを受信し、 受信したフレームデータを再生する再生ステツ プを備えることとした。
また、 送信レベル決定ステップは、 ビデオデータ再生装置がビデオデ ータを早送り再生する場合には、 ビデオデ一タに含まれる複数のフレー ムデータから一部のフレームデータを間引いたビデオデータが抽出され るように送信レベルを決定し、 早送り再生しない場合には、 ビデオデー タのフレームデ一タを間引かないように送信レベルを決定することとし た。
また、 データ抽出ステップは、 ビデオデータ再生装置が複数のフレー ムデータ及び音声データを含むビデオデータを早送り再生する場合には- ビデオデータから上記音声データを削除し、 送信レベルに応じた数のフ レームデータを抽出したビデオデータを生成し、 送信ステップは、 上記 データ抽出ステップが生成したビデオデータを送信することとした。 図面の簡単な説明 第 1図は、 本発明の実施例 1、 2、 4にかかるクライアント 'サーバシス テムのシステム構成図である。
第 2図は、 本発明の実施例 1、 3、 4にかかる LBRデータ配信ノ再生部分 のソフトウユア構成図である。
第 3図は、本発明のクライアント主導型の動作を示すシーケンス図であ る。
第 4図は、本発明の実施例 1にかかるクライアントプログラムの処理を 説明するフローチヤ一トである。
第 5図は、 本発明の実施例 1にかかる OPEN要求のデータ構造示す図で ある。
第 6図は、 本発明の実施例 1にかかる READ要求のデータ構造示す図で ある。
第 7図は、本発明の実施例 1にかかる CPU負荷測定処理を説明するフロ 一チヤ一トである
第 8図は、本発明の実施例 1にかかるネッ トワーク負荷測定処理を説明 するフロ一チヤ一トである。
第 9図は、本発明の実施例 1にかかるオフセッ トの調整処理を説明する 図である。
第 10図は、本発明の実施例 1にかかるビデオサーバの MPEGデータ配信 処理を説明するフローチャートである。
第 11図は、 本発明の実施例 1 にかかる LBR処理を説明するフローチヤ —トである。
第 12図は、 本発明の実施例 1 にかかるピクチャチェック処理を説明す るフロ一チヤ一トである。
第 13図は、 本発明の実施例 1にかかる I ピクチャチェック処理を説明 するフロ一チヤ一トである。 第 14図は、本発明の実施例 1にかかる IPピクチャチェック処理を説明 するフローチヤ一トである。
第 15図は、 本発明の実施例 1 にかかる IPBピクチャチェック処理を説 明するフローチヤ一トである。
第 16図は、 本発明の実施例 1にかかる間引き間隔と見つかったピクチ ャを取り出すか否かの判断とを説明する表を示す図である。
第 17図は、 MPEG1システムのデータ構造を示す図である。
第 18図は、 MPEG1システムの G0P層までのデータ構造を示す図である。 第 19図は、 本発明の実施例 1 にかかるビデオ配信処理のシーケンス図 である。
第 20図は、 本発明の実施例 1にかかるビデオ配信処理のシーケンス図 である。
第 21図は、 本発明の実施例 2にかかる LBRデータ配信 Z再生部分のソ フ トウエア構成図である。
第 22図は、 本発明のサーバ主導型の動作を示すシーケンス図である。 第 23図は、 本発明の実施例 2にかかるクライアントプログラムの処理 を説明するフローチヤ一トである。
第 24図は、 本発明の実施例 2にかかるビデオサーバの配信処理を説明 するフローチヤ一トである。
第 25図は、 本発明の実施例 3にかかるクライアント ' サーバシステム のシステム構成図である。
第 26図は、 本発明の実施例 3にかかるビデオ配信処理のシーケンス図 である。
第 27図は、 本発明の実施例 3にかかるサーバプログラムの処理を説明 するフローチャートである。
第 28図は、 本発明の実施例 3にかかるクライアントプログラムの処理 を説明するフローチャートである。
第 290は、 本発明の実施例 4にかかるサーバプログラムの処理を説明 するフローチヤ一トである。
第 30図は、 本発明の実施例 4にかかるクライアントプログラムの処理 を説明するフローチャートである。
第 31図は、 本発明にかかるビデオサーバの機能プロック図である。 第 32図は、本発明にかかる LBR処理を説明する機能プロック図である。 第 33図は、 背景技術にかかるビデオサーバのシステム構成図である。 発明を実施するための最良の形態
第 1図に本発明におけるクライアント.サーバシステムのシステム構成 の実施例を示す。 以下に説明する実施例ではビデオデータとして MPEG データを使用している。
第 1図において、 4はビデオデータ以外のデータも流れている通常のネ ッ トヮ一ク、 5はネッ トワーク 4を通して MPEGデ一タを配信するビデオ サーバであり、 例えば、 ネッ トワークサーバの機能を有する周知の OS が実装されたコンピュータを用いる。 6は MPEGデータを格納しておくた めのディスク装置、 7はディスク装置 6から MPEGデータを読み込むため のサ一バ用バッファである。 8はサ一バ用バッファ 7に読み込まれた MPEG データを LBR化したデータ (以下 LBRデータ; Low Bi t Rat e) に変更する 際に、 この LBRデータを書き出すために使用される LBR用バッファ、 9 は配信されてきた LBRデータを受け取り、 その再生を行うクライアント であり、 例えば、 ネッ トワーク機能を有するマイクロソフ ト社の 0S、 Windows95が実装されたコンピュータを用いる。 クライアント 9はビデ ォデ一タ再生以外のアプリケーショ ンも同時実行可能である。 10はビデ ォサーバ 5から配信されてきた MPEGデータを一時的に格納しておくため のクライアント用バッファである。
第 31図は、 ビデオサーバ 5の機能を説明するための機能プロック図で ある。第 31図において、 第 1図と同一の符号は同一又は相当の部分を表し ている。 18はネッ トワーク 4の負荷を測定するネッ トワーク負荷測定部、 19はビデオサーバ 5の CPUの負荷を測定する CPU負荷測定部である。 ビ デォサーバ 5の CPUは、 ビデオサーバ 5の動作を制御するためのプロセ ッサである。 91は、 ネッ トワーク負荷測定部 18、 若しくは CPU負荷測定 部 19 が測定した負荷情報に基づいて、 ディスク装置 6 から受け取った MPEGデータ D1を、送信部 92又は LBR処理部 12へ選択的に出力する切替 部である。 12はディスク装置 6から切替部 91を介して受け取った MPEG データ D 1のデータ量を減少させる処理を行う LBR処理部である。 92は、 切替部 91カゝら受けとつた MPEGデータのフルデータ、 又は、 LBR処理部 12から受け取ったデータ量の少ない MPEGデータ(LBRデータ)を、ネッ ト ワーク 4上に送信する送信部である。 LBR処理の詳細については後述す る。
ここで、 クライアント 9はビデオ再生装置である。 ネッ トワーク負荷 測定部 18、 若しくは CPU負荷測定部 19は、 負荷測定部である。 LBR処理 部 12は、 データ抽出部である。
次に、 第 31図に基づいて、 ビデオサーバ 5の動作を説明する。
ネッ トワーク負荷測定部 18は、ネッ トワーク 4の負荷を常に監視する。 また、 CPU負荷測定部 19も CPUの負荷を常に監視している。 ビデオサー ノく 5は、 クライアント 9からのデータ転送要求があると、ディスク装置 6 から MPEGデータのフルデータ D 1 を読み込む。 切替部 91 は、 この MPEG データのフルデータ D 1を受け取り、ネッ トワーク負荷測定部 18及び CPU 負荷測定部 19からそれぞれ受け取った負荷情報に基づき、 送信部 92、 又は、 LBR処理部 12を選択してフルデータ D1 を出力する。 ここで、 フ ルデ一タとは、 LBR処理を行っていないビデオデータをいう。
例えば、 ネッ トワーク 4 の負荷、 及び、 CPU の負荷が低い場合には、 切替部 91は、 送信部 92を選択してフルデータ D2を出力する。 このフル データ D2は、 フルデータ D 1 と同じものである。
一方、 ネッ トワーク 4の負荷、 又は、 CPUの負荷が高い場合には、 LBR 処理部 12を選択して、 MPEGデータのフルデータ D1を出力する。 負荷が 高い/低いという判定は、 予め定められたしきい値を基準に行われる。 このフルデータ D1 を受け取った LBR処理部 12は、 LBR処理を行い、 フ ルデータ D 1から、 例えば Pピクチャ、 Bピクチャを削除し、 I ピクチャ を抽出することによって LBRデータ D3を作成し、 MPEGデータのデータ 量を減らす。 そして、 LBR処理部 12によってデータ量を減らされた LBR データ D3は、 送信部 92へ出力される。 I ピクチャ、 Bピクチャ、 Pピク チヤは、 それぞれ 1 フレームの画像データ、 すなわちフレームデータで ある。 各ピクチャの詳細については後述する。
切替部 91又は LBR処理部 12から、 フルデータ D2又は LBRデータ D3 を受け取った送信部 92は、 受け取った MPEGデータ D2,D3をネッ トヮ一 ク 4上へ送信する。ネッ トワーク 4へ送信された MPEGデータ D2,D3は、 クライアント 9 に受信され、 クライアント 9が受け取った MPEGデータ D2, D3を再生する。
上述の説明では、 Bピクチャ、 Pピクチャを間引く実施例を説明したが、 第 32図に示されるように、 LBR処理部 12は、 複数の I ピクチャによって 構成されるフルデータ D 1から、各 Iピクチャの間の I ピクチャを間引く ことによって、 LBRデータ D3を抽出することもできる。
以上のように、 この発明の実施例によれば、 ネッ トワーク 4の負荷、 CPUの負荷等のシステムの負荷に応じて、 ネッ トワーク 4上に送信する MPEGデータの量を調整するため、 クライアント 9で再生されるビデオが 長時間にわたって更新されないという現象を抑制し、 リアルタイムな再 生を行うことができる。
また、 ビデオデータ以外のトラフィックの送受信が行われるネッ トヮ ークにおいても、 ビデオデータがネッ トワークを長時間占有するために、 その他のトラフィックの送信が長時間にわたって待ち状態にとなること を防止し、 ネッ トワーク等の負荷に応じてビデオデータの送信量を減少 させるため、 他の重要なトラフィックを送信することができる。
実施例 1.
次に、 本発明にかかる実施例 1 のビデオサーバ 5及びクライアント 9 を詳細に説明する。 システム全体のハー ドウェア構成は、第 1図に示した 通りである。
第 2図はビデオサーバ 5およびクライアント 9の MPEGデ一タ、 LBRデ ータの配信 Z再生部分のソフ トウェア構成を示したものである。第 2図に おいて、第 1図と同一の符号は同一又は相当の部分を表す。 1 1は MPEG/LBR データを配信するためのサーバプログラム、 12は MPEGデータを LBR化 するための LBR処理部である。 13 はビデオサーバ 5 から送られてく る MPEG/LBRデータの処理を行うクライアントプログラム、 14は周知の技術 である MPEGデータ再生アプリケーシヨン、 18はネッ トワーク 4の負荷 を測定するネッ トワーク負荷測定部、 19はクライアントの CPUの負荷を 測定する CPU負荷測定部である。 クライアントの CPUは、クライアント 9 の動作を制御するためのプロセッサである。
本実施例のビデオデータ配信システムは、クライアント 9からのデータ 転送要求に従って、ビデオサーバ 5で LBRデータをリアルタイムに生成し 配信する、 クライアント主導型で動作する。 クライアント主導型とは第 3 図にあるように、 クライアント 9からのデータ転送要求に従って、 ビデオ サーバ 5が要求されたビデオデータの転送を行うものである。クライアン ト 9はネッ トヮ一ク 4の負荷、 クライアント 9自身の負荷、 LBRや特殊再生 要求などによって転送サイズ、 オフセッ ト、 転送モー ド (MPEGデータ要 求または LBRデータ要求) 等を決定し、 ビデオサーバ 5にビデオデータを 要求する。
なおクライアント主導型から実施例 2記載のサーバ主導型に切り替え ることも可能である。
本実施例のシステムは以上のような構成であり、以下 LBRデータ配信/ 再生を第 10図〜第 15図に示したサーバプログラム、 第 4図、 第 7図、 及び 第 8図に示したクライアントプログラムの処理フロ一チヤ一ト、並びに第 19図、及び第 20図のクライアントーサーバ間のプロ トコルに基づき、その 動作を以下に詳細に説明する。
1.クライアントプログラムの動作
1. 1 初期化処理
まず、 第 4図のステップ S 101で、 クライアントプログラム 13は起動直 後にサーバプログラム 1 1に対しサーバ確認要求として、 MOUNT リクエス トを送る(第 19図ステップ S241)。 これはサーバが起動されているかどう かを確認するために行うものである。 サーバから REPLYが返ってこない 場合には、 サーバ起動されていないとして、 エラーメッセージを出力し て、 動作を終了する。 返ってきた場合には、 ステップ S 103に進む。 次にクライアントプログラム 13はネッ トワーク負荷と CPU負荷の測定 処理を行う(ステップ S 103、 ステップ S 104)。 これらの処理を一定間隔で 行うように別プロセスまたは別スレッ ドと して実行する。 第 7図、 第 8図 を用いてこれらの処理は後述する。
次に、 MPEGデータ再生アプリケ一ション 14から各種の要求が送られ てくるのを待つ(ステップ S 105)。
MPEGデータ再生アプリケーション 14から要求を受け取ったクライア ントプログラム 13は、 受け取った要求がデータ転送要求か、否かを判断 し(ステップ S 106)、 データ転送要求の場合には、 ステップ S 1 10に進み、 デ一タ転送要求ではない場合には、 ステップ S 107へ進む。
1. 2 データ転送要求以外の要求に対する処理
ステップ S107カゝらステップ S 109は、 MPEGデータ再生アプリケーショ ン 14から受け取った要求をサーバへ送信し(ステップ S107)、 REPLYが返 つてくるのを待ち(ステップ S108)、 返ってきた REPLYを MPEGデータ再 生アプリケーシヨン 14へ送信する(ステップ S 109)処理であり、 ステツ プ S 109が終了すると、 ステップ S 105へ戻って、 再び要求を待つ。 ここ で、ステップ S 107で送信される要求の一つとしては、 OPEN要求がある(第 19図ステップ S243)。 MPEGデータ再生アプリケーシヨン 14は、 データ転 送要求を行う前に、 データ転送の対象となるファイルを指定する上述の OPEN要求を送信する。
第 5図、 第 6図に例としてサーバプログラム 1 1に渡す OPEN, READ要求 のデータ構造を示す。 OPEN要求には、 MPEG再生アプリケーショ ン 14が 指定した、 LBRモード、 すなわちフルデータを転送するか、 LBR化したデ ータを転送するかを示すデータ(間引き間隔)が含まれているという特徴 力 sある。
1. 3 データ転送要求に対する処理
—方、 MPEGデータ再生アプリケーショ ン 14からの要求がデータ転送 要求であった場合には、 ステップ S 103、 ステップ S 104で得られたネッ トワーク負荷、 CPU負荷より各ピクチャの間引き間隔を決定する(ステツ プ S110)。 このステップ S 1 10は、 決定ステップである。 間引き間隔は送 信レベルである。 ここで、 各ピクチャの間引き間隔を決定するとは、 例 えば、
( l) IPB全てのデータを送信する。 (2) IPのみのデータを送信する。
(3) 1のみのデータを送信する。
(4) 1のみのデータの一部を所定間隔で抽出したデータを送信する。
の送信方法の中から、 1つの送信方法を選択する処理であって、 (1)は負 荷が軽いときに選択され、 (2)は次に、 (3)はまたその次に、 負荷が軽い とき、 (4)は負荷が最も重いときに選択される。 ここで、 P、 B について も所定の間隔でデータを抽出するように指定することもできる。 従って、 間引き間隔は、 例えば、 どのピクチャを抽出するかというピクチャ指定 データと、 ピクチャ指定データに指定されたピクチャのそれぞれについ て、 抽出する間隔を指定する間隔指定データとによって構成することが できる。 上述(1)〜(4)のいずれの処理を実行するかは、 予め定められた しきい値を基準に判定される。
次に間引き間隔に変更があつたか否かが判断され(ステップ S 1 11 )、 変 更があった場合には次のステップ S112へ進む。 変更がない場合には、 ス テツプ S114へ進んで、 ビデオサーバ 5へデータ転送要求を送信する。
1. 4 変更要求送信処理
変更がある場合には、 クライアント 9はビデオサーバ 5に対して変更 要求を送信する。 この変更要求送信処理は、 送信レベル送信ステップで ある。 変更要求には、 変更要求命令を示す識別子及び上述ステップ S1 10 で説明した(1)〜(4)を示す識別子が含まれる。
サーバプログラム 11は、 この変更要求を受け取ると、 変更要求に指定 されたモードに従って内部に記憶した転送モードのフラグを書き換え、
REPLYを返す。
ビデオサーバ 5から REPLYを受け取ると(ステップ S 113)、 クライアン トプログラム 13は、ステップ S114へ進みデータ転送要求の処理に移る。 1. 5 データ転送要求処理 クライアントプログラム 13は、 MPEGデータ再生アプリケーション 14 から要求されたサイズを指定して、 ビデオサーバ 5へデータ転送要求を 送信する(ステップ S1 14、 第 19図ステップ S245)。 次に、 ビデオサーバ 5 からデータが送信されるのを待ち(ステップ S 1 15)、 データを受信する (第 19図ステップ S248)と、 クライアント用バッファ 10 に受信したデー タを格納し(ステップ S 1 16)、受信したデータについてオフセッ トの計算 を行う。 このオフセッ トの計算は、 ビデオサーバ 5から送信されるデー タは、 LBR化されている場合があり、 ステップ S 1 14で要求したデータサ ィズと異なることがあるため、ステップ S1 14〜S1 17の処理の繰り返しに よってクライアント用バッファ 10 に格納された総データ量からオフセ ッ トを計算する処理である。
続いて、ビデオサーバ 5から受け取ったデータが MPEGデータ再生ァプ リケ一ショ ン 14 が要求したサイズに達したか否かを判断し(ステップ
51 18)、 達していない場合には、 ステップ S 1 14へ戻り再びデータ転送要 求を送信する。 達している場合には、 クライアント用バッファ 10に格納 したデータを MPEG データ再生ァプリケ一シヨン 14 へ渡す(ステップ
51 19)。 具体的には、 ステップ S 1 17で計算したオフセッ トに基づいて判 断される。
ステップ S 119が終了すると、 ステップ S105へ戻り、 再び MPEGデータ 再生アプリケーシヨン 14からの要求を待つ処理を繰り返す。
クライアントプログラム 13の動作は以上である。
1. 6 CPU負荷測定処理
次に、 第 7図を用いて、負荷測定ステップたる CPU負荷測定処理の一例 について説明する。 CPU 負荷測定処理では、 まず現在の時刻 (T 1 ) を測 定し記憶しておく (ステップ S 121)。 次にプライオリティの低い処理を実 行し(ステップ S 122)、 この処理にかかった時間、 すなわちプライオリテ ィが低い処理が実際に CPUを使用した時間 (T2) を測定し、 記憶する(ス テツプ S_123)。次にもう一度現在の時刻(T3)を測定する(ステップ S124)。 これらの時刻情報から CPU 使用率を以下のようにして求める(ステップ S125)。
CPU使用率 (°/。) =100- (T2/ (T3-T1) X 100)
この CPU使用率が高いほど、 CPU負荷が高いことになり、 CPU使用率が低 レ、ほど、 CPU負荷が低いことになる。
1.7 ネッ トワーク負荷測定処理
次に、第 8図を用いて、負荷測定ステップたるネッ トワーク負荷測定処 理の一例を説明する。 ネッ トワーク負荷測定処理では、 まず現在の時刻 (T1) を測定し記憶しておく (ステップ S131)。 次にビデオサーバ 5で使 用していないポートに対して一定サイズ (例えば 8 K B) のデータを送 り(ステップ S132)、 これに費やされた時間 (T2) を測定し、 記憶してお く (ステップ S133)。 次にもう一度現在の時刻 (T3) を測定する(ステツ プ S134)。 これらの時刻情報からネッ トワーク負荷を図るための指標を 以下のようにして求める(ステップ S134)c
ネッ トワーク負荷 =
( (転送したデータサイズ) Z (T2-T1) )Zネッ トワークの帯域) 1.8 オフセッ トの調整処理
第 9図を用いてオフセッ トの調整処理の説明を行う。 なお、説明の簡単 化のため、 LBRモードは、 LBR処理を行う(0N)、 LBR処理を行わない(OFF) の 2種類とし、 ONのときのピクチャ指定データ及び間隔指定データは固 定値とする。 この例では時間 TOで LBRモード OFFで始めて、 時間 T2で LBRモード 0N、 さらに時間 T5で LBRモード OFFにしている。 また説明の 簡素化のため LBRデータの量がもととなる MPEGデータ(フルデータ)の量 の半分になるとしている。 まず MPEGデータアプリケーショ ン 14が時間 T0、 オフセッ ト 0、 サイ ズ 10でデータ要求を出す。 この要求がクライアントプログラム 13→サ —バプログラム 11→クライアントプログラム 13を経てサイズ 10のデ一 タが送られてく る。 次に MPEGビデオ再生アプリケーシヨ ン 14が時間 Tl、 オフセッ ト 10、 サイズ 10でデータ要求を出す。 先ほどと同じようにサ ィズ 10のデータが送られてくる。
次に MPEGデ一タ再生アプリケーシヨ ン 14が時間 T2で LBRモード ON 要求を行い、 オフセッ ト 20、 サイズ 10でデータ要求を行う。 クライア ントプログラム 13は LBRモ一ド ON要求をサーバプログラム 1 1に送ると ともに、 オフセッ ト 20、 サイズ 10でデータ要求を行う。 サ一バプログ ラム 1 1はオフセッ ト 20、 サイズ 10のデータを取り出し LBR化を行い、 サイズ 5の LBRデータに変換し、 これをクライアントプログラム 13に送 る。
クライアントプログラム 13はサーバプログラム 1 1から送られてきた LBRデータのサイズと MPEGデータ再生アブリケーシヨン 14からの要求 サイズを比較し、送られてきたデータサイズでは MPEGデータ再生アプリ ケ一シヨ ン 14 からの要求サイズを満たさないので、 サーバプログラム 1 1に対してオフセッ ト 30、 サイズ 10でデータ要求を行う。 先ほどと同 様にサーバプログラム 1 1は LBRデータをクライアントプログラム 13に 送る。
クライアントプログラム 13 はすでに送られてきているデータサイズ と今送られてきたデータサイズを合わせ、 MPEGデータ再生アブリケーシ ヨン 14からの要求サイズと比較する。 今度は MPEGデータ再生アプリケ —シヨン 14からの要求サイズを満たしているので、 MPEGデータ再生ァ プリケーション 14にサーバプログラム 1 1から送られてきたデータを送 る。 クライアン トプログラム 13は MPEGデータ再生アプリケーショ ン 14か らのオフセッ ト、 サイズと実際に使用されるビデオファイルのオフセッ ト、 サイズの両方を記憶しておき、 このような MPEGデータ再生アプリケ ーション 14からの要求サイズとサーバプログラム 1 1から送られてくる デ一タサイズの差異を管理する。
次に MPEGデータ再生アプリケーシヨ ン 14は時間 T3で先ほどと同様に データ要求を行う。 先ほどと同様にクライアントプログラム 13 は MPEG データ再生アプリケーシヨ ン 14 からの要求サイズを満たすまでサーバ プログラム 1 1にデータ要求を行う。
サーバプログラム 1 1は先ほどと同様に LBRデータをクライアントプロ グラム 13に送る。
次に MPEGデータ再生アプリケ一シヨン 14は時間 T4で LBRモード OFF 要求を行い、 オフセッ ト 40、 サイズ 10 でデータ要求を行う。 クライア ントプログラム 13は LBRモード OFF要求をサーバプログラム 1 1 に送る とともにオフセッ ト 60、 サイズ 10でデータ要求を行う。 サーバプログ ラム 1 1はオフセッ ト 60、 サイズ 10のデータを取り出し、 クライアント プログラム 13に送る。
以上のようにして送られてきたデータで MPEG データ再生アプリケ一 シヨ ン 14は再生を行っていく。 また MPEGデータ再生アプリケーショ ン 14が再生位置の変更を行った場合にはオフセッ トの値を MPEGデータ再 生アプリケーション 14 で要求するオフセッ トと実際に使用されるビデ ォファイルのオフセッ トを同一の値にして初期化する。
1. 9 LBRデ一タの転送か、 フルデータの転送かの判断
ここで、 MPEGデータ再生アプリケーション 14は、 ビデオデータの再 生を通常データまたは LBR データのどちらで開始するかを決定し、 LBR データで開始する場合はこれをクライアントプログラム 13 に送ること もできる。
また MPEGデータ再生アプリケーシヨ ン 14は、 いつでもサーバプログ ラム 1 1から送られてくるデータを通常データから LBRデータに、または、 LBRデータから通常データへ配信の変更要求を行える。
2. サーバプログラムの動作
2. 1サーバプログラム全体動作
次に、第 10図に基づいて、 サーバプログラム 1 1の動作について説明す る。 サーバプログラム 1 1は、 クライアント 9からの要求を待ち(ステツ プ S141)、 要求を受け取ると、 受け取った要求がデータ転送要求か否か を判断する(ステップ S 142)。
データ転送要求ではない場合には、要求に応じた処理を行い(ステップ
S143)、 処理結果を REPLY としてクライアント 9 へ送信する(ステツプ
S 4)。 ここで、 ステップ S 143で行われる処理は、 例えば、 MPEGデータ に係るファイルの 0PEN、 CLOSE等の処理である。 また、 クライアント 9 から LBRモードの変更が指示された場合に、 LBRモードを変更する処理 も、 ステップ S 143で行われる。
一方、 データ転送要求である場合には、 ディスク装置 6から MPEGデー タを読み込み、 読み込んだデータをサーバ用バッファ 7へ格納する。 こ のとき、 読み込む MPEGデータは、 クライアント 9から指定された要求サ ィズ分の MPEGデータである(ステップ S 145)。 次に、 内部に記憶された
LBRモードを調べ、 LBR化が必要か否かを判断する(ステップ S 146)。
LBR化が不要な場合には、 サーバ用バッファ 7に格納された MPEGデー タをクライアント 5へ送信する(ステップ S149、 第 19図ステップ S247)。 一方、 LBR化が必要な場合には、サーバ用バッファ 7に記憶された MPEG データについて LBRモードに応じた LBR処理を行って、 LBR処理後の MPEG データを LBR用バッファ 8に格納する(ステップ S147)。 そして、 LBR用 バッファ 8に格納された MPEGデ一タをクライアント 9へ送信する(ステ ップ S148)。 このステップ S148は送信ステップである。 LBR処理につい ては後述する。
2. 2 LBR処理
次にデータ抽出ステップたる LBR処理について詳述する。
LBR処理は、 Iピクチャ、 Pピクチャ、 Bピクチャを有する MPEGデータ から、所定のピクチャを抽出して、 データサイズの小さい MPEGデータを 作成する処理である。
2. 2. 1 MPEG1のデータ構造
まず、 MPEG1データの構造について説明する。 第 17図に MPEG1 システ ム、 第 18図に GOP (Group of Pi ctures) 層までの MPEGl ビデオの各構成 を示す。 これらの MPEG1 データ の構造は、 文献 IS0/IEC11172- 1/2: Information technology-Coding of moving pi ctures and associated audio for di gi tal Storage media at up to about 1. 5Mbit/S", INTERNATIONAL STANDARD, 1993に詳細に説明されているもの である。
MPEG1システムは MPEG1 ビデオ、 MPEG1オーディオを同期化して、 多重 化したもので、実際にアプリケーションに適用する場合には、この MPEG1 システムが使用される。 第 17図のように PACK START C0DE、 Packet Start codeなどの開始コードは 32 ビッ トのデータであり、 バイ ト配置されて レヽる。 また、 これらの開始コードのビッ トパターンは MPEG1のビッ トス トリーム中ではそれ以外に決して発生しないものであり、 各種ヘッダの 識別に使用される。 System header にはス トリ一ム全体の概要を記述し た情報グループが入っている(例えば、ビッ トレ一トなど)。 other header data にはタイムスタンプ (PTS、 DTS ) などの情報が入っている。 SCR (System Clock Reference) とは、 ビデオとオーディオの復号器を含む MPEGシステム復号器において、 時刻基準となる STC (System Time Clock, 基本となる同期信号) の値を符号器側で意図した値にセッ ト ,校正する 為の情報である。 MPEG1 ビデオの G0Pは MPEG1 ビデオにおけるランダム アクセス単位であり、 通常 G0Pは 0. 5秒程度の再生時間になる。
第 18図は、 第 17図の Packet dataがビデオデータであった場合の内容 を詳細に示したものであり、 G0P層の I、 P、 Bはそれぞれ I ピクチャ、 P ピクチャ、 B ピクチャを表している。 各ピクチャの内容は以下の通りで ある。
I ピクチャ : Intra- Picture (フレーム内符号化画像)
I ピクチャは前後のピクチャとは無関係にその情報だけから符号化さ れた画面で、 フレーム間予測を使わずに生成されたものである。 I ピク チヤはフレーム内圧縮フレームのデータの一種である。
Pピクチャ : Predictive- Pi cture (フレーム間順方向予測符号化画像) P ピクチャは I または P ピクチャからの予測を行うことによってでき る画面である。 すなわち、 前の Iまたは Pピクチャからの差分によって 表される。 Pピクチャはフレーム間圧縮フレームのデータの一種である。
Bピクチャ : Bidirectional ly predi ctive- Pi cture (双方向予測符号化 画像)
Bピクチャは MPEGの特徴である双方向予測によってできる画面である。 すなわち、 前後の I または P ピクチャからの差分によって表される。 B ピクチャはフレーム間圧縮フレームのデータの一種である。
2. 2. 2 LBR処理の動作説明
次に、 LBR処理部 12が行う LBR処理の詳細について第 12図に基づいて 説明する。 まず、 LBR処理部 12 は、 サーバ用バッファ 7 に格納されている MPEG データのパックヘッダの位置が確定済みかを判断する(ステップ S 151)、 確定済みの場合には、 ステップ S 159に進む。確定済みでない場合には、 ステップ S 152に進みパックへッダの位置を確定する処理を行う。
パックヘッダの位置を確定する処理は、 まず、 サーバ用バッファ 7に 記憶されている MPEG データの内容をデータの先頭部分から順次調べて いき、 パックヘッダのデータを探し(ステップ S 152)、 探し出したパック ヘッダを LBR用バッファ 8へ複写する(ステップ S 153)。
次に、パックヘッダに続くデータがシステムヘッダかを調べる(ステツ プ S 154)。 システムヘッダであった場合には、 そのシステムヘッダ部分 をサーバ用バッファ 7から LBR用バッファ 8へ複写する(ステップ S 155)。 システムヘッダでない場合には、 ステップ S 155の処理を跳ばして、 ステ ップ S 156へ進む。
ステップ S154若しくはステップ S155が終了すると、 続くサ一バ用バ ッファ 7内のデータがビデオバケツ トであるかを調べる(ステップ S 156)。 ビデオパケッ トである場合には、ステップ S157のピクチャチェックを行 う。 このピクチャチェックによって、 所定のピクチャが LBR用バッファ 8 へ抽出される。 ピクチャチェックについては、 第 12図を用いて詳細に 説明する。 一方、 ビデオバケツ トではない場合には、 ステップ S 158へ進 み、 パケッ トの終わりまでのデータをサーバ用バッファ 7から LBR用バ ッファ 8へコピーする。 ビデオパケッ ト以外のパケッ トとしては、 ォ一 ディォバケツ トがあり、 このオーディオバケツ トが LBR用バッファ 8に コピーされる。
次に、 次のデータがパックヘッダであるかを調べ(ステップ S 159)、 パ ックヘッダである場合には、 そのパックヘッダをサーバ用バッファ 7か ら LBR用バッファ 8へコピーする。 パックヘッダでない場合には、 ステ ップ S 161へ進む。
ステップ S159若しくはステップ S160が終了すると、 次のデータがシ ステムヘッダであるかが調べられる(ステップ S 161)。 システムヘッダで ある場合には、 当該システムヘッダをサーバ用バッファ 7から LBR用バ ッファ 8へコピーする(ステップ S 162)。 システムヘッダでない場合には、 ステップ S 163へ進む。
ステップ S161若しくはステップ S 162が終了すると、 続くデータがビ デォバケツ トであるかを調べ(ステップ S 163)、 ビデオパケッ トである場 合には、 ピクチャチェックを行う(ステップ S 165)。 このピクチャチエツ クは、 上述ステップ S157 と同様の処理である。一方、 ビデオパケッ トで はない場合には、 パケッ トの終わりまでのデータをサーバ用バッファ 7 から LBR用バッファ 8へコピーする(ステップ S 164)。
ステップ S 164若しくはステップ S 165が終了すると、 サーバ用バッフ 了 7内にある MPEGデータの終わりまでについて、上述の処理が終了した かが調べられ(ステップ S 166)、 サーバ用バッファ 7内にある MPEGデー タの終わりまで処理が終了していない場合には、ステップ S 159へ進み、 ステップ S159〜ステップ S 165までの処理を繰り返す。
一方、サーバ用バッファ 7内にある MPEGデータの終わりまで処理が終 了した場合には、 LBR用バッファ 8に LBRヘッダを LBR用バッファの先 頭、 すなわちパケッ トの先頭に書き込む(ステップ S167)。 LBRヘッダは、 MPEGデータと LBRデ一タの区別をするためのヘッダである。 このとき、 I、 P、若しくは Bピクチャの取り出しの際(ピクチャチェック S 155、 S 165 の際)にバケツ トのサイズの変更が発生した場合は、 LBR用バッファに書 き出されたバケツ トの長さに基づいて、 バケツ トのヘッダ部にあるパケ ッ ト長の変更を行う。 ステップ S167が終了すると、 LBR処理(ステップ S 147)が終了する(ステップ S 168)。 LBR処理については以上のような動作を行う。
2. 2. 3ピクチャチェック処理
次に、 上述ステップ S157、 及び、 ステップ S165で説明したピクチャ チェック処理について、 第 12図〜第 15図を用いて詳細に説明する。
第 12図は、 3 種類のピクチャチェック処理を表しており、 それぞれの ピクチャチェック処理の詳細については、 第 13図〜第 15図でそれぞれ説 明する。
まず、 最初に上述第 4図のステップ S112や MPEGデータの OPEN時にサ —バ側に通知された間引き間隔に基づき、 I,P及び B ピクチャを取り出 すか否かを判断する(ステップ S171)。取り出すと判断されたときは、 IPB ピクチャチェック処理(ステップ S172)を行なった後、 ピクチャチェック 処理を終了する。 取り出さないと判断されたときは、 I及び P ピクチャ の取り出しを行うかを判断する(ステップ S173)。 取り出すと判断された ときは、 IPピクチャチェック処理(ステップ S174)を行なった後、 ピクチ ャチェック処理を終了する。 取り出さないと判断されたときは、 I ピク チヤの取り出しを行うかを判断する(ステップ S175) c 取り出しを行うと 判断されたときは、 I ピクチャチェック処理(ステップ S176)を行った後、 ピクチャチェック処理を終了する。 行わないと判断されたときは、 ピク チヤチェック処理を終了する。
Iピクチャチェック処理(ステップ S176)
I ピクチャチェック処理とは、 MPEGデータ中から I ピクチャの一部又 は全部を抽出し、 P ピクチャ及び B ピクチャを削除したデータを生成す る処理である。
以下に、 第 13図を用いて詳細に説明する。
まず、 最初に pts、 dts、 I ピクチャフラグをチェックする(ステップ S181)。 I ピクチャフラグとは、 現在ポインタが指しているデータが、 I ピクチャのデータ中にあるか否かを示すフラグであり、 O Nのときは I ピクチャ中、 O F Fのときは I ピクチャ中ではないことを表す。 ここで、 ポインタとは、 周知の技術であるファイルポインタのことであり、 サー バ用バッファ 7に格納されている MPEGデータにアクセスするために用い られる。
次に、 サーバ一用バッファ 7のデータ中、 現在、 ポインタが示してい る位置は I ピクチャ中である力 、 すなわち、 I ピクチャフラグが O Nか 否かを判断し(ステップ S182)、 I ピクチャ中である場合には、 ポインタ が示している位置からパケッ トの終わりまでのデータを、 サーバー用バ ッファ 7から LBRノ ッファ 8へコピーして(ステップ S190)、 I ピクチャ チェック処理(ステップ S176)を終了する(ステップ S191)。
一方、 I ピクチャ中でない場合には、 現在ポインタが示している位置 からバケツ トの終わり方向に向けて I ピクチャの先頭があるかを検索す る(ステップ S183)。 I ピクチャの先頭が見つからなかった場合には、 I ピクチャチェックを終了する(ステップ S191 ) c
I ピクチャの先頭が見つかった場合には、 間引き間隔に基づいて見つ かったピクチャを取り出すかを判断する(ステップ S184)。間引き間隔は、 クライアント 9より通知された間隔である。 例えば、 第 16図に示すよう に判断する。 第 16図は、 間引き間隔の間隔指定データに対するステップ S184等の判断を示した表の一例である。 指定された間引き間隔の間隔指 定データが 「2」 の場合、 このステップ S184の 1回目の実行であるとき は、 Yesと判断してステップ S185に進み、 ピクチャを取り出す。 ステツ プ S189等を通って再びこのステップ S184に戻ってきた場合、すなわち、 2回目の実行である場合には、 Noと判断し、 ステップ S189に進み、 ピク チヤを取り出さない。 以下、 同様に 3回目は YeS、 4回目は No といった ように判断する。 他の間引き間隔においても同様に第 16図に示したよう に判断する。
ステップ S184で Iピクチャを取り出す、すなわち Yesと判断された場 合には、 このステップ S185に進み、 I ピクチャフラグを O Nにする。 次に、 ポインタの位置からパケッ トの終わり方向に、 I ピクチャの終 わりを検索する(ステップ S186)。 バケツ トの終端まで終わりがなかった 場合には、 全てのデータが Iピクチャであつたと判断し、 ステップ S186 の検索前のポインタ位置からバケツ トの終端までのデータを、 サーバ用 ノ ッファ 7力、ら LBR用バッファ 8へコピ一し(ステップ S187)、 I ピクチ ャチェック処理(ステップ S176)を終了する(ステップ S191)。
一方、 ステップ S186で Iピクチャの終わりが見つかった場合には、 ス テツプ S185で O Nにしたピクチャフラグを O F Fとし、 ステップ S 186 の検索前のボインタ位置から、 見つかった I ピクチャの終わりまでのデ ータを、サーバ用バッファ 7カゝら LBR用バッファ 8へコピーする(ステツ ブ S188)。
そして、パケッ トの終わりまでチェック処理が完了したかを調べる(ス テツプ S189)。 終わりまでチェック処理が完了した場合には、 Iピクチャ チェック処理(ステップ S176)を終了する(ステップ S191)。 まだ、バケツ トの終わりまでチェック処理が終了していない場合には、 ステップ S183 に戻り、 上述の処理を繰り返す(ステップ S189)。
なお、上述の処理において、サーバ用バッファ 7から LBR用バッファ 8 へデータをコピーした場合には、 サーバ用バッファ 7内のバケツ トデー タを指すポインタは、 コピーしたデータの分だけ進む。 また、 検索を行 つた場合にも、 検索を行った位置まで移動する。
IPピクチャチェック処理 IPピクチャチェック処理とは、 MPEGデータ中から Iピクチャ及び Pピ クチャの一部又は全部を抽出し、 B ピクチャを削除したデータを生成す る処理である。
以下に、 第 14図を用いて詳細に説明する。 IPピクチャチェックは、 抽 出するデータの対象が、 I ピクチャ及び P ピクチャである点を除いて、 基本的に第 13図に示した Iピクチャチェック処理(ステップ S176)と同様 である。
まず、 最初に pts、 dts、 I ピクチャフラグ、 及び Pピクチャフラグを チェックする(ステップ S201)。 Pピクチャフラグとは、 現在ポインタが 指しているデータが、 P ピクチャのデータ中にあるか否かを示すフラグ であり、 O Nのときは Pピクチヤ中、 O F Fのときは Pピクチヤ中では ないことを表す。
次に、 サーバー用バッファ 7のデ一タ中、 現在、 ポインタが示してい る位置は I若しくは P ピクチャ中である力 、 すなわち、 I若しくは P ピ クチャフラグが O Nか否かを判断し(ステップ S202)、 I若しくは Pピク チヤ中である場合には、 ボインタが示している位置からバケツ トの終わ りまでのデータを、 サーバ一用バッファ 7力 ら LBRノ ッファ 8へコピー して(ステップ S210)、 IP ピクチャチェック処理(ステップ S174)を終了 する(ステップ S211)。
—方、 I若しくは P ピクチャ中でない場合には、 現在位置からバケツ トの終わり方向に向けて I若しくは Pピクチャの先頭があるかを検索す る(ステップ S203)。 I若しくは Pピクチャの先頭が見つからなかった場 合には、 IPピクチャチェックを終了する(ステップ S21 1)。
I若しくは P ピクチャの先頭が見つかった場合には、 間引き間隔に基 づいて見つかったピクチャを取り出すかを判断する(ステップ S204)。 間 引き間隔は、 クライアント 3 より I ピクチャ、 P ピクチャのそれぞれに ついて通知された間隔である。 例えば、 第 16図に示すように判断する。 ステップ S203で Iピクチャの先頭が見つかった場合には、 I ピクチャに ついて指定された間引き間隔で、 第 16図に示したような判断を行う。 一 方、 ステップ S203で Pピクチヤの先頭が見つかった場合には、 Pピクチ ャについて指定された間引き間隔で、 第 16図に示したような判断を行う。 ステップ S204でピクチャを取り出す、すなわち Yesと判断された場合 には、 このステップ S205に進み、 ステップ S203で見つかったピクチャ の先頭に対応して、 I ピクチャフラグ又は P ピクチャフラグを O Nにす る。
次に、 ポインタの位置からパケッ トの終わり方向に、 I若しくは P ピ クチャの終わりを検索する(ステップ S206)。 バケツ トの終端まで終わり がなかった場合には、 全てのデータが I若しくは Pピクチャであつたと 判断し、ステップ S206の検索前のボインタ位置からバケツ 卜の終端まで のデータを、サ一バ用バッファ 7力 ら LBR用バッファ 8へコピ一し(ステ ップ S207)、 IP ピクチャチェック処理(ステップ S174)を終了する(ステ ップ S211)。
一方、ステップ S206で I若しくは Pピクチャの終わりが見つかった場 合には、 ステップ S205で O Nにしたピクチャフラグを O F Fとし、 ステ ップ S206の検索前のボインタ位置から、見つかった I若しくは Pピクチ ャの終わりまでのデータを、 サーバ用バッファ 7から LBR用バッファ 8 へコピーする(ステップ S208)。
そしてノ、。ケッ トの終わりまでチェック処理が完了したかを調べる(ス テツプ S209)。 終わりまでチェック処理が完了した場合には、 IPピクチ ャチェック処理(ステップ S174)を終了する(ステップ S211)。 まだ、パケ ッ トの終わりまでチェック処理が終了していない場合には、 ステップ S203に戻り、 上述の処理を繰り返す(ステップ S209)。 なお、上述の処理において、サ一バ用バッファ 7カゝら LBR用バッファ 8 へデータをコピーした場合には、 サーバ用バッファ 7内のバケツ トデ一 タを指すポインタは、 コピーしたデータの分だけ進む。 また、 検索を行 つた場合にも、 検索を行った位置まで移動する。
IPBピクチャチェック処理
IPB ピクチャチェック処理とは、 MPEGデータ中から I ピクチャ、 P ピ クチャ、 及び、 B ピクチャの一部又は全部を抽出したデータを生成する 処理である。
以下に、 第 15図を用いて詳細に説明する。 IPB ピクチャチェックは、 抽出するデータの対象が、 I ピクチャ、 Pピクチャ、 及び Bピクチャであ る点を除いて、基本的に第 13図に示した I ピクチャチェック処理(ステツ プ S176)と同様である。
まず、 最初に pts、 dts、 Iピクチャフラグ、 Pピクチャフラグ、 及び B ピクチャフラグをチェックする(ステップ S221)。 Bピクチャフラグとは、 現在ポインタが指しているデータが、 B ピクチャのデータ中にあるか否 かを示すフラグであり、 O Nのときは B ピクチヤ中、 O F Fのときは B ピクチャ中ではないことを表す。
次に、 サーバー用バッファ 7のデータ中、 現在、 ポインタが示してい る位置は I、 P、 若しくは Bピクチャ中である力 、 すなわち、 I、 P、 若し くは Bピクチャフラグが O Nか否かを判断し(ステップ S222)、 I、 P、 若 しくは Bピクチャ中である場合には、 ボインタが示している位置からパ ケッ トの終わりまでのデータを、 サ一バー用バッファ 7から LBRバッフ ァ 8へコピ一して(ステップ S230)、 IPBピクチャチェック処理(ステップ S172)を終了する(ステップ S231)。
一方、 I、 P、 若しくは Bピクチャ中でない場合には、 現在位置からパ ケッ トの終わり方向に向けて I、 P、 若しくは Bピクチャの先頭があるか を検索する(ステップ S223)。 I、 P、 若しくは Bピクチャの先頭が見つか らなかった場合には、 IPBピクチャチェックを終了する(ステップ S231)。
I、 P、 若しくは Bピクチャの先頭が見つかった場合には、 間引き間隔 に基づいて見つかったピクチャを取り 出すかを判断する(ステップ S224)。 間引き間隔は、 クライアント 3 より I ピクチャ、 P ピクチャ、 B ピクチャのそれぞれについて通知された間隔である。 例えば、 第 16図に 示すように判断する。ステップ S223で I ピクチャの先頭が見つかった場 合には、 I ピクチャについて指定された間引き間隔で、 第 16図に示した ような判断を行う。 一方、 ステップ S223で Pピクチャの先頭が見つかつ た場合には、 Pピクチャについて指定された間引き間隔で、 Bピクチャの 先頭が見つかった場合には、 B ピクチャについて指定された間引き間隔 で第 16図に示したような判断を行う。
ステップ S224でピクチャを取り出す、すなわち Yesと判断された場合 には、 このステップ S225に進み、 ステップ S223で見つかったピクチャ の先頭に対応して、 I、 P、 又は Bピクチャフラグを O Nにする- 次に、 ポインタの位置からパケッ トの終わり方向に、 I、 P、 若しくは Bピクチャの終わりを検索する(ステップ S226)。 パケッ トの終端まで終 わりがなかった場合には、 全てのデータが I、 P、 若しくは Bピクチャで あつたと判断し、ステップ S226の検索前のボインタ位置からバケツ トの 終端までのデータを、 サ一バ用バッファ 7から LBR用バッファ 8へコピ 一し(ステップ S227)、 IPBピクチャチェック処理(ステップ S172)を終了 する(ステップ S231)。
一方、 ステップ S226で I、 P、 若しくは B ピクチャの終わりが見つか つた場合には、ステップ S225で O Nにしたピクチャフラグを O F Fとし、 ステップ S226の検索前のボインタ位置から、 見つかった I、 P、 若しく は Bピクチャの終わりまでのデータを、 サーバ用バッファ Ίから LBR用 バッファ 8へコピ一する(ステップ S228)。
そして、パケッ 卜の終わりまでチェック処理が完了したかを調べる(ス テツプ S229)。 終わりまでチェック処理が完了した場合には、 IPBピクチ ャチヱック処理(ステップ S 172)を終了する(ステップ S231 )。 まだ、パケ ッ トの終わりまでチェック処理が終了していない場合には、 ステップ S223に戻り、 上述の処理を繰り返す(ステップ S229)。
なお、上述の処理において、サーバ用バッファ 7から LBR用バッファ 8 へデータをコピーした場合には、 サーバ用バッファ 7内のパケッ トデー タを指すポインタは、 コピーしたデータの分だけ進む。 また、 検索を行 つた場合にも、 検索を行った位置まで移動する。 この実施例 1によれば、 第 20図に示されるように、 ネッ トワーク 4や CPU の負荷状態に応じて、 高品質なフルデータの送受信(ステップ S271 〜ステップ S273)、データ量の少ない LBRデータの送受信(ステップ S274 〜ステップ S277)が切り替わるため、 厳しい負荷状態においても、 リア ルタイムに MPEGデータを配信することができる。
特に、 MPEGデータを間引いて、 所定間隔のフレームデータを送信して いるため、 ある時期のフルデータは集中して再生され、 ネッ トワーク負 荷が高く ビデオデータを送信できないために、 MPEGデータの送信がビデ ォの再生時刻に間に合わない結果、その他の時期の MPEGデータは再生さ れないという現象を抑制することができる。
また、 クライアント 9の負荷が高く ビデオ再生に十分な CPU時間を割 り当てることができない場合には、 フルデータを送信してもフレーム落 ちが発生してしまう。 この実施例によれば、 ビデオ再生装置の CPU負荷 を測定し、 CPU負荷に応じた LBR処理を行っているため、 上述のような 場合には、 データ量を減少させた LBRデータを送信し、 ネッ トワーク負 荷を軽^することができる。
実施例 1ではビデオデ一タとして MPEGデータを例として上げ説明した 力 フレーム内圧縮フレームとフレーム間圧縮フレームを持つビデオデ ータであれば、 他のビデオデータであっても、 フレーム間圧縮フレーム またはフレーム内圧縮フレームとフレーム間圧縮フレームを適切に間引 く ことによって LBR化をおこない転送するデータ量を調節することがで きる。
ここで、 フレーム内圧縮フレームのデータとは、 自己のフレーム内の データに基づいて、 圧縮されたフレームデータであり、 フレーム間圧縮 フレームのデータとは、 他のフレームとの差分に基づいて、 圧縮された フレームデータである。 実施例 2.
第 1図に本発明の実施例 2におけるシステム構成を示す。第 21図はビデ ォサーバ 5およびクライアント 9の MPEGデータ、 LBRデータの配信/再 生部分の S/W構成を示したものである。 第 21図において、 第 2図と同一の 符号は同一又は相当の部分を表しており、 ネッ トワーク負荷測定部 18、 CPU負荷測定部 19がクライアントプログラム 13ではなく、 サーバプロ グラム 1 1にある。
この実施例 2は、 サーバ主導型で動作するシステムである。 サーバ主 導型とは、 クライアント 9からのデータ転送要求に従って、 ビデオサー パ 5でフルデータ若しくは LBRデータをリアルタイムに生成し配信し、 第 22図にあるように、 クライアント 9からのデータ転送要求をトリガー として配信を開始し、 その後ビデオサーバ 5がネッ トワーク負荷測定部 18や CPU負荷測定部 19からの情報を考慮し、 ビデオサーバ 5側で適切 な量のデータをクライアントに配信し続けるものである。 クライアント 9 は送られてきたデータの受け取り と再生を行う。 なお途中で、 サーバ 主導型からクライアント主導型に切り替えることも可能である。
この実施例 2のシステムは以上のような構成であり、 フルデータ若し くは LBRデータ配信/再生を第 24図のサーバプログラム、第 23図のクライ アントプログラムの処理フローチヤ一トに基づき、 以下に詳細に説明す る。 なお、 第 23図において、 第 4図と同一の符号は同一又は相当の部分を 表し、 第 24図において、 第 10図と同一の符号は同一又は相当の部分を表 す。
第 23図及び第 24図の処理フロ一チヤ一トにおいて、まず MPEGデータ再 生アプリケーショ ン 14 がデータ転送要求を送信する(第 23図ステップ S1 14)。 この要求はクライアントプログラム 13からネッ トワーク 4を経 てサーバプログラム 1 1に渡される。
サーバプログラム 1 1 ではプログラム起動時にネッ トワーク負荷測定 部 18および CPU負荷測定処理部 19を独立のプロセスで起動しており、 ネッ トヮーク負荷及び CPU負荷を常時測定している。
LBR開始要求を受け取った(第 24図ステップ S 141、 S 142)サーバプログ ラム 1 1は LBRデータ生成のためにディスク装置 6からサーバ用バッファ 7 へ MPEGデータの読み込みを行う(ステップ S 145)。
次に、 サーバプログラム 1 1 は、 ネッ トヮ一ク負荷測定部 18及び CPU 負荷測定部 19が測定した、ネッ トワーク負荷及び CPU負荷に基づき、 LBR モードを決定する。 この決定方法は、 実施例 1で示した方法と同様であ る。
続いて、 ステップ S300の決定結果に基づき、 LBR処理を行かを判断し (ステップ S 146)、 行う場合にはステップ S 147で LBR処理を行う。 この LBR処理は、 実施例 1 と同様な方法で行う。 そして、 サーバプログラム 1 1はフルデータ若しくは LBR用バッファ 8 に生成された LBRデータをクライアントプログラム 13に配信する(ステ ップ S148若しくはステップ S149)。
次に、クライアント 9からデータ転送要求で指定された MPEGデータの ファイル終端(EOF)まで、 送信が終了したかが判断される(ステップ S301)。 送信が終了した場合には、 ステップ S 141に戻り、 次のクライァ ント 9からの要求待ち処理を行う。 ファイル終端までの送信が終了して いない場合には、 ステップ S145に戻り、 次の MPEGデータの送信処理を 行う。
この実施例 2のサーバプログラム 1 1では以上のことを繰り返し行うこ とによって、 LBR データの配信をし続ける。 一方クライアントプログラ ム 13は送られてきた LBRデータを受け取り(第 23図ステップ S 1 15)、 こ れをクライアント用バッファ 10に格納し(ステップ S 1 16)、 MPEGデータ 再生アプリケーショ ン 14が要求したサイズ分のフルデータ若しくは LBR デ一タを、 MPEG データ再生アプリケーションに渡す(ステップ S 1 19) c MPEGデータ再生アプリケーシヨ ン 14はこのデータの再生を行う。
以上のことを繰り返して MPEGデータの再生が行われる。
この実施例 2 においても、 ネッ トワーク負荷、 CPU負荷の状態に応じ て、転送する MPEGデータの量を自動的に調整して配信するため、 ビデオ データをリアルタイムに再生することができる。 なお、この実施例 2ではビデオデータとして MPEGデータを例として上 げ説明したが、 フレーム内圧縮フレームとフレーム間圧縮フレームを持 つビデオデータであれば、 他のビデオデータであっても、 フレーム間圧 縮フレームまたはフレーム内圧縮フレームとフレーム間圧縮フレームを 適切に間引く ことによって LBR化をおこない転送するデータ量を調節す ることができる。 実施例 3.
第 25図に本発明の実施例 3におけるシステム構成を示す。
第 25図において、第 1図と同一の符号は同一又は相当の部分を表してい る。 15はビデオカメラ、 16はビデオカメラ 15からのビデオ信号を入力 し、リアルタイムに MPEGデータにェンコ一ドするためのリアルタイムェ ンコ一ダ、 17 はリァノレタイムエンコーダがェンコ一ドした MPEGデータ を記憶するリアルタイムデータ用バッファである。
また、図示していないが、ビデオサーバ 5は、マルチキャス ト時の MPEG データの途中再生に使用する MPEGデータの各種パラメータ、例えば、 フ レ一ムレート等を格納しておくパラメータ記憶バッファを有している。 第 2図は本実施例のビデオサーバ 5およびクライアント 9の LBRデータ の配信ノ再生部分の S/W構成を示している。
本実施例ではリアルタイムでエンコードされた MPEG データをビデオ サーバ 5上でリアルタイムに LBR処理を行って生成する LBRデータ、 ま たは実施例 1記載のディスク装置 6に格納されている通常の MPEGデータ から生成する LBRデータをマルチキャス 卜で各クライアント 9に配信す るものである (以下マルチキャス ト LBR配信という) 。 ここで、 この実 施例 3では実施例 1 と同様にクライアント主導型で動作する。 なおクラ イアン ト主導型から実施例 2記載のサーバ主導型に切り替えることも可 である。
本実施例のシステムは以上のような構成であり、 以下第 26図のシ一ケ ンス図、 第 27図のサーバプログラム、 および第 28図のクライアントプロ グラムの処理フローチャートに基づき詳細に説明する。 第 27図において、 第 10図と同一の符号は同一又は相当の部分を表し、第 28図において、第 4 と同一の符号は同一又は相当の部分を表す。 第 26図はデータ転送のマル チキヤ^トモ一ドによる配信を説明するシーケンス図であり、 ビデオサ —バ 5が 2つのクライアント 9に同時にデータ転送を行う場合を示して いる。
まず、 最初にクライアント 9側の動作について説明する。 MPEG再生ァ プリケーション 14がマルチキャス トモ一ドを指定して OPEN要求を行う。 この OPEN要求を受け取ったクライアントプログラム 13は、 ネッ トヮー ク 4を介して、 ビデオサーバ 5へマルチキャス トグループ参加要求を送 信する(第 28図ステップ S 107、 第 26図ステップ S320)。 このマルチキャス トグループ参加要求は実施例 1の OPEN要求の役割及びマルチキャストグ ループへの参加を要求する役割を持つ要求である。
次に、 クライアントプログラム 13は、 ステップ S 108〜ステップ S 1 13 までの処理を行い、 MPEG再生アプリケ一ション 14による指示に基づき、 データ転送要求若しくはリアルタイムデータ転送要求のいずれかを送信 する(第 28図ステップ S1 14、 第 26図ステップ S321)。
以降、実施例 1 と同様に動作して、ビデオサーバ 5から送信された MPEG データを再生する。 次に、 第 27図を用いてビデオサーバ 5側の動作について説明する。 ステップ S 141で、クライアント 9からの要求を受け取ったサーバプロ グラム 1 1は、受け取った要求が、データ転送要求若しくはリアルタイム デ一タ転送要求であるかを判断する(ステップ S310)。
データ転送要求若しくはリアルタイムデータ転送要求ではない場合に は、 受け取った要求がマルチキャス トグル一プ参加要求であるか否かを 判断する(第 27図ステップ S31 1)。 マルチキャス トグループ参加要求であ るときには、 サーバプログラム 1 1は、 マルチキャス トグル一プ参加要求 を送信したクライアント 9を、マルチキャス トグル一プへ登録し(ステツ プ S312〉、 登録されたマルチキャストグループの IDの情報を含むリプラ ィを返す(ステップ S 144)。 マルチキャス トグループ参加要求ではない場 合には、 ステップ S143に進み、 実施例 1で説明した通りの処理を行う。 一方、 ステップ S310で、 受け取った要求が、 データ転送要求若しくは リアルタイムデータ転送要求であると判断された場合には、 受け取った 要求が最初のリアルタイムデータ転送要求であるかが判断される(ステ ップ S313)、 最初のリアルタイムデータ転送要求である場合には、 リア ルタイムエンコーダ 16 に開始要求を出力し(ステップ S314)、 この開始 要求を受け取ったリアルタイムエンコーダ 16がビデオカメラ 15から受 け取ったビデオ信号のエンコードを開始する。 すなわち、 リアルタイム エンコーダ 16はビデオカメラ 15で撮影しているビデオを入力し、 リア ルタイムに MPEGデータにェンコ一ドし、 MPEGデータをディスク装置 6 に書き出すと同時に、 リアルタイム用データバッファ 7にも書き出す。 ここでディスク装置 6に書き出された MPEGデータを使用したマルチキヤ ス トも可能である。 リアルタイムエンコーダ 16は以後、 サーバプログラ ム 1 1からの停止要求があるまで、リアルタイムエンコードを行い続ける = 次にサーバプログラム 1 1 はリアルタイムエンコード開始要求を出し た直後にリアルタイムエンコーダ 16から送られてきた MPEGデ一タをパ ラメータ記憶バッファに格納しておく。 このバッファはマルチキャス ト 配信中に接続してくるクライアントが MPEG データの途中から生成でき るようにする為に各種 MPEGデータのパラメータ、例えばフレームレート 等、 を格納する為に使用するものである。
次に、 サーバ用バッファ 7に MPEGデータを読み込む(ステップ S315)。 この MPEGデータの読み込みは、データ転送要求か、 リアルタイムデータ 転送要求かによつて MPEGデータの読み込み元が異なり、データ転送要求 である場合には、第 10図のステップ S 145でも説明したようにディスク装 置 6から読み込む。 リアルタイムデータ転送要求の場合には、 リアルタ ィムデータ用バッファ 17から MPEGデータを読み込む。 リアルタイムデ ータ用バッファ 17から MPEGデータを読み込む処理は、 読み込み元が異 なる点を除いて、第 10図のステップ S 145で説明した処理と同様である。 次に、 ステップ S146〜ステップ S149の処理を実施例 1 と同様に行い、 クライアント 9へ MPEGデ一タを配信する。 ただし、 MPEGデータの配信 は、ステップ S31 1で登録されたマルチキャストグループに登録されたク ライアント 9全部に、 マルチキャス トで送信される。 具体的には、 デー タ転送のパケッ トの出力先に、マルチキャス トグループの IDを指定して、 パケッ トを送信することによって行う。 各クライアントは、 ステップ S 144で送信されたリプライを受け取つており、 このリプライに指定され た自己のマノレチキャス トグノレ一プの IDと、ネッ トワーク 4上に送信され た IDとが一致するか否かを判定して、一致した場合には、 そのバケツ ト を受け取る。
以上のような処理を行うことによって、 複数のクライアント 9が同時 にビデオデータの配信を受け取ることができる。 この場合には、 1 回の 配信で、 複数のクライアント 9にビデオデータを供給できるので、 ネッ トワーク負荷が少ないという効果がある。 第 26図は、 マルチキャス トによるビデオデータの配信を説明するシー ケンス図である。
まず、 最初にクライアント 9の 1つであるクライアント Aが、 マルチ キャス トグループ参加要求を送信する(ステップ S320)。 このグループ参 加要求を受け取ったビデオサーバ 5は、 クライアント Aについて、 上述 のようにマルチキャス トグループへの登録を行う。 続いて、 クライアン ト Aは、 データ転送要求を出力し(ステップ S321)、 ビデオサーバ 5より ビデオデータを受け取る(ステップ S322)。 このときクライアント Bはま だマルチキャス トグループに参加していないのでこのデータを受け取る ことはできない。 なお、 ここでは、 データ転送要求を出力しているが、 リアルタイムデータ転送要求も同様に送信される。 続いて、 MPEG再生ァ プリケーション 14からのデータ転送要求があり、かつクライアント用バ ッファ 10に十分な空き容量ができると、再びデータ転送要求を出力する (ステップ S323)。
次に、 クライアント 9の 1つであるクライアント Bカ 、 マルチキャス トグループ参加要求を送信すると(ステップ S327)、 ビデオサーバ 5は、 クライアント Bをマルチキャス トグル一プに登録し、 マルチキャス トグ ループの ID情報を有するリプライを返送する。
以降、 クライアント A若しくはクライアント Bからデータ転送要求が 出力され(ステップ S330等)、 このデータ転送要求に対応して、 ビデオサ ーバ 5がビデオデータを配信する(ステップ S329等)という処理が繰り返 される。 ここで配信されたビデオデータは、 クライアント A及びクライ アント Bによって受信され、 クライアント A及びクライアント Bでビデ ォデータが再生される。 MPEG再生アプリケ一ション 14若しくはクライ アントプログラム 13は、クライアント用バッファ 10に所定量の MPEGデ ータが残っている場合にはデータ転送要求を出力しないので、 どのクラ イアント 9によってデータ転送要求が送信されるかは、 それぞれのクラ イアント用バッファ 10に記憶されている MPEGデータの量によつて決定 され、 このデータ量が最先に所定量以下になったクライアント 9がデー タ転送要求を送信する。 なお、この実施例 3ではビデオデータとして MPEGデータを例として上 げ説明したが、 フレーム内圧縮フレームとフレーム間圧縮フレームを持 つビデオデータであれば、 他のビデオデータであっても、 フレーム間圧 縮フレームまたはフレーム内圧縮フレームとフレーム間圧縮フレームを 適切に間引く ことによって LBR化をおこない転送するデータ量を調節す ることができる。 実施例 4.
第 1図に本発明の実施例 4におけるシステム構成を示す。システム構成 は実施例 1 と同じであるが、 LBR用バッファ 8は早送り用バッファとし て使用される。 第 2図はビデオサーバ 5 及びクライアントプログラム 9 の早送りデータの配信 Z再生部分の s/w構成を示したものであり、 s/w 構成は実施例 1 と同様であるが、 LBR処理部 12は早送り処理部として使 用される。
本実施例では実施例 1 と同様にクライアント主導型で動作する。 また 本実施例における早送りデータは実施例 1 の LBRデータと同様に I ピク チヤを取り出すことは同じであり、 LBR データとの違いはォ一ディォバ ケッ トの削除、 バケツ ト内の PTS、 DTSの値を早送り再生用に変更するこ とである。
本実施例のシステムは以上のような構成であり、 以下早送り配信を第 29図のサーバプログラム 1 1、 第 30図のクライアントプログラム 13の処 理フローチヤ一トに基づき詳細に説明する。
第 29図はビデオサーバ 5の早送りデータの配信処理を説明するフロー チャートであり、 第 29図において、 第 10図と同一の符号は同一又は相当 の部分を表す。
第 30図はクライアントプログラム 13 の処理を説明するフ口一チヤ一 トであり、第 30図において、第 4図と同一の符号は同一又は相当の部分を 表す。
第 29図、 第 30図の処理フローチヤ一トにおいて、 まず MPEGデータ再生 アプリケーション 14が早送り要求を行う。 この早送り要求は、 早送り要 求であることを示す識別子と、 ビデオデータを特定するデータとを含む パケッ トを送信することによって行われる。 早送り要求はビデオが再生 中であっても停止状態であっても構わない。 この要求はクライアントプ ログラム 13が受け取り (ステップ S 101)、 クライアントブログラム 13が ビデオサーバ 5へ送信する(ステップ S350)。 このときのビデオサーバ 5 の動作については後述する。
ビデオサーバ 5から早送りデータが送られてくると(ステップ S 1 15)、 そのデータをクライアント用バッファ 10 に格納し(ステップ S 1 16)、 ォ フセッ トを計算し(ステップ S 1 17)、 クライアント用バッファ 10 に要求 されたサイズのデータが格納されるまでステップ S350〜ステップ S1 17 の処理が繰り返される(ステップ S 1 18)。 クライアント用バッファ 10 に 要求されたサイズのデータが格納されると、 MPEG再生アプリケーション 14 へ早送りデータが渡される(ステップ S 1 19)。 この早送りデータは、 MPEGデ一タである。 次に、 同データ転送処理がクライアントプログラム 13とサーバプログラム 1 1 との間で繰り返される。
同データ転送処理は、 まず、 MPEG再生アプリケーショ ン 14からの早 送り要求を待ち(ステップ S 101)、 クライアント用バッファ 10 に要求さ れたサイズのデータが格納されると、 MPEG再生アプリケ一ショ ン 14へ 早送りデータが渡され(ステップ S l l9)、 オフセッ トの計算を行う(ステ ップ S 1 17)、 である。 同データ転送処理内のステップ S 1 19で送信される データは、 既に MPEG再生アプリケ一ション 14へ送信された早送りデー タと同じものである。
クライアントプログラム 13はクライアント用バッファ 10に格納され た早送りデータを再生アプリケーショ ン 14に渡すとき早送りデータ (1 画面分)—を 1回 (通常) だけ渡してもよいし、 同じデータを複数回渡し てもよい。 複数回渡すことによって早送りの再生速度を変更できる。 例 えば 2回連続して同じデータを渡した場合は 1回だけ渡した場合の再生 速度に比べて 1/2 になる。 また当然ネッ トワークを流れるデータも 1/2 になる。 このようにして渡された早送りデータは再生アプリケーション 1 1によって再生される。 次に、 サーバプログラム 1 1の動作について説明する。
ステップ S341で早送り要求を受け取ったサーバプログラム 1 1は、 早 送りデ一タ生成のためにディスク装置 6からサーバ用バッファ 7へ MPEG データの読み込みを行う(ステップ S 145)。 次にこの MPEGデータについ て LBR処理を行い、実施例 1 と同様な方法で早送りデータを生成する(ス テツプ S 147)。 ただし、 以下の手順が実施例 1 の LBRデータ生成方法と 異なる。
• ビデオバケツ ト以外のバケツ トの取り出し処理
パケッ トがビデオパケッ ト以外のものであった場合はバケツ トを早送り 用バッファ 8に書き出さない。
•バケツ トの変更処理
パケッ ト内の PTS、 DTSの値を早送り再生用に変更する。
次にサーバプログラム 1 1は早送り用バッファ 8に生成された早送りデ ータをクライアント 9に配信する(ステップ S 148)。
サーバプログラム 11では以上のことを繰り返し行うことによって、早送 りデータの配信を行う。
特に、 クライアントでビデオデータを早送り表示する際には、 ビデオ データの全てのフレームデータを送信せずに、 送信するフレームを間引 いても表示上の支障がない。 すなわち、 通常再生時に 1秒間 3 0フレー ムで再生していた場合には、 2倍速再生を行う場合には、 単純計算で 1 秒間に 6 0 フレームの再生を行うこととなる。 しかしながら、 1 秒間に 3 0フレームのデータを表示しても、 1秒間に 6 0フレームのデータを 表示しても、 人間の視覚特性上、 認識できる画質は差がないため、 例え ば、 2倍速再生においても 1秒間 3 0フレームの表示を行えばよい。 し たがって、 この場合には、 ビデオデータ中の複数のフレームデータのう ち、 図 3 2に示したように 1 フレームデータおきにフレームデ一タを抽 出し、 送信すればよい。 このとき、 ビデオサーバが送信するデータ量は 少なくなるため、 ネッ トワークにかかる負担を軽減することができる。 早送り要求は、 2倍速、 5倍速といった早送り速度に応じた送信レベル 指定して行ってもよい。
以上のことを繰り返して早送りデータの配信 Z再生が行われる。
なお実施例 4ではビデオデータとして MPEGデータで説明したが、フレ ーム間圧縮で圧縮されたフレームを持つビデオデータに応用して適用す ることは容易である。 以上のように、 本発明によるビデオデータ配信装置によれば、 ネッ ト ワーク又はビデオデータ配信装置の負荷状態を測定する負荷測定部と、 複数のフレームデータを含むビデオデータから、 上記負荷測定部の測定 結果に応じた数のフレームデータを抽出するデータ抽出部と、 このデー タ抽出部が抽出したフレームデータを送信する送信部と、 を備えること としたため、 ビデオデータの表示品質の劣化を抑止しつつ、 ネッ トヮー ク負荷を軽減することができる。
また、 データ抽出部は、 負荷測定部の測定結果に基づいて、 負荷が低 いときにはビデオデータの全てのフレームデータを抽出し、 負荷が高い ときには、 上記ビデオデータの一部のフレームデータを抽出するため、 ビデオデータの表示品質の劣化を抑止しつつ、 ネッ トワーク負荷を軽減 することができる。
また、 データ抽出部は、 ビデオデータ内の複数のフレームデータ間の フレームデータを間引く ことによって、 負荷測定部の測定結果に基づい た数のフレームデータを抽出するため、 ビデオデータの表示品質の劣化 を抑止しつつ、 ネッ トワーク負荷を軽減することができる。
また、 データ抽出部は、 フレーム内圧縮フレームのデータ及びフレ一 ム間圧縮フレームのデータを有するビデオデータから、 負荷測定部の測 定結果に基づいて、 フレーム間圧縮フレームのデータを削除したビデオ データを抽出し、 送信部は、 データ抽出部が抽出したビデオデータを送 信するため、 ビデオデータの表示品質の劣化を抑止しつつ、 ネッ トヮー ク負荷を軽減することができる。
また、 ビデオデータは、 MPEGデータであるため、 リアルタイムな再生 が可能な MPEGデータを提供することができる。
また、 データ油出部は、 I ピクチャ及び Pピクチャを有する MPEGデ一 タから、 負荷測定部の測定結果に応じて、 Pピクチャを削除した MPEGデ —タを生成するため、 ビデオデータの量を少なく させても画像の乱れの 少な 、ビデオデ一タを提供することができる。
また、 データ抽出部は、 Iピクチャ及び Bピクチャを有する MPEGデー タカ ら、 負荷測定部の測定結果に応じて、 Bピクチャを削除した MPEGデ ータを生成するため、リアルタイムな再生が可能な MPEGデータを提供す ることができる。
また、 データ抽出部は、 Iピクチャ、 Pピクチャ及び Bピクチャを有す る MPEGデータから、 負荷測定部の測定結果に応じて、 Pピクチャ及び B ピクチャを削除した MPEGデータを生成するため、リアルタイムな再生が 一
4 5 可能な MPEGデータを提供することができる。
また、-データ抽出部は、複数の I ピクチャを有する MPEGデータから、 負荷測定部の測定結果に応じた間隔で複数の Iピクチャを抽出するため、 リアルタイムな再生が可能な MPEGデータを提供することができる。
また、 ビデオカメラからの映像信号をリアルタイムにエンコードし、 複数のフレームデータを有するビデオデータを生成するエンコーダと、 このエンコーダが生成したビデオデータをー時的に記憶するバッファと、 を備え、 データ抽出部は、 上記バッファに記憶されたビデオデータ内の 複数のフレームデータ間のフレームデータを間引く ことによって、 上記 ビデオデータから負荷測定部の測定結果に基づいた数のフレームデータ を抽出するため、 ビデオデータの表示品質の劣化を抑止しつつ、 ネッ ト ワーク負荷を軽減することができる。
また、 この発明のビデオデータ配信システムによれば、 ビデオデータ 配信システムの負荷状態を測定する負荷測定部、 複数のフレームデータ を含むビデオデータから、 上記負荷測定部の測定結果に応じた数のフレ —ムデータを抽出するデータ抽出部と、 このデータ抽出部が抽出したフ レームデータをネッ トワークを介して送信する送信部と、 を備えたビデ ォデータ配信装置、 上記ネッ トワークから上記ビデオデータ配信装置の 送信部から送信されたフレームデータを受信するとともに、 受信したフ レームデータを再生するビデオデータ再生装置、 を備えるため、 ビデオ データをリアルタイムに再生することができる。
また、 負荷測定部は、 ビデオデータ再生装置の動作を制御するプロセ ッサの負荷を測定するため、 使用されないフレームデータの送信を抑制 し、 送信するビデオデータの量をより少なくすることができる。
また、 複数のビデオデータ再生装置がネッ トワークに接続され、 ビデ ォデータ配信装置の送信部から上記ネッ トワーク上に送信された 1つの フレームデータは、 上記複数のビデオデータ再生装置それぞれにおいて 受信されるため、 一度に複数のビデオデータ再生装置へビデオデータを 送信することができ、 ネッ トワークの負荷を軽くすることができる。 また、 ビデオデータ再生装置は、 データ量が指定されたデータ転送要 求を複数回ビデオデータ配信装置へ送信し、 ビデオデータ配信装置は、 上記データ転送要求を受信すると、 このデータ転送要求に指定されたデ —タサイズに基づいたフレームデータを送信するため、 ビデオデータ再 生装置の指示に基づいて、 ビデオデータをリアルタイムに再生すること ができる。
また、 ビデオデータ再生装置は、 ビデオデータが指定されたデータ転 送要求を送信し、 ビデオデータ配信装置は、 上記データ転送要求を受信 すると、 上記ビデオデータの一部のフレームデータを有するバケツ トを 所定の間隔で複数送信するため、 ビデオデータをリアルタイムに再生す ることができる。
また、 この発明によるビデオデータ配信方法によれば、 ビデオデータ 配信システムの負荷に応じた送信レベルを決定する送信レベル決定ステ ップと、 複数のフレームデータを含むビデオデータから、 上記送信レべ ル決定ステップにより決定された送信レベルに応じた数のフレームデー タを抽出するデータ抽出ステップと、 上記データ抽出ステップにおいて 抽出されたフレームデータを送信する送信ステップと、 を備えるため、 リアルタイムなビデオデータの再生が可能になる。
また、 送信レベル決定ステップは、 ビデオデータ再生装置で実行され、 ビデオデータ再生装置の動作を制御するプロセッサの負荷を測定する負 荷測定ステップと、 この負荷測定ステップの測定結果に対応した送信レ ベルを決定する決定ステップと、 この決定ステップによって決定した送 信レベルをビデオデータ再生装置からビデオデータ配信装置へ送信する 送信レベル送信ステップと、 を備えるため、 リアルタイムなビデオデー タの再生が可能になる。
また、 ビデオデータ再生装置が、 送信ステップによって送信されたフ レームデータを受信し、 受信したフレームデータを再生する再生ステツ プを備えるため、 リアルタイムなビデオデータの再生が可能になる。 また、 送信レベル決定ステップは、 ビデオデータ再生装置がビデオデ ータを早送り再生する場合には、 ビデオデータに含まれる複数のフレー ムデータから一部のフレームデータを間引いたビデオデータが抽出され るように送信レベルを決定し、 早送り再生しない場合には、 ビデオデー タのフレームデータを間引かないように送信レベルを決定するため、 ネ ッ トワーク負荷をより少なくすることができる。
また、 データ抽出ステップは、 ビデオデータ再生装置が複数のフレー ムデータ及び音声データを含むビデオデータを早送り再生する場合には、 ビデオデータから上記音声データを削除し、 送信レベルに応じた数のフ レームデータを抽出したビデオデータを生成し、 送信ステップは、 上記 データ抽出ステツプが生成したビデオデ一タを送信するため、 ネッ トヮ —ク負荷をより少なくすることができる。 産業上の利用可能性
以上のように、 本発明にかかるビデオデータ配信装置、 ビデオデータ 配信システム、 並びに、 そのビデオデータ配信方法は、 例えば、 多量の ビデオデータを配信するビデオデータ配信システムにおいて用いられる のに適している。

Claims

請 求 の 範 囲
1 .ネッ トワーク又はビデオデータ配信装置の負荷状態を測定する負荷測 定部と、
複数のフレームデータを含むビデオデータから、 上記負荷測定部の測 定結果に応じた数のフレームデータを抽出するデータ抽出部と、
このデータ抽出部が抽出したフレームデータを送信する送信部と、 を備えたビデオデータ配信装置。
2.データ抽出部は、 負荷測定部の測定結果に基づいて、 負荷が低いとき にはビデオデータの全てのフレームデータを抽出し、 負荷が高いときに は、 上記ビデオデータの一部のフレームデータを抽出することを特徴と する請求項 1に記載のビデオデータ配信装置。
3.データ抽出部は、 ビデオデータ内の複数のフレームデータ間のフレー ムデータを間引く ことによって、 負荷測定部の測定結果に基づいた数の フレームデータを抽出することを特徴とする請求項 1 に記載のビデオデ ータ配信装置。
4.データ抽出部は、 フレーム内圧縮フレームのデータ及びフレーム間圧 縮フレームのデータを有するビデオデータから、 負荷測定部の測定結果 に基づいて、 フレーム間圧縮フレームのデータを削除したビデオデータ を抽出し、
送信部は、 データ抽出部が抽出したビデオデータを送信することを特 徴とする請求項 1に記載のビデオデータ配信装置。
5.ビデオデータは、 MPEGデータであることを特徴とする請求項 1に記載 のビデオデータ配信装置。
6.データ抽出部は、 I ピクチャ及び Pピクチャを有する MPEGデータから、 負荷測定部の測定結果に応じて、 Pピクチャを削除した MPEGデータを生 成することを特徴とする請求項 5に記載のビデオデータ配信装置。
7.データ抽出部は、 Iピクチャ及び Bピクチャを有する MPEGデータから、 負荷測定部の測定結果に応じて、 Bピクチャを削除した MPEGデータを生 成することを特徴とする請求項 5に記載のビデオデータ配信装置。
8.デ一タ抽出部は、 I ピクチャ、 Pピクチャ及び Bピクチャを有する MPEG データから、 負荷測定部の測定結果に応じて、 P ピクチャ及び B ピクチ ャを削除した MPEGデータを生成することを特徴とする請求項 5に記載の ビデオデータ配信装置。
9.データ抽出部は、 複数の Iピクチャを有する MPEGデータから、負荷測 定部の測定結果に応じた間隔で複数の I ピクチャを抽出することを特徴 とする請求項 5に記載のビデオデータ配信装置。
1 0 . ビデオカメラからの映像信号をリアルタイムにエンコードし、 複 数のフレームデータを有するビデオデータを生成するエンコーダと、 このエンコーダが生成したビデオデータを一時的に記憶するバッファと、 を備え、
データ抽出部は、 上記バッファに記憶されたビデオデータ内の複数の フレームデータ間のフレームデータを間引く ことによって、 上記ビデオ データから負荷測定部の測定結果に基づいた数のフレームデータを抽出 することを特徴とする請求項 1に記載のビデオデータ配信装置。
1 1 . ビデオデータ配信システムの負荷状態を測定する負荷測定部、 複数のフレームデータを含むビデオデータから、 上記負荷測定部の測 定結果に応じた数のフレームデータを抽出するデータ抽出部と、 このデ ータ抽出部が抽出したフレームデータをネッ トワークを介して送信する 送信部と、 を備えたビデオデータ配信装置、
上記ネッ トワークから上記ビデオデータ配信装置の送信部から送信さ れたフレームデ一タを受信するとともに、 受信したフレームデータを再 生するビデオデータ再生装置、
を備えたビデオデータ配信システム。
1 2 .負荷測定部は、ビデオデータ再生装置の動作を制御するプロセッサ の負荷を測定することを特徴とする請求項 1 1に記載のビデオデータ配
1 3 . 複数のビデオデータ再生装置がネッ トワークに接続され、
ビデオデータ配信装置の送信部から上記ネッ トワーク上に送信された
1つのフレームデータは、 上記複数のビデオデータ再生装置それぞれに おいて受信されることを特徴とする請求項 1 2に記載のビデオデータ配 信システム。
1 4 . ビデオデータ再生装置は、 それぞれデータ量が指定されたデータ 転送要求を複数回ビデオデータ配信装置へ送信し、
ビデオデータ配信装置は、 上記複数回のデータ転送要求を受信すると、 これらのデータ転送要求それぞれに指定されたデータ量に基づいたフレ —ムデータを上記データ転送要求ごとに送信することを特徴とする請求 項 1 1に記載のビデオデータ配信システム。
1 5 . ビデオデータ再生装置は、 ビデオデータが指定されたデータ転送 要求を送信し、
ビデオデータ配信装置は、 上記データ転送要求を受信すると、 上記ビ デォデ一タの一部のフレームデータを有するバケツ トを所定の間隔で複 数送信することを特徴とする請求項 1 2に記載のビデオデータ配信シス テム。
1 6 . ビデオデータ配信システムの負荷に応じた送信レベルを決定する 送信レベル決定ステップと、
複数のフレームデータを含むビデオデータから、 上記送信レベル決定 ステップにより決定された送信レベルに応じた数のフレームデータを抽 出するデータ抽出ステップと、
上記データ抽出ステップにおいて抽出されたフレームデータを送信す る送信ステップと、
を備えたビデオデ一タ配信方法。
1 7 . 送信レベル決定ステップは、 ビデオデータ再生装置で実行され、 ビデオデータ再生装置の動作を制御するプロセッサの負荷を測定する負 荷測定ステップと、 この負荷測定ステップの測定結果に対応した送信レ ベルを決定する決定ステップと、 この決定ステップによって決定した送 信レベルをビデオデータ再生装置からビデオデータ配信装置へ送信する 送信レベル送信ステップと、 を備えたことを特徴とする請求項 1 6に記 載のビデオデータ配信方法。
1 8 . ビデオデ一タ再生装置が、 送信ステップによって送信されたフレ ームデータを受信し、 受信したフレームデータを再生する再生ステップ を備えたことを特徴とする請求項 1 6に記載のビデオデータ配信方法。
1 9 . 送信レベル決定ステップは、 ビデオデータ再生装置がビデオデー タを早送り再生する場合には、 ビデオデータに含まれる複数のフレーム データから一部のフレームデータを間引いたビデオデータが抽出される ように送信レベルを決定し、 早送り再生しない場合には、 ビデオデータ のフレームデータを間引かないように送信レベルを決定することを特徴 とする請求項 1 6に記載のビデオデータ配信方法。
2 0 . データ抽出ステップは、 ビデオデータ再生装置が複数のフレーム データ及び音声データを含むビデオデータを早送り再生する場合には、 ビデオデータから上記音声データを削除し、 送信レベルに応じた数のフ レ一ムデータを抽出したビデオデータを生成し、
送信ステップは、 上記データ抽出ステップが生成したビデオデータを 送信することを特徴とする請求項 1 6に記載のビデオデータ配信方法。
PCT/JP1997/000562 1997-02-26 1997-02-26 Device, system, and method for distributing video data WO1998038798A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP1997/000562 WO1998038798A1 (en) 1997-02-26 1997-02-26 Device, system, and method for distributing video data
JP53748798A JP3393143B2 (ja) 1997-02-26 1997-02-26 ビデオデータ配信方法、ビデオデータ配信システム、並びに、そのビデオデータ配信方法
EP97905407A EP0901285A4 (en) 1997-02-26 1997-02-26 DEVICE, SYSTEM AND METHOD FOR DISTRIBUTING VIDEO DATA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1997/000562 WO1998038798A1 (en) 1997-02-26 1997-02-26 Device, system, and method for distributing video data

Publications (1)

Publication Number Publication Date
WO1998038798A1 true WO1998038798A1 (en) 1998-09-03

Family

ID=14180110

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1997/000562 WO1998038798A1 (en) 1997-02-26 1997-02-26 Device, system, and method for distributing video data

Country Status (3)

Country Link
EP (1) EP0901285A4 (ja)
JP (1) JP3393143B2 (ja)
WO (1) WO1998038798A1 (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
JP2005123854A (ja) * 2003-10-16 2005-05-12 Sanyo Electric Co Ltd 信号処理装置
JP2005184783A (ja) * 2004-11-12 2005-07-07 Onkyo Corp ネットワーク型コンテンツ再生システム
JP2005303927A (ja) * 2004-04-15 2005-10-27 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP2005318190A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd 映像配信方法およびシステム
JP2006060802A (ja) * 2004-07-29 2006-03-02 Microsoft Corp 帯域幅が制限されるネットワーク上のメディア変換方法および装置
JP2007505536A (ja) * 2003-09-10 2007-03-08 テールズ ホールディングス ユーケー ピーエルシー ビデオシステム
WO2008038757A1 (fr) 2006-09-29 2008-04-03 Sony Corporation Dispositif, procédé et programme de traitement d'informations
JP2008177694A (ja) * 2007-01-16 2008-07-31 Oki Electric Ind Co Ltd コールセンタ装置
US7634532B2 (en) 2002-05-31 2009-12-15 Onkyo Corporation Network type content reproduction system
JP2011119971A (ja) * 2009-12-03 2011-06-16 Mitsubishi Electric Corp コンテンツ再生装置及び方法
JP2012512561A (ja) * 2008-12-15 2012-05-31 マイクロソフト コーポレーション ビデオ会議レートマッチング
US8947492B2 (en) 2010-06-18 2015-02-03 Microsoft Corporation Combining multiple bit rate and scalable video coding
US9420335B2 (en) 2002-05-16 2016-08-16 Thomson Licensing Digital decoder having a so-called “playback” mode of operation and comprising two buffer memories
WO2017056632A1 (ja) * 2015-09-30 2017-04-06 ソニー株式会社 情報処理装置及び情報処理方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4389323B2 (ja) * 2000-02-29 2009-12-24 ソニー株式会社 シーン記述変換装置及び方法
US20020107988A1 (en) * 2001-02-05 2002-08-08 James Jordan In-line compression system for low-bandwidth client-server data link
US7602847B1 (en) 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US6959348B1 (en) 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
US7403564B2 (en) 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
US20030135863A1 (en) * 2002-01-17 2003-07-17 Koninklijke Philips Electronics N.V. Targeted scalable multicast based on client bandwidth or capability
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
US7408989B2 (en) 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
US7739105B2 (en) 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7668396B2 (en) 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
JP4114596B2 (ja) 2003-11-19 2008-07-09 オンキヨー株式会社 ネットワークavシステム
US7406598B2 (en) 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
US7421048B2 (en) 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
US7609766B2 (en) 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US20090122875A1 (en) * 2005-03-07 2009-05-14 Koninklijke Philips Electronics, N.V. Buffering of video stream data
US8949920B2 (en) 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US7743183B2 (en) 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US8131995B2 (en) 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US11240540B2 (en) * 2020-06-11 2022-02-01 Western Digital Technologies, Inc. Storage system and method for frame trimming to optimize network bandwidth

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02211787A (ja) * 1989-02-10 1990-08-23 Nec Corp ビデオテックス画像データ送信方式
JPH0723353A (ja) * 1993-06-30 1995-01-24 Canon Inc 動画像ネットワークシステム
JPH08331514A (ja) * 1995-05-31 1996-12-13 Nec Corp 動画像の早送り再生装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07327214A (ja) * 1994-06-01 1995-12-12 Canon Inc 動画像表示方法及び装置
US5754241A (en) * 1994-11-18 1998-05-19 Sanyo Electric Co., Ltd Video decoder capable of controlling encoded video data
JPH08191451A (ja) * 1995-01-10 1996-07-23 Canon Inc 動画像送信装置
JP3283159B2 (ja) * 1995-07-07 2002-05-20 日本電信電話株式会社 ソフトウェアによる画像符号化方法
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02211787A (ja) * 1989-02-10 1990-08-23 Nec Corp ビデオテックス画像データ送信方式
JPH0723353A (ja) * 1993-06-30 1995-01-24 Canon Inc 動画像ネットワークシステム
JPH08331514A (ja) * 1995-05-31 1996-12-13 Nec Corp 動画像の早送り再生装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0901285A4 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420335B2 (en) 2002-05-16 2016-08-16 Thomson Licensing Digital decoder having a so-called “playback” mode of operation and comprising two buffer memories
US7634532B2 (en) 2002-05-31 2009-12-15 Onkyo Corporation Network type content reproduction system
US7908370B2 (en) 2002-05-31 2011-03-15 Onkyo Corporation Network type content reproducing system
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
JP2007505536A (ja) * 2003-09-10 2007-03-08 テールズ ホールディングス ユーケー ピーエルシー ビデオシステム
JP2005123854A (ja) * 2003-10-16 2005-05-12 Sanyo Electric Co Ltd 信号処理装置
JP4497885B2 (ja) * 2003-10-16 2010-07-07 三洋電機株式会社 信号処理装置
JP2005303927A (ja) * 2004-04-15 2005-10-27 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP2005318190A (ja) * 2004-04-28 2005-11-10 Hitachi Ltd 映像配信方法およびシステム
JP4528022B2 (ja) * 2004-04-28 2010-08-18 株式会社日立製作所 映像配信方法およびシステム
JP2006060802A (ja) * 2004-07-29 2006-03-02 Microsoft Corp 帯域幅が制限されるネットワーク上のメディア変換方法および装置
JP2005184783A (ja) * 2004-11-12 2005-07-07 Onkyo Corp ネットワーク型コンテンツ再生システム
JPWO2008038757A1 (ja) * 2006-09-29 2010-01-28 ソニー株式会社 情報処理装置および方法、並びにプログラム
WO2008038758A1 (fr) 2006-09-29 2008-04-03 Sony Corporation Dispositif, procédé et programme de traitement d'informations
WO2008038757A1 (fr) 2006-09-29 2008-04-03 Sony Corporation Dispositif, procédé et programme de traitement d'informations
JP5104760B2 (ja) * 2006-09-29 2012-12-19 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP2008177694A (ja) * 2007-01-16 2008-07-31 Oki Electric Ind Co Ltd コールセンタ装置
JP2012512561A (ja) * 2008-12-15 2012-05-31 マイクロソフト コーポレーション ビデオ会議レートマッチング
JP2011119971A (ja) * 2009-12-03 2011-06-16 Mitsubishi Electric Corp コンテンツ再生装置及び方法
US8947492B2 (en) 2010-06-18 2015-02-03 Microsoft Corporation Combining multiple bit rate and scalable video coding
WO2017056632A1 (ja) * 2015-09-30 2017-04-06 ソニー株式会社 情報処理装置及び情報処理方法
CN108141565A (zh) * 2015-09-30 2018-06-08 索尼公司 信息处理设备及信息处理方法
US10771739B2 (en) 2015-09-30 2020-09-08 Sony Corporation Information processing device and information processing method

Also Published As

Publication number Publication date
EP0901285A4 (en) 2002-05-29
EP0901285A1 (en) 1999-03-10
JP3393143B2 (ja) 2003-04-07

Similar Documents

Publication Publication Date Title
WO1998038798A1 (en) Device, system, and method for distributing video data
JP4313268B2 (ja) ビデオをオン・デマンドでレンダリングするvcrに似た機能
US5987501A (en) Multimedia system having server for retrieving media data as indicated in the list provided by a client computer
JP2007057767A (ja) コンテンツ受信装置およびコンテンツ受信方法
US20090252176A1 (en) Gateway Device
US20070217759A1 (en) Reverse Playback of Video Data
JP2007529121A (ja) ストリーミングメディアの疎(sparse)キャッシング
WO2008148268A1 (fr) Procédé et système de mise en place d'un mode de lecture de découpage de trame de multimédia à la demande dans un réseau poste à poste
JP2008262686A (ja) 同報通信データを記録するための方法、および、装置
CN100499805C (zh) 一种基于光场渲染的自由视点视频在ip网传输方法
US20100166387A1 (en) Method and apparatus for playing video data of high bit rate format by a player capable of playing video data of low bit rate format
TW201018238A (en) Video recording playback apparatus and file managing method
JP2005217791A (ja) 画像表示方法及び画像表示装置並びに画像表示プログラム
JP2006314075A (ja) コンテンツ共有装置及びコンテンツ共有方法
US10965731B2 (en) Transfer device, client apparatus, server apparatus, reproduction apparatus and transfer method
JP4294933B2 (ja) マルチメディアコンテンツ編集装置およびマルチメディアコンテンツ再生装置
TW201806380A (zh) 動畫分割裝置及監視方法
WO2012146098A1 (zh) 一种流媒体存储、播放方法及相应系统
JP2003111048A (ja) コンテンツ再生のためのサーバ及びプログラム
CN104618673A (zh) 一种基于nvr的多路录像同步回放控制方法和装置
JP4165134B2 (ja) 情報再生装置、情報再生方法および情報再生システム
JP2000083192A (ja) 番組制作・送出システム
JP2007086484A (ja) コンテンツ配信システム及びコンテンツ配信方法並びにそれに用いる配信装置、端末装置及びそのプログラム
JP3809813B2 (ja) コンテンツ配信方法およびこれを用いるコンテンツ配信システム
JP4213697B2 (ja) 動画ストリームの画像再生装置及び方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 1997905407

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09155796

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1997905407

Country of ref document: EP