Intermediate storage of packetized real-time data and conversion from variable to fixed data rate

Abstract: A method of storing data comprises the steps of: storing at least a set of coded real-time data having packets respectively having variable coding data rates per a predetermined interval in a data memory; detecting a maximum among the variable coding data rates; storing data of the maximum in a control data memory; selectively reading at least the set of coded real-time data in response to a demand; adding dummy data to read at least the set of coded real-time data such that the resultant data has a fixed data rate equal to or more than the data of maximum from the control data memory per the predetermined interval; and outputting the resultant data. A data storing apparatus embodying the method mentioned above is also disclosed. The data storing apparatus may further comprise a receiving circuit for receiving coded data output demanding data including a desired data rate and for supplying the desired data rate to the adding circuit. The adding circuit receives and uses the desired data rate as the fixed data rate.

Description: This invention relates to a method of storing data and a data storing apparatus. A prior art method of storing data is known which comprises steps of storing a plurality of sets of real-time data including a moving picture and its accompanied sound data and selectively reading and outputting one of sets of real-time data as necessary. For example, the video server in the VIDEO·ON·DEMAND (VOD) system employs such a method. The video server in the VOD system, in response to a demand from a terminal coupled to the video server, reads a set of real-time data stored in a memory and transmits it to the terminal. The terminal reproduces the set of the received real-time data and outputs it on a display monitor and a speaker. Generally, the amount of the real-time data including data of moving pictures and the accompanied sound data is extremely large. Therefore, the real-time data is compression-coded and stored in a memory and then, the coded data is transmitted to a terminal. The terminal decodes the compression-coded real-time data and reproduces the real-time data. The compression-coding reduces the redundancy of a moving picture in the spatial directions and in the time domain and redundancy of a sound signal in the time domain. That is, a moving picture signal is subjected to a combination of the motion compensated predictive coding and orthogonal conversion coding to reduce the redundancy. The sound signal is subjected to the prediction coding, for example, to reduce the redundancy. In the compression coding, the redundancy varies in accordance with a complexity of an image of a moving picture or a tone of a sound and degrees of variations of the image and the sound. Therefore, if the real-time data compression-coded is transmitted to a transmission line having a fixed transmission data rate, it is necessary to control to make the coding data rate equal to the transmission rate of the transmission line. Therefore, a portion of the compression-coded real-time data having a coded data rate lower than the transmission data rate due to high redundancy, is made to have a higher coded data rate by adding dummy data for example. Thus, the coded data rate is made constant, so that the real-time data compression-coded can be transmitted through the transmission line having a fixed transmission data rate. Proc. SPIE, Vol. 2417, 6. Feb. 1995, pp. 167-176 disclose a resource reservation system in which problems occurring with multimedia file servers are addressed, with particular refrence to variable bit rates. EP-A-0 633 694 discloses a video-on-demand system wherein packet filler bits are used to assure a constant bit transmission rate. The aim of the present invention is to provide an improved method of storing data and an improved data storing apparatus. According to this invention, a method of storing data is provided which comprises the steps of: storing at least a set of coded real-time data having packets respectively having variable coded data rates per a predetermined interval in a data memory; detecting the maximum among the variable coded data rates; storing data about the maximum in a control data memory; selectively reading at least the set of coded real-time data stored in said data memory in response to a demand; adding dummy data to the read set of coded real-time data such that each packet of the resultant data has a fixed data rate per the predetermined interval equal to or higher than said maximum defined by the data about said maximum from the control data memory; and outputting the resultant data. According to this invention, a data storing apparatus is provided which comprises: a data memory for storing at least a set of coded real-time data having packets respectively having variable coded data rates per a predetermined interval; a detecting portion for detecting the maximum among the variable coded data rates; a control data memory for storing data about the maximum; a reading circuit for selectively reading at least the set of coded real-time data from said data memory in response to a demand; and a dummy data adding circuit for adding dummy data to the read set of coded real-time data such that each packet of the resultant data has a fixed data rate per the predetermined interval equal to or higher than said maximum defined by the data about said maximum from the control data memory and for outputting the resultant data. The data storing apparatus may further comprise: a receiving circuit for receiving coded data output demanding data including a desired data rate and for supplying the desired data rate to the dummy data adding circuit. The dummy data adding circuit receives the desired data rate and uses it as the fixed data rate. The object and features of the present invention will become more readily apparent from the following detailed description taken in conjunction with the accompanying drawings in which: Fig. 1 is a block diagram of a data storing apparatus of an embodiment; Fig. 2A is an illustration of this embodiment showing the coded data outputted from the coder shown in Fig. 1; and Figs. 2B and 2C are illustrations of this embodiment showing data formats of the output of the dummy data adding circuit shown in Fig. 1. The same or corresponding elements or parts are designated with like references throughout the drawings. Hereinbelow will be described an embodiment of this invention. Fig. 1 is a block diagram of a data storing apparatus of this embodiment. Real-time data, such as a moving picture video data and a sound signal, is supplied to a coder 1 through an input terminal 11. The coder 1 codes the real-time data with its coding data rate varied such that a train of the coded data is sectioned into packets and supplies the coded data to a data memory 2. The coder 1 also detects the amount of coded data in each packet and the maximum of the amounts of coded data among a series of packets, that is, a program of the real-time data, and supplies data about the amounts of respective packets and data about the maximum to a control data memory 4. The coded data from the coder 1 is stored in the data memory 2 under control of a writing control circuit 3. The data about the amounts of packets is supplied to a writing control circuit 3 via the control data memory 4. The writting control circuit 3 controls the storing of the coded data in the data memory 2, generates data about the occupied storage area of the data memory 2, and stores the data about the occupied storage area of the data memory 2 in the control data memory 4. The data about the maximum amount of the coded data is stored in the control data memory 4 also to control addition of dummy data mentioned later. The coded data is selectively read, that is, for example, a program of coded data is selected and read, under control by a reading control circuit 5 in response to a coded data output demanding data inputted through an input terminal 12 from a terminal (not shown) coupled to this data storing apparatus through a transmission line (not shown) for example. The read coded data is supplied to a dummy data adding circuit 6. The dummy data adding circuit 6 outputs the coded data at a terminal 13 with dummy data added as necessary. The reading control circuit 5 controls reading the data memory 2 in response to the coded data output demand using the data of the stored area in the control data memory 2 and controls the dummy data adding circuit 6 with reference to the data about the maximum amount of a series (a program) of packets. As mentioned, the writing control circuit 3 and the control data memory 4 communicate with each other and the reading control circuit 5 also communicates with the control data memory 4. The coder 1 effects the compression-coding to the inputted real-time data including video data of a moving picture and the accompanied sound data. The video data is coded through a combination of a motion compensation prediction coding and an orthogonal conversion coding and the sound data is coded by a prediction coding for example. That is, other compression coding methods can be used also. The video data and the sound data are coded at a coded data rate equal to or less than an upper limit coding rate. That is, there is a possibility that the coded data rate of the video data and the sound data occasionally exceeds the upper limit coded data rate. Therefore, the coded data rate is controlled to be lower than the upper limit coding data rate. That is, during coding, quantizing prediction errors is made coarse. However, a packet of the video data and the sound data having a coded data rate lower than the upper limit coded data rate is outputted as it is, that is, without addition of the dummy data. Fig. 2A is an illustration of this embodiment showing the coded data outputted from the coder 1. The coded data is successively packetted (Packet (n)) by adding a header (HD) every predetermined interval t. Data D(n) of each of packets includes a plurality of sub-packets (m) having a fixed data length including identification data and data about the efficient data length. Since the complexity and degree of variation of a moving picture or the sound successively vary, the size of the packet generated every predetermined time interval t by the coder 1 varies. The writing control circuit 3 controls successively writing the coded data from the coder 1 in the data memory 2. The writing control circuit 3 manages the storage area to be written in accordance with the data about the occupied storage area of the data memory 2 which data is stored in the control data memory 4 and renews data about the occupied storage area after or before writing data into data memory 2. The coder 1 detects the maximum of the data amounts of a series of packets (n) during the coding and stores data about the maximum (Dmax) in the control data memory 4 after the coding. Detecting the maximum of the amounts of data (maximum coded data rate) can be replaced by storing an upper limit coded data rate in the control data memory 4. The coded data stored in the data memory 2 is read when the coded data output demanding data (a) from the terminal 12 has been detected and judged by the reading control circuit 5. The coded data output demanding data (a) includes selection data (a1) for selecting one of sets of coded real-time data, i.e., a program of coded real-time data, in the data memory 2 and occasionally includes data (a2) about the desired output data rate. The reading control circuit 5 reads the data about the maximum amount (Dmax) of the packets from the control data memory 4. Then, the reading control circuit 5 makes a decision as to whether or not there is the data (a2) about the desired output data rate in the coded data output demanding data (a). If there is no data (a2) about the desired output data rate, the reading control circuit 5 judges that outputting the coded data is possible and outputs at a terminal 14 response data indicative of the possibility of transmitting the coded data. If there is the data (a2) about the desired output data rate in the coded data output demanding data (a), the reading control circuit 5 compares a maximum data rate corresponding to the data about the maximum amount (Dmax) with the data (a2) about the desired output data rate : If the desired output data rate is equal to or higher than the maximum data rate indicated by the data about the maximum amount (Dmax), the reading control circuit 5 judges that it is possible to output the desired coded data and outputs at terminal 14 the response data indicative of the possibility of transmitting the coded data. If the data desired output data rate is smaller than the maximum data rate indicated by the data about the maximum amount (Dmax), the reading control circuit 5 judges that it is impossible to output the desired coded data and outputs at the terminal 14 the response data indicative of impossibility of transmitting the coded data. When the data (a2) about the desired output data rate is not supplied to the reading control circuit 5, the reading control circuit 5 outputs the data about the maximum amount (Dmax) as output data rate. When the desired output data rate is equal to or higher than the maximum data rate, the reading control circuit 5 outputs the data (a2) about the desired output data rate to the dummy data adding circuit 6 as the output data rate data. The reading control circuit 5 controls successively reading the coded data stored in the data memory 2 in response to the coded data output demanding data and in accordance with the data about the occupied storage area stored in the control data memory 4 and controls supplying the read coded data to the dummy data adding circuit 6. The dummy data adding circuit 6 determines an amount of dummy data to be added to the amount of data of each of the packets from the amount data of each respective packet from the control data memory 4 and from the output data rate data, adds the dummy data to the coded data and outputs the coded data with the dummy data added to have the output data rate. That is, the dummy data adding circuit 6 adds dummy data to the coded data such that the coded data rate per the predetermined interval t is made larger than a fixed data rate corresponding to the desired output data rate that is equal to or higher than the maximum coded data rate. The dummy data is added with an indication of them being dummy data in the identification data of the respective fixed length sub-packets. Adding the dummy data will now be described more specifically. Figs. 2B and 2C are illustrations of this embodiment showing data formats of the output of the dummy data adding circuit. As shown in Fig. 2B, the dummy data is added to end portions of respective packets. On the other hand, the dummy data may be added between sub-packets as shown in Fig. 2C. In this case, the dummy data is added uniformly, so that the decoding operation may be carried out favorably. In this embodiment the data memory 2 and the control data memory 4 are independently provided. However, one memory can be used as these memories 2 and 4 with respective divided storing areas. The data storing apparatus may receive the data of desired output data rate in the coded data output demanding data and supplies the data about the desired output data rate to the dummy data adding circuit 6. The dummy data adding circuit 6 receives and uses the desired data rate as the fixed data rate. As mentioned, in the data storing apparatus according to this invention, at least a series of the coded real-time data packets having a variable data rate per the predetermined interval t is stored in the data memory and subject to addition of the dummy data to provide a fixed output data rate throughout the series of real-time data after selectively reading the coded real-timed data, so that capacity of the data memory 2 is saved because the dummy data is not stored in the data memory.

Claims: A method of storing data comprising the steps of: storing at least a set of coded real-time data having packets respectively having variable coded data rates per a predetermined interval in a data memory (2); detecting (1) the maximum (Dmax) among said variable coded data rates; storing data about said maximum in a control data memory (4); selectively reading at least said set of coded real-time data stored in said data memory in response to a demand; adding (6) dummy data to the read set of coded real-time data such that each packet of the resultant data has a fixed data rate per said predetermined interval equal to or higher than said maximum defined by said data about said maximum from said control data memory; and outputting the resultant data. A data storing apparatus comprising: data storing means (2) for storing at least a set of coded real-time data having packets respectively having variable coded data rates per a predetermined interval; detecting means (1) for detecting the maximum (Dmax) among said variable coded data rates; control data storing means (4) for storing data about said maximum; reading means (5) for selectively reading at least said set of coded real-time data from said data storing means (2) in response to a demand; and adding means (6) for adding dummy data to the read set of coded real-time data such that each packet of the resultant data has a fixed data rate per said predetermined interval equal to or higher than said maximum defined by said data about said maximum from said control data memory and for outputting the resultant data. A data storing apparatus as claimed in claim 2, further comprising: receiving means (12, 5) for receiving coded data output demanding data including a desired data rate and for supplying said desired data rate to said adding means, said adding means receiving said desired data rate and using it as said fixed data rate.

Inventors: ANDO ICHIRO, MATSUZAWA MASATO, ANDO, ICHIRO, MATSUZAWA, MASATO
Applicants: VICTOR COMPANY OF JAPAN, VICTOR COMPANY OF JAPAN, LIMITED
Application year: 1996
Main classification: H04N7
IPC codes: H04N7, H04N5, H03M7