Apparatus and method of coding/decoding video data
First Claim
1. A coder for compressing data, comprising:
- block dividing means for dividing a frame of data into blocks of predetermined sizes, and outputting original data blocks;
coding means, coupled to said block dividing means, for coding each of said original data blocks according to a predetermined algorithm, and outputting coded data blocks;
reconstruction means, coupled to said coding means, for reconstructing each of said coded data blocks, and outputting reconstructed data blocks corresponding to said original data blocks;
a frame memory, coupled to said reconstruction means, for storing a frame of data based on said reconstructed data blocks;
search area determining means, coupled to said frame memory, for selecting a predetermined number of said reconstructed data blocks stored in said frame memory so as to define a search area;
displacement estimation means coupled to said search area determining means for receiving said selected number of reconstructed data blocks, and coupled to said block dividing means for receiving a present data block, said displacement estimation means determining by estimation which one of said reconstructed data blocks has a pattern similar to said present data block, and calculating a displacement vector based on said estimation;
displacement compensation means, coupled to said frame memory and to an output of said displacement estimation means, for receiving and outputting the data block from said frame memory having the pattern similar to said present data block based on said output of said displacement estimation means;
a first adder, coupled to said block dividing means and said displacement compensation means, for calculating differential data based on said present data block and the data block output by said displacement compensation means;
mode determining means, coupled to said first adder and said block dividing means, for determining a mode by comparing said present data block with said differential data, and outputting a corresponding mode value; and
means, responsive to said mode value output by said mode determining means, for selecting one of said present data block and said differential data according to the mode value; and
inputting said selected one of said present data block and said differential data to said coding means for coding.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for coding and decoding video data including a still image or active image on an intraframe basis. The coding system defines a search area composed of reconstructed data blocks and determines which one of the blocks within the search area has a pattern similar to a present data block that is in the process of being coded. The system then computes the amount of displacement between the present data block and the reconstructed data block from the search area that has a pattern very similar to that of the present data block. The coded data is then stored in memory or transmitted. The decoding system implements a reverse process of the coding system to decode the coded data based on the displacement vector.
-
Citations
21 Claims
-
1. A coder for compressing data, comprising:
-
block dividing means for dividing a frame of data into blocks of predetermined sizes, and outputting original data blocks; coding means, coupled to said block dividing means, for coding each of said original data blocks according to a predetermined algorithm, and outputting coded data blocks; reconstruction means, coupled to said coding means, for reconstructing each of said coded data blocks, and outputting reconstructed data blocks corresponding to said original data blocks; a frame memory, coupled to said reconstruction means, for storing a frame of data based on said reconstructed data blocks; search area determining means, coupled to said frame memory, for selecting a predetermined number of said reconstructed data blocks stored in said frame memory so as to define a search area; displacement estimation means coupled to said search area determining means for receiving said selected number of reconstructed data blocks, and coupled to said block dividing means for receiving a present data block, said displacement estimation means determining by estimation which one of said reconstructed data blocks has a pattern similar to said present data block, and calculating a displacement vector based on said estimation; displacement compensation means, coupled to said frame memory and to an output of said displacement estimation means, for receiving and outputting the data block from said frame memory having the pattern similar to said present data block based on said output of said displacement estimation means; a first adder, coupled to said block dividing means and said displacement compensation means, for calculating differential data based on said present data block and the data block output by said displacement compensation means; mode determining means, coupled to said first adder and said block dividing means, for determining a mode by comparing said present data block with said differential data, and outputting a corresponding mode value; and means, responsive to said mode value output by said mode determining means, for selecting one of said present data block and said differential data according to the mode value; and
inputting said selected one of said present data block and said differential data to said coding means for coding. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A decoder for decoding data which has previously been coded by a coder, said coder outputting coded data blocks having been coded according to a predetermined coding algorithm, and a mode value and a displacement vector for data being coded based on a similarity between first and second data blocks, said decoder comprising:
-
an input terminal for receiving the coded data blocks, the mode value, and the displacement vector; decoding means, coupled to said input terminal, for decoding the coded data blocks according to a predetermined algorithm, and outputting decoded data blocks; separation means, coupled to said input terminal, for separating said mode value and said displacement vector from said coded data blocks; switching means having first and second terminals, said switching means being responsive to said mode value; an adder having a first input coupled to an output of said decoding means and a second input coupled to said first terminal of said switching means; a frame memory, coupled to an output of said adder, for storing a frame of data based on said decoded data blocks; and a displacement compensation means, coupled to an output of said separation means and said frame memory, for receiving a data block from said frame memory corresponding to said displacement vector received from said separation means, and applying said data block to said second terminal of said switching means, wherein said adder selectively adds the output data block from said displacement compensation means to an output of said decoding means in accordance with said mode value. - View Dependent Claims (12)
-
-
13. A method for compressing data comprising the steps of:
-
(a) dividing a frame of data into blocks of predetermined sizes, and outputting original data blocks; (b) coding each of said original data blocks according to a predetermined algorithm, and outputting coded data blocks; (c) reconstructing each of said coded data blocks, and outputting reconstructed data blocks corresponding to said original data blocks; (d) storing a frame of data based on said reconstructed data blocks; (e) selecting a predetermined number of said reconstructed data blocks stored in said frame memory so as to define a search area; (f) determining, by estimation, which one of said reconstructed data blocks has a pattern similar to a present data block, and calculating a displacement vector based on said estimation; (g) selecting, as a selected data block, the data block having the pattern similar to said present data block based on said displacement vector; (h) calculating differential data based on said present data block and said selected data block; (i) determining a mode by comparing said present data block with said differential data, and outputting a corresponding mode value; and (j) coding one of said present data block and said differential data according to the mode value. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method for decoding data which has previously been coded by a coder, said coder outputting coded data blocks having been coded according to a predetermined coding algorithm, and a mode value and a displacement vector for data being coded based on a similarity between first and second data blocks, said method comprising the steps of:
-
(a) receiving the coded data blocks, mode value, and displacement vector; (b) decoding the coded data blocks according to a predetermined algorithm, and outputting decoded data blocks; (c) separating said mode value and said displacement vector from said coded data blocks; (d) storing a frame of data based on said decoded data blocks in a frame memory; (e) selecting a data block from said frame memory corresponding to said displacement vector; and (f) adding, selectively in accordance with said mode value, said decoded data blocks to said selected data block to produce original data blocks. - View Dependent Claims (20, 21)
-
Specification