Abstract:
A process for realizing an estimate of global motion based on a sequence of subsequent video images, such as those received via an optical mouse (M) for the purposes of detecting its movement. Subsequent video images are represented by digital signals arranged in frames and for each estimate of a frame with respect to another, the procedure provides operations for:
choosing, from amongst a series of vectors originating from linear combinations of motion vectors resulting from estimates of previous frames and/or constant vectors, a vector considered as the best match for estimating the motion occurring between the two frames, the said selection operation in turn including the operations of: performing a virtual overlay of the two frames to be compared (T 0 , T 0 -1) mutually offset both horizontally and vertically by amounts identified by the motion vector subjected to testing, applying a selective grid of pixels to be subjected to testing, calculating, for all pixels selected via the grid, a cost function to determine the effectiveness of the predictor, identifying the vector with the lowest cost function value as the best for the purposes of estimation.
Abstract:
A processing architecture enables execution of one first set of instructions (OsTask1.1, OsTask1.2, ...) and one second set of instructions (MmTask2.1, MmTask2.2, MmTask2.3, ...) compiled for being executed by two different CPUs, the first set of instructions (OsTask1.1, OsTask1.2, ...) not being executable by the second CPU, and the second set of instructions (MmTask2.1, MmTask2.2, MmTask2.3, ...) not being executable by the first CPU. The architecture comprises a single CPU (CPU3) configured for executing both the instructions of the first set (OsTask1.1, OsTask1.2, ...) and the instructions of the second set (MmTask2.1, MmTask2.2, MmTask2.3, ...). The single CPU in question (CPU3) being selectively switchable between a first operating mode, in which the single CPU (CPU3) executes the first set instructions (OsTask1.1, OsTask1.2, ...), and a second operating mode, in which the single CPU (CPU3) executes the second set of instructions (MmTask2.1, MmTask2.2, MmTask2.3, ...). The single processor (CPU3) is configured for recognizing a switching instruction between the first operating mode and the second operating mode and for switching between the first operating mode and the second operating mode according to the switching instruction. The solution can be generalized to the use of a number of switching instructions between more than two execution modes for different CPUs.
Abstract:
The architecture (10), which is adapted to be implemented in the form of a reusable IP cell, preferably comprises:
a motion estimation engine (16), configured to process a cost function (SAD, MAD, MSE) and identify a motion vector (MV) which minimizes this, an internal memory (17) configured to store the sets of initial candidate vectors for the blocks of a reference frame; first (18) and second (19) controllers to manage the motion vectors and manage an external frame memory (13); a reference synchronizer (20) to align, at the input to the estimation engine (16), the data relevant to the reference blocks with the data relevant to candidate blocks coming from the second controller (19), and a control unit (21) for timing the units (16 to 20) included in the architecture (10) and the external interfacing of the architecture itself.
Preferred application to codec units operating according to standard MPEG/H.263.
Abstract:
A hardware accelerator of the estimation of the variance for a coding system of pictures composed of an array of lines and columns of pixels calculates the variance of macroblocks of a digitized video image for using the results for a real-time coding of the current image together with the preceding and successive images according to the video algorithm MPEG-2. The disclosed architecture minimizes the silicon area needed for implementing the hardware accelerator for a cost-effective reduction of the burden on the CPU of the system. The use of a plurality of distinct filter/demultiplexers of known architectures is eliminated by conveying the incoming pixels to the respective input lines of distinct variance calculation paths by the use of a simple counter.
Abstract:
Motion estimation in video signals (10) organized in successive frames divided into macroblocks is carried out by means of the identification of motion vectors. In a first identification phase, starting from a current motion vector, a best motion vector predictor is identified, being chosen from a set of candidates. The best predictor thus identified is then subjected to a second refining phase. The aforesaid set of candidates is identified by selecting vectors belonging to macroblocks close to the said current vector within the current frame and the preceding frame. Preferably, the refining phase comprises the definition of a grid of n points centred on the central position to which the best motion vector points and the distance of the points of the grid from the said centre is defined as a function of the matching error (typically consisting of an SAD function) defined in the first identification phase. Application to the IPB and APM operating modes of the H.263+ video standard is envisaged.
Abstract:
A coprocessor circuit for processing image data in digital form, including:
a motion vector controller block (10) for generating, starting from said image data, motion vector (MV) values including predictor data and macroblock data relating to a current macroblock of said image data to be estimated, said prediction data and macroblock data being adapted to be stored at respective memory addresses, an address generator block (101) for extracting said respective addresses from said motion vector (MV) values, a predictor fetch block (102) for retrieving said predictor data based on respective addresses extracted by said address generator block (101), a current macroblock fetch and distengine block (104) for retrieving said macroblock data based on respective addresses extracted by said address generator block (10) and for processing said macroblock data according to a given function, and a decision block (105) for collecting said retrieved data as partial results and selecting the best result therefrom.
Abstract:
A method of estimating the motion field of a digital picture sequence comprises subdividing a current picture to examine in an integer number of macroblocks, for each macroblock of the current picture determining a search window centered on a macroblock of a preceding picture placed in the same position of the considered macroblock of the current picture, carrying out a motion estimation between the considered macroblock of the current picture and the macroblock most similar to it included in the window. At least a dimension of the search window is established in function of the corresponding dimension of the search window used for the preceding picture, the estimated motion field of the preceding picture and certain threshold values.
Abstract:
A method of recognizing a progressive or an interlaced content of video pictures during their processing in a coder, comprises the following operations on at least on one of the components (luminance or chrominance) of the video signal:
a) defining a macroblock belonging to a frame of the preceding picture having dimensions R*S pixels, a half of it (R/2)*S being placed on the Top field Tp and the other half on the Bottom field Bp ; b) for the chosen component of the video signal, calculating a first pair of coefficients (COEFF_1, COEFF_2) equivalent to
the sum, extended to all the columns and to all the even row of said macroblock, of the absolute values of the differences among the values assumed by said component of the video signal in the pixels of the same column and of consecutive rows belonging to the Top semi-frame and Bottom semi-frame, respectively, and the sum, extended to all the columns and to each fourth row of said macroblock, of the absolute values of the differences among the values assumed by said component of the video signal in the pixels of the same column and of consecutive rows of the same parity belonging to the Top semi-frame and Bottom semi-frame respectively;
c) verifying whether the first one of the coefficients of said pair is greater than or equal to a prefixed first real positive number of times (a) of the second coefficient, incrementing a first counter (CONT_1) at each positive verification; d) incrementing a second counter (NUM_MACROBLOCK) at each macroblock so tested; e) calculating for each row of each Top semi-frame a second pair of coefficients (COEFF_3, COEFF_4) equivalent to
for each row the sum, extended to all the columns of each semi-frame of the absolute values of the differences among the values assumed by said component of the video signal in pixels of the Bottom semi-frame of the preceding picture and of the Bottom semi-frame of the current picture, belonging to the row following the considered row and to the same column, and the sum, extended to all the columns of each semi-frame of the absolute values of the differences among the values assumed by said component of the video signal in pixels of the same column and, respectively, of said row of the Top semi-frame of the preceding picture and the row following the considered row, belonging to the Bottom semi-frame of the current picture, respectively;
f) verifying whether the second coefficient of said second pair is grater than or equal to a second prefixed real positive number of times (β) the first coefficient of said second pair, incrementing a third counter (CONT_2) at each positive verification; g) incrementing a fourth counter (NUM_RIGHE) at each row so tested; verifying whether the content of the first counter (CONT_1) is greater than or equal to a third prefixed real positive number of times (γ) the content of second counter (NUM_MACROBLOCK) and whether, at the same time, the content of the third counter (CONT 2) is greater than or equal to a fourth prefixed real positive number of times (δ) the content of the fourth counter (NUM_RIGHE): if so, considerating the frame composed of said Top and Bottom semi-frame an interlaced one, if not a progressive one.