US5408269A - Moving picture encoding apparatus and method - Google Patents

Moving picture encoding apparatus and method Download PDF

Info

Publication number
US5408269A
US5408269A US08/066,723 US6672393A US5408269A US 5408269 A US5408269 A US 5408269A US 6672393 A US6672393 A US 6672393A US 5408269 A US5408269 A US 5408269A
Authority
US
United States
Prior art keywords
data
pixel
interpolation
block
parallel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US08/066,723
Inventor
Ikuo Tsukagoshi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Assigned to SONY CORPORATION reassignment SONY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TSUKAGOSHI, IKUO
Priority to US08/148,821 priority Critical patent/US5461423A/en
Application granted granted Critical
Publication of US5408269A publication Critical patent/US5408269A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Definitions

  • This invention relates to an apparatus for compressing a digital motion picture signal, and, in particular, to an apparatus in which the efficiency of the compression is increased to reduce the quantity of data to be transmitted.
  • a motion picture signal generally has a high correlation between portions of the motion picture signal representing two consecutive frames of the motion picture.
  • a motion picture signal can be compressed by determining the differences in the pixel data between consecutive frames of the motion picture signal, and then quantizing these differences.
  • the picture includes moving portions, the resulting quantity of difference data can be large. For this reason, a method called block matching is used instead.
  • FIGS. 1A to 1C are diagrams explaining the principles of block matching.
  • the nth frame (FIG. 1A) and the n+1th frame (FIG. 1B) are compared. In these frames, the image portion labelled "tree" is almost unchanged between the frames. Therefore, the error resulting from replacing the image portion "tree” in the n+1th frame (FIG. 1B) with the image portion "tree” of the nth frame (FIG. 1A) is rarely perceptible.
  • Block matching does not generate a moving vector immediately. Instead, as shown in FIG. 1C, matching blocks of the previous frame (B1) are compared with the current block (B2). Plural matching blocks are obtained by sequentially shifting the matching block indicated by the motion vector of the previous frame up, down, left, and right by one pixel. The difference between each pixel in the current block and the corresponding pixel of each matching block of the previous frame is determined. Then, the position of the matching block for which the sum of the differences is a minimum is determined, and the moving quantity of this matching block relative to the current block is used as the moving vector of the current block.
  • Such an apparatus for compressing a digital motion picture signal generates plural matching blocks by defining plural blocks of the previous frame that are displaced in the x- and y-directions relative to the matching block indicated by the moving vector of the previous frame.
  • Block matching is performed in such a way that the moving vector of the one of the matching blocks, obtained by shifting in each direction as just described, that has the least sum of the absolute values of the differences (difference absolute value sum) between the it and the current block is determined to be the moving vector of the current block.
  • the quantity of difference data can be further reduced by determining the moving vector with half-pixel precision.
  • a typical method for determining such a moving vector will be described with reference to FIG. 2.
  • the moving vector is obtained for each block with one-pixel precision.
  • a double-density search area is formed by deriving interpolation points (indicated by ⁇ , ⁇ , and ⁇ ) between adjacent pixels (indicated by ⁇ ) in the search area. Then, the double-density search area is block matched with the current block to determine the moving vector MVH.
  • a method may be used in which interpolation is performed beforehand over the entire search area, and the resulting interpolation data are stored in a frame memory.
  • 10 (in the horizontal direction) ⁇ 10 (in the vertical direction) pixel data must be read in a period of 64 clock cycles to carry out half-pixel interpolation, so the interpolation operation must be carried out using a clock speed faster than the normal clock speed.
  • a clock signal with a clock speed of 64:100 must be generated using a PLL (Phase Locked Loop) circuit. Since the clock speed ratio of the PLL is not simple integer ratio, the system is non-synchronous, and a complex circuit must be used to provide synchronization.
  • PLL Phase Locked Loop
  • the computed interpolation data are previously stored in a frame memory, and a moving vector which minimizes the difference absolute value sum can be reliably determined with half-pixel precision.
  • the speed of the block matching processing must be four times higher or a block matching processing circuit having four times the scale must be used.
  • an object of this invention is to provide an apparatus for compressing a digital motion picture signal that is capable of performing the required processing using a single clock signal, and that does not require an increased number of frame memories.
  • the apparatus comprises a parallelizing circuits that converts serial pixel data having a first word length into parallel pixel data having a second word length greater than the first word length.
  • An interpolation data generating circuit that performs interpolation on the parallel pixel data to generate interpolation data with respect to each pixel in an area designated by the moving vector with one-pixel precision.
  • a matching block generating circuit that provides the interpolation data output from the interpolation data generating means as interpolation data in plural matching blocks displaced by half a pixel from a matching block designated by the moving vector with one-pixel precision.
  • a difference determining circuit that obtains, for each of the plural matching blocks from the matching block generating circuit, a difference between the interpolation data of the matching block and the pixel data of the current block.
  • the apparatus comprises a circuit that determines the moving vector with half-pixel precision. The moving vector with half-pixel precision corresponds to the displacement quantity of the one of the matching blocks determined to have the least difference.
  • the number of frame memories can be reduced compared with the prior art.
  • the processing rate of the interpolation processing can be increased, so that it is possible to detect the moving vector MVH with half-pixel precision without an increase in clock frequency.
  • FIGS. 1A to 1C are schematic drawings illustrating block matching.
  • FIGS. 2A to 2D are drawings illustrating how the interpolation data are derived to calculate the moving vector with half-pixel precision.
  • FIG. 3 is a block diagram showing: the overall construction of an apparatus for compressing a digital motion picture signal according to the present invention.
  • FIG. 4 is a block diagram showing the construction of the movement detecting circuit section.
  • FIG. 5 is a block diagram showing an embodiment of the parallelizing circuit of the present embodiment.
  • FIG. 6 is a block diagram showing an embodiment of the half-pixel interpolating circuit and the block serializing circuit.
  • FIG. 7 is one half of a timing chart showing how the interpolation data are written and read by means of write arid read signals supplied to a FIFO memory.
  • FIG. 8 is the other half of a timing chart showing how the interpolation data are written and read by means of write and read signals supplied to the FIFO memory.
  • FIG. 9 is a block diagram illustrating the moving vector determining circuit.
  • FIG. 10 is a chart showing the relationship between the interpolation pixels and original pixels in the compressed plane.
  • FIG. 11 is a chart showing the relationship between the interpolation pixels and original pixels in the picture plane.
  • the reference numeral 1 generally indicates the apparatus according to the invention for compressing a digital motion picture signal.
  • the pre-processing circuit 2 converts the analog motion picture signal S1 into a digital motion picture signal comprising plural pixel data.
  • the preprocessing circuit 2 includes a matrix circuit and an analog/digital conversion circuit (not shown).
  • the analog motion picture signal S1 is a color video signal.
  • the color video signal is separated into a luminance signal and a color difference signal.
  • This invention is applied to a luminance signal processing device.
  • This invention may additionally or alternatively be applicable to a color difference signal processing device without departing from the spirit of the invention.
  • the pre-processing circuit 2 may be constructed to separate the luminance signal and the color difference signal from a color video signal, or to separate RGB components from it. In this case, the invention may be applied to each RGB component.
  • the digital pixel data are divided into blocks of a certain number of pixel data to form a picture data block S2.
  • Each picture data block preferably consists of 8 ⁇ 8 pixel data, 16 ⁇ 16 pixel data, and so on. Processing of one block, called the picture data block, of one frame, called the current frame, will be described. Similar processing is performed on each block in each frame.
  • the motion picture signal is divided into frames; however, the circuit according to the invention is capable of being used when the motion picture signal is divided into fields.
  • the picture data block S2 from the preprocessing circuit 2 is supplied to the difference data generating circuit 3 and to the first switching circuit 4, the output of which is connected to the discrete cosine transform circuit 5.
  • the difference data generating circuit 3 determines the difference between the picture data block S2 and the movement compensation data S3, thereby obtaining the inter-frame difference between the movement compensated data block obtained by performing movement compensation on the previous frame, and the picture data block of the current frame.
  • the resulting difference data block S4 is supplied to the first switching circuit 4.
  • the first switching circuit 4 is controlled to switch according to the compression mode, and delivers either the picture data block S2 or the difference data block S4, whichever has the least difference absolute value sum relative to the average level of the block, to the discrete cosine transform circuit 5.
  • intra-frame compression mode when compression can be effected with less data using intra-frame compression, this will be referred to as the intra-frame compression mode, and when compression can be effected with less data using with inter-frame compression, this will be referred to as the inter-frame compression mode.
  • the discrete cosine transform circuit 5 performs an orthogonal transform on each picture data block S2, or on each difference data block S4, depending on the state of the first switching circuit 4, using a discrete cosine transform.
  • the resulting block of transform coefficients S5 is supplied to the quantizing circuit 6.
  • a discrete cosine transform is used in this embodiment; however, other orthogonal transforms, for example, a fast Fourier transform (FFT) can also be used, as can a Wavelet transform or a Haar transform.
  • FFT fast Fourier transform
  • the quantizing circuit 6 quantizes the block of transform coefficients S5 using a quantizing step size set by the step-size control signal S6, and supplies the resulting block of quantized coefficients S7 via the digital output path 18 to processing circuits (not shown), which include a variable-length coding circuit and so on.
  • the apparatus for compressing a digital motion picture signal additionally includes the local decoder 9 for restoring the compressed signal to provide pictures for use as reference pictures.
  • the local decoder locally decodes each block of quantized coefficients S7 using the dequantizing circuit 10 and the inverse discrete cosine transform circuit 11.
  • the resulting locally-decoded data block S10 is fed to the synthesized data generating circuit 12 and to the second switching circuit 13.
  • the second switching circuit 13 supplies to the previous frame memory 14 a recovered picture data block S11 recovered by synthesizing the movement compensation data S3 with the locally-decoded data block S10.
  • the second switching circuit 13 supplies the locally-decoded data block S10 directly to the previous frame memory 14.
  • the previous frame memory 14 replaces each block of a previous frame stored therein with the locally-expanded data block S10 or the recovered picture data block S11 to regenerate the picture of the previous frame.
  • the previous frame memory also supplies the picture data of the block of the previous frame corresponding to the picture data block S2 to the post processing circuit 15 as the search window S12.
  • the post processing circuit 15 converts the search window S12 for each block into a raster signal, i.e., into a line sequence signal. Also, the raster signal is converted into an analog signal by an internal digital-to-analog converter circuit (not shown), and is fed as the expanded video signal S13 to an output terminal (not shown).
  • the movement detecting section 16 compares the picture data block S2 with the search window S12, i.e., part of the previous picture supplied from the frame memory 14, to obtain the moving vector MVH with half-pixel precision between the picture data block S2 and a matching block of the previous frame.
  • the moving vector signal S14 is fed to the movement compensating circuit 17 and also to the digital output path 18.
  • the data fed to the digital output path 18 are processed by an error correcting circuit and a modulator and so on (not shown) to produce a signal for transmission or for recording on a suitable recording medium, such as an optical disc.
  • the movement compensation circuit 17 selects the portion of the previous picture that is shifted relative to the picture data block S2 by the magnitude and direction of movement defined by the moving vector signal S14, and supplies the resulting movement compensation data S3 to the difference data generating circuit 3 and to the synthesized data generating circuit 12.
  • the movement detecting section 16 first determines the moving vector MVi with one-pixel precision, and then generates interpolation pixels from the original pixels of the previous frame only in the region surrounding the block specified by the moving vector. Then,, the movement detecting section 16 matches the picture data block S2 to matching blocks of the interpolation pixels.
  • the matching block indicated by the moving vector with one-pixel precision is used as the center, and a block matching process is performed with half-pixel precision using matching blocks displaced from the center by -1/2, 0 and +1/2 pixel in the x- and y-directions.
  • the amount of displacement of the best matching block i.e., the matching block having the minimum difference absolute value sum, is adopted as the moving vector Vi with half-pixel precision.
  • the moving vector Vi is combined with the previously-determined moving vector MVi with one-pixel precision to generate the moving vector MVH with half-pixel precision.
  • the movement detecting circuit 21 derives the moving vector MVi with one-pixel precision from the picture data block S2 and the search window S12 of the previous frame, and supplies the moving vector MVi with one-pixel precision to the interpolation address generating circuit 22 as moving vector data S21.
  • the interpolation address generating circuit 22 consists of a read-only memory, and converts the pixel positions indicated by the moving vector MVi into corresponding address data, which it provides as interpolation address data S22.
  • the movement detecting section 16 converts the search window S12, which it receives in blocks, into raster data by means of the block/raster converting circuit 23.
  • the resulting raster data are fed into the parallelizing circuit 24, where they are parallelized, as will be described in more detail below.
  • the resulting parallel pixel data S23 are fed serially from the parallelizing circuit 24, and are successively written into the multi-port VRAM (Video Random Access Memory) 25.
  • VRAM Video Random Access Memory
  • the multi-port VRAM 25 delivers the parallel pixel dam of the search area in which interpolation is to be performed.
  • the resulting parallel pixel data S24 are fed to the half-pixel interpolating circuit 26.
  • the half-pixel interpolating circuit 26 receives the parallel pixel data S24, from which it generates interpolation data S25.
  • the block serializing circuit 27 receives the interpolation data S25 and generates 9 matching blocks of serial interpolation data S26.
  • the 9 matching blocks include the data for the matching block indicated by the moving vector MVi with one-pixel precision. Although the data for the matching block indicated by the moving vector MVi with one-pixel precision are not, strictly speaking, interpolation data, since they are not generated by interpolation, they will nevertheless be called interpolation data for the sake of brevity.
  • the matching blocks of interpolation data S26 are fed into the moving vector determining circuit 28.
  • the moving vector determining circuit 28 determines a difference absolute value sum between the delayed picture data block S27, which is the picture data block S2 fed through the delay circuit 29, and each of the 9 matching blocks of interpolation data S26.
  • the moving vector determining circuit also determines the best matching block by determining which of the 9 matching blocks of interpolation data S26 has the least difference absolute value sum, and establishes the displacement of the best matching block as the moving vector Vi with half-pixel precision.
  • the moving vector determining circuit 28 provides the moving vector MVH by synthesizing the moving vector Vi with half-pixel precision with the moving vector MVi received from the movement detecting circuit 21.
  • the parallelizing circuit 24 will next be described in detail with reference to FIG. 5, which shows a practical example of the construction of the parallelizing circuit 24.
  • the parallelizing circuit 24 is composed of two FIFO (First In First Out) memories 31 and 32, into which the 8-bit pixel data, serially received from the block/raster converting circuit 23, are alternately written. Pairs of pixel data are then simultaneously read out from both FIFO memories onto a 16-bit data path. This parallelizes the pixel data serially received from the block/raster converting circuit 23 by arranging the pixel data into 16-bit pairs of two pixel data each. The resulting 16-bit parallel pixel data are serially read out as parallel pixel data S23.
  • FIFO First In First Out
  • the 8-bit pixel data e.g., the pixel data numbers 0, 1, 2, 3, 4, 5, . . . , serially received from the block/raster converting circuit 23, are first alternately written into each of the FIFO memories 31 and 32.
  • pixel data numbers e.g., 0, 2, 4, . . .
  • pixel data numbers e.g., 1, 3, 5, . . .
  • the pixel data are serially read out of the FIFO memories into a 16-bit data path in pairs consisting of, e.g, pixel data numbers 0 and 1; pixel data numbers 2 and 3; pixel data numbers 4 and 5; . . . as parallel pixel data S23.
  • the addressing provided in the multi-port VRAM 25 is such that one address defines the location of each of the parallel pixel data received from the parallelizing circuit 24 via the delay circuit 33. This reduces the address space to one half, since one address in the VRAM 25 defines the location of two pixel data.
  • the plane in which one address refers to two pixel data will henceforth be referred to as the "compressed plane".
  • the 8 most significant bits and the 8 least significant bit of the 16-bit parallel pixel data will be called the high-order bit sequence and the low-order bit sequence, respectively. Therefore, it is possible to divide the parallel pixel data complimentarily into a high-order bit sequence representing, for example, even-numbered pixels, and a low order bit sequence representing, for example, odd-numbered pixels.
  • the half-pixel interpolating circuit 26 and the block serializing circuit 27 are constructed as shown in FIG. 6.
  • the half-pixel interpolating circuit 26 performs data interpolation in a parallelized state, and the block serializing circuit 27 serializes the resulting interpolation data, making it possible to obtain the absolute value difference sum of each block in the time period corresponding to one block.
  • the half-pixel interpolating circuit 26 receives the 16-bit parallel pixel data S24 from the multi-port VRAM 25, branches the 16-bit parallel pixel data into two parallel paths, and into a third parallel path delayed by the five unit delay circuit 34 by a delay time corresponding to 5 clock cycles. A delay of 5 clock cycles corresponds to a delay of one line in the picture data block.
  • Each of the three parallel paths is further branched into a high-order bit sequence and a low-order bit sequence to form a total of six parallel sequences of 8-bit pixel data.
  • the pixel data on the parallel paths marked MSB are the pixel data of, for example, even-numbered pixels
  • the pixel data on the parallel paths marked LSB are the pixel data of, for example, odd-numbered pixels.
  • Interpolation is carried out by adding selected pairs of pixel data and dividing the result by two.
  • Half of the interpolations in the x-direction are carried out by summing the pixel data in adjacent parallel paths derived from the same parallel pixel data. This carries out interpolation between the high-order bit sequence and the low-order bit sequence of each of the parallel pixel data, and produces alternate ones of the required interpolation data in the x-direction.
  • Such interpolation is carried out, for example, by the adder 42A.
  • the remainder of the interpolations in the x-direction are carried out by summing the low-order bit sequence of one parallel pixel value and the high-order bit sequence of the next parallel pixel value.
  • Such interpolation is carried out summing the pixel data in adjacent parallel paths derived from the same parallel pixel.
  • the low-order bit sequence is taken from a point in the parallel path that is delayed by 1 clock cycle relative to the point in the parallel path from which the high-order bit sequence is taken.
  • the one-pixel delays marked D such as the one-pixel delay 35, delay the pixel values in the parallel paths by one clock cycle, a time corresponding to one pixel element.
  • interpolation carried out by summing the low-order bit sequence of one of the parallel pixel data and the high-order bit sequence of the next one of the parallel pixel data is carried out, for example, by the delay 36A and the adder 42B
  • Interpolation in the y-direction is carried out by summing pixel values in parallel paths that are delayed relative to one another by five clock cycles, a time corresponding to one line of the picture data block. This delay is provided by five clock-cycle delays marked 5D, such as the five clock cycle delays 34, 40, and 41, which delay the pixel values in the parallel paths by a time corresponding to five pixel elements, or one line.
  • the delay 34 and the adder 42C carry out interpolation in the y-direction.
  • the resulting interpolation data are selectively delayed by the one clock cycle delays 36, 37, and 38, prior to feeding into the block parallelizing circuit 27.
  • the block serializing circuit 27 consists of nine FIFO memory pairs 43, similar to the FIFO memory pair 31 and 32 shown in FIG. 5, and serializes the 8-bit interpolation data from a total of 18 parallel paths to provide a total of nine matching blocks on independent parallel channels.
  • each of the nine parallel channels is marked to identify some of the interpolation data included in the matching block provided by that channel. The markings correspond to the pixel locations shown in FIGS. 7 through 11.
  • FIGS. 7 and 8 illustrate the way in which the interpolation data are written into and are read out of the FIFO memories 43. The detailed operation will be described later. Data are written into the FIFO memories 43 writes in response to a writing pulse (-we), and the, written data are read out in response to a reading pulse (-re).
  • FIG. 9 shows the construction of the moving vector determining circuit 28.
  • the moving vector determining circuit 28 includes nine difference absolute value sum calculating circuits 50 (50A, 50B, . . . , 50I) each of which calculates a difference absolute value sum for one of the 9 matching blocks of interpolation data S26A through S26I.
  • the operation of the absolute value sum calculating circuits will be now described using the difference absolute sum calculating circuit 50A as an example.
  • the subtracting circuit 52A determines the pixel-by-pixel difference between the matching block of interpolation data S26A and the delayed picture data block S27, i.e., the picture data block S2 delayed by the delay circuit 29, and further delayed by the delay circuit 51A.
  • the resulting differences are fed as the residual data block S30A into the absolute value circuit 53A, which determines the absolute value of the residual data block S30A.
  • the absolute values of the residual data block are fed to the summer 54A and the delay circuit 55A, where they are summed, and the resulting sum is fed through the delay circuit 56A to the minimum value determining circuit 57 as the difference absolute value sum S31A.
  • the difference absolute value sums S31A to S31I are respectively the difference absolute value sum (S31A) for the matching block indicated by the moving vector with one-pixel precision and the difference absolute value sums (31B-31I) for the matching blocks displaced by +1/2, 0, and +1/2 pixel in the x-and y-directions relative to the indicated matching block.
  • the read-only memory 57 is fed with the matching block that has the least difference absolute value sum from the minimum value determining circuit 57, and, in response thereto, provides the corresponding moving vector with half-pixel precision Vi.
  • the vector synthesizing circuit 59 combines the moving vector Vi with the moving vector MVi with one-pixel precision given by the movement detecting circuit 21 to generate the moving vector MVH with half-pixel precision.
  • the picture data block S2 from the pre-processing circuit 2 of the digital motion picture signal compressor, and the search window S12 from the frame memory 14, are fed into the movement detecting section 16.
  • the picture data block S2 and the search window S12 are provided to the movement detecting circuit 21, which provides the moving vector MVi with one-pixel precision.
  • the search window S12 is also provided to the block/raster convening circuit 23, the output of which is fed to the parallelizing circuit 24.
  • the resulting 16-bit parallel pixel data S24 are fed from the parallelizing circuit into the multi-port VRAM 25, so that a moving vector with half-pixel precision, centered around the moving vector MVi with one-pixel precision, can be generated with emphasis on the surrounding area.
  • the addressing in the multi-port VRAM 25 is such that one address corresponds to the data for 2 pixels received from the parallelizing circuit 24 through the delay circuit 33. This allows the address space to be halved.
  • the plane indicated by the half address space will be referred to as "the compressed plane ".
  • Reading of the pixel data will be described with reference to FIG. 10, which depicts the compressed plane, and to FIG. 11, which depicts the picture plane.
  • a mark ⁇ indicates an original pixel
  • marks ⁇ and ⁇ indicate half pixels
  • a mark ⁇ indicates the pixel in the upper-left corner of the matching block indicated by the moving vector with one-pixel precision.
  • the reference numeral 11 indicates the mark ⁇ .
  • the half pixel formed by interpolation from the original pixels at address "0" and address "1” is shown with the mark ⁇ on the line joining addresses 0 and 1.
  • the half pixel formed by interpolation from the original pixels at address "1" and address "2” is shown with the mark ⁇ on the line connecting addresses 1 and 2, and so on.
  • the half pixels indicated by the mark ⁇ are formed by interpolation in the y-direction between the original pixels marked ⁇ above and below, or between the half-pixels marked A, above and below, as shown by dotted lines.
  • FIG. 11 there is a similar relation between the original pixels and the half pixels generated by interpolation.
  • the half-pixel interpolating circuit 26 receives the parallel pixel data successively read from the multi-port VRAM 25, starting from the parallel pixel data of the pixel corresponding to the relative address number 0. As shown in FIG. 10, the half-pixel interpolating circuit 26 carries out interpolation in the x-direction between the high-order-bit sequence (MSB) and the low-order bit sequence (LSB) of the parallel pixel data at the present address, and between the low-order bit sequence of the parallel pixel data at the present address and the high-order bit sequence of the parallel pixel data at the .next address.
  • MSB high-order-bit sequence
  • LSB low-order bit sequence
  • the half-pixel interpolating circuit 26 effects interpolation alternately between high-order bit sequences delayed by a delay corresponding to one line of the block in the x-direction of the compressed plane, and between low-order bit sequences delayed by a delay corresponding to one line of the block in the x-direction of the compressed plane.
  • the half-pixel interpolating circuit 26 By performing processing in the compressed plane, the half-pixel interpolating circuit 26 generates interpolation data with half-pixel precision in the picture plane, making it possible for the interpolation of 10 ⁇ 3 pixels to be calculated in 5 ⁇ 3 clock cycles, i.e., in half the number of clock cycles.
  • the half-pixel interpolating circuit 26 provides the resulting interpolation data on 18 parallel paths, which are fed to the block serializing circuit 27.
  • the block serializing circuit uses the FIFO memories 43 to effect phase difference control between the interpolation data prior to the block serializing operation.
  • the block serializing circuit 27 writes into each pair of FIFO memories 43 only the interpolation data required for the matching block provided by the memory pair.
  • the block serializing circuit begins reading the interpolation data written into the FIFO memories 43.
  • a read pulse is alternately fed to the high-order bit and low-order bit portions of each FIFO memory pair 43, as described above with reference to FIGS. 5 and 6.
  • the interpolation data locations shown in FIGS. 7 and 8 correspond to the interpolation data locations indicated in FIGS. 10 and 11.
  • the interpolation data are written into the FIFO memory 43 when the write pulse (-we) is at a low level (that is, in the logical "L" state), and the written data is read out by starting the read pulse (-re) after a fixed period of time.
  • the read pulse (-re) fed to the FIFO memory pairs is of a clock-alternate type, enabling the 8-bit pixel data represented by the high-order bit sequence and the low-order bit sequence to be read alternately from the FIFO memories constituting each FIFO memory pair.
  • reading must be started at the point in the sequence indicated by ⁇ in FIGS. 7 and 8.
  • the earliest end of writing into the FIFO memory 43 at the 44th clock cycle from the block pulse (which appears once every 64 clock cycles).
  • clock-alternate reading a time corresponding to the full 64 clock cycles is necessary, so that reading the interpolation data must be started at the latest at a point 20 clock cycles (64-44) earlier than the end of the current block. If the above conditions are satisfied, writing the next block will not start before reading the written data of the current block has been completed.
  • the nine matching blocks of interpolation data provided by the block serializing circuit 27 are, in order from the top:
  • the moving vector detecting circuit 28 determines the difference absolute value sums between each matching block of interpolation data S26A through S27I and the delayed picture data block S27, providing the minimum value thereof as residual block data S30 with half-pixel precision.
  • the moving vector Vi for that block is combined with the moving vector MVi of one-pixel precision to form the moving vector MVH at half-pixel precision, and the picture of the: current block is successively compressed.
  • the pixel data in the search window S12 are parallelized by the parallelizing circuit 24, and then the half-pixel interpolating circuit 26 derives interpolation data with half-pixel precision in the area around the moving vector with one-pixel precision. Then, by rearranging the interpolation data in the block serializing circuit 27, nine matching blocks of interpolation data displaced by +1/2, 0, and -1/2 a pixel in the x- and y-directions relative to the matching block indicated by the moving vector with one-pixel precision are supplied to the moving vector determining circuit 28. This makes it possible to easily obtain the moving vector with half-pixel precision using a single clock without ncreasing the number of frame memories.
  • time-sequential pixel data is successively transformed into parallel pixel data and the parallel pixel data with a compressed address space are then interpolated to generate interpolation data for each half pixel in an area designated by the moving vector with one-pixel precision.
  • These interpolation data are fed out in parallel matching blocks, one for each of the plural matching blocks obtained by displacing the block indicated by the moving vector with one-pixel precision by half a pixel in the plus and minus x- and y-directions. This way, it is possible to determine the moving vector with half-pixel precision by interpolation solely in the region surrounding the matching block specified by the moving vector with one-pixel precision.

Abstract

In a picture encoding apparatus, detection of a moving vector of half-pixel precision is executed by using a single clock without increasing the number of frame memories. Time-series input pixel data is transformed into parallel pixel data; the parallel pixel data obtained through the transformation is interpolated to thereby generate interpolating data on each pixel in an area specified by a moving vector of one-pixel precision. The interpolation data is output in parallel as pixel data on a plurality of interpolation block areas obtained by displacing by 1/2 pixel the block area specified by the moving vector at one-pixel unit, thereby making it possible to quickly obtain interpolation data solely on a region around the area specified by the moving vector at one-pixel unit. With this arrangement, interpolation can be executed with a substantially simplified construction as compared to the prior art, making it possible to easily detect a moving vector of half-pixel precision without increasing the number of frame memories of clock frequency.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to an apparatus for compressing a digital motion picture signal, and, in particular, to an apparatus in which the efficiency of the compression is increased to reduce the quantity of data to be transmitted.
2. Description of the Related Art
Conventional techniques for compressing a digital motion picture signal obtain a moving vector before quantizing the digital motion picture signal, and quantize the motion picture signal in response to the moving vector. Compressors that compress a digital motion picture signal in response to a moving vector are disclosed in United States patents such as U.S. Pat. Nos. 4,982,285, 4,985,768, and 4,985,768.
Except when scene changes occur, a motion picture signal generally has a high correlation between portions of the motion picture signal representing two consecutive frames of the motion picture. Thus, a motion picture signal can be compressed by determining the differences in the pixel data between consecutive frames of the motion picture signal, and then quantizing these differences. However, if the picture includes moving portions, the resulting quantity of difference data can be large. For this reason, a method called block matching is used instead.
FIGS. 1A to 1C are diagrams explaining the principles of block matching. The nth frame (FIG. 1A) and the n+1th frame (FIG. 1B) are compared. In these frames, the image portion labelled "tree" is almost unchanged between the frames. Therefore, the error resulting from replacing the image portion "tree" in the n+1th frame (FIG. 1B) with the image portion "tree" of the nth frame (FIG. 1A) is rarely perceptible.
On the other hand, the image portion labelled "car" cannot be replaced in a similar manner. The image portion "car" in the n+1th frame (FIG. 1B) has moved significantly compared with the image portion "car" in the nth frame (FIG. 1A). This change of position of the image portion "car" is shown with solid lines and dotted lines in the n+1th frame of FIG. 1B.
In both the nth frame (FIG. 1A) and the n+1th frame (FIG. 1B), there is almost no change in the image portion "car" itself, and the image portion "car" can therefore be considered to be same in both frames. The block containing the image portion "car" in the nth frame (FIG. 1A) has moved horizontally to the position of the block containing the image portion "car" in the n+1th frame (FIG. 1B). Thus, the quantity of data required to represent the motion picture can then be reduced by analyzing the picture into blocks, and expressing the amount and direction of movement of each block between consecutive frames as a moving vector.
The process of finding the block of the previous frame that is in of optimum accordance with the current block of the current frame is called block matching. Block matching does not generate a moving vector immediately. Instead, as shown in FIG. 1C, matching blocks of the previous frame (B1) are compared with the current block (B2). Plural matching blocks are obtained by sequentially shifting the matching block indicated by the motion vector of the previous frame up, down, left, and right by one pixel. The difference between each pixel in the current block and the corresponding pixel of each matching block of the previous frame is determined. Then, the position of the matching block for which the sum of the differences is a minimum is determined, and the moving quantity of this matching block relative to the current block is used as the moving vector of the current block.
Such an apparatus for compressing a digital motion picture signal generates plural matching blocks by defining plural blocks of the previous frame that are displaced in the x- and y-directions relative to the matching block indicated by the moving vector of the previous frame. Block matching is performed in such a way that the moving vector of the one of the matching blocks, obtained by shifting in each direction as just described, that has the least sum of the absolute values of the differences (difference absolute value sum) between the it and the current block is determined to be the moving vector of the current block.
The quantity of difference data can be further reduced by determining the moving vector with half-pixel precision. A typical method for determining such a moving vector will be described with reference to FIG. 2. First, the moving vector is obtained for each block with one-pixel precision. Next, the moving vector Vi is determined with half-pixel precision, as indicated by □, Δ, and ×, by using the pixel (indicated by ⊚) given by the moving vector MVi as the center, and is combined with the moving vector MVi to obtain the moving vector MVH (=MVi+Vi) with half-pixel precision.
For example, in the case of a current picture block consisting of 8 (in the horizontal direction)×8 (in the vertical direction) pixels, one moving vector with one-pixel precision is obtained for each block in 64 clock cycles. In this time, the corresponding block is displaced in accordance with the moving vector (i,j) and, using the displaced location as a starting point, the data for 10 (in the horizontal direction) ×10 (in the vertical direction) pixels are read at one-pixel precision from (i-1, j-1) to (i+8, j+8), to carry out the interpolation processing.
When the moving vector MVH is determined with half-pixel precision, a double-density search area is formed by deriving interpolation points (indicated by □, Δ, and ×) between adjacent pixels (indicated by ⊚) in the search area. Then, the double-density search area is block matched with the current block to determine the moving vector MVH.
To determine the moving vector with a half-pixel precision, a method may be used in which interpolation is performed beforehand over the entire search area, and the resulting interpolation data are stored in a frame memory. In this case, 10 (in the horizontal direction)×10 (in the vertical direction) pixel data must be read in a period of 64 clock cycles to carry out half-pixel interpolation, so the interpolation operation must be carried out using a clock speed faster than the normal clock speed. Additionally, a clock signal with a clock speed of 64:100 must be generated using a PLL (Phase Locked Loop) circuit. Since the clock speed ratio of the PLL is not simple integer ratio, the system is non-synchronous, and a complex circuit must be used to provide synchronization.
In another method, the computed interpolation data are previously stored in a frame memory, and a moving vector which minimizes the difference absolute value sum can be reliably determined with half-pixel precision. However, since the number of pixels needed for interpolation is larger than the number of pixels subject to block matching, the speed of the block matching processing must be four times higher or a block matching processing circuit having four times the scale must be used.
Therefore, neither of these two alternatives is practical in terms of system construction.
SUMMARY OF THE INVENTION
In view of the foregoing, an object of this invention is to provide an apparatus for compressing a digital motion picture signal that is capable of performing the required processing using a single clock signal, and that does not require an increased number of frame memories.
The foregoing object and other objects of the invention have been achieved by the provision of an apparatus for compressing a motion picture signal to provide a compressed signal in which the motion picture signal is divided into blocks of pixels, a moving vector is obtained with one-pixel precision between a matching block of a previous picture and a current block, a moving vector with half-pixel precision is derived from the moving vector with one-pixel precision, differences between pixel data of the current block and movement compensated picture data obtained in response to the movement vector with half-pixel precision are orthogonally transformed, and resulting transform coefficients are quantized with a predetermined quantizing step size to provide the compressed signal. The apparatus comprises a parallelizing circuits that converts serial pixel data having a first word length into parallel pixel data having a second word length greater than the first word length. An interpolation data generating circuit that performs interpolation on the parallel pixel data to generate interpolation data with respect to each pixel in an area designated by the moving vector with one-pixel precision. A matching block generating circuit that provides the interpolation data output from the interpolation data generating means as interpolation data in plural matching blocks displaced by half a pixel from a matching block designated by the moving vector with one-pixel precision. A difference determining circuit that obtains, for each of the plural matching blocks from the matching block generating circuit, a difference between the interpolation data of the matching block and the pixel data of the current block. Finally, the apparatus comprises a circuit that determines the moving vector with half-pixel precision. The moving vector with half-pixel precision corresponds to the displacement quantity of the one of the matching blocks determined to have the least difference.
By detecting the moving vector with half-pixel precision using interpolation data within a region specified the moving vector MVi with one-pixel precision and the area around the region, the number of frame memories can be reduced compared with the prior art.
Further, by generating interpolation data using parallel pixel data, the processing rate of the interpolation processing can be increased, so that it is possible to detect the moving vector MVH with half-pixel precision without an increase in clock frequency.
The nature, principle and utility of the invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings in which like; parts are designated by like reference numerals or characters.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A to 1C are schematic drawings illustrating block matching.
FIGS. 2A to 2D are drawings illustrating how the interpolation data are derived to calculate the moving vector with half-pixel precision.
FIG. 3 is a block diagram showing: the overall construction of an apparatus for compressing a digital motion picture signal according to the present invention.
FIG. 4 is a block diagram showing the construction of the movement detecting circuit section.
FIG. 5 is a block diagram showing an embodiment of the parallelizing circuit of the present embodiment.
FIG. 6 is a block diagram showing an embodiment of the half-pixel interpolating circuit and the block serializing circuit.
FIG. 7 is one half of a timing chart showing how the interpolation data are written and read by means of write arid read signals supplied to a FIFO memory.
FIG. 8 is the other half of a timing chart showing how the interpolation data are written and read by means of write and read signals supplied to the FIFO memory.
FIG. 9 is a block diagram illustrating the moving vector determining circuit.
FIG. 10 is a chart showing the relationship between the interpolation pixels and original pixels in the compressed plane.
FIG. 11 is a chart showing the relationship between the interpolation pixels and original pixels in the picture plane.
DETAILED DESCRIPTION OF THE EMBODIMENT
Preferred embodiments of this invention will be described with reference to the accompanying drawings.
(1) General Construction of the Embodiment
Referring to FIG. 3, the reference numeral 1 generally indicates the apparatus according to the invention for compressing a digital motion picture signal. The pre-processing circuit 2 converts the analog motion picture signal S1 into a digital motion picture signal comprising plural pixel data. The preprocessing circuit 2 includes a matrix circuit and an analog/digital conversion circuit (not shown).
In this embodiment, the analog motion picture signal S1 is a color video signal. In the preprocessing circuit 2, the color video signal is separated into a luminance signal and a color difference signal. This invention is applied to a luminance signal processing device. This invention may additionally or alternatively be applicable to a color difference signal processing device without departing from the spirit of the invention.
Further, the pre-processing circuit 2 may be constructed to separate the luminance signal and the color difference signal from a color video signal, or to separate RGB components from it. In this case, the invention may be applied to each RGB component.
In the pre-processing circuit 2, the digital pixel data are divided into blocks of a certain number of pixel data to form a picture data block S2. Each picture data block preferably consists of 8×8 pixel data, 16×16 pixel data, and so on. Processing of one block, called the picture data block, of one frame, called the current frame, will be described. Similar processing is performed on each block in each frame.
Further, in this description, the motion picture signal is divided into frames; however, the circuit according to the invention is capable of being used when the motion picture signal is divided into fields.
The picture data block S2 from the preprocessing circuit 2 is supplied to the difference data generating circuit 3 and to the first switching circuit 4, the output of which is connected to the discrete cosine transform circuit 5.
The difference data generating circuit 3 determines the difference between the picture data block S2 and the movement compensation data S3, thereby obtaining the inter-frame difference between the movement compensated data block obtained by performing movement compensation on the previous frame, and the picture data block of the current frame. The resulting difference data block S4 is supplied to the first switching circuit 4.
The first switching circuit 4 is controlled to switch according to the compression mode, and delivers either the picture data block S2 or the difference data block S4, whichever has the least difference absolute value sum relative to the average level of the block, to the discrete cosine transform circuit 5.
In this connection, when compression can be effected with less data using intra-frame compression, this will be referred to as the intra-frame compression mode, and when compression can be effected with less data using with inter-frame compression, this will be referred to as the inter-frame compression mode.
The discrete cosine transform circuit 5 performs an orthogonal transform on each picture data block S2, or on each difference data block S4, depending on the state of the first switching circuit 4, using a discrete cosine transform. The resulting block of transform coefficients S5 is supplied to the quantizing circuit 6.
A discrete cosine transform is used in this embodiment; however, other orthogonal transforms, for example, a fast Fourier transform (FFT) can also be used, as can a Wavelet transform or a Haar transform.
The quantizing circuit 6 quantizes the block of transform coefficients S5 using a quantizing step size set by the step-size control signal S6, and supplies the resulting block of quantized coefficients S7 via the digital output path 18 to processing circuits (not shown), which include a variable-length coding circuit and so on.
The apparatus for compressing a digital motion picture signal additionally includes the local decoder 9 for restoring the compressed signal to provide pictures for use as reference pictures. The local decoder locally decodes each block of quantized coefficients S7 using the dequantizing circuit 10 and the inverse discrete cosine transform circuit 11. The resulting locally-decoded data block S10 is fed to the synthesized data generating circuit 12 and to the second switching circuit 13.
When the picture data block is compressed in the inter-frame compression mode, the second switching circuit 13 supplies to the previous frame memory 14 a recovered picture data block S11 recovered by synthesizing the movement compensation data S3 with the locally-decoded data block S10. On the other hand, when the picture data block is compressed in the intra-frame compression mode, the second switching circuit 13 supplies the locally-decoded data block S10 directly to the previous frame memory 14.
The previous frame memory 14 replaces each block of a previous frame stored therein with the locally-expanded data block S10 or the recovered picture data block S11 to regenerate the picture of the previous frame. The previous frame memory also supplies the picture data of the block of the previous frame corresponding to the picture data block S2 to the post processing circuit 15 as the search window S12.
The post processing circuit 15 converts the search window S12 for each block into a raster signal, i.e., into a line sequence signal. Also, the raster signal is converted into an analog signal by an internal digital-to-analog converter circuit (not shown), and is fed as the expanded video signal S13 to an output terminal (not shown).
The movement detecting section 16 compares the picture data block S2 with the search window S12, i.e., part of the previous picture supplied from the frame memory 14, to obtain the moving vector MVH with half-pixel precision between the picture data block S2 and a matching block of the previous frame. The moving vector signal S14 is fed to the movement compensating circuit 17 and also to the digital output path 18.
The data fed to the digital output path 18 are processed by an error correcting circuit and a modulator and so on (not shown) to produce a signal for transmission or for recording on a suitable recording medium, such as an optical disc.
The movement compensation circuit 17 selects the portion of the previous picture that is shifted relative to the picture data block S2 by the magnitude and direction of movement defined by the moving vector signal S14, and supplies the resulting movement compensation data S3 to the difference data generating circuit 3 and to the synthesized data generating circuit 12.
(2) Construction of the Movement Detecting Section 16
The movement detecting section 16 first determines the moving vector MVi with one-pixel precision, and then generates interpolation pixels from the original pixels of the previous frame only in the region surrounding the block specified by the moving vector. Then,, the movement detecting section 16 matches the picture data block S2 to matching blocks of the interpolation pixels. The matching block indicated by the moving vector with one-pixel precision is used as the center, and a block matching process is performed with half-pixel precision using matching blocks displaced from the center by -1/2, 0 and +1/2 pixel in the x- and y-directions. The amount of displacement of the best matching block, i.e., the matching block having the minimum difference absolute value sum, is adopted as the moving vector Vi with half-pixel precision. The moving vector Vi is combined with the previously-determined moving vector MVi with one-pixel precision to generate the moving vector MVH with half-pixel precision.
The practical construction of the movement detecting section 16 will be described with reference to FIG. 4. The movement detecting circuit 21 derives the moving vector MVi with one-pixel precision from the picture data block S2 and the search window S12 of the previous frame, and supplies the moving vector MVi with one-pixel precision to the interpolation address generating circuit 22 as moving vector data S21.
The interpolation address generating circuit 22 consists of a read-only memory, and converts the pixel positions indicated by the moving vector MVi into corresponding address data, which it provides as interpolation address data S22.
The movement detecting section 16 converts the search window S12, which it receives in blocks, into raster data by means of the block/raster converting circuit 23. The resulting raster data are fed into the parallelizing circuit 24, where they are parallelized, as will be described in more detail below. The resulting parallel pixel data S23 are fed serially from the parallelizing circuit 24, and are successively written into the multi-port VRAM (Video Random Access Memory) 25.
In response to the interpolation address S22 received from the interpolation address generating circuit 22, the multi-port VRAM 25 delivers the parallel pixel dam of the search area in which interpolation is to be performed. The resulting parallel pixel data S24 are fed to the half-pixel interpolating circuit 26.
The half-pixel interpolating circuit 26 receives the parallel pixel data S24, from which it generates interpolation data S25. The block serializing circuit 27 receives the interpolation data S25 and generates 9 matching blocks of serial interpolation data S26. The 9 matching blocks include the data for the matching block indicated by the moving vector MVi with one-pixel precision. Although the data for the matching block indicated by the moving vector MVi with one-pixel precision are not, strictly speaking, interpolation data, since they are not generated by interpolation, they will nevertheless be called interpolation data for the sake of brevity. The matching blocks of interpolation data S26 are fed into the moving vector determining circuit 28.
The moving vector determining circuit 28 determines a difference absolute value sum between the delayed picture data block S27, which is the picture data block S2 fed through the delay circuit 29, and each of the 9 matching blocks of interpolation data S26. The moving vector determining circuit also determines the best matching block by determining which of the 9 matching blocks of interpolation data S26 has the least difference absolute value sum, and establishes the displacement of the best matching block as the moving vector Vi with half-pixel precision.
Finally, the moving vector determining circuit 28 provides the moving vector MVH by synthesizing the moving vector Vi with half-pixel precision with the moving vector MVi received from the movement detecting circuit 21.
(2-1) Construction of the Parallelizing Circuit 24 and the Multi-port RAM 25
The parallelizing circuit 24 will next be described in detail with reference to FIG. 5, which shows a practical example of the construction of the parallelizing circuit 24. In this example, the parallelizing circuit 24 is composed of two FIFO (First In First Out) memories 31 and 32, into which the 8-bit pixel data, serially received from the block/raster converting circuit 23, are alternately written. Pairs of pixel data are then simultaneously read out from both FIFO memories onto a 16-bit data path. This parallelizes the pixel data serially received from the block/raster converting circuit 23 by arranging the pixel data into 16-bit pairs of two pixel data each. The resulting 16-bit parallel pixel data are serially read out as parallel pixel data S23.
The 8-bit pixel data, e.g., the pixel data numbers 0, 1, 2, 3, 4, 5, . . . , serially received from the block/raster converting circuit 23, are first alternately written into each of the FIFO memories 31 and 32. Thus pixel data numbers, e.g., 0, 2, 4, . . . , are written into FIFO memory 31, and pixel data numbers, e.g., 1, 3, 5, . . . , are written into FIFO memory 32. The pixel data are serially read out of the FIFO memories into a 16-bit data path in pairs consisting of, e.g, pixel data numbers 0 and 1; pixel data numbers 2 and 3; pixel data numbers 4 and 5; . . . as parallel pixel data S23.
The addressing provided in the multi-port VRAM 25 is such that one address defines the location of each of the parallel pixel data received from the parallelizing circuit 24 via the delay circuit 33. This reduces the address space to one half, since one address in the VRAM 25 defines the location of two pixel data. The plane in which one address refers to two pixel data will henceforth be referred to as the "compressed plane".
In the compressed plane, the 8 most significant bits and the 8 least significant bit of the 16-bit parallel pixel data will be called the high-order bit sequence and the low-order bit sequence, respectively. Therefore, it is possible to divide the parallel pixel data complimentarily into a high-order bit sequence representing, for example, even-numbered pixels, and a low order bit sequence representing, for example, odd-numbered pixels.
(2-2) Construction of the Half-Pixel Interpolating Circuit 26 and the Block Serializing Circuit 27
The half-pixel interpolating circuit 26 and the block serializing circuit 27 are constructed as shown in FIG. 6. The half-pixel interpolating circuit 26 performs data interpolation in a parallelized state, and the block serializing circuit 27 serializes the resulting interpolation data, making it possible to obtain the absolute value difference sum of each block in the time period corresponding to one block.
In FIG. 6, the half-pixel interpolating circuit 26 receives the 16-bit parallel pixel data S24 from the multi-port VRAM 25, branches the 16-bit parallel pixel data into two parallel paths, and into a third parallel path delayed by the five unit delay circuit 34 by a delay time corresponding to 5 clock cycles. A delay of 5 clock cycles corresponds to a delay of one line in the picture data block. Each of the three parallel paths is further branched into a high-order bit sequence and a low-order bit sequence to form a total of six parallel sequences of 8-bit pixel data. It should be noted that the pixel data on the parallel paths marked MSB are the pixel data of, for example, even-numbered pixels, and the pixel data on the parallel paths marked LSB are the pixel data of, for example, odd-numbered pixels.
Interpolation is carried out by adding selected pairs of pixel data and dividing the result by two. Half of the interpolations in the x-direction are carried out by summing the pixel data in adjacent parallel paths derived from the same parallel pixel data. This carries out interpolation between the high-order bit sequence and the low-order bit sequence of each of the parallel pixel data, and produces alternate ones of the required interpolation data in the x-direction. Such interpolation is carried out, for example, by the adder 42A.
The remainder of the interpolations in the x-direction are carried out by summing the low-order bit sequence of one parallel pixel value and the high-order bit sequence of the next parallel pixel value. Such interpolation is carried out summing the pixel data in adjacent parallel paths derived from the same parallel pixel. However, the low-order bit sequence is taken from a point in the parallel path that is delayed by 1 clock cycle relative to the point in the parallel path from which the high-order bit sequence is taken. The one-pixel delays marked D, such as the one-pixel delay 35, delay the pixel values in the parallel paths by one clock cycle, a time corresponding to one pixel element. Thus, interpolation carried out by summing the low-order bit sequence of one of the parallel pixel data and the high-order bit sequence of the next one of the parallel pixel data is carried out, for example, by the delay 36A and the adder 42B
Interpolation in the y-direction is carried out by summing pixel values in parallel paths that are delayed relative to one another by five clock cycles, a time corresponding to one line of the picture data block. This delay is provided by five clock-cycle delays marked 5D, such as the five clock cycle delays 34, 40, and 41, which delay the pixel values in the parallel paths by a time corresponding to five pixel elements, or one line. For example, the delay 34 and the adder 42C carry out interpolation in the y-direction.
Interpolation in the x- and y-directions are provided by combining the techniques just described.
The resulting interpolation data are selectively delayed by the one clock cycle delays 36, 37, and 38, prior to feeding into the block parallelizing circuit 27.
The block serializing circuit 27 consists of nine FIFO memory pairs 43, similar to the FIFO memory pair 31 and 32 shown in FIG. 5, and serializes the 8-bit interpolation data from a total of 18 parallel paths to provide a total of nine matching blocks on independent parallel channels. In FIG. 6, each of the nine parallel channels is marked to identify some of the interpolation data included in the matching block provided by that channel. The markings correspond to the pixel locations shown in FIGS. 7 through 11.
FIGS. 7 and 8 illustrate the way in which the interpolation data are written into and are read out of the FIFO memories 43. The detailed operation will be described later. Data are written into the FIFO memories 43 writes in response to a writing pulse (-we), and the, written data are read out in response to a reading pulse (-re).
(2-3) Construction of the Moving Vector Determining Circuit 28
FIG. 9 shows the construction of the moving vector determining circuit 28. The moving vector determining circuit 28 includes nine difference absolute value sum calculating circuits 50 (50A, 50B, . . . , 50I) each of which calculates a difference absolute value sum for one of the 9 matching blocks of interpolation data S26A through S26I. The operation of the absolute value sum calculating circuits will be now described using the difference absolute sum calculating circuit 50A as an example.
In the difference absolute value sum calculating circuit 50A, the subtracting circuit 52A determines the pixel-by-pixel difference between the matching block of interpolation data S26A and the delayed picture data block S27, i.e., the picture data block S2 delayed by the delay circuit 29, and further delayed by the delay circuit 51A. The resulting differences are fed as the residual data block S30A into the absolute value circuit 53A, which determines the absolute value of the residual data block S30A. The absolute values of the residual data block are fed to the summer 54A and the delay circuit 55A, where they are summed, and the resulting sum is fed through the delay circuit 56A to the minimum value determining circuit 57 as the difference absolute value sum S31A.
The difference absolute value sums S31A to S31I are respectively the difference absolute value sum (S31A) for the matching block indicated by the moving vector with one-pixel precision and the difference absolute value sums (31B-31I) for the matching blocks displaced by +1/2, 0, and +1/2 pixel in the x-and y-directions relative to the indicated matching block.
The read-only memory 57 is fed with the matching block that has the least difference absolute value sum from the minimum value determining circuit 57, and, in response thereto, provides the corresponding moving vector with half-pixel precision Vi.
Finally, the vector synthesizing circuit 59 combines the moving vector Vi with the moving vector MVi with one-pixel precision given by the movement detecting circuit 21 to generate the moving vector MVH with half-pixel precision.
(3) Operation and Effects of the Embodiment
The operation of the above-described construction of the digital motion picture signal compressor according to the invention will now be described in detail.
In FIG. 3, the picture data block S2 from the pre-processing circuit 2 of the digital motion picture signal compressor, and the search window S12 from the frame memory 14, are fed into the movement detecting section 16.
In the movement detecting section 16 shown in FIG. 4, the picture data block S2 and the search window S12 are provided to the movement detecting circuit 21, which provides the moving vector MVi with one-pixel precision.
The search window S12 is also provided to the block/raster convening circuit 23, the output of which is fed to the parallelizing circuit 24. The resulting 16-bit parallel pixel data S24 are fed from the parallelizing circuit into the multi-port VRAM 25, so that a moving vector with half-pixel precision, centered around the moving vector MVi with one-pixel precision, can be generated with emphasis on the surrounding area.
The addressing in the multi-port VRAM 25 is such that one address corresponds to the data for 2 pixels received from the parallelizing circuit 24 through the delay circuit 33. This allows the address space to be halved. The plane indicated by the half address space will be referred to as "the compressed plane ".
Reading of the pixel data will be described with reference to FIG. 10, which depicts the compressed plane, and to FIG. 11, which depicts the picture plane.
In both planes, a mark ∘ indicates an original pixel, marks Δ and × indicate half pixels, and a mark ⊚ indicates the pixel in the upper-left corner of the matching block indicated by the moving vector with one-pixel precision. In the Figures, the reference numeral 11 indicates the mark ⊚.
In the compressed plane shown in FIG. 10, the half pixel formed by interpolation from the original pixels at address "0" and address "1" is shown with the mark Δ on the line joining addresses 0 and 1. Similarly, the half pixel formed by interpolation from the original pixels at address "1" and address "2" is shown with the mark Δ on the line connecting addresses 1 and 2, and so on. The half pixels indicated by the mark × are formed by interpolation in the y-direction between the original pixels marked ∘ above and below, or between the half-pixels marked A, above and below, as shown by dotted lines. In the picture plane shown in FIG. 11, there is a similar relation between the original pixels and the half pixels generated by interpolation.
In FIG. 6, to generate the interpolation pixels, the half-pixel interpolating circuit 26 receives the parallel pixel data successively read from the multi-port VRAM 25, starting from the parallel pixel data of the pixel corresponding to the relative address number 0. As shown in FIG. 10, the half-pixel interpolating circuit 26 carries out interpolation in the x-direction between the high-order-bit sequence (MSB) and the low-order bit sequence (LSB) of the parallel pixel data at the present address, and between the low-order bit sequence of the parallel pixel data at the present address and the high-order bit sequence of the parallel pixel data at the .next address.
In the y-direction, the half-pixel interpolating circuit 26 effects interpolation alternately between high-order bit sequences delayed by a delay corresponding to one line of the block in the x-direction of the compressed plane, and between low-order bit sequences delayed by a delay corresponding to one line of the block in the x-direction of the compressed plane.
By performing processing in the compressed plane, the half-pixel interpolating circuit 26 generates interpolation data with half-pixel precision in the picture plane, making it possible for the interpolation of 10×3 pixels to be calculated in 5×3 clock cycles, i.e., in half the number of clock cycles.
The half-pixel interpolating circuit 26 provides the resulting interpolation data on 18 parallel paths, which are fed to the block serializing circuit 27. In addition to serializing the interpolation data, the block serializing circuit uses the FIFO memories 43 to effect phase difference control between the interpolation data prior to the block serializing operation. By providing appropriately-timed writing pulses to each of the FIFO memories 43, the block serializing circuit 27 writes into each pair of FIFO memories 43 only the interpolation data required for the matching block provided by the memory pair. Then, after a fixed time, the block serializing circuit begins reading the interpolation data written into the FIFO memories 43. A read pulse is alternately fed to the high-order bit and low-order bit portions of each FIFO memory pair 43, as described above with reference to FIGS. 5 and 6.
The interpolation data locations shown in FIGS. 7 and 8 correspond to the interpolation data locations indicated in FIGS. 10 and 11. The interpolation data are written into the FIFO memory 43 when the write pulse (-we) is at a low level (that is, in the logical "L" state), and the written data is read out by starting the read pulse (-re) after a fixed period of time. The read pulse (-re) fed to the FIFO memory pairs is of a clock-alternate type, enabling the 8-bit pixel data represented by the high-order bit sequence and the low-order bit sequence to be read alternately from the FIFO memories constituting each FIFO memory pair.
For this purpose, reading must be started at the point in the sequence indicated by ∘ in FIGS. 7 and 8. Of the 9 matching blocks of interpolation data shown, the earliest end of writing into the FIFO memory 43 at the 44th clock cycle from the block pulse (which appears once every 64 clock cycles). With clock-alternate reading, a time corresponding to the full 64 clock cycles is necessary, so that reading the interpolation data must be started at the latest at a point 20 clock cycles (64-44) earlier than the end of the current block. If the above conditions are satisfied, writing the next block will not start before reading the written data of the current block has been completed.
In FIG. 6, the nine matching blocks of interpolation data provided by the block serializing circuit 27 are, in order from the top:
(1) interpolation data for the block indicated by the moving vector MVi with one-pixel precision, that is, 11, 12, 13 and 14 (as mentioned above, that these data are not, strictly speaking, interpolation data, since they are not generated by interpolation. However, for the sake of brevity, they will nevertheless be called interpolation data);
(2) interpolation data for the block displaced by half a pixel in the -x-direction with respect to the block indicated by the moving vector MVi, that is, C01, C12, C23 and C34;
(3) interpolation data for the block displaced by half a pixel in the +x-direction with respect to the block indicated by the moving vector MVi, that is, C12, C23, C34 and C45;
(4) interpolation data for the block displaced by half a pixel in the -y-direction with respect to the block indicated by the moving vector MVi, that is, B1, B2, B3 and B4;
(5) block pixel data displaced by half a pixel in the in the +y-direction with respect to the block indicated by the moving vector MVi, that is, El, E2, E3 and E4;
(6) interpolation data for the block displaced by half a pixel in both the -x-and -y-directions with respect to the block indicated by the moving vector MVi, that is, A01, A12, A23 and A34;
(7) interpolation data for the block displaced by half a pixel in the +x-direction and the -y-direction with respect to the block indicated by the moving vector MVi, that is, A12, A23, A34 and A45;
(8) interpolation data for the block displaced by half a pixel in the -x-direction and the +y-direction with respect to the block indicated by the moving vector MVi, that is, D01, D12, D23 and D34; and
(9) interpolation data for the block displaced by half a pixel in both the +x- and +y-directions with respect to the block indicated by the moving vector MVi, that is, D12, D23, D34 and D45.
The moving vector detecting circuit 28 determines the difference absolute value sums between each matching block of interpolation data S26A through S27I and the delayed picture data block S27, providing the minimum value thereof as residual block data S30 with half-pixel precision.
Finally, the moving vector Vi for that block is combined with the moving vector MVi of one-pixel precision to form the moving vector MVH at half-pixel precision, and the picture of the: current block is successively compressed.
With the above construction, the pixel data in the search window S12 are parallelized by the parallelizing circuit 24, and then the half-pixel interpolating circuit 26 derives interpolation data with half-pixel precision in the area around the moving vector with one-pixel precision. Then, by rearranging the interpolation data in the block serializing circuit 27, nine matching blocks of interpolation data displaced by +1/2, 0, and -1/2 a pixel in the x- and y-directions relative to the matching block indicated by the moving vector with one-pixel precision are supplied to the moving vector determining circuit 28. This makes it possible to easily obtain the moving vector with half-pixel precision using a single clock without ncreasing the number of frame memories.
Further, by adopting a moving vector with half-pixel precision and reducing the amount of inter-frame difference information, the amount of information generated when the motion picture signal is compressed is reduced, thereby achieving an improvement in terms of picture quality.
Further, even when an expensive dedicated LSI is used for determining the moving vector detection, the number of parts can be reduced, thereby realizing a reduction in system costs.
(4) Other Embodiments
While the above embodiment has been described with reference to a parallelizing circuit 24 constructed as shown in FIG. 5, the present invention is not limited to this. It is also possible to parallelize plural pixel data with different circuit configurations.
Also, while the above embodiment has been described with reference to the half-pixel interpolating circuit 26 constructed as shown in FIG. 6, the present invention is not limited to this. It is also possible to interpolate parallelized data with different circuit configurations.
Further, while the above embodiment has been described with reference to a block serializing circuit 27 constructed as shown in FIG. 9, the present invention is not limited to this. It is also possible to block-serialize the interpolation data with different circuit configurations and signal timing.
Still further, while the above embodiment has been described with reference to movement compensation being effected on only the object range, the present invention is not limited to this. It is also widely applicable to other interpolating circuits intended for data interpolation.
As described above, in accordance with the present invention, time-sequential pixel data is successively transformed into parallel pixel data and the parallel pixel data with a compressed address space are then interpolated to generate interpolation data for each half pixel in an area designated by the moving vector with one-pixel precision. These interpolation data are fed out in parallel matching blocks, one for each of the plural matching blocks obtained by displacing the block indicated by the moving vector with one-pixel precision by half a pixel in the plus and minus x- and y-directions. This way, it is possible to determine the moving vector with half-pixel precision by interpolation solely in the region surrounding the matching block specified by the moving vector with one-pixel precision.
This makes it possible to execute interpolation processing at high speed with a substantially simplified construction compared to the prior art. This enables a moving vector with half-pixel precision to be easily determined without increasing the number of frame memories or raising the clock frequency.
While there has been described in connection with the preferred embodiments of the invention, it will be obvious to those skilled in the art that various changes and modifications may be aimed, therefore, to cover in the appended claims all such changes and modifications as fall within the true spirit and scope of the invention.

Claims (8)

What is claimed is:
1. Apparatus for compressing a motion picture signal to provide a compressed signal, wherein the motion picture signal is divided into blocks of pixels, a moving vector is obtained with one-pixel precision between a matching block of a previous picture and a current block, a moving vector with half-pixel precision is derived from the moving vector with one-pixel precision, differences between pixel data of the current block and movement compensated picture data obtained in response to the movement vector with half-pixel precision are orthogonally transformed, and resulting transform coefficients are quantized with a predetermined quantizing step size to provide the compressed signal, the apparatus comprising:
parallelizing means for converting serial pixel data having a first word length into parallel pixel data having a second word length greater than the first word length;
interpolation data generating means for performing interpolation on the parallel pixel data to generate interpolation data with respect to each pixel in an area designated by the moving vector with one-pixel precision;
matching block generating means for providing the interpolation data output from the interpolation data generating means as interpolation data in plural matching blocks displaced by half a pixel from a matching block designated by the moving vector with one-pixel precision;
difference determining means for obtaining, for each of the plural matching blocks from the matching block generating means, a difference between the interpolation data of the matching block and the pixel data of the current block; and
means for determining the moving vector with half-pixel precision, the moving vector with half-pixel precision corresponding to a displacement quantity of the one of the matching blocks determined to have the least difference.
2. The apparatus of claim 1, wherein:
each of the parallel pixel data includes most significant bits and least significant bits; and
the interpolation data generating means includes means for generating horizontal interpolation data by alternately repeating:
interpolation between the most significant bits and the least significant bits of each of the parallel pixel data, and
interpolation between the most significant bits of each of the parallel pixel data and the least significant bits of each of the parallel pixel data at one address previous.
3. The apparatus of claim 1, wherein the parallelizing means converts pairs of serially input pixel data into the parallel pixel data, compressing by half an address space designating the pixel data in each block.
4. The apparatus of claim 3, wherein the parallelizing means comprises two first-in, first-out memories.
5. The apparatus of claim 1, wherein:
each of the parallel pixel data includes most significant bits and least significant bits; and
the interpolation data generating means includes means for generating vertical interpolation data by repeating interpolation between the most significant bits of the parallel pixel data delayed by one line of the block, and between the least significant bits of the parallel pixel data delayed by one line of the block.
6. The apparatus of claim 5, wherein the interpolation data generating means includes:
means for branching the parallel pixel data into three parallel paths,
means for separating the parallel pixel data in each parallel path into most significant bits and least significant bits to provide six parallel paths of pixel data, and
means for selectively delaying the pixel data in the parallel paths to provide selectively-delayed pixel data, and for adding selected ones of the selectively-delayed parallel pixel data to generate the interpolation data.
7. The apparatus of claim 1, wherein the matching block generating means includes memory means for storing the interpolation data in response to a write signal, the write signal being applied to select the interpolation data to be stored.
8. The apparatus of claim 7, wherein the matching block generating means:
receives the interpolation data on eighteen parallel paths, and provides nine parallel matching blocks of serial interpolation data; and
includes plural first-in, first out memories and plural delay circuits.
US08/066,723 1992-05-29 1993-05-24 Moving picture encoding apparatus and method Expired - Fee Related US5408269A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/148,821 US5461423A (en) 1992-05-29 1993-11-04 Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4-163833 1992-05-29
JP16383392A JPH05336514A (en) 1992-05-29 1992-05-29 Image encoding device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/148,821 Continuation-In-Part US5461423A (en) 1992-05-29 1993-11-04 Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal

Publications (1)

Publication Number Publication Date
US5408269A true US5408269A (en) 1995-04-18

Family

ID=15781615

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/066,723 Expired - Fee Related US5408269A (en) 1992-05-29 1993-05-24 Moving picture encoding apparatus and method

Country Status (5)

Country Link
US (1) US5408269A (en)
EP (1) EP0572904A3 (en)
JP (1) JPH05336514A (en)
KR (1) KR940006411A (en)
TW (1) TW225016B (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532747A (en) * 1993-09-17 1996-07-02 Daewoo Electronics Co., Ltd. Method for effectuating half-pixel motion compensation in decoding an image signal
US5539467A (en) * 1993-09-14 1996-07-23 Goldstar Co., Ltd. B-frame processing apparatus including a motion compensation apparatus in the unit of a half pixel for an image decoder
US5541658A (en) * 1993-06-29 1996-07-30 Kabushiki Kaisha Toshiba Image coding-decoding apparatus with efficient memory access
US5544251A (en) * 1994-01-14 1996-08-06 Intel Corporation Process and apparatus for pseudo-SIMD processing of image data
US5579050A (en) * 1995-03-09 1996-11-26 Daewoo Electronics Co., Ltd. Apparatus for encoding a video signal using a search grid
US5587741A (en) * 1993-07-21 1996-12-24 Daewoo Electronics Co., Ltd. Apparatus and method for detecting motion vectors to half-pixel accuracy
US5623313A (en) * 1995-09-22 1997-04-22 Tektronix, Inc. Fractional pixel motion estimation of video signals
US5694179A (en) * 1994-12-23 1997-12-02 Electronics And Telecommunications Research Institute Apparatus for estimating a half-pel motion in a video compression method
US5771079A (en) * 1995-08-25 1998-06-23 Lg Electronics Inc. Apparatus and method for predicting pixel data of dynamic image using a half pixel pitch
US5774600A (en) * 1995-04-18 1998-06-30 Advanced Micro Devices, Inc. Method of pixel averaging in a video processing apparatus
US5832120A (en) * 1995-12-22 1998-11-03 Cirrus Logic, Inc. Universal MPEG decoder with scalable picture size
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
US6008852A (en) * 1996-03-18 1999-12-28 Hitachi, Ltd. Video coder with global motion compensation
US6067367A (en) * 1996-10-31 2000-05-23 Yamatake-Honeywell Co., Ltd. Moving direction measuring device and tracking apparatus
US6067071A (en) * 1996-06-27 2000-05-23 Cirrus Logic, Inc. Method and apparatus for expanding graphics images for LCD panels
US6430223B1 (en) * 1997-11-01 2002-08-06 Lg Electronics Inc. Motion prediction apparatus and method
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US20090202177A1 (en) * 2008-02-07 2009-08-13 Eric Jeffrey Non-Uniform Image Resizer
US20100322303A1 (en) * 2008-03-07 2010-12-23 Naofumi Wada Video encoding/decoding method and apparatus
US20110088571A1 (en) * 2009-10-16 2011-04-21 Martin Bruce Kelly Press for resealable zipper storage bags

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07288819A (en) * 1994-04-19 1995-10-31 Sony Corp Motion vector detector
FR2719397B1 (en) * 1994-04-27 1996-07-19 Sgs Thomson Microelectronics Device for supplying pixels to a series of operators of a mobile image compression circuit.
US5537155A (en) * 1994-04-29 1996-07-16 Motorola, Inc. Method for estimating motion in a video sequence
KR970010094B1 (en) * 1994-06-24 1997-06-21 Korea Telecommunication Improved motion vector extraction method
CN1108061C (en) * 1995-03-20 2003-05-07 大宇电子株式会社 Apparatus for encoding vided signal using search grid
KR100226684B1 (en) * 1996-03-22 1999-10-15 전주범 A half pel motion estimator
EP3220642B1 (en) 2016-03-15 2018-03-07 Axis AB Method, apparatus and system for encoding a video stream by defining areas within a second image frame with image data common to a first image frame

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57127982A (en) * 1981-01-27 1982-08-09 Nec Home Electronics Ltd Memory address system
US4862267A (en) * 1987-06-09 1989-08-29 Sony Corp. Motion compensated interpolation of digital television images
JPH0290245A (en) * 1988-09-27 1990-03-29 Seiko Epson Corp Memory control circuit
US4937666A (en) * 1989-12-04 1990-06-26 Bell Communications Research, Inc. Circuit implementation of block matching algorithm with fractional precision
GB2236449A (en) * 1989-09-20 1991-04-03 British Broadcasting Corp Motion estimation for television signals
US5030953A (en) * 1990-07-11 1991-07-09 Massachusetts Institute Of Technology Charge domain block matching processor
EP0447068A2 (en) * 1990-02-28 1991-09-18 Victor Company Of Japan, Ltd. Motion image data compression system
EP0497586A2 (en) * 1991-01-31 1992-08-05 Sony Corporation Motion detection circuit
EP0517095A1 (en) * 1991-05-30 1992-12-09 Sony Corporation Image signal interpolating circuit
EP0544122B1 (en) * 1991-10-31 1999-04-28 Victor Company Of Japan, Limited Device for compensating motions in images

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57127982A (en) * 1981-01-27 1982-08-09 Nec Home Electronics Ltd Memory address system
US4862267A (en) * 1987-06-09 1989-08-29 Sony Corp. Motion compensated interpolation of digital television images
JPH0290245A (en) * 1988-09-27 1990-03-29 Seiko Epson Corp Memory control circuit
GB2236449A (en) * 1989-09-20 1991-04-03 British Broadcasting Corp Motion estimation for television signals
US4937666A (en) * 1989-12-04 1990-06-26 Bell Communications Research, Inc. Circuit implementation of block matching algorithm with fractional precision
EP0447068A2 (en) * 1990-02-28 1991-09-18 Victor Company Of Japan, Ltd. Motion image data compression system
US5030953A (en) * 1990-07-11 1991-07-09 Massachusetts Institute Of Technology Charge domain block matching processor
EP0497586A2 (en) * 1991-01-31 1992-08-05 Sony Corporation Motion detection circuit
EP0517095A1 (en) * 1991-05-30 1992-12-09 Sony Corporation Image signal interpolating circuit
EP0544122B1 (en) * 1991-10-31 1999-04-28 Victor Company Of Japan, Limited Device for compensating motions in images

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Very High Efficiency VLSI Chip-Pair for Full Search Block Matching With Fractional Precision," Kun-Min Yang et al., pp. 2437-2440, CH2673-2/.80/0000-2437--1989 IEEE.
Very High Efficiency VLSI Chip Pair for Full Search Block Matching With Fractional Precision, Kun Min Yang et al., pp. 2437 2440, CH2673 2/.80/0000 2437 1989 IEEE. *

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541658A (en) * 1993-06-29 1996-07-30 Kabushiki Kaisha Toshiba Image coding-decoding apparatus with efficient memory access
US5587741A (en) * 1993-07-21 1996-12-24 Daewoo Electronics Co., Ltd. Apparatus and method for detecting motion vectors to half-pixel accuracy
US5539467A (en) * 1993-09-14 1996-07-23 Goldstar Co., Ltd. B-frame processing apparatus including a motion compensation apparatus in the unit of a half pixel for an image decoder
US5532747A (en) * 1993-09-17 1996-07-02 Daewoo Electronics Co., Ltd. Method for effectuating half-pixel motion compensation in decoding an image signal
US5544251A (en) * 1994-01-14 1996-08-06 Intel Corporation Process and apparatus for pseudo-SIMD processing of image data
US5694179A (en) * 1994-12-23 1997-12-02 Electronics And Telecommunications Research Institute Apparatus for estimating a half-pel motion in a video compression method
US5579050A (en) * 1995-03-09 1996-11-26 Daewoo Electronics Co., Ltd. Apparatus for encoding a video signal using a search grid
US5774600A (en) * 1995-04-18 1998-06-30 Advanced Micro Devices, Inc. Method of pixel averaging in a video processing apparatus
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
US5771079A (en) * 1995-08-25 1998-06-23 Lg Electronics Inc. Apparatus and method for predicting pixel data of dynamic image using a half pixel pitch
US5623313A (en) * 1995-09-22 1997-04-22 Tektronix, Inc. Fractional pixel motion estimation of video signals
US5832120A (en) * 1995-12-22 1998-11-03 Cirrus Logic, Inc. Universal MPEG decoder with scalable picture size
US20030043914A1 (en) * 1996-03-18 2003-03-06 Hitachi, Ltd. Method of coding and decoding image
US7298781B2 (en) 1996-03-18 2007-11-20 Renesas Technology Corp. Method of coding and decoding image
US8233543B2 (en) 1996-03-18 2012-07-31 Hitachi, Ltd. Method of coding and decoding image
US6178202B1 (en) 1996-03-18 2001-01-23 Hitachi, Ltd. Video coder with global motion compensation
US8204110B2 (en) 1996-03-18 2012-06-19 Hitachi, Ltd. Method of coding and decoding image
US6442205B1 (en) 1996-03-18 2002-08-27 Hitachi, Ltd. Method of coding and decoding image
US6483877B2 (en) * 1996-03-18 2002-11-19 Hitachi, Ltd. Method of coding and decoding image
US20030035483A1 (en) * 1996-03-18 2003-02-20 Hitachi, Ltd. Method of coding and decoding image
US6008852A (en) * 1996-03-18 1999-12-28 Hitachi, Ltd. Video coder with global motion compensation
US6687302B2 (en) * 1996-03-18 2004-02-03 Hitachi, Ltd. Method of coding and decoding image
US6711210B2 (en) * 1996-03-18 2004-03-23 Hitachi, Ltd. Method of coding and decoding image
US20040096000A1 (en) * 1996-03-18 2004-05-20 Hitachi, Ltd. Method of coding and decoding image
US20050226336A1 (en) * 1996-03-18 2005-10-13 Renesas Technology Corp. Method of coding and decoding image
US20100284470A1 (en) * 1996-03-18 2010-11-11 Hitachi, Ltd. Method of coding and decoding image
US6987810B2 (en) 1996-03-18 2006-01-17 Renesas Technology Corp. Method of coding and decoding image
US20100284463A1 (en) * 1996-03-18 2010-11-11 Hitachi, Ltd. Method of coding and decoding image
US20080025404A1 (en) * 1996-03-18 2008-01-31 Renesas Technology Corp. Method of coding and decoding image
US7817720B2 (en) 1996-03-18 2010-10-19 Hitachi, Ltd. Method of coding and decoding image
US6067071A (en) * 1996-06-27 2000-05-23 Cirrus Logic, Inc. Method and apparatus for expanding graphics images for LCD panels
US6067367A (en) * 1996-10-31 2000-05-23 Yamatake-Honeywell Co., Ltd. Moving direction measuring device and tracking apparatus
US6430223B1 (en) * 1997-11-01 2002-08-06 Lg Electronics Inc. Motion prediction apparatus and method
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
USRE44012E1 (en) 1999-07-27 2013-02-19 Sharp Kabushiki Kaisha Methods for motion estimation with adaptive motion accuracy
USRE45014E1 (en) 1999-07-27 2014-07-15 Sharp Kabushiki Kaisha Methods for motion estimation with adaptive motion accuracy
USRE46468E1 (en) 1999-07-27 2017-07-04 Sharp Kabushiki Kaisha Methods for motion estimation with adaptive motion accuracy
US20090202177A1 (en) * 2008-02-07 2009-08-13 Eric Jeffrey Non-Uniform Image Resizer
US8086073B2 (en) 2008-02-07 2011-12-27 Seiko Epson Corporation Non-uniform image resizer
US20100322303A1 (en) * 2008-03-07 2010-12-23 Naofumi Wada Video encoding/decoding method and apparatus
US20110088571A1 (en) * 2009-10-16 2011-04-21 Martin Bruce Kelly Press for resealable zipper storage bags

Also Published As

Publication number Publication date
EP0572904A2 (en) 1993-12-08
KR940006411A (en) 1994-03-23
EP0572904A3 (en) 1994-08-17
TW225016B (en) 1994-06-11
JPH05336514A (en) 1993-12-17

Similar Documents

Publication Publication Date Title
US5408269A (en) Moving picture encoding apparatus and method
US5461423A (en) Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US6130912A (en) Hierarchical motion estimation process and system using block-matching and integral projection
US6671319B1 (en) Methods and apparatus for motion estimation using neighboring macroblocks
KR100519871B1 (en) Method and arrangement for creating a high-resolution still picture
US4788589A (en) Method and apparatus for transmitting video data
KR100261072B1 (en) Digital signal processing system
US6483876B1 (en) Methods and apparatus for reduction of prediction modes in motion estimation
EP0679034B1 (en) Apparatus and method for detecting motion vectors
US5943096A (en) Motion vector based frame insertion process for increasing the frame rate of moving images
US5430490A (en) Scanning format converting circuit using motion vectors
JPH06141301A (en) Picture information compressor, expander and compander
US4656511A (en) Video signal compressing and coding apparatus
US6360015B1 (en) RAM-based search engine for orthogonal-sum block match motion estimation system
JPH02200078A (en) Device and method for television transmission
US5982439A (en) Coding image data
US5748248A (en) Real time motion vector processing of image data
US20040042552A1 (en) Method and apparatus for determining motion vectors in dynamic images
JPH0795591A (en) Digital picture signal processing unit
US5907360A (en) Coder/decoder for television image sub-band compatible coding, and its application to hierarchical motion coding by tree structures
EP0652676A1 (en) Apparatus and method for compressing a digital motion picture signal
JP2918506B2 (en) A half-pixel processing device for macroblocks during motion compensation of moving images
EP0974103A2 (en) Method and apparatus for half pixel sad generation
US5694178A (en) Start and end address generating circuit for performing motion compensation during moving picture compression coding
KR100295837B1 (en) Apparatus for motion estimation so as to moving picture coding

Legal Events

Date Code Title Description
AS Assignment

Owner name: SONY CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TSUKAGOSHI, IKUO;REEL/FRAME:006567/0797

Effective date: 19930514

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20070418