MOTION-COMPENSATED PREDICTIVE IMAGE ENCODING AND DECODING

Abstract: In a method of motion-compensated predictively encoding image signals, at least one frame is motion-compensated predictively encoded and supplied without supplying motion vectors as a decoder is able to generate motion vectors corresponding to the at least one frame.

Description: Motion-compensated predictive image encoding and decoding. The invention relates to motion-compensated predictive image encoding and decoding. The H.263 standard for low bit-rate video-conferencing [l]-[2] is based on a video compression procedure which exploits the high degree of spatial and temporal correlation in natural video sequences. The hybrid DPCM/DCT coding removes temporal redundancy using inter-frame motion compensation. The residual error images are further processed by block Discrete Cosine Transform (DCT), which reduces spatial redundancy by de-correlating the pixels within a block, and concentrates the energy of the block itself into a few low order coefficients. The DCT coefficients are then quantized according to a fixed quantization matrix that is scaled by a Scalar Quantization factor (SQ). Finally, Variable Length Coding (VLC) achieves high encoding efficiency and produces a bit-stream, which is transmitted over ISDN (digital) or PSTN (analog) channels, at constant bit-rates. Due to the intrinsic structure of H.263, the final bit- stream is produced at variable bit-rate, hence it has to be transformed to constant bit-rate by the insertion of an output buffer which acts as feedback controller. The buffer controller has to achieve a target bit-rate with consistent visual quality, low delay and low complexity. It monitors the amount of bits produced and dynamically adjusts the quantization parameters, according to its fullness status and to the image complexity. The H.263 coding standard defines the techniques to be used and the syntax of the bit-stream. There are some degrees of freedom in the design of the encoder. The standard puts no constraints about important processing stages such as motion estimation, adaptive scalar quantization, and bit-rate control. It is, inter alia, an object of the invention to provide improved motion- compensated predictive image encoding and decoding techniques. To this end, a first aspect of the invention provides an encoding method as defined in claim 1. A second aspect of the invention provides a decoding method and device as defined in claims 4 and 8. Further aspects of the invention provide a multimedia apparatus (claim 9), a display apparatus (claim 10), and a motion-compensated predictively encoded signal (claim 11). Advantageous embodiments are defined in the dependent claims. In a method of motion-compensated predictively encoding images in accordance with a primary aspect of the invention, at least one frame is motion-compensated predictively encoded and supplied without supplying motion vectors. This is possible when a decoder is able to generate motion vectors corresponding to the at least one frame. Preferably, at least one first frame is intra-frame encoded, at least one second frame is motion-compensated predictively encoded together with motion vectors, and at least one third frame is motion- compensated predictively encoded without motion vectors. These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter. In the drawings: Fig. 1 shows a basic DPCM/DCT video compression block diagram in accordance with the present invention; Fig. 2 shows a temporal prediction unit in accordance with the present invention; Fig. 3 shows a decoder block diagram in accordance with the present invention; and Fig. 4 shows a image signal reception device in accordance with the present invention. In the image encoder of Fig. 1, an input video signal IV is applied to a frame skipping unit 1. An output of the frame skipping unit 1 is connected to a non-inverting input of a subtracter 3 and to a first input of a change-over switch 7. The output of the frame skipping unit 1 further supplies a current image signal to a temporal prediction unit 5. An inverting input of the subtracter 3 is connected to an output of the temporal prediction unit 5. A second input of the change-over switch 7 is connected to an output of the subtracter 3. An output of the change-over switch 7 is connected to a cascade arrangement of a Discrete Cosine Transformation encoder DCT and a quantizing unit Q. An output of the quantizing unit Q is connected to an input of a variable length encoder VLC, an output of which is connected to a buffer unit BUF that supplies an output bit-stream OB. The output of the quantizing unit Q is also connected to a cascade arrangement of a de-quantizing unit Q ' and a DCT decoder DCT 1 . An output of the DCT decoder DCT "1 is coupled to a first input of an adder 9, a second input of which is coupled to the output of the temporal prediction unit 5 thru a switch 11. An output of the adder 9 supplies a reconstructed previous image to the temporal prediction unit 5. The temporal prediction unit 5 calculates motion vectors MV which are also encoded by the variable length encoder VLC. The buffer unit BUF supplies a control signal to the quantizing unit Q, and to a coding selection unit 13 which supplies an Intra-frame / Predictive encoding control signal I/P to the switches 7 and 11. If intra-frame encoding is carried out, the switches 7, 11 are in the positions shown in Fig. 1. As shown in Fig. 2, the temporal prediction unit 5 includes a motion estimator ME and a motion-compensated interpolator MCI which both receive the current image from the frame skipping unit 1 and the reconstructed previous image from the adder 9. The motion vectors MV calculated by the motion estimator ME are applied to the motion-compensated interpolator MCI and to the variable length encoder VLC. In this disclosure we introduce a new method for H.263 low bit-rate video encoders and decoders, where almost no information is transmitted about the motion vectors (NO-MV). The NO-MV method is based on the possibility that the video decoder can calculate its own motion vectors, or can predict the motion vectors starting from an initial motion information received from the encoder. Even if the method should be quite independent on the motion estimation strategy, we will present it jointly to our new motion estimator, since we think that the best performances will be achieved when the two techniques are used together. Thanks to our approach, we achieve a superior image quality compared to "classical" H.263 standard video terminals, without increasing the final bit-rate. In fact the bit-budget required to encode and transmit the motion information can be saved and re-used for a finer quantization of DCT coefficients, thus yielding a better spatial resolution (sharpness) pictures. On the other hand, it is also possible to maintain the typical H.263 image quality while decreasing the final bit-rate, due to no motion information transmission, thus increasing the channel efficiency. As shown in Fig. 1, the H.263 video compression is based on an inter-frame DPCM/DCT encoding loop: there is a motion compensated prediction from a previous image to the current one and the prediction error is DCT encoded. At least one frame is a reference frame, encoded without temporal prediction. Hence the basic H.263 standard has two types of pictures: I-pictures that are strictly intra-frame encoded, and P-pictures that are temporally predicted from earlier frames. The basic H.263 motion estimation and compensation stages operate on macro- blocks. A macro-block (MB) is composed by four luminance (Y) blocks, covering a 16 16 area in a picture, and two chrominance blocks (U and V), due to the lower chrominance resolution. A block is the elementary unit over which DCT operates, it consists of 8 8 pixels. The coarseness of quantization is defined by a quantization parameter for the first three layers and a fixed quantization matrix which sets the relative coarseness of quantization for each coefficient. Frame skipping is also used as a necessary way to reduce the bit-rate while keeping an acceptable picture quality. As the number of skipped frames is normally variable and depends on the output buffer fullness, the buffer regulation should be related in some way to frame skipping and quantizer step size variations. In the H.263 main profile, one motion vector per MB is assigned. The motion estimation strategy is not specified, but the motion vectors range is fixed to [—16, + 15.5] pixels in a picture for both components. This range can be extended to [—31.5, +31.5] when certain options are used. Every macro-block vector (MV) is then differentially encoded with a proper VLC. The motion estimation plays a fundamental role in the encoding process, since the quality of temporally predicted pictures strongly depends on the motion vectors accuracy and reliability. The temporal prediction block diagram is shown in Fig. 2. For estimating the true motion from a sequence of pictures we departed from the high quality 3-Dimensional Recursive Search block matching algorithm, presented in [4] and [5] . Unlike the more expensive full-search block matchers that estimate all the possible displacements within a search area, this algorithm only investigates a very limited number of possible displacements. By carefully choosing the candidate vectors, a high performance can be achieved, approaching almost true motion, with a low complexity design. Its attractiveness was earlier proven in an IC for SD-TV consumer applications [6] . In block-matching motion estimation algorithms, a displacement vector, or motion vector d(b c ,t) , is assigned to the center b c =(x c ,y c )' r of a block B(b c ) ' the current image I(x,t) , where tr means transpose. The assignment is done if B(b c ) matches a similar block within a search area SA(b c ) , also centered at b c , but in the previous image I(x,t-T) , with T = nT q (n integer) representing the time interval between two subsequent decoded images. The similar block has a center which is shifted with respect to b c over the motion vector d(b c ,t) . To find d(b c ,t) , a number of candidate vectors C are evaluated applying an error measure e(C, b c ,t)to quantify block similarity. The pixels in the block R( . c )have the following positions: (x c -X/2 ≤x≤x c +X/2) (y r -Y/2 ≤y ≤y c + Yl2) with X and Y the block width and block height respectively, and x=(x,y)' r the spatial position in the image. The candidate vectors are selected from the candidate set CS(b c ,t) , which is determined by: CS(b ( ,t) = , (1) where the update vectors U (b) and U 2 (b c ) are randomly selected from an update set US, defined as: US(S ( )=US.(b c )\JUSj(S_) with the integer updates US : (b c ) stated by: Ό 0/' Ό\ o \ a -1 US,(b c ) = -1 0 o -2 (2) -2 0 0 -3 -3 0 The fractional updates USib c ) , necessary to realise half-pixel accuracy, are defined by: usp c ) (3) Either U (b c ) or £/ 2 (b c ) equals the zero update. From these equations it can be concluded that the candidate set consists of spatial and spatio-temporal prediction vectors from a 3-D neighborhood and an updated prediction vector. This implicitly assumes spatial and/or temporal consistency. The updating process involves updates added to either of the spatial predictions. The displacement vector d(b c ,t) , resulting from the block-matching process, is a candidate vector C which yields the minimum value of the error function e(C,b c ,t) : v( VeCS(b r ,t))} The error function is a cost function of the luminance values, I(x,t) , and those of the shifted block from the previous field, I(x-C,t-T) , summed over the block B(b c ) . A common choice, which we also use, is the Sum of the Absolute Differences (SAD). The error function is defined by: e(c c ,t) _ ^ | / - r) _ /(I _- >r _ 7) | (5) xB(b ) To further improve the motion field consistency, the estimation process is iterated several times, using the motion vectors calculated in the previous iteration to initialize the current iteration, as temporal candidate vectors. During the first and the third iterations, both previous and current images are scanned from top to bottom and from left to right, that is in the "normal video" scanning direction. On the contrary, the second and fourth iteration are executed with both the images scanned in "anti-video" direction, from bottom to top and from right to left. The candidate vectors are selected from the new candidate set CS'(b c ,t) , defined by: where for i = 1, at every first iteration on all image pair, and 0 d(b c (-i)'2y ,t) for i > 2, with i indicating the current iteration number. Furthermore, the first and second iteration are applied on pre-filtered copies of the two decoded images and without sub-pixel accuracy, while the third and fourth iteration are done directly on the original (decoded) images and produce a half-pixel accurate motion vectors . The pre-filtering consists of a horizontal average over four pixels: l p μ,y,t) = 1 ∑ I(xdiv4+k,y,t) (6) 4 *-i where I(x, y, t) is the luminance value of the current pixel, Ipf (x, y, t) is the correspondent filtered version and div is the integer division. Two are the main advantages of pre-filtering prior to motion estimation: the first is an increase of the vector field coherency, due to the "noise" reduction effect of the filtering itself, the second is a decrease of the computational complexity, since the sub-pixel accuracy is not necessary in this case. The computational complexity of the motion estimation is practically independent on the actual (variable) frame rate, for n _<_ 4. In fact, the number of iterations per images pair varies according to the time interval between two decoded pictures, as shown in Table 1. When n > 5, we use the same iterations as with n = 4. Table 1 : Relation between iterations on pre-filtered images It is possible to decrease the computational price of the motion estimation by halving the number of block vectors calculated, that is by using block subsampling [4], [5]. The subsampled block grid is arranged in a quincunx pattern. If d m = d(b c ,t) is a missing vector, it can be calculated from the horizontally neighboring available ones d a , according to the following formula: d m = median(d,,d r , d (7) where = W - fo ) and The median interpolation acts separately on the horizontal and vertical components of the motion vectors. From one iteration to the following we change the subsampling grid in order to refine the vectors that were interpolated in the previous iteration. The matching error is calculated on blocks of sizes 2X and 2Y, but the best vector is assigned to smaller blocks with dimensions X and Y. This feature is called block overlapping, because the larger 2X 2Y block overlaps the final X Y block in horizontal and vertical direction. It contributes to improve the coherence and reliability of the motion vector field. Finally, since the calculational effort required for a block matcher is almost linear with the pixel density in a block, we also introduce a pixel subsampling factor of four. Hence there are 2X 2Y/4 pixels in a large 2X 2Y block where the matching error is calculated for every iteration. Again, from an iteration to the following, we. change also the pixel subsampling grid to spread the number of matching pixels. This new block matching motion estimator can calculate the object's true motion with great accuracy, yielding a very coherent motion vector field, from the spatial and temporal points of view. This means that the VLC differential encoding of macro-block vectors should achieve lower bit-rates in comparison with vectors estimated from "classical" full-search block matchers. In the following part of this disclosure we will describe the real innovative part of our proposal, the almost non-transmission of motion vectors (NO-MV). In practice, we want to limit as much as possible the transmission of motion information, in order to re- utilize or save the bit-budget normally required for the motion vectors differential encoding and transmission, respectively to improve the image quality or to increase the channel efficiency. The procedure is explained in the following: 1. The encoding terminal (ET) encodes the first picture (P,) of a sequence as an I-frame and transmits it. The decoding terminal (DT) decodes P, as an I-frame. This step is fully H.263 standard compliant. 2. On the transmitting site, ET encodes the second picture (P 2 ), after proper motion estimation and temporal prediction, as a P-frame and sends it. It also encodes and sends the related motion vectors (MV pl . p2 ). On the receiving site, DT reconstructs P 2 as a P-frame, after motion compensation with MV pl . p2 . Again, this step is fully H.263 standard compliant. Both the terminals store MV pl . p2 in their proper memory buffers, to use the same vectors also with the next picture, P 3 . 3. From this point we deviate from the H.263 standard. On the transmitting site, ET uses MVp,. P2 to temporally predict also P 3 , profiting from the temporal consistency of motion. It then encodes and transmits P 3 without any supplementary motion vectors information. At the same time it performs a motion estimation between P 3 and P 2 to obtain MVp 2 .p 3 , which are now stored in its memory buffer. On the receiving site, DT reconstructs P 3 as a P-frame, after motion compensation with In parallel, it estimates its own vectors between P 3 and P 2 , and store them in its memory buffer. 4. On the transmitting site, ET uses MVP2-P3 to temporally predict P 4 , profiting from the temporal consistency of motion. It then encodes and transmits P 4 without any supplementary motion vectors information. In parallel, it performs a motion estimation between P 5 and P 4 to obtain MV P4 .p 5 , which are now stored in the memory buffer. On the receiving site, DT reconstructs P 4 as a P-frame, after motion compensation with the previously stored MV P2 . P3 . At the same time it estimates its own vectors MV P3 . P4 , between P 3 and P 4 , and store them in the memory buffer. 5. The process goes on indefinitely or re-starts from point 1 if a new I-frame is encoded and transmitted. The amount of motion vector bits saved can be used to reduce the transmission channel capacity, without depreciating the image quality, or to allow a less coarse DCT coefficients quantization, thus considerably improving the image quality. In both applications, the method requires a motion estimator, or a similar processing module, also in the video decoding terminal. However, nowadays there are high-quality, low-cost motion estimators available on the market, such as the one we presented above. The temporal resolution quality remains almost unchanged, because of: 1) the good performances of the motion estimation stages used by both encoding and decoding terminals, and 2) the temporal consistency of motion, which allows in most cases a good prediction even if the previous motion vector field is used instead of the actual one. All errors in this assumption can be repaired by the encoder, for example, by predictive coding on the vector field. This solution has not been mentioned in the standard, but it is fully H.263 compatible. As the method is not yet H.263 standardized, it has to be signalled between the two terminals, via the H.245 protocol. At the start of the multimedia communication the two terminals exchange data about their processing standard and non-standard capabilities (see [3] for more details). If we assume that, during the communication set-up, both terminals declare the NO-MV capability, they will easily interface with each other. Hence, the video encoder will transmit no motion vectors, or only an initial motion information, while the video decoder will calculate or predict its own motion vectors. If at least one terminal declares to have not this capability, a flag can be forced in the other terminal to switch it off. Fig. 3 shows a decoder in accordance with the present invention. An incoming bit-stream is applied to a buffer BUFF having an output which is coupled to an input of a variable length decoder VLC '1 . The variable length decoder VLC "1 supplies image data to a cascade arrangement of an inverse quantizer Q "1 and a DCT decoder DCT "1 . An output of the DCT decoder DCT '1 is coupled to a first input of an adder 15, an output of which supplies the output signal of the decoder. The variable length decoder VLC "1 further supplies motion vectors MV for the first predictively encoded frame. Thru a switch 19, the motion vectors are applied to a motion-compensation unit MC which receives the output signal of the decoder. An output signal of the motion-compensation unit MC is applied to a second input of the adder 15 thru a switch 17 which is controlled by an Intra-frame / Predictive encoding control signal I/P from the variable length decoder VLC "1 . In accordance with a primary aspect of the present invention, the decoder comprises its own motion vector estimator ME2 which calculates motion vectors in dependence on the output signal of the decoder and a delayed version of that output signal supplied by a frame delay FM. The switch 19 applies the motion vectors from the variable length decoder VLC "1 or the motion vectors from the motion estimator ME2 to the motion- compensation unit MC. The switch 19 is controlled by the control signal I/P delayed over a frame delay by means of a delay unit Δ. Fig. 4 shows a image signal reception device in accordance with the present invention. Parts (T, Fig. 3, VSP) of this device may be part of a multi-media apparatus. A satellite dish SD receives a motion-compensated predictively encoded image signal in accordance with the present invention. The received signal is applied to a tuner T, the output signal of which is applied to the decoder of Fig. 3. The decoded output signal of the decoder of Fig. 3 is subjected to normal video signal processing operations VSP, the result of which is displayed on a display D. In sum, a primary aspect of the invention relates to a low bit-rate video coding method fully compatible with present standards, such as the H.263 standard. The motion vector information is encoded and transmitted only one time, together with the first P-frame following an I-frame (the first images pair of a sequence). Until the next I-frame, the motion vectors calculated during an images pair and properly stored in a memory buffer are applied for the temporal prediction during the subsequent images pair, and so on. This procedure re-starts in presence of a new I-frame. Both the encoding and decoding terminals calculate their own motion vectors and store them in a proper local memory buffer. It can be used at CIF (352 pixels by 288 lines), QCIF (176 pixels by 144 lines), and SQCIF (128 pixels per 96 lines) resolution. The following features of the invention are noteworthy. A method and an apparatus for H.263 low bit-rate video encoding and decoding stages, which allow a reduction of the total bit-rate, since the motion vector information is transmitted only during the first P-frame following an I-frame. The picture quality is very similar to the one achievable by the standard H.263 approach. A method and an apparatus for H.263 low bit-rate video encoding and decoding stages, which allow a consistent improving of the image quality when compared to the standard H.263 approach, while the target bit-rate remains very similar. A method and an apparatus which use a memory buffer, placed in the motion estimation stage of the temporal prediction loop of the H.263 video encoder, to store the motion vectors related to an images pair. Such vectors will be used for the temporal prediction of the subsequent images pair. A method and an apparatus which use a memory buffer and a motion estimation stage, placed in the H.263 video decoder. The memory buffer is necessary to store the motion vectors calculated from the motion estimation stage. They are related to a certain images pair and will be used for the temporal prediction of the subsequent images pair. A method and an apparatus in which the decision to send the motion vectors information only during the first P-frame following an I-frame is taken from the "INTRA/INTER coding selection" module (see Fig. 1) of the video encoder. A method and an apparatus where a new block matching motion estimator is introduced in the temporal prediction loop of the H.263 video encoder. It is also used in the H.263 video decoder. This estimators yields a very coherent motion vector field and its complexity is much lower than "classical" full-search block matchers. In one preferred embodiment, an encoded signal comprises: at least one first intra-frame encoded frame; at least one second motion-compensated predictively encoded frame together with corresponding motion vectors; and at least one third motion-compensated predictively encoded frame without corresponding motion vectors. In another preferred embodiment, an encoded signal comprises: at least first and second intra-frame encoded frame (between which a decoder can estimate motion vectors); and at least one third motion-compensated predictively encoded frame without corresponding motion vectors (as the decoder can now independently determine the correct motion vectors). In this embodiment, no motion vectors are transmitted at all. It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. In the claims, the supplying step covers both supplying to a transmission medium and supplying to a storage medium. Also, a receiving step covers both receiving from a transmission medium and receiving from a storage medium. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. References: [1] ITU-T DRAFT Recommendation H.263, Video coding for low bit rate communication, 2 May 1996. [2] K. Rijkse, "ITU standardisation of very low bit rate video coding algorithms", Signal Processing: Image Communication 7, 1995, pp 553-565. [3] ITU-T DRAFT Recommendation H.245, Control protocol for multimedia communications, 27 November 1995. [4] G. de Haan, P.W.A.C. Biezen, H. Huijgen, O. A. Ojo, "True motion estimation with 3-D recursive search block matching", IEEE Trans. Circuits and Systems for Video Technology, Vol. 3, October 1993, pp 368-379. [5] G. de Haan, P.W.A.C. Biezen, "Sub-pixel motion estimation with 3-D recursive search block-matching", Signal Processing: Image Communication 6 (1995), pp. 485-498. [6] P. Lippens, B. De Loore, G. de Haan, P. Eeckhout, H. Huijgen, A. Loning, B. McSweeney, M. Verstraelen, B. Pham, J. Kettenis, "A video signal processor for motion-compensated field-rate up-conversion in consumer television", IEEE Journal of Solid-state Circuits, Vol. 31, no. 11, November 1996, pp. 1762-1769.

Claims: CLAIMS: 1. A method of motion-compensated predictively encoding image signals, said method comprising the steps of: motion-compensated predictively encoding at least one frame by means of motion vectors, and supplying said frame without said motion vectors. 2. An encoding method as claimed in claim 1, wherein in said step of motion- compensated predictively encoding said at least one frame, motion vectors between a preceding pair of frames are used. 3. An encoding method as claimed in claim 1 , comprising the steps of: intra-frame encoding and supplying at least one first frame; motion-compensated predictively encoding and supplying at least one second frame together with motion vectors; and motion-compensated predictively encoding and supplying at least one third frame without supplying motion vectors. 4. A method of motion-compensated predictively decoding image signals, said method comprising the steps of: receiving (BUFF) at least one motion-compensated predictively encoded frame from a transmission or recording medium without receiving motion vectors corresponding to said frame from said medium; and motion-compensated predictively decoding (VLC 1 , Q " \ DCT '1 , 15, MC, 17, FM, ME2, 19, Δ) said at least one frame. 5. A decoding method as claimed in claim 4, wherein in said step of motion- compensated predictively decoding said at least one frame, motion vectors between a preceding pair of frames are used. 6. A decoding method as claimed in claim 5, further comprising the step of calculating motion vectors in dependence upon decoded frames. 7. A decoding method as claimed in claim 4, comprising the steps of: intra-frame decoding at least one first frame; motion-compensated predictively decoding at least one second frame received from said medium together with motion vectors corresponding to said at least one second frame; and motion-compensated predictively decoding at least one third frame received from said medium without motion vectors. 8. A device for motion-compensated predictively decoding image signals, comprising: means (BUFF) for receiving at least one motion-compensated predictively encoded frame from a transmission or recording medium without receiving motion vectors corresponding to said frame from said medium; and means (VLC 1 , Q " \ DCT '1 , 15, MC, 17, FM, ME2, 19, Δ) for motion- compensated predictively decoding said at least one frame. 9. A multi-media apparatus, comprising: means (T) for receiving motion-compensated predictively encoded image signals; and a motion-compensated predictive decoding device as claimed in claim 8 for generating decoded image signals. 10. An image signal display apparatus, comprising: means (T) for receiving motion-compensated predictively encoded image signals; a motion-compensated predictive decoding device as claimed in claim 8 for generating decoded image signals; and means (D) for displaying said decoded image signals. 11. A motion-compensated predictively encoded image signal, comprising: at least one motion-compensated predictively encoded frame without motion vectors corresponding to said frame.

Inventors: BAGNI DANIELE, DE HAAN GERARD, BAGNI, DANIELE, DE HAAN, GERARD
Applicants: KONINKL PHILIPS ELECTRONICS NV, PHILIPS SVENSKA AB, KONINKLIJKE PHILIPS ELECTRONICS N.V., PHILIPS AB
Application year: 1998
Main classification: H04N7
IPC codes: G06T9, H04N7