A method and a device for image coding

Abstract: The invention relates to a method and a device for image coding having a particular, but not necessarily an exclusive, application in the transmission of video signals. The video signal is converted to a bit stream by coding and quantising and stored in a buffer store before it is transmitted on a transmission line at a constant bit rate. Problems experienced with the known technology have been the prevention of overflow in the buffer store and the buffer store being emptied prematurely. Both of these problems give rise to a deterioration in image quality. At the same time, the content of the buffer store should be as small as possible. According to the invention, not all the frames are coded and transmitted, but a certain number (k) of frames are skipped between each coded frame. The number k is based on the transmission rate R, the frame rate fo of the video signal and minimum value (bR/fo) set for the content of the buffer store. The number of skipped frames is selected so that the buffer store is not emptied below the set lower limit before the next frame is coded. The buffer store content is also regulated by skipping or setting to zero certain components in the bit stream from the coder core. The actual and ideal buffer store contents are determined and selected components of the bit stream are set to zero in dependence on the difference between the actual and the ideal content values. The invention also relates to a device for carrying out the method. The device is preferably constructed as a VLSI circuit.

Description: The invention relates to a method and a device for image coding having a particular, but not necessarily an exclusive, application in the transmission of video signals, for example in video telephone systems. In order to obtain good quality signals for such use, the video signal is converted into a digital signal. The format of the digital signal is specified by the International Consultative Committee for Telegraphs and Telephones (CCITT) H.261 standard. However, the method of digitisation of the video signal can be selected independently by the user. The transmission of a digital signal is normally carried out with the aid of a number of circuits which are frequently divided into a video input signal section, a coder core and a video multiplexer (VMUX). The video input signal section effects suitable signal processing of the video input signal. The coder core effects some form of transformation coding of the signal which can be predictive (INTER) or non predictive (INTRA). After the transformation coding, the signal is quantised. The digital bit stream is then subjected to further code processing by the VMUX in order to effect compression of the bit stream. Traditionally, run length coding, variable length coding and error correction are also effected. The operation of the VMUX is normally effected by means of a signal processor. Since these codings produce different numbers of bits per frame and the bit rate on the transmission line at the output of the image coding is constant, the VMUX contains a buffer store. Problems experienced with the known technology relate to the prevention of overflow in the buffer store and the buffer store being emptied prematurely. Both of these problems give rise to a deterioration in image quality. At the same time, the content of the buffer store should be as small as possible. From EP-A-0 444 839 is known a method for image coding a video signal having a known frame rate wherein the video signal is coded and quantised to effect digitalisation and compression of the signal to form a bit stream having a bit rate determined by the transmission line on which the bit stream is to be transmitted and wherein the bit stream is stored in a buffer store before transmission. The method includes the steps of: monitoring the buffer store content, comparing the buffer store content with the sum of a quantization size controllable range (QCR) and a margin, and skipping frames of transmission picture data as a function of the difference between the monitored buffer store content and said sum. The document is silent on the calculation or definition of this sum. US-A-4 833 535 discloses an image transmission apparatus in which the line transmission rate determines the ratio of frame reduction, i.e. frame skipping. Moreover, a selection is made of the cosine-transformed components to be transmitted. The threshold value serving as a reference value is controlled by the transmission rate. The present invention represents an advance over the prior art in that frame skipping and/or setting to zero selected components of the bit stream is performed in dependence of the difference between the monitored buffer store content and an ideal buffer store content calculated on the basis of the frame rate of the video signal, the bit stream rate and the minimum allowed content of the buffer, which is also dependent of the frame rate and the bit stream rate. The invention provides a method for image coding a video signal having a known frame rate wherein the video signal is coded and quantised to effect digitisation and compression of the signal to form a bit stream having a bit rate determined by the transmission line on which the bit stream is to be transmitted and wherein the bit stream is stored in a buffer store before transmission and the buffer store content (B) is monitored, characterised in that the method includes the steps of sensing the rate (R) of the bit stream at the output of the buffer store, calculating the ideal buffer store content (Bideal), as follows: Bideal = (GOB - 1 + MB/33)/12 x (k1 + g)R/fo + bR/fo where GOB is the number of the block group, MB is the number of the macroblock, k1 is the number of skipped frames which are determined by the coder, R is the bit stream rate, bR/fo is the minimum allowed content in the buffer store, fo is the frame rate of the video signal, and g takes into account when the coding of a frame is terminated, and setting to zero selected components of the bit stream at the output of the quantiser (Q) in dependence on the difference (B-Bideal) between the values of the monitored (B) and ideal (Bideal) buffer store contents and/or skipping a number (k) of frames between each coded frame, the number (k) of skipped frames being selected so that the content of the buffer store is not reduced to a level below a selected lower limit (bR/fo) before the next frame is coded. The invention also provides a device for image coding of a video signal having a known frame rate in accordance with the foregoing method. The device is preferable constructed in the form of an integrated circuit, for example, a VLSI circuit. The foregoing and other features according to the present invention will be better understood from the following description with reference to the accompanying drawings, in which: Figure 1 illustrates in the form of a block diagram a known coder core and a VMUX, Figure 2 illustrates in the form of a block diagram an image coding device according to the present invention, and Figure 3 shows the buffer store content as a function of time according to a preferred embodiment of the invention. The basic design of a known image coding device is illustrated in Figure 1 of the drawings and comprises a coder core 1 and a VMUX 2. A video signal with a frame rate fo which has been processed by a limiter or other input circuit (not illustrated) is applied to the input of the coder core 1. The input signal is applied to a transformation coder T via a subtraction circuit 3. The signal is transformed by the coder T and then quantised in a quantiser Q. The coder core 1 normally utilises some form of predictive coding for the frame which is subtracted from the video signal by means of the subtraction unit 3. Inverse quantisation and inverse transformation are then respectively effected by means of an inverse quantiser IQ and an inverse transformation coder IT. A frame memory FM and possibly also a motion estimator ME are utilised in the prediction. The output of the coder core 1 i.e. an output of the quantiser Q, is connected to the input of the VMUX 2 which comprises a zig-zag scanning arrangement, ZIG, the input of which forms the input of the VMUX, a run length coding arrangement, RL, an arrangement, EVENTS, which supports the run length coding, a variable-length coding arrangement, VLC, a buffer store and an error correction arrangement, FEC, which are connected in cascade and which operate in a manner that is well known by persons skilled in the art. In the VMUX, the signal is processed in a manner whereby it can be sent as economically as possible on a transmission line (not illustrated) that would normally be connected at one end thereof to the output 4 of the FEC and at the other end thereof to a receiver. The signal must also be adapted to the bit rate R on the transmission line. The bit rate of the signal is derived from a clock at the output 4 of the FEC. The operation of the VMUX is normally effected by means of a programmed signal processor. In practice, the quantisers 5 may form part of either the coder core 1 or the VMUX 2. In the preferred embodiment of the present invention, as is illustrated in Figure 2 of the drawings, the quantisers 5 are included in the VMUX but they could be by-passed in such a manner that the VMUX could optionally be used together the coder cores either with or without quantisers. The function of the buffer store is to release bits at a clock rate which is controlled by the bit rate on the transmission line. Since the coding of the video signal produces a different numbers of bits per frame depending, amongst other things, on the content of the frame, the buffer store content can vary. It is important to ensure that the buffer store does not overflow because this would result in the information on the frames being irretrievably lost. Furthermore, the buffer store content should be as small as possible in order to reduce delay, that is to say, the time during which the bits are stored in the buffer store. It should also to be ensured that the buffer store rarely becomes empty because it would then become necessary to stuff redundant bits into the bit stream and this would give rise to a deterioration in the quality of the image. The format of the bit stream is given by the CCITT standard referred to above. One frame consists of twelve block groups which are designated as GOB and each block group consists of 33 macroblocks which are designated as MB. The frame rate fo of the video signal at the input of the image coding device is generally 30 Hz. With the embodiment of the present invention, as illustrated in Figure 2 of the drawings, the content B of the buffer store is controlled by skipping a number (k) of frames. In other words a number of frames of the input signals are skipped and are, therefore, not coded. If k frames are skipped, then the frame rate at the output of the image coding device will be fo/(1+k). Thus, for the video signal frame rate referred to above, the output frame rate would be 30/(1+k). In determining the number of frames that can be skipped, account must be taken of a number of different factors. For example, it may not be possible for the decoder in the receiver to decode frames at very high clock rates, in which case, a certain number of frames k0 would have to be skipped. It can be desirable from the point of view of coding to keep the speed low at the output of the image coding device since there must be a sufficient number of bits per frame for good image quality. This depends on the bit rate at the output of the image coding device which is normally 64 kbit/s. If no frames are to be skipped, then the bit rate of 30 Hz will be obtained at the output. This will provide approximately 2000 bits per frame, which will require quite a coarse quantisation in the quantiser Q and will provide a noisy image. The image coding device according to the present invention includes a control arrangement 6 which, as is illustrated in Figure 2 of the drawings, senses not only the buffer store content B but also the bit rate R at the output of the buffer store. The control arrangement 6 controls the operation of a switch S1 which is interposed between the output of the quantiser Q and a unit which is designated SKIP 1 and which is adapted to effect the removal from the video signal of a desired number of frames. The control arrangement 6 also controls the operation of a switch S2 and the zero setting arrangements of the unit SKIP 1 and a unit which is designated SKIP 2. As is illustrated in Figure 2, the switch S2 is adapted to connect either the unit SKIP 1 or the inverse quantiser IQ to the junction of the units SKIP 2 and RL via a unit which is designated IZIG. In order to maintain the correctness of the coder core prediction referred to above, it is necessary for information concerning the number of skipped frames to be sent to the frame memory in the coder core 1. This is effected by the control arrangement 6 sending a control signal indicative of the number of skipped frames, to the frame memory in the coder core 1. Figure 3 of the drawings shows an example of how the content of the buffer store changes during operation of a preferred embodiment of the invention. One frame is coded in (1-g)/fo seconds, where g takes into consideration when the coding is terminated. During this time, the buffer store content increases to a value which is designated Be. In the following (k + g)/fo seconds (k > k0), no bits are produced and the buffer store content is reduced. The rate of reduction is R which is sensed at the buffer store output by the control arrangement 6. It is then possible to calculate the value of k at the end of the coded frame The value of k must be such that, when the coding of the next frame commences, the buffer store content Bs lies in the interval bR/fo < Bs < (1 + b)R/fo that is The value R/fo is measured by a computer at the output of the buffer store. This excludes, inter alia, parity bits from the error correction in FEC. The measurement is made in the time interval between the "new frame" signals. Thus the number of skipped frames k is determined utilising a value for Be which is obtained precisely when a frame has been coded. The value bR/fo is the lower limit selected for the buffer store content. In practice, this lower limit is set to a value that can be emptied from the buffer store in three frame intervals and that is greater than or equal to zero. Instead of determining the value of k by means of the foregoing equation, a decision can be taken at the end of each frame interval. With this arrangement the content of the buffer store is designated Bs. If Bs is less than (b+g)R/fo, then the buffer store will be emptied in the next interval. A new frame will then be coded, assuming that k0 frames have been skipped as required by the decoder. Logically expressed: If k < k0: skip next frame, set k = k+1; or else If Bs > (1+b+g)R/fo; skip next frame, set k = k+1; or else code next frame, set k = 0. According to the present invention, the content B of the buffer store can also be regulated either by setting to zero, or skipping, certain components which are produced by the quantiser Q. With one of these methods, the components produced at the output of the quantiser Q are suitably processed in the unit SKIP 1. With the other of these methods, the components produced at the output of the quantiser Q are first swept in zig zag in the zig-zag scanner ZIG and are then processed in the unit SKIP 2. The transformation coding and quantising process produces components which specify the different frequencies values. The high frequencies represent fine detail in the image. If, therefore, it is necessary to skip components or to set them to zero, then the components that will be selected to be skipped or set to zero will be those having high frequencies values. The components produced at the output of the quantiser Q are in disarray with respect to the frequencies. The frequencies are sensed in the unit SKIP 1 and the components which represent frequencies above a frequency F are set to zero. Thus, the components which are set to zero, are not, therefore adding to the content in the buffer store. The method by which the frequency F is determined is given below. With the switch S2 set in its upper position, the output of the unit SKIP 1 will by-pass the scanner ZIG and the unit SKIP 2 and will be applied to the input of the coding arrangement RL. Thus, the setting to zero of selected components at the output of the quantiser will be effected solely by the unit SKIP 1 under the control of the control arrangement 6. This process will, therefore, minimise the time during which the data bits are stored in the buffer store because it uses data which is not swept by the scanner ZIG. Normally, the bit stream from the quantiser Q is swept in zig zag in a zig-zag scanner ZIG. The zig-zag scanner loads the data from the bit stream into a random-access memory and reads out the components in the order in which they will be transmitted, that is to say, in frequency order. Thus the arrangement which includes the unit SKIP 2 in the zero setting process, makes use of the fact that the components come in frequency order and calculates the number of non-zeros of the components. When a certain number NON of non-zeros in a block have been sent, the rest of the components in the block are set to zero. In order to determine the parameters F and NON, the content B of the buffer store and the bit rate R at the output of the buffer store are sensed by the control arrangement 6. The control arrangement 6 sends control signals F and NON to the zero-setting arrangements of SKIP1 and SKIP 2. It is desirable that the content of the buffer store is as small as possible in order to reduce delay, that is to say, the time during which the bits are stored in the buffer store. However, a lower limit bR/fo is set for the buffer store content. Having defined a lower limit, it is then possible to define the ideal buffer content Bideal. When Be = Bideal, the content of the buffer store will be reduced to the lower limit bR/fo at k + 1 frame intervals. With the given format of the bit stream, the ideal buffer store content will be: Bideal = (GOB - 1 + MB/33)/12 x (k1 + g) R/fo + bR/fo Bideal is consequently defined in the time period during which the frame is coded, that is to say, when GOB increases from zero to 12 and MB indicates thirty-third parts of GOB. Sensing the actual content B in the buffer store makes it possible to calculate the difference B-Bideal. By forming intervals with the interval limits B0 to B2, it is possible to define different values for F and NON. It is also convenient to allow the step height QUANT in the quantiser to influence the parameters F and NON. The step height QUANT can also be made dependent on the difference B-Bideal. If QUANT is small, then this implies that more bits are wanted in the buffer store. Thus, it is desirable to have a small number of skipped components and the values for F and NON set high. If the step height QUANT is large, then the buffer store will require fewer bits and thus more components should be skipped. If the transformation coding is in the INTRA mode, special values are also used for F and NON. The different cases are specified in the following table: The invention also relates to a device for carrying out the method. The device according to the present invention is preferably constructed as an integrated circuit, for example, a VLSI circuit. The different parameters b, B0 to B2, F0 to F6, N0 to N6, Q0 to Q1 are stored in a BOOT-PROM. The invention thus solves the buffer store control problem by skipping the coding of a number of frames and/or by setting to zero certain components in the bit stream. The method (SKIP 1) is less effective from the point of view of bit saving but involves shorter delay since it utilises data which are not swept in zig zag by the scanner ZIG. The other method (SKIP 2) is more effective for bit saving but requires zig-zag swept data. It will be directly evident to persons skilled in the art that the invention outlined above could be used in a number of other applications and/or combined with other techniques.

Claims: A method for image coding a video signal having a known frame rate wherein the video signal is coded and quantised to effect digitisation and compression of the signal to form a bit stream having a bit rate determined by the transmission line on which the bit stream is to be transmitted and wherein the bit stream is stored in a buffer store before transmission and the buffer store content (B) is monitored, characterised in that the method includes the steps of sensing the rate (R) of the bit stream at the output of the buffer store, calculating the ideal buffer store content (Bideal), as follows: Bideal = (GOB - 1 + MB/33)/12 x (k1 + g)R/fo + bR/fo where GOB is the number of the block group, MB is the number of the macroblock, k1 is the number of skipped frames which are determined by the coder, R is the bit stream rate, bR/fo is the minimum allowed content in the buffer store, fo is the frame rate of the video signal, and g takes into account when the coding of a frame is terminated, and setting to zero selected components of the bit stream at the output of the quantiser (Q) in dependence on the difference (B-Bideal) between the values of the monitored (B) and ideal (Bideal) buffer store contents and/or skipping a number (k) of frames between each coded frame, the number (k) of skipped frames being selected so that the content of the buffer store is not reduced to a level below a selected lower limit (bR/fo) before the next frame is coded. A method as claimed in claim 1, characterised in that the number (k) of skipped frames is set, at least, to a value (k0) which is determined by the decoder of the receiver to which the bit stream is transmitted. A method as claimed in claim 1 or claim 2, characterised in that the determination of the number (k) of skipped frames is effected in accordance with the following formula at a time when a frame has been coded and the content (Be) of the buffer store at that time has not been reduced to a level below the selected lower limit (bR/fo): where k is the number of skipped frames, k0 is the number of skipped frames, Be is the buffer store content, R is the bit stream rate, fo is the frame rate of the video input signal, and g takes into account when the coding of a frame is terminated, A method as claimed in claim 1 or claim 2, characterised in that the number (k) of skip frames is determined at the beginning of each frame interval and in that the buffer store is emptied and the following frame is skipped if the content (Bs) of the buffer store at the beginning of a frame interval is of such a value that the buffer store will not be emptied below the selected lower limit (bR/fo), that is to say If k < k0 : skip next frame, set k = k+1; or else If Bs > (1 + b + g) R/fo; skip next frame, set k = k+1; or else code next frame, set k=0 where Bs is the buffer store content at the beginning of a frame, and g takes into account when the coding of a frame is terminated. A method as claimed in any one of the preceding claims, characterised in that the selected lower limit (bR/fo) is less than the value of the buffer store content that can be emptied from the store in three frame intervals and greater than or equal to zero. A method as claimed in claim 1, characterised in that the selected components of the bit stream that are set to zero are those which represent frequencies higher than a predetermined value. A method as claimed in any one of the preceding claims, characterised in that a certain number of non-zero components in a block are transmitted and in that the remaining components in the block are set to zero. A method as claimed in claim 7, characterised in that the bit stream is scanned after quantisation, in that the components of the scanned bit stream that are indicative of frequency values are arranged in ascending order of frequency values, in that the number of non-zeros of the components are calculated, and in that some of the non-zero components are transmitted and the remaining components are set to zero. A method as claimed in any one of the claims 7 to 8, characterised in that the number of transmitted non-zeros is a 5 function of the step height in the quantiser (Q). A device for image coding of a video signal having a known frame rate including an arrangement for coding and quantising the video signal to effect digitisation and compression of the signal to form a bit stream having a bit rate determined by the transmission line on which the image coded signal will be transmitted and a buffer store for storing the bit stream before transmission, characterised in that the device also includes control means (6) for monitoring the content (B) of the buffer store and the bit rate (R) of the signal at the output of the buffer store, and for calculating the ideal buffer store content (Bideal), as follows: Bideal = (GOB - 1 + MB/33)/12 x (k1 + g)R/fo + bR/fo where GOB is the number of the block group, MB is the number of the macroblock, k1 is the number of skipped frames which are determined by the coder, R is the bit stream rate, bR/fo is the minimum allowed content in the buffer store, fo is the frame rate of the video signal, and g takes into account when the coding of a frame is terminated, and setting to zero selected components of the bit stream at the output of the quantiser (Q) in dependence on the difference (B-Bideal) between the values of the monitored (B) and ideal (Bideal) buffer store contents and/or skipping a number (k) of frames between each coded frame, the number (k) of skipped frames being selected so that the content of the buffer store is not reduced to a level below a selected lower limit (bR/fo) before the next frame is coded. A device as claimed in claim 10, characterised in that the device includes a first zero setting arrangement (SKIP 1), the input of which is connected to the output of the quantiser (Q) and the output of which is connected to the input of a zig-zag scanning arrangement (ZIG) and in that the components of the bit stream that are indicative of frequency values which are higher than a predetermined value are set to zero by the first arrangement (SKIP 1) under the control of the control means (6). A device as claimed in claim 10 or 11, characterised in that the device includes a second zero setting arrangement (SKIP 2), the input of which is connected to the output of a zig-zag scanning arrangement (ZIG) and the output of which is connected to a coding arrangement (RL) and in that a number of the non-zero components of the scanned bit stream at the output of the scanning arrangement (ZIG) are transmitted to the coding arrangement (RL) whilst the remaining components are set to zero by the second zero setting arrangement (SKIP 2) under the control of the control means (6). A device as claimed in claim 11 or claim 12, characterised in that the device includes a first switch (S1) interposed between the quantiser (Q) and the first zero setting arrangement (SKIP 1) and in that the first switch (S1) is adapted to effect the removal of a number of frames from the bit stream under the control of the control means (6). A device as claimed in claim 12 or claim 13 characterised in that the device includes a second switch (S2) the operation of which is under the control of the control means (6) and in that the second switch (S2) is adapted to connect the output of the first zero setting arrangement (SKIP 1) to the output of the second zero setting arrangement. A device as claimed in any one of the claims 10 to 14, characterised in that the device is in the form of an integrated circuit, for example, a VLSI circuit. A device as claimed in any one of the claims 10 to 15, characterised in that the device also includes a BOOT-PROM for storing the data from which the required parameters for effecting frame skipping and/or zero setting are derived. A video system characterised in that the system includes a device as claimed in any one of the preceding claims 10 to 16. A video system as claimed in claim 17 characterised in that the system is a video telephone system.

Inventors: BRUSEWITZ HARALD, BRUSEWITZ, HARALD
Applicants: TELIA AB
Application year: 1992
Main classification: H04N7
IPC codes: H04N7, G06T9