Source: http://www.google.com/patents/US20030169932?dq=7,134,016
Timestamp: 2018-01-22 14:43:44
Document Index: 394190756

Matched Legal Cases: ['art 440', 'art 440', 'art 450', 'art 450', 'art 450', 'art 450', 'art 450', 'art 450', 'art 450', 'art 450', 'art 470', 'art 470', 'art 490', 'art 480', 'art 490']

Patent US20030169932 - Scalable layered coding in a multi-layer, compound-image data transmission ... - Google Patents
A data coder prepares a frame of data for transmission over a data channel. The frame is first broken into a series of non-overlapping blocks. The blocks are analyzed to determine if they are a “picture” block or a “non-picture” block. Picture blocks are compressed to produce one or more layers...http://www.google.com/patents/US20030169932?utm_source=gb-gplus-sharePatent US20030169932 - Scalable layered coding in a multi-layer, compound-image data transmission system
Publication number US20030169932 A1
Also published as US6898313
Publication number 092851, 10092851, US 2003/0169932 A1, US 2003/169932 A1, US 20030169932 A1, US 20030169932A1, US 2003169932 A1, US 2003169932A1, US-A1-20030169932, US-A1-2003169932, US2003/0169932A1, US2003/169932A1, US20030169932 A1, US20030169932A1, US2003169932 A1, US2003169932A1
Inventors Xin Li, Louis Kerofsky, Kristine Matthews
US 20030169932 A1
1. A system for coding compound frames of data to be sent over a transmission channel, comprising:
dividing the discrete colors into a dominant group and a non- dominant group based on a number of times the discrete colors appear in the chosen data block; and
[0009]FIG. 1 is a block diagram showing components of a transmission system according to embodiments of the invention.
[0010]FIG. 2 is a flow diagram showing how a frame of data is encoded into multiple layers, according to embodiments of the invention.
[0011]FIG. 3 is a diagram illustrating a system for coding a non-picture block, according to embodiments of the invention.
[0012]FIG. 4A is a diagram showing data making up a sample non-picture block.
[0013]FIG. 4B is a diagram showing how the data from FIG. 4A can be divided into different layers according to embodiments of the invention.
[0014]FIG. 5 is a diagram illustrating a system for Run Length Encoding a non-picture block, according to embodiments of the invention.
[0015]FIG. 6 is a diagram showing data making up a sample picture block.
[0016]FIG. 7 is a diagram showing a method of encoding the picture data given in FIG. 6, according to embodiments of the invention.
[0017]FIG. 8 is a diagram showing another method of encoding the picture data given in FIG. 6, according to embodiments of the invention.
[0018]FIG. 9 is a diagram showing further encoding and arranging the picture data given in FIG. 6, according to embodiments of the invention.
[0019]FIG. 10 is a diagram showing the values obtained after coding and arranging the data given in FIG. 6, according to embodiments of the invention.
[0020]FIG. 11 is a diagram showing normalization values used with encoded picture data according to embodiments of the invention.
[0021]FIG. 12 is a chart showing how data values can be quantized, according to an embodiment of the invention.
[0022]FIG. 13 is a chart showing how data values can be re-mapped, according to an embodiment of the invention.
[0023]FIG. 14 is a block diagram showing how pixel values can be decoded back into an image, according to embodiments of the invention.
[0024]FIG. 15 is a block diagram showing an implementation of the data coding system as implemented in a computer network.
[0028]FIG. 1 is a block diagram showing a data coding system according to embodiments of the invention, and the environment in which it operates. A data encoder 10 receives a data input stream at an input 12. The data input stream could be video, audio, or other data; and it need not be a continuous data stream but may have gaps in it. For example, the data input stream could be a recording of a speaking presentation where there are several time gaps, for instance between words, or at other times while the presenter is not speaking. Or, the data input stream could be a video slide show where slides are only changed every so often, or a video where a large percentage of the picture does not change very much or very often.
[0037]FIG. 2 is an example flow diagram of an encoding system that can be used in the encoder 10 shown in FIG. 1. The flow 100 begins at step 102 by breaking a single image frame (which could be an image frame or other type of data frame, such as audio) into a series of non-overlapping blocks. Typical block sizes used in the encoder 10 are 16×16 picture elements (pixels) or 32×32 pixels. Using a small block size keeps the memory requirements of the encoder 10 low, but any block size could be used and still stay within the spirit and fall under the scope of the invention.
[0055]FIG. 3 shows an example non-picture block 210, a color codebook or palette 220 made from the non-picture block, a data structure 224 encoding the color palette, and a color index map 230 of the non-picture block. The block 210 is only 4×4 pixels for simplicity, but would typically be formed of 32×32 pixels or some other size.
There are only three colors in the example block 210, blue, red, and black, although a typical block may have as many as 16 or so different colors. As can be seen in the color palette 220, each of those colors is assigned an index number along with its 24 bit color, with 0 a blue color, 1 for red and 2 for black. A data structure 224 can then be assembled and sent to the decoder 40 (FIG. 1), where it is stored for later use in re-creating the block 210 for display. The data structure 224 includes a first field 225 that signals to the decoder 40 how many colors are in the color palette. In the case of the color palette 220 of FIG. 3, this number is three. The remaining fields 227 in the data structure are the 24 bit colors themselves, in uncompressed form. The order in which the color fields 227 are received by the decoder 40 indicates which index position the colors are in, e.g. blue is color 0, red is color 1 and black is color 2. Because of this color palette index system, the actual 24 bits making up each color need only be transmitted to the decoder 40 one time. The color of a pixel in a non-picture can then be indicated to the decoder simply by sending the index rather than the entire color bit-code; thus, the bandwidth used by sending the non-picture block data is greatly reduced.
[0067]FIG. 5 shows an example uncompressed data stream 300 that could represent the first numbers of either the base layer 20 or one of the enhancement layers 22, 24, 26, and a set of RLE data pairs 310 generated from the datastream 300. Encoding using a simple type of RLE consists of examining the number of times a particular symbol is sequentially represented in the stream of data, and then coding this information. Typically, the number of zeros is counted, but other symbols could be counted as well. Recall that when the color table was originally created for a non-picture block that the number of times each color was used in a block was counted. The RLE will be most effective in compressing data when the color that was most frequently used is assigned the value that will be counted, e.g., zero.
[0078]FIG. 8 shows the same process completed in the opposite order, yet yielding the same results. Shown in that figure is the example group 420 first undergoing the vertical averaging and comparing process to yield the numbers in a chart 440. The horizontal process is then performed on the chart 440 to yield the numbers in the chart 450. The numbers in the chart 450 in both FIGS. 7 and 8 are identical regardless of whether the wavelet coding process began with the horizontal or the vertical process. The individual numbers making up the chart 450 represent different values of the data from the original example group 420. For example, the upper-left number in chart 450 is the overall average of all four numbers making up the example group 420. The upper-right number in the chart 450 is computed by taking the average of the horizontal differences (FIG. 7), or is computed by taking the difference of the vertical averages (FIG. 8). The lower-left number 450 is computed by taking the difference of the horizontal averages (FIG. 7), or by taking the average of the vertical differences (FIG. 8). Finally, the lower-right number in the chart 450 is computed by taking the difference of the horizontal distances (FIG. 7), or taking the difference of the vertical differences (FIG. 8). The lower-right number in the chart 450 is also referred to as the “diagonal difference”. In each case, computing the values in the chart 450 using either of the two methods yields the same ending value.
[0079]FIG. 9 shows a chart 470 containing values transformed from the original picture block 410 of FIG. 6 according to the vertical and horizontal wavelet transforms described above with respect to FIGS. 7 and 8. A mapping 480 shows how the data in the chart 470 can be rearranged to group like-kind data, and a chart 490 contains the same values included in chart 480 but rearranged according to the mapping 480. For example, the four averages of the original sixteen pixels are placed in the upper-left hand corner of the chart 490.
g2=x(2i+2, 2j)−x(2i, 2j+2), then g1and g2 can be compared.
x(2i+1, 2j+1)=1/2 [x(2i,2j)+x(2i+2, 2j+2)].
x(2i+1,2j+1)=1/2[x(2i+2,2j)+x(2i,2j+2)].
The above equations will fill the pixel located at x(2i+1,2j+1) with a value that is exactly in the middle of x(2i+2,2j) and x(2i,2j+2), although that is not necessarily the only value that can be placed in that location. Actually, any pixel value between and including the values located in x(2i+2,2j) and x(2i, 2j+2) can be used.
Embodiments of the invention can include a change detection process that is performed on a pixel-by-pixel comparison between a block in the current frame and the same block in the previous frame according to an equation such as: MAE avg = 1 B 2  ∑ i = 1 B   ∑ j = 1 B   X cur  ( i ,  j ) - X ref  ( i ,  j ) 
[0116]FIG. 15 shows a digital transmission system 600 capable of implementing embodiments of this invention. A data source 605 is used to create a data input stream. For example, the data source 605 could be a slide presentation system where a presenter is showing a set of static slides. The presenter, by using a switching device (not shown), can select between different slides in either a forward or backward direction. The slide show data, which may also contain audio in addition to the image data, is presented to an encoder 610 that encodes all of the slide show data into a base encoded layer 20 and three enhancement layers, 22, 24 and 26. The encoder 610 includes the flow 100 shown in FIG. 2 as described above, or another implementation method. The encoder 610 sends these encoded layers 20, 22, 24, 26 to a transmission scheduler 630. The output of the transmission scheduler 630 is sent to a media server 650, which could be a LAN server. The server 650 sends the encoded presentation data layers 20 and the enhancement layers 22, 24, 26 sequentially to multiple decoders 660. The decoders 660 generally run on their own Personal Computer (PC), but any implementation may be used, such as multiple decoders on a single PC, or a decoder running on a device that is not a PC. Connected to each of the decoders 660 is a display 670, used to show the slide presentation to a multitude of users. For instance, the display 670 may be a projecting display, such as an LCD or other form of projector, or may be a direct display, such as a standard Cathode Ray Tube (CRT). The display 670 may additionally be coupled to or include an audio portion 680 used to produce sounds that accompany the images shown on the display. In some embodiments, the decoders 660 only produce an output for the audio portion 680, and not for the display 670. These embodiments may be used when bandwidth of the network to which the decoders 660 are coupled is extremely restricted.
US8345762 * Feb 14, 2006 Jan 1, 2013 Thomson Licensing Method for deriving coding information for high resolution pictures from low resolution pictures and coding and decoding devices implementing said method
US8588307 Sep 17, 2010 Nov 19, 2013 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding mode information
US8600179 * Sep 16, 2010 Dec 3, 2013 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
US8755615 Aug 23, 2010 Jun 17, 2014 Koninklijke Philips N.V. Scalable image coding and decoding
US9558567 * Jul 10, 2014 Jan 31, 2017 Qualcomm Incorporated Palette prediction in palette-based video coding
US9693087 * Jan 31, 2014 Jun 27, 2017 Canon Kabushiki Kaisha Communication apparatus, control method, and recording medium
US9788004 Mar 12, 2015 Oct 10, 2017 Hfi Innovation Inc. Method of color index coding with palette stuffing
US20060182180 * Jan 31, 2006 Aug 17, 2006 Shinsuke Araya Encoding apparatus and method, decoding apparatus and method, recording medium, image processing system, and image processing method
US20090028245 * Feb 14, 2006 Jan 29, 2009 Jerome Vieron Method for Deriving Coding Information for High Resolution Pictures from Low Resolution Pictures and Coding and Decoding Devices Implementing Said Method
US20100104207 * Oct 24, 2008 Apr 29, 2010 Solomon Systech Limited System and method for image compression
US20140218267 * Jan 31, 2014 Aug 7, 2014 Canon Kabushiki Kaisha Communication apparatus, control method, and recording medium
US20150016501 * Jul 10, 2014 Jan 15, 2015 Qualcomm Incorporated Palette prediction in palette-based video coding
US20150271505 * Mar 20, 2015 Sep 24, 2015 Futurewei Technologies, Inc. Advanced screen content coding with improved color table and index map coding methods
US20150373339 * Jun 18, 2015 Dec 24, 2015 Qualcomm Incorporated Copy from previous rows for palette mode coding
CN102498719A * Sep 17, 2010 Jun 13, 2012 三星电子株式会社 Method and apparatus for encoding and decoding image based on skip mode
CN102511164A * Sep 17, 2010 Jun 20, 2012 三星电子株式会社 Method and apparatus for encoding and decoding image based on skip mode
CN102511164B * Sep 17, 2010 Nov 25, 2015 三星电子株式会社 用于基于跳过模式对图像进行编码和解码的方法和设备
CN102550024A * Aug 23, 2010 Jul 4, 2012 皇家飞利浦电子股份有限公司 Scalable image coding and decoding
CN102550024B * Aug 23, 2010 Aug 19, 2015 皇家飞利浦电子股份有限公司 可伸缩图像编码和解码
EP2465263A2 * Sep 17, 2010 Jun 20, 2012 Samsung Electronics Co., Ltd. Method and apparatus for decoding image based on skip mode
EP2465263A4 * Sep 17, 2010 Mar 6, 2013 Samsung Electronics Co Ltd Method and apparatus for decoding image based on skip mode
EP2465266A2 * Sep 17, 2010 Jun 20, 2012 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
EP2465266A4 * Sep 17, 2010 May 1, 2013 Samsung Electronics Co Ltd Method and apparatus for encoding and decoding image based on skip mode
EP2465267A2 * Sep 17, 2010 Jun 20, 2012 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
EP2465267A4 * Sep 17, 2010 Apr 24, 2013 Samsung Electronics Co Ltd Method and apparatus for encoding and decoding image based on skip mode
WO2011027256A1 * Aug 23, 2010 Mar 10, 2011 Koninklijke Philips Electronics N.V. Scalable image coding and decoding
WO2014165784A1 * Apr 4, 2014 Oct 9, 2014 Qualcomm Incorporated Determining palette indices in palette-based video coding
WO2015135484A1 * Mar 12, 2015 Sep 17, 2015 Mediatek Inc. Method of color index coding with palette stuffing
WO2015143351A1 * Mar 20, 2015 Sep 24, 2015 Futurewei Technologies, Inc. Advanced screen content coding with improved color table and index map coding methods
WO2016033791A1 * Sep 5, 2014 Mar 10, 2016 富士通株式会社 Generating method and apparatus for palette, and image processing device
Cooperative Classification G06T9/004, G06T9/00, H04N1/41
European Classification G06T9/00P, H04N1/41, G06T9/00