System for coding and displaying a plurality of pictures
Abstract
A method and system for displaying a plurality of specified ones of pictures in an array of windows provided on a display screen of a computer based system. The size of moving and/or still pictures is reduced into size-reduced pictures with a size of the frames. The size-reduced pictures are coded into coded size-reduced pictures and stored in a hard disc. In response to a predetermined signal and a list of pictures to be displayed, a display frame is compiled from the coded size-reduced pictures specified by said list. The compiled frame is decoded and displayed.

Term
Term ended
Projected expiry passed 3 November 2018, 7.9 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
26 claims: 7 independent, 19 dependent
- 1A method of displaying a plurality of specified ones of pictures in an array of windows provided on a display screen of a computer based system, the method comprising the steps of:reducing in size said pictures into size-reduced pictures with a size of said windows;coding said size-reduced pictures into coded size-reduced pictures;storing said coded size-reduced pictures in a mass storage device;in response to a predetermined signal and a list of said specified pictures, compiling a frame comprising coded size-reduced pictures for said specified pictures;and decoding said compiled frame for display.
- 9A method of displaying a plurality of specified ones of videos (or moving pictures) in an array of windows provided on a display screen of a computer based system, the method comprising the steps of:reducing in size said videos into size-reduced videos with a size of said windows;coding said size-reduced videos into coded size-reduced videos each comprising N slices;generating and storing slice information which associates each of said coded size-reduced videos with a length and a distance from the beginning of said each coded size-reduced video;multiplexing said coded size-reduced videos and said slice information into a series of packs each comprising a video data part and a slice information part, said video data part comprising a first header including a first ID code and a predetermined number of frames of said each coded size-reduced video, said slice information part comprising a second header including a second ID code and slice information for said predetermined number of frames;in response to a predetermined signal and a list of said specified videos, for each of said coded size-reduced videos, reading N said slices from said series of packs by using said slice information to compile a series of frames, each of said frames comprising coded size-reduced frames derived from respective specified videos;and decoding said series of compiled frames for display.
- 12A system of displaying a plurality of specified ones of pictures in an array of windows provided on a display screen of a computer based system, the system comprising:means for reducing in size said pictures into size-reduced pictures with a size of said windows;means for coding said size-reduced pictures into coded size-reduced pictures;means for storing said coded size-reduced pictures in a mass storage device;means, responsive to a predetermined signal and a list of said specified pictures, for compiling a frame comprising coded size-reduced pictures for said specified pictures;and means for decoding said compiled frame for display.
- 20A system of displaying a plurality of specified ones of videos (or moving pictures) in an array of windows provided on a display screen of a computer based system, the system comprising:means for reducing in size said videos into size-reduced videos with a size of said windows;means for coding said size-reduced videos into coded size-reduced videos each comprising N slices;means for generating and storing slice information which associates each of said coded size-reduced videos with a length and a distance from the beginning of said each coded size-reduced video;means for multiplexing said coded size-reduced videos and said slice information into a series of packs each comprising a video data part and a slice information part, said video data part comprising a first header including a first ID code and a predetermined number of frames of said each coded size-reduced video, said slice information part comprising a second header including a second ID code and slice information for said predetermined number of frames;means, responsive to a predetermined signal and a list of said specified videos and operative for each of said coded size-reduced videos, for reading N said slices from said series of packs by using said slice information to compile a series of frames, each of said frames comprising coded size-reduced frames derived from respective specified videos;and means for decoding said series of compiled frames for display.
- 24A server that enables a client terminal to display a plurality of specified ones of pictures in an array of windows provided on a display screen of said client terminal, the server comprising:means for reducing in size said pictures into size-reduced pictures with a size of said windows;means for coding said size-reduced pictures into coded size-reduced pictures;means for storing said coded size-reduced pictures in a mass storage device;means, responsive to a predetermined signal and a list of said specified pictures, for compiling a frame comprising coded size-reduced pictures for said specified pictures;and means for transmitting said compiled frame to said client terminal.
- 25A video database server that enables a client terminal to display a plurality of retrieved ones of stored videos in an array of windows provided on a display screen of the client terminal, the server comprising:means for reducing in size said pictures into size-reduced pictures with a size of said windows;means for coding said size-reduced pictures into coded size-reduced pictures;means for storing said coded size-reduced pictures in a mass storage device;means, responsive to a reception of a request from a requesting client terminal, for providing a predetermined signal and a list of retrieved pictures;means, responsive to said predetermined signal and said list of retrieved pictures, for compiling a frame comprising coded size-reduced pictures for said retrieved pictures in said list;and means for transmitting said compiled frame to said requesting client terminal.
- 26A remote monitoring system comprising:a plurality of remote terminals;and a center device for collecting video data from said remote terminals and display said collected videos in an array of windows provided on a display screen, wherein each remote terminal comprises: a video camera for providing a shot video;means for reducing in size said video into size-reduced video with a size of said windows;means for coding said size-reduced video into coded size-reduced video;and means for communicating said coded size-reduced video to said center device, and wherein said center device comprises: means for receiving said coded size-reduced video from each remote terminal means for compiling a frame comprising said received coded size-reduced videos from said remote terminals;and means for decoding said compiled frame for display.
Independent claims7
71 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
0001The invention relates to a method and system for displaying an array of reduced-size pictures in a frame and to apparatuses incorporating the same such as a video editing apparatus, a movie or image data base system, a video monitoring apparatus, etc. The displayed pictures may be still pictures, frames of different videos and/or different frames of a single video (A video means a series of moving pictures).
2. Description of the Prior Art
0002There are a variety of systems that need to display a plurality of pictures at a time. Japanese unexamined patent publication No. Hei5-19731 issued January 29, 1993 discloses a moving picture image display device. In this device, each of the video is encoded in a predetermined format and stored in a hard disc in advance. Displaying a plurality of moving pictures at a time is achieved by decoding only intra-coded frames of desired moving, reducing the size of the decoded frames into an appropriate size, and displaying the reduced-size frames at a time as a single moving picture. The intra-coded frames used for display are frames which have been coded as a still picture by means of DCT (discrete cosine transform) and accordingly can be decoded alone without a need of referring to other frame(s).
0003However, since each of the frames to be displayed has to be decoded in this scheme, if a larger number of frames are to be displayed at a time, the scheme requires more decoders or a faster decoder. Also, it takes a significant time to display a plurality of pictures because the operations of reduction and decoding are performed each time of display.
0004It is therefore an object of the invention to provide a system and method for displaying an array of desired pictures from available moving and/or still pictures at a time with a single decoder by reducing the size of the available moving and/or still pictures before encoding them.
SUMMARY OF THE INVENTION
0005According to the invention, a method of displaying a plurality of specified ones of pictures in an array of windows provided on a display screen of a computer based system is provided. The method comprises the steps of reducing in size the pictures into size-reduced pictures with a size of the frames; coding the size-reduced pictures into coded size-reduced pictures; storing the coded size-reduced pictures in a mass storage device; in response to a predetermined signal and a list of pictures to be displayed, compiling a frame comprising coded size-reduced pictures specified by the list; decoding the compiled frame for display.
BRIEF DESCRIPTION OF THE DRAWING
0006Further objects and advantages of the present invention will be apparent from the following description of the preferred embodiments of the invention as illustrated in the accompanying drawing, in which: <ul id="ul0001" list-style="none" compact="compact"><li>FIG. 1 is a flow chart showing a basic concept of a method for displaying a plurality of videos or moving pictures at a tune in accordance with the principles of the invention;</li><li>FIG. 2 is a schematic block diagram showing a client-server video (moving picture) data base system that incorporates an illustrative embodiment of the invention;</li><li>FIG. 3 is a diagram showing exemplary contents of the hard disc of FIG 2;</li><li>FIG. 4 is a diagram showing how a coding operation causes the fixed-length slices of a size-reduced video to become variable in length;</li><li>FIG. 5 is a diagram showing the way in which a coded size-reduced video is stored in the hard disc 104;</li><li>FIG. 6 is a diagram showing how desired size-reduced pictures are displayed in an array of windows;</li><li>FIG. 7 is a diagram showing an exemplary output video map in case of the size-reduced videos to be displayed being arranged as shown in FIG. 6;</li><li>FIG. 8 is a diagram showing another exemplary output video map in case of the size-reduced videos to be displayed being arranged sequentially in windows (1, 1), (2, 1),..., (X, 1), (1,2) and so on;</li><li>FIG. 9 is a diagram showing a temporal correlation between the compiled frames Fk (k = 1, 2,...) and the frames F<sub>i,j</sub> (j = 1, 2,...) of a video with a higher frame rate Ri;</li><li>FIG. 10 is a diagram showing a temporal correlation between the compiled frames Fk (k = 1, 2,...) and the frames F<sub>i,j</sub> (j = 1, 2,...) of a video with a lower frame rate Ri;</li><li>FIG. 11 is a flow chart showing an exemplary operation of displaying a plurality of videos of various frame rates at a time in accordance with the principles of the invention.</li><li>FIG. 12 is a diagram showing an exemplary operation of displaying a plurality of videos including a video to be displayed only for frame numbers 100 through 299;</li><li>FIG. 13 is a diagram showing an exemplary structure of a preferable output video;</li><li>FIG. 14 is a flow chart showing an exemplary operation in which the frame compiler logic 109 compiles a display frame Fk from the selected frames F<sub>1,j</sub>, F<sub>2,j</sub>,... .F<sub>vj</sub> in response to the direction from the controller 113;</li><li>FIG. 15 is a schematic block diagram showing a video decoder used in a video DB server in accordance with a second embodiment of the invention;</li><li>FIG. 16 is an example of a slice information table 180 generated by the slice INFO generator 169 at the time of encoding the size-reduced video Pi;</li><li>FIG. 17 is a diagram showing an example of a multiplexed coded size-reduced video data stream generated by the video encoder of FIG. 15;</li><li>FIG. 18 is a diagram showing how the multiplexed coded size-reduced video data is distributed to and stored in a plurality of hard discs;</li><li>FIG. 19 is a schematic block diagram showing a stand-alone system that incorporates an illustrative embodiment of the invention; and</li><li>FIG. 20 is a schematic block diagram showing a remote monitoring system 3 that incorporates a third illustrative embodiment of the invention.</li></ul>
0007Throughout the drawing, the same elements when shown in more than one figure are designated by the same reference numerals.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
0008FIG. 2 is a schematic block diagram showing a client-server video (moving picture) data base (DB) system 1 that incorporates an illustrative embodiment of the invention. The video data base system comprises: <ul id="ul0002" list-style="none" compact="compact"><li>a video database server 10 which collects and manages a variety of videos;</li><li>a plurality of client terminals 20 which permit the users to retrieve desired videos from the video data base server 10; and</li><li>a transmission network 30 through which the video data abase server 10 and the client terminals 20 communicates with each other.</li></ul>
0009The transmission network 30 may be a LAN (local-area network) comprising a high-speed data transmission system such as an Ethernet (the IEEE 802.3 standard), a token-ring network, etc or a WAN (wide-area network) that enables communications in a relatively large geographical area through telephone lines or radio waves.
0010In order to take in video data, the video DB server 10 at least comprises either a video interface (IF) 101 for taking in video pixel data or a combination of a video taking-in device 102 such as an optical disc drive for replaying an optical disc to taking in coded video data and a video decoder 103 for decoding the taken-in coded video data into video pixel data. It is assumed that the server 10 has both of them. The server 10 further comprises: <ul id="ul0003" list-style="none" compact="compact"><li>a hard disc 104 for storing various programs and data including coded videos;</li><li>a picture size reducing logic 105 for reducing the size of the video pixel data from the video decoder 103 or the video interface 101 into an appropriate size, i.e., an X-th in width and a Y-th in height, respectively, where M and N are appropriate natural numbers;</li><li>a video encoder 107 for encoding the size-reduced video data from the picture size reducing logic 105 into a coded size-reduced video for display, which is then stored in the hard disc 103, and for encoding-the video pixel data from the video IF 101 into a full size coded video for offering as actual video data in response to a final or formal request from a client 20, which video is then stored in the hard disc 104;</li><li>a frame compiler 109 for compiling a frame comprising an array of coded videos from desired ones of the coded size-reduced videos stored in the hard disc 104;</li><li>a communication interface 111 for receiving service requests from the clients 20 and for transmitting the compiled frame of coded size-reduced videos and a formally requested full-size coded video to the clients 20 through the transmission network 30;</li><li>a controller 113 for controlling the whole video DB server 10; and</li><li>a system bus 117 for interconnecting the above mentioned elements.</li></ul> The controller 113 comprises a not-shown CPU (central processing unit), a not-shown read only memory and RAM (random access memory) 115 as is well known in the art. It is noted that if the server 10 is provided with the video IF 101, then the video encoder 107 is so arranged as to be available for both of a size-reduced video and a full size video.
0011The client terminal 20 comprises: <ul id="ul0004" list-style="none" compact="compact"><li>a communication interface (IF) 121 for communicating with the video DB server 10;</li><li>a video decoder 123 for decoding a received frame of coded size-reduced videos from the communication IF 121 into a frame of digital video data;</li><li>a digital-to-analog converter (DAC) 125 for converting the frame of digital video data into a frame of analog video data;</li><li>an NTSC/PAL (National Television Standard Committee/Phase Alternation by Line) encoder 127 for encoding the frame of analog video data into an NTSC or PAL format;</li><li>a controller 135 for controlling the operation of the video decoder 123;</li><li>a user interface 129 for providing the controller 135 with an interface with the user;</li><li>a display device 131 connected with the user IF 129 for displaying the frame of size-reduced videos; and</li><li>input devices 133 such as a keyboard, a mouse, etc. The controller 135 comprises a not-shown CPU (central processing unit), a not-shown read only memory and a not-shown random access memory as is well known in the art.</li></ul>
0012FIG. 3 shows exemplary contents of the hard disc 104 of FIG. 2. In FIG. 3, single line boxes indicate programs, and shaded boxes indicate data. The hard disc 104 stores: <ul id="ul0005" list-style="none" compact="compact"><li>an operating system 141;</li><li>taking-in programs 143 for taking in the coded video data and the video pixel data through the taking-in device 102 and the video IF 101, respectively;</li><li>full-size encoded videos 151 which have been taken in through the video taking-in device 102 or through the video IF 101 and the video encoder 107;</li><li>coded size-reduced videos 153 or reduced-size versions of the encoded videos 151 which have been taken from the video encoder 107;</li><li>a video information DB (data base) 155 comprising information on the videos 151;</li><li>a DBMS (data base management system) 145 for managing the video information DB 155; and</li><li>a DB service program or main program 147 for receiving a service request from one of the clients 20 and offering information obtained with a help of the DBMS 155 to the requesting client 20.</li></ul>
0013The jobs of the video DB server 10 are roughly classified into two categories, i.e., a collection and maintenance of videos and a retrieval service of the collected videos for the clients 20, which involve a preprocess for preparing a coded size-reduced version of a taken-in full-size video and a compile process for compiling a frame of coded video data from coded size-reduced versions of retrieved videos from the viewpoint of the invention. So, we discuss the video taking-in operation and the retrieval service operation centering on the preprocess and the compile process in the following.
0014If a video to be taken in is a coded one, the coded video is taken in via video taking-in device 102 and stored in hard disc as a full size encoded video 151 In order to reduce the size of the taken-in coded video, the taken-in coded video is once decoded by the video decoder 103 into a frame of digital video data and then passed to the picture size reducing logic 105.
0015If a video to be taken in is in a YIQ format (which is a combination of a luminance (Y) signal and two weighted color-difference signals I and Q (in-phase and quadrature)) such as NTSC or PAL, the YIQ format video is converted by the video IF 101 into a frame of digital video data, and then passed not only to the picture size reducing logic 105 but also to the video encoder 107. The frame of digital video data from the video IF 101 is encoded by the video encoder 107 into a encoded video, which is then stored in the hard disc 104 as a full size encoded video 151.
0016The picture size reducing logic 105 reduces the size of the frame of the digital video data into one X * Y-th of the frame, i.e., into an X-th in width and a Y-th in height, of the frame. It is assumed that retrieved videos are displayed as an array of X-by-Y sized-reduced pictures on the display device 131 of the client 20.
0017The size-reduced video is then encoded by the video encoder 107 and stored in the hard disc 104 as a coded size-reduced video 153.
0018In the video encoder 107, the input size-reduced video is temporarily stored in a buffer memory 108. If a full size frame can be divided into M' * N' macroblocks (M' slices),the size-reduced video stored in the buffer 108 is divided into M * N macroblocks as shown in FIG. 4, where <maths id="math0001"><math display="inline"><mrow><mtext>M = M'/X</mtext></mrow></math><img file="EP0915622A2_D0001.tif" /></maths> and <maths id="math0002"><math display="inline"><mrow><mtext>N = N'/Y</mtext></mrow></math><img file="EP0915622A2_D0002.tif" /></maths>. If a full size frame comprises 40 * 32 macroblocks (32 slices) for example and if retrieved videos are to be displayed in an array of 8-by-8 sized-reduced pictures, then each frame of the size-reduced pictures is divided into 5(= 40/8) * 4(= 32/8) macroblocks (4 slices). Each of the macroblock comprises 2 by 2 blocks, each of which comprises 8 by 8 pixels.
0019The video encoder 107 performs a well-known encoding operation on each block of each of the macroblocks. Since a variable length coding is performed at the end of the encoding operation, the lengths of blocks are variable, and accordingly the lengths of slices are also variable.
0020For this reason, each of the coded size-reduced videos 153 is stored in a format as shown in FIG. 5 in this specific embodiment. Specifically, assuming that each coded size-reduced video 153 comprises frames {F<sub>j</sub>: j = 1, 2,...}, each frame F<sub>j</sub> comprises slices {S<sub>j,k</sub>: k =1, 2,... N} and the length of each slice S<sub>j,k</sub>, is denoted by a fixed-length length code L<sub>j,k</sub> (bytes), then the slices of each coded size-reduced video, S<sub>1,1</sub>, S<sub>1,2</sub>,..., S<sub>1,N</sub>, S<sub>2,1</sub>, S<sub>2,2</sub>... are stored each headed by a fixed-length length code L<sub>j,k</sub>. Doing this enables an efficient read out of slice data from each coded size-reduced video file 153. Thus, the coded size-reduced videos are prepared for multiple display at a time.
0021If the video DB server 10 receives a video retrieval request with a query expression, then the server 10 passes the query expression to the DBMS. In response to a reception of a list of retrieved video IDs, the server 10 compiles a frame of coded videos from the coded size-reduced videos identified by the retrieved video IDs. The compiling process will be described in the following.
0022FIG. 6 is a diagram showing how desired size-reduced pictures are displayed in an array of windows. As shown in FIG. 6, the display screen is divided into X*Y windows {W<sub>x,y</sub>: x = 1, 2,...X and y = 1, 2,... Y}. Each of the rows of windows comprises N slices (N is the number of slices that constitute a size-reduced video). Assuming that the IDs of the coded size-reduced videos to be displayed is given as {Pi: i = 1, 2,... .,V and V ≦ X*Y}, the controller 113 first assigns the videos P1, P2,... .PV to desired respective windows as shown in FIG. 6. The assignment of the videos P1, P2,... .PV may done in any geometric pattern. Then, the controller 113 generates an output (or display) video map according to the assignment. FIG. 7 shows an exemplary output video map in case of the videos to be displayed, P1, P2,... .PV, being arranged as shown in FIG. 6; and FIG. 8 shows another exemplary output video map in case of the videos P1, P2,... .PV being arranged sequentially in windows (1, 1), (2, 1),..., (X, 1), (1, 2) and so on.
0023On the other hand, each video Pi comprises frames {F<sub>i,j</sub>: j = 1, 2,.3... ..}. After deciding the correspondence between each coded size-reduced video Pi and the window (x, y) where the video Pi is to be displayed, the controller 113 directs the frame compiler logic 109 to begin compiling a frame.
0024It is assumed that the frame rates of the displayed videos P1, P2,... PV are R1, R2, ...RV (frames/sec), the frame compiler logic 109 compiles frames {Fk: k = 1, 2, 3... ..} at a rate of R frames/sec. The frame rate of the compiled frames, R, is preferably in the range from the minimum rate to the maximum rate of the videos P1, P2,...PV. In compiling each frame, the frame compiler logic 109 selects suitable frames Fi,j from the videos P1, P2,... PV in the following manner.
0025FIG. 9 is a diagram showing a temporal correlation between the compiled frames Fk (k = 1, 2,...) and the frames F<sub>i,j</sub> (j = 1, 2,...) of a video with a higher frame rate Ri. In FIG. 9, the frame number of the video Pi which is to be used for the compiled frame Fk is given as the maximum integer j that satisfies the relationship:<maths id="math0003"><math display="block"><mrow><mtext>(k-1)/R = (j-1)/Ri</mtext></mrow></math><img file="EP0915622A2_D0003.tif" /></maths> Thus, <maths id="math0004"><math display="inline"><mrow><mtext>j = [(Ri/R)*(k-1)] + 1</mtext></mrow></math><img file="EP0915622A2_D0004.tif" /></maths>, where [A] indicates the maximum integer not greater than A.
0026FIG. 10 is a diagram showing a temporal correlation between the compiled frames Fk (k = 1, 2,...) and the frames F<sub>i,j</sub> (j = 1, 2,...) of a video with a lower frame rate Ri. As seen from FIG. 10, the frame number k of the compiled frame Fk and the frame number j of the video Pi which is to be used for the compiled frame Fk are integers that satisfy the following relation:<maths id="math0005"><math display="block"><mrow><mtext>(1/Ri)*(j-1) ≦ (1/R)*(k-1) < (1/Ri)*j.</mtext></mrow></math><img file="EP0915622A2_D0005.tif" /></maths> Solving this with respect to j gives<maths id="math0006"><math display="block"><mrow><mtext>(Ri/R)*(k-1) < j ≦ (Ri/R)*(k-1) + 1.</mtext></mrow></math><img file="EP0915622A2_D0006.tif" /></maths> Since a frame number j is integer, we again obtain<maths id="math0007"><math display="block"><mrow><mtext>j = [(Ri/R)*(k-1)] + 1.</mtext></mrow></math><img file="EP0915622A2_D0007.tif" /></maths>
0027Thus, the compiled frames Fk (k = 1, 2,...) can be displayed at any desired rate by selecting from the videos P1, P2,... PV frames Fi,j (I = 1, 2,... V) identified by<maths id="math0008" num="(1)"><math display="block"><mrow><mtext>j = [(Ri/R)*(k-1)] + 1</mtext></mrow></math><img file="EP0915622A2_D0008.tif" /></maths> for each frame Fk regardless of the frame rates of the videos.
0028FIG. 11 is a flow chart showing an exemplary operation of displaying a plurality of videos of various frame rates at a time in accordance with the principles of the invention. After creating the output video map, the controller 113 enters the operation of FIG. 11. In step 202, the compiled frame number k and the number "i" of a first video to be included in the frame Fk are set to 1. In step 204, set the frame number j of the video P1 according to equation (1).
0029In step 206, a test is made to see if the video is a specific one PI<sub>1</sub> that is to be displayed from a desired frame No. B1. If so, then a value (B1-1) is added to the frame number j of the video PI<sub>1</sub> in step 208. It may be desirable to display only limited frames as shown in FIG. 12. In FIG. 12, the video <maths id="math0009"><math display="inline"><mrow><msub><mrow><mtext>PI</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><mtext> = A2</mtext></mrow></math><img file="EP0915622A2_D0009.tif" /></maths> is to be displayed only from frame No. 100 through 300, while the other videos A1, B1 and B2 are to be displayed from the beginning of the videos. In case of video A2, a value (100-1) is added to the frame number j in step 208. If there is another video to be displayed from a frame other than the first frame, a pair of steps like 206 and 208 is inserted in the "NO" path from step 206 to step 210 for such video, which is repeated till all of such videos are exhausted. In order to achieve this systematically, it is preferable to add the fields of the start frame number F<sub>i,Bi</sub> and the end frame F<sub>i,Ei</sub> for display to the display video map as shown in FIG. 13 and insert a pair of steps like 206 and 208 for a video with a value in the start frame field of the output video map.
0030In step 210, a frame of thus decided frame number is selected for the video Pi. The video ID number i is incremented in step 212. A test is made in step 214 to see if the videos have been exhausted. If not, the control is returned to 204. If the test result is YES in step 214, then the controller 113 directs the frame compiler logic 109 to compile a frame Fk from the selected frames F<sub>1,j,</sub> F<sub>2,j</sub>,... .F<sub>V,j</sub> in step 216 (the compile operation by the frame compiler logic 109 will be detailed later).
0031In step 218, a test is made to see if the compiled frame number k is equal to <maths id="math0010"><math display="inline"><mrow><mtext>(E1-B1)+1</mtext></mrow></math><img file="EP0915622A2_D0010.tif" /></maths>, where E1 is a last frame number to be displayed for the specific video PI<sub>1</sub> (= A2 in this example). If so, the controller 113 deletes the ID of the video PI<sub>1</sub> from the output video map in step 220 because there is no need of displaying the video PI<sub>1</sub> any more. In case of A2 of FIG. 12, if k = (299-100)+1 = 200 in step 218, the video A2 is deleted from the output video map, which causes the frame F<sub>I1,201</sub> and the subsequent frames to be displayed no more. If there is another video to be displayed only for the frames from frame number B2 to E2, a pair of steps like 218 and 220 is inserted in the "NO" path from step 218 to step 222 for such video, which is repeated till all of such videos are exhausted. In order to achieve this systematically, it is preferable to insert a pair of steps like 218 and 220 for a video with a value in the end frame field of the output video map.
0032In step 222, the compiled frame number k is incremented. In step 224 a test is made to see if the multiple video display operation is to be continued. This test may be made in various ways, for example, by comparing the compiled frame number, the elapsed time from the beginning of the display operation, or the frame number of specific video with a preset value or by checking if a stop instruction has been issued. If not, the controller is passed to step 204. If the test result is YES in step 224, the controller 113 ends the operation. In this way, the video DB server 10 enables a plurality of videos of various frame rates to be displayed at a time at any desired speed.
0033FIG. 14 is a flow chart showing an exemplary operation in which the frame compiler logic 109 compiles a display frame Fk from the selected frames F<sub>1,j</sub>, F<sub>2,j</sub>,... .F<sub>V,j</sub> in response to the direction from the controller 113. In FIG. 13, the compiler logic 109 first sets the y coordinate of the current window to 1 in step 401, sets the slice number sin the window row for y=1 to 1 in step 402, and sets the x coordinate of the current window to 1 in step 403.
0034In step 404, the compiler logic 109 makes a test to see if any video is associated with a window (x, y) in the output video map. If so, the logic 109 output the s-th slice S<sub>i,j,s</sub> of the selected frame F<sub>i,j</sub> of the video associated with the window (x, y). Otherwise, the logic 109 outputs a predetermined code indicative of the absence of video in step 406. Referring to FIGs. 6 and 7, we Specifically discuss this matter. If (x, y) = (2, 1) in FIG. 6, since no video is associated with the window in FIG. 7 in step 404, the compiler logic 109 outputs the predetermined code. If (x, y) = (3, 1), since a video P1 is associated with the window in FIG. 7 in step 404, the compiler logic 109 outputs the first slice S<sub>1,j,1</sub> of the selected frame F<sub>1,j</sub> of the video P1 associated with the window (3, 1). In this case, the frame number j to be output is given as:<maths id="math0011"><math display="block"><mrow><mtext>j = [(R1/R)*(k-1)] + 1.</mtext></mrow></math><img file="EP0915622A2_D0011.tif" /></maths> according to equation (1). If k = 1, then j=1. That is, the logic 109 searches a P1 file for the length code of the first slice of the first frame, L<sub>1,1</sub>, and outputs the data of L<sub>1,1</sub> in length which data follows the length code L<sub>1,1.</sub>
0035In step 407, the x coordinate is incremented. In step 407, a test is made to see if x > X. If so, the logic 109 returns to step 404. Otherwise, the logic 109 proceeds to step 409, where the slice number s is incremented. In step 410, a test is made to see if s > N or if the slices in the window has been exhausted. If so, the y coordinate is incremented in step 411. Otherwise, the control is passed to step 403. In step 412, a test is made to see if y > Y. If not, the control is passed to step 402. If y > Y in step 411, then the compiler logic 109 ends the operation. In this way, a compiled frame including frames from the videos P1, P2,...PV are transmitted to the requesting client 20. Thereafter, each time the controller 113 executes the step 216 of FIG. 11 for the subsequent display frames F2, F3,... ., the compiler logic 109 executes the operation of FIG. 14.
0036In response to a reception of the compiled frame Fk, The requesting client 20 decodes, analog-to-digital converts and NTSC/PAL encodes the received compiled frame Fk with the element 123, 125 and 127 to display an array of size-reduced videos identified by the retrieved video IDs.
0037By using the output video map, the size-reduced videos may be arranged in any desired pattern on the window array shown in FIG. 6. The sizes of the displayed size-reduced videos has not necessarily to be the same. One or more videos may be doubled or tripled in horizontal and/or vertical dimension.
0038It is also noted that the displayed pictures has not necessarily to be from different videos. Instead, some or all of the displayed pictures may be from an identical video.
0039In the above-described embodiment, the coded size-reduced videos 153 are stored with the slice length code L<sub>j,s</sub> as shown in FIG. 5. Alternatively, the slices S<sub>j,s</sub> of a video Pi may be obtained referring to slice information generated by the video decoder.
Embodiment II
0040FIG. 15 is a schematic block diagram showing a video decoder 167 used in a video DB server in accordance with a second embodiment of the invention. In FIG. 15, the video encoder 167 further comprises a slice information (INFO) generator 169 through witch a desired slice S<sub>j,s</sub> of a video Pi can be obtained and a multiplexer (MUX) 171 for mutiplexing the coded sized-reduced video Pi data, corresponding slice INFO and stuffing bits as detailed later.
0041FIG. 16 is an example of a slice information table 180 generated by the slice INFO generator 169 at the time of encoding the size-reduced video Pi. Each record of the table 169 contains a frame number j 181, a slice number s 183, an offset 185 from the beginning of the Pi file 153, and a slice length L<sub>j,s</sub> 187. It is noted that the offset for the first slice (s=1) of the first frame (j=1) is not zero in value because there are various data such as headers before the first slice information. A slice INFO table 169 for a video Pi are preferably stored in association with a corresponding video file Pi, for example, by giving the same name to the table but differentiating the file name extension.
0042When a slice S<sub>j,s</sub> is to be used, the frame compiler logic 109 uses the offset 185 and the slice length 187 associated with j and s instead of using the slice length of FIG. 5.
0043In order to enable the full size encoded videos and the coded size-reduced videos to be decoded by a standard decoder such as an MPEG (Moving Picture Experts Group) decoder, it is preferable to use such a standard encoders for the encoder 167 and the same standard decoder for the decoder 103 and 123 of FIG. 2.
0044For this purpose, the multiplexer (MUX) 171 preferably generates a multiplexed data stream 180 as shown in FIG. 17. The stream 180 comprises a series of packs. In this specific example, each pack comprises a video data part 183 containing 8 frames of coded sized-reduced video data, slice table data part 184 containing slice information for the eight frames. Each pack may further includes a padding data part 185 to make the packs constant in length. It is assumed that each pack including the padding data part 187 causes the length of each pack to be L0 bytes and that the lengths of the three parts 183-185 are L1, L2 and L3, respectively.
0045The three parts 183-185 begin with 32-bit packet start codes PSC1, PSC2 and PSC3, respectively. Each packet start code comprises a 24-bit fixed value code and an 8-bit ID code for identifying the subsequent data.
0046The length L1 equals 32 bits plus the length of 8 frames of coded sized-reduced video data.<maths id="math0012"><math display="block"><mrow><mtext>L2 = (Lpi + Lsl)*N*FN + 3 bytes,</mtext></mrow></math><img file="EP0915622A2_D0012.tif" /></maths> where Lpi is a length of the position information of a slice, Lsl is a length of the slice length, N is the number of slices constituting a coded video, FN is the number of frames in a pack (8 in this example). If Lpi and Lsl are 4 bytes, then L2 = 64N + 3 bytes.<maths id="math0013"><math display="block"><mrow><mtext>L3 = L0 - (L1 + L2)</mtext></mrow></math><img file="EP0915622A2_D0013.tif" /></maths>
0047Thus, the multiplexer 171 actually outputs padding data of the length equal to L3 - 3 bytes, is., L0-(L1+L2 + 3) bytes.
0048The controller 113 and the frame compiler logic 109 uses the data following the start code PSC1 as 8 frames of coded sized-reduced video data and the data following the code PSC2 as the slice table 180 data for the 8 frames and neglects the data following the code PSC3.
0049If we assume that the multiplexed data stream 180 is an MPEG bit stream, each pack is a PMEG system pack, each video data part is a video packet. The ID code in the packet start code PSC1 can take a value E0 through EFH (H denotes a hexadecimal). The ID codes in the packet start codes PSC2 and PSC3 is preferably set to BFH to deal with the slice data part and the padding data part as Private 2 packets defined in the MPEG standard. If the multiplexer 171 is so arranged as to generate a multiplexed bit stream or Pi bit stream that includes the codes necessary as a pack header and a system header, it enables the multiplexed coded size-reduced video data stream, which include the slice table data for use in frame compiling, to be decoded by an ordinary MPEG decoder. It is also possible to arrange the multiplexed coded video bit stream such that the multiplexed coded bit stream is in an AVI (Audio Visual Interleaved) format or in a DV (DVCPRO) format.
0050A method of obtaining a frame from the Pi bit stream will be described in the following. Assume that a frame 100 (= j), i.e.,F<sub>i,100</sub>, is to be obtained.
0051Since each pack contains 8 frames, the pack number Np of the pack containing the frame j is given as:<maths id="math0014"><math display="block"><mrow><mtext>Np = 〈j/8〉</mtext><mspace linebreak="newline" /><mtext> = 13</mtext></mrow></math><img file="EP0915622A2_D0014.tif" /></maths> where 〈A〉 indicates a minimum integer not smaller than A. Thus, the frame compiler logic 109 reads L0 bytes of data following L0*(13-1) (= 12*L0) bytes that start with the beginning of the Pi bit stream 180. If we assume L0 to be 8192, then the logic 109 reads 8192 bytes of data following 106496 (= 12*8192) bytes that start with the beginning of the bit stream 180. By using slice data, any slice can be read.
Modification I
0052The above-described embodiments have used a single hard disc 104. However, the server 1- may be provided with a plurality (Nd) of hard discs 104a, e.g., 4 discs D1, D2,D3 and D4 as shown in FIG. 18. In this case, the video encoder 107 or 167 preferably stores the frames of a video Pi data in the following manner (the decimal numerals below indicate frame numbers). <dl id="dl0001" compact="compact"><dt>D1:</dt><dd>1 ,5 , 9, 13, 17,...</dd><dt>D2:</dt><dd>2, 6, 10, 14, 18,...</dd><dt>D3:</dt><dd>3, 7, 11, 15, 19,...</dd><dt>D4:</dt><dd>4, 8, 12, 16, 20,...</dd></dl> Since each pack contains eight frames, packs stored in the disc D1 comprises following frames:<img file="EP0915622A2_D0015.tif" />
0053The packs D1/1, 2, 3... are stored in the hard disc in order of D1/1, 2, 3 and so on.
0054The frame compiler logic 109 creates packs D1/1, D2/1, D3/1 and D4/1 from video data, slice information and padding data of the frame data from frames 1 to 32. The packs D1/1, D2/1, D3/1 and D4/1 are stored in respective hard discs D1, D2, D3 and D4. Packs D1/2, D2/2, D3/2 and D4/2 are created from frames 33 to 64 and stored in respective discs.
0055A read of a frame is achieved either by specifying a frame number or by specifying a pack number. If a frame number j is specified, then the hard disc D# storing the frame j is given as:<maths id="math0015"><math display="block"><mrow><mtext># = (j mod Nd)</mtext></mrow></math><img file="EP0915622A2_D0016.tif" /></maths> where # is a disc number, Nd is the number of discs (4 in this case), and (X mod Y) indicates the remainder which results from the division of j/Nd. The number of the pack containing the specified frame j is given as 〈j/(Nd*Nf)〉, where Nf is the number of frames in a pack, and 〈A〉 is a minimum integer not smaller than A.
0056Doing this causes the load involved in the access to the hard disc 104 to be distributed in a plurality of hard discs.
Modification II
0057The above-described video DB system 1 is in a client-server configuration. However, a system embodying the invention may be in a stand-alone configuration.
0058FIG. 19 is a schematic block diagram showing a stand-alone system that incorporates an illustrative embodiment of the invention. In FIG. 19, the system 2 comprises: <ul id="ul0006" list-style="none" compact="compact"><li>the above-described video taking-in device 102;</li><li>the frame compiler logic 109</li><li>a video decoder 323 for decoding the taken-in coded video data into video pixel data and for decoding a compiled frame of size-reduced videos from the frame compiler logic 109;</li><li>the hard disc 104;</li><li>the picture size reducing logic 105;</li><li>a video encoder 107a for encoding the size-reduced video data from the picture size reducing logic 105 into a coded size-reduced video for display, which is then stored in the hard disc 103;</li><li>a video output IF 330 which has functions of above-mentioned DAC 125, the NTSC/PAL encoder 127 and a display interface;</li><li>a controller 310 for controlling the entire system 2;</li><li>an input user interface 340 for providing the controller 310 with an interface with the user; and</li><li>the input devices 133.</li></ul>
0059Since the operation of the system 2 is the same as that of the system 1 except that the system 2 has no need of communication facility between the frame compiler logic 109 and the decoder 323, the description of system operation will be omitted.
Embodiment III
0060FIG. 20 is a schematic block diagram showing a remote monitoring system 3 that incorporates a third illustrative embodiment of the invention. In FIG. 20, the remote monitoring system 3 comprises a plurality of remote terminals 50 for transmitting a coded size-reduced version of video data, a center device 70 for collecting and displaying the coded size-reduced videos at a time, and transmission paths 60 for transmitting respective coded size-reduced videos.
0061Each of the remote terminal 50 comprises: <ul id="ul0007" list-style="none" compact="compact"><li>a video camera 501 for obtaining video frames;</li><li>a camera interface (IF) 503 having the input thereof connected with the camera 501;</li><li>a picture size reducing logic 505 for reducing the size of the video pixel data from the camera interface 503 into an appropriate size;</li><li>a video encoder 507 for encoding the size-reduced video data from the picture size reducing logic 505 into a coded size-reduced video for display;</li><li>a communication interface 509 for transmitting the coded size-reduced video to the center device 70; and</li><li>a controller 511 for controlling the entire terminal 50.</li></ul>
0062The center device 70 comprises: <ul id="ul0008" list-style="none" compact="compact"><li>communication interfaces 71 for communicating with the remote terminals 50;</li><li>a frame compiler 75 for compiling a frame comprising an array of coded videos from desired ones of the coded size-reduced videos;</li><li>a video decoder 77 for decoding a frame of coded size-reduced videos from the compiler 75;</li><li>a video output IF 79 for converting the decoded frame for display;</li><li>a controller 83 for controlling the operation of the video decoder 123;</li><li>a display device 81 connected with the user IF 129 for displaying the frame of size-reduced videos; and</li><li>input devices 82 such as a keyboard, a mouse, etc.</li></ul>
0063In operation of each remote terminal 50, a shot video frame is passed to the picture size reducing logic 505 via the camera IF 503. The picture size reducing logic 505 reduces the size of the video frame into a size specified the controller 511. The size-reduced picture is decoded by the video decoder 507 and transmitted to the center device 70 via corresponding transmission path.
0064In center device, the communication interfaces 71 associated with the remote terminal 50 receive the coded size-reduced pictures from respective remote terminals and passes the coded size-reduced pictures to the frame compiler logic 73, which compiles a display frame from the coded size-reduced pictures on the basis of the above-described output video map. Thereafter, the compiled frame is displayed in the same manner as in the above embodiments.
0065Many widely different embodiments of the present invention may be constructed without departing from the spirit and scope of the present invention. It should be understood that the present invention is not limited to the specific embodiments described in the specification, except as defined in the appended claims.
Contents4
32 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| USRE41939E1 | Cited by | United States of America | Applicant |
| WO03084239A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| USRE41939E | Cited by | United States of America | Applicant |
| US7170936B2 | Cited by | United States of America | Applicant |
| US6772125B2 | Cited by | United States of America | Applicant |
| WO0175884A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO0175884A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| EP0494752A1 | Cites | European Patent Office (EPO) | Search report |
| EP0534139A2 | Cites | European Patent Office (EPO) | Search report |
| EP0702491A1 | Cites | European Patent Office (EPO) | Search report |
| EP0740247A2 | Cites | European Patent Office (EPO) | Search report |
| EP0805591A2 | Cites | European Patent Office (EPO) | Search report |
| US4780709A | Cites | United States of America | Search report |
| US5414455A | Cites | United States of America | Search report |
| US5631693A | Cites | United States of America | Search report |
| US5633683A | Cites | United States of America | Search report |
11 members in 6 offices; this record represents the family
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 30148897 | Japan | – | |
| 30148897 | Japan | A | |
| 30319298 | Japan | – | |
| 30319298 | Japan | A |
Members11
| Document | Office | Kind | |
|---|---|---|---|
| CA2250445A1 | Canada | A1 | |
| EP0915622A2This record | European Patent Office (EPO) | A2 | |
| JPH11231849A | Japan | A | |
| CN1248022A | China | A | |
| EP0915622A3 | European Patent Office (EPO) | A3 | |
| US6457057B1 | United States of America | B1 | |
| CA2250445C | Canada | C | |
| CN1118767C | China | C | |
| EP0915622B1 | European Patent Office (EPO) | B1 | |
| DE69836890D1 | Germany | D1 | |
| DE69836890T2 | Germany | T2 |
26 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidDE FR GBAKX | AKX | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Information provided on ipc code assigned before grant7H 04N 7/26 A, 7H 04N 7/46 B, 7H 04N 7/18 B, 7H 04N 5/45 B, 7G 06F 17/30 B, 7H 04N 7/15 B, 7H 04N 7/58 B, 7H 04N 7/14 BRIC1 | RIC1 | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0915622
- Application
- 981208556
Titles3
- German
- System zur Kodierung und Aufzeichnung einer Vielzahl von Bildern
- English
- System for coding and displaying a plurality of pictures
- French
- Système pour le codage et l'affichage d'une pluralité d'images
Classification
- CPC, 15
- H04N19/59
- H04N5/45
- H04N21/2365
- H04N21/4347
- H04N21/47
- H04N19/587
- H04N21/23109
- H04N21/232
- H04N21/234363
- H04N21/23614
- H04N21/2665
- H04N21/4143
- H04N21/4314
- H04N21/4348
- H04N21/658
- IPC, 30
- H04N19 60
- G06F16 00
- G06F16 9038
- G06T3 00
- G06T5 50
- G09G5 00
- G09G5 36
- H04N1 41
- H04N5 45
- H04N7 58
- H04N19 102
- H04N19 132
- H04N19 136
- H04N19 172
- H04N19 174
- H04N19 25
- H04N19 423
- H04N19 46
- H04N19 70
- H04N21 231
- H04N21 232
- H04N21 2343
- H04N21 236
- H04N21 2365
- H04N21 2665
- H04N21 4143
- H04N21 431
- H04N21 434
- H04N21 47
- H04N21 658
Designated states25
- Contracting states, 19
- Austria
- Belgium
- Switzerland
- Cyprus
- Germany
- Denmark
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Extension states, 6
- Albania
- Lithuania
- Latvia
- North Macedonia
- Romania
- Slovenia