text:
|Publication number
|Publication type
|Application number
|Publication date
|Feb 22, 2005
|Filing date
|Mar 30, 2001
|Priority date
|Mar 30, 2001
|Fee status
|Also published as
|Publication number
|Edward L. Schwartz, Michael J. Gormish
|Original Assignee
|Ricoh Co., Ltd.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (109), Non-Patent Citations (61), Referenced by (8), Classifications (30), Legal Events (6)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention relates to the field of compression and decompression; more particularly, the present invention relates to decoding information using late contexts.
Data compression is an extremely useful tool for storing and transmitting large amounts of data. For example, the time required to transmit an image, such as a facsimile transmission of a document, is reduced drastically when compression is used to decrease the number of bits required to represent the image.
Many different data compression techniques exist in the prior art. Compression techniques can be divided into two broad categories, lossy coding and lossless coding. Lossy coding involves coding that results in the loss of information, such that there is no guarantee of perfect reconstruction of the original data. The goal of lossy compression is that changes to the original data are done in such a way that they are not objectionable or detectable. In lossless compression, all the information is retained and the data is compressed in a manner which allows for perfect reconstruction.
In lossless compression, input symbols or intensity data are converted to output codewords. The input may include image, audio, one-dimensional (e.g., data changing spatially), two-dimensional (e.g., data changing in two spatial directions), or multi-dimensional/multi-spectral data. If the compression is successful, the codewords are represented in fewer bits than the number of bits in the "normal" representation of the input symbols (or intensity data). Lossless coding methods include dictionary methods of coding (e.g., Lempel-Ziv), run length encoding, enumerative coding and entropy coding. In lossless image compression, compression is based on predictions or contexts, plus coding. The JBIG standard for facsimile compression and DPCM (differential pulse code modulation—an option in the JPEG standard) for continuous-tone images are examples of lossless compression for images. In lossy compression, input symbols or intensity data are quantized prior to conversion to output codewords. Quantization is intended to preserve relevant characteristics of the data while eliminating unimportant characteristics. Prior to quantization, lossy compression system often use a transform to provide energy compaction. JPEG is an example of a lossy coding method for image data.
Reversible transforms (wavelet, component) may be used for both lossy and lossless compression. Irreversible transforms (wavelet, component, discrete cosine) may be used only for lossy.
The new JPEG 2000 decoding standard utilizes transforms and provides a new coding scheme and codestream definition for images. Although JPEG 2000 is a decoding standard, and thus defines what a decoder must do, this definition restricts an encoder especially for lossless compression. Under the JPEG 2000 Standard, each image may be divided into rectangular tiles. If there is more than one tile, the tiling of the image creates tile-components. An image may have multiple components. For example, a color image might have red, green and blue components. Tile-components can be extracted or decoded independently of each other.
After tiling of an image, the tile-components are decomposed into one or more different decomposition levels using a wavelet transformation. These decomposition levels contain a number of subbands populated with coefficients that describe the horizontal and vertical spatial frequency characteristics of the original tile-components. The coefficients provide frequency information about a local area, rather than across the entire image. That is, a small number of coefficients completely describe a single sample. A decomposition level is related to the next decomposition level by a spatial factor of two, such that each successive decomposition level of the subbands has approximately half the horizontal resolution and half the vertical resolution of the previous decomposition level.
Although there are as many coefficients as there are samples, the information content tends to be concentrated in just a few coefficients. Through quantization, the numerical precision of a number of coefficients may be reduced with a disproportionately low introduction of distortion (quantization noise). Additional processing by an entropy coder reduces the number of bits required to represent these quantized coefficients, sometimes significantly compared to the original image.
The individual subbands of a tile-component are further divided into code-blocks. These code-blocks can be grouped into precincts. These rectangular arrays of coefficients can be extracted independently. The individual bit-planes of the coefficients in a code-block are entropy coded with three coding passes. Each of these coding passes collects contextual information about the bit-plane compressed image data.
The bit stream compressed image data created from these coding passes is grouped in layers. Layers are arbitrary groupings of successive coding passes from code-blocks. Although there is great flexibility in layering, the premise is that each successive layer contributes to a higher quality image. Code-blocks of subband coefficients at each resolution level are partitioned into rectangular areas called precincts.
Packets are a fundamental unit of the compressed codestream. A packet contains compressed image data from one layer of a precinct of one resolution level of one tile-component. These packets are placed in a defined order in the codestream.
The codestream relating to a tile, organized in packets, are arranged in one, or more, tile-parts. A tile-part header, comprised of a series of markers and marker segments, or tags, contains information about the various mechanisms and coding styles that are needed to locate, extract, decode, and reconstruct every tile-component. At the beginning of the entire codestream is a main header, comprised of markers and marker segments, that offers similar information as well as information about the original image.
The codestream is optionally wrapped in a file format that allows applications to interpret the meaning of, and other information about, the image. The file format may contain data besides the codestream.
The decoding of a JPEG 2000 codestream is performed by reversing the order of the encoding steps.
Next, the codestream is quantized by quantization block 104, which may be quantizing based on a region of interest (ROI) as indicated by ROI block 105. After quantization, an inverse wavelet/spatial transform is applied to the coefficients via transform block 107, followed by DC level shifting and optional component transform block 108. This results in generation of a reconstructed image.
A method and apparatus for decoding information using late contexts is described. In one embodiment, a decoder for decoding information using an MQ-coder and A and C registers comprises update logic to update internal state, a first logic to generate a current probability class indication in response to a context, wherein updating of the internal state by the update logic overlaps at least one while generating the context or generating the current probability class indication, probability class generation logic to generate a pair of probability class indications associated with an interval specified by the A and C registers in response to a codestream, comparison logic coupled to the first logic and the probability class generation logic to determine whether a probability class corresponding to the current probability class indication is within a range of probability classes corresponding to the pair of probability class indications, and output logic coupled to the comparison logic to output a decision based on results of comparison between the current probability class indication and the pair of probability class indications.
The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
Techniques for performing coding are described. These techniques may be used for implementing JPEG 2000 or for manipulating or adding to the feature set. That is, the JPEG2000 standard, Information Technology—JPEG 2000 image coding system: Core Coding System, ITU-T Rec. T.800|ISO/IEC FDIS 15444-1: 2000 JPEG Image Coding System, incorporated herein by reference, leaves many choices to implementers. It is a purpose of the techniques described herein to use choices in JPEG 2000 to make high speed, low cost, low memory and/or feature rich implementations in software, hardware, and/or firmware.
In the following description, numerous details are set forth to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. Furthermore, any block, logic or functionality not described in detail may be implemented with well-known implementations or may be easily implemented by those skilled in the art using well-known hardware, software and/or firmware. Note that sometimes techniques and implementations are described using psuedo code. This is not meant to imply that the techniques are implemented solely in software; instead, such a description is often chosen to easily describe the functionality of terms one skilled in the art would easily understand.
Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory ("ROM"); random access memory ("RAM"); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
A scaler quantization/dequantization block 2905 is coupled to wavelet transform 2903 to perform scaler quantization. In one embodiment, scaler quantization is only used for the 5,3 irreversible wavelet transform. A precoder 2906 is coupled to scaler quantizer to perform preceding. In one embodiment, the preceding converts coefficients from two's complement to sign magnitude (or vice versa for decoding). The precoding also determines zero bitplanes. Work memory A and work memory B are coupled to precoder 2906 along with packet header processing 2907. The interface to work memory A and B and packet header 2907 is also coupled to bit modeling MQ-coders 2908 1−N. Each of the MQ-coders 2908 1−N is coupled to individual code memory 2911 N to store coded data (compressed data in JPEG 2000 terminology). The coded data from code memory and the packet header from packet header 2907 is output as coded data. This is a JPEG 2000 bitstream. An additional functional block (not shown) may be used to create/read the main and tile-part headers. The bitstream and the headers make a JPEG 2000 codestream.
Context Model Data Structure with Skipping for Sub-bit-planes
In JPEG 2000, for bit-planes of coefficients that are not initially all-zero bit-planes (starting with the most significant bit (MSB) down), each coefficient is coded in one of three sub-bit-plane passes: significance propagation, refinement, and cleanup.
A typical implementation might read the entire block of coefficients 3 times, once for each coding pass of a bit-plane. This technique describes a way to read the entire block of coefficients for the significance propagation pass of each bit-plane, but to read only those coefficients actually needed for the refinement and cleanup passes.
On the left side of each cell in
Data structures may be built during the significance propagation pass using a process described below. The data structures may be used by the context model to reduce the number of accesses to the memory. Using the data structures, instead of checking each cell to determine what pass the information is in and then having to skip them, the context model need only access the memory once. Furthermore, the data structures allow access to multiple locations at the same time, such as when cleanup bits are coded 4 at a time.
Tables 1 and 2 show data structures that describe the locations of coefficients in the refinement and cleanup sub-bit-plane passes (respectively). For each index, there is a run count of the number of coefficients in the sub-bit-plane pass and a skip count of the number of following coefficients that are in a different pass. These data structures allow these sub-bit-plane passes to be coded efficiently by allowing coefficients in other passes to be skipped.
Data structure for refinement bits
Data structure for cleanup bits
The process is performed by processing logic that may comprise hardware, software, or a combination of both. In one embodiment, the processing logic that creates the data structures and uses them is located in bit modeling MQ-coders 2908 1−N of FIG. 29. During the process, to create these data structures, the datastructures are first initialized.
ri = 0
// index for refinement
ci = 0
// index for cleanup
r_run[ri] = 0
// run count for refinement
r_skip[ri] = 0
// skip count for refinement
c_run[ci] = 0
// run count for cleanup
c_skip[ci] = 0
// skip count for cleanup
state = INITIAL
// state can be INITIAL, SIG_PROP, REFINE or
The "state" variable is used to distinguish between the start and the middle of a run. The "state" variable indicates the coding pass for the previous coefficient. If the current coefficient is the same, the size of a run or skip will be increased; if it is different, a new run will be started. Then each coefficient in the code-block is considered in the code block scan order in order to generate the seperate counts.
For-y1 = 0 to maximum-for-y1 step 4 for x = 0 to maximum-for-x step 1 for y2 = 0 to maximum-for-y2 step 1 process coefficient [x,y1+y2]
In the above, the maximum for y1 is the greatest integer multiple of 4 that is less than the height of the code-block ("(height −1) & ˜3"). The maximum for x is "width−1" for the code-block. The maximum for y2 is the smaller of 3 or "height−y1−1". One embodiment of a procedure for processing each coefficient is:
if coefficient was significant in previous bitplane then
if state is not REFINE then
ri = ri + 1
r_run[ri] = 1
r_skip[ri] = 0
state = REFINE
r_run[ri] = r_run[ri] + 1
c_skip[ci] = c_skip[ci] + 1
else if a neighbor of the coefficient is significant then
(coefficient is predicted sigificant, code it)
r_skip[ri] = r_skip[ri] + 1
c_skip[ci] = c_skip[ci] + 1
state = SIG_PROP
if state is not CLEANUP then
ci = ci + 1
c_run[ci] = 1
c_skip[ci] = 0
state = CLEANUP
c_run[ci] = c_run[ci] + 1
r_skip[ri] = r_skip[ri] + 1
The result of applying the procedure is that all the coefficients in the significance propagation pass will be coded while the data structures for the refinement bits and clean up bits are created.
If desired, the run counts can be prevented from wrapping around lines. One embodiment of a process to prevent wrapping around lines is described below in the following psuedo-code. This may allow for handling boundaries more easily.
for y1 = 0 to maximum for y1 step 4
for x = 0 to maximum for x step 1
for y2 = 0 to maximum for y2 step 1
process coefficient [x,y1+ y2]
if state is REFINE then
ri = ri + 1
r_run[ri] = 0
r_skip[ri] = 0
state = INITIAL
else if state is CLEANUP then
ci = ci + 1
c_run[ci] = 0
c_skip[ci] = 0
state = INITIAL
For software, storing run and skip values as integers (in 32-bits for 32-bit computers, etc.) is most convenient. The worst case is runs of length one, with a zero length run at the start. In JPEG 2000, code-blocks are limited to a maximum of 4096 coefficents. Also the width and height of code-blocks are limited to a maximum of 1024 coefficients. For any size code-block with 4096 total coefficients with run counts continuing across groups of lines, 4097 memory locations is the maximum number of memory locations for the memory size. For 64�64 code-blocks with run counts starting every group of four lines, (4�64+1)�(64/4)=4112 memory locations is the maximum. For 1024�4 code-blocks with run counts starting every group of four lines (4�4+1)�(1024/4)=4352 memory locations is the maximum.
In hardware to save memory, a minimal but fixed number of bits can be used for run and skip counts. If an indication of whether the first count is a run or skip is signaled (e.g., one bit signal indication), then run counts will be greater than 1 (and the ability to code 0 is not needed). For any size code-block with 4096 total coefficients with run counts continuing across groups of lines, one bit may be used to signal whether the first count is a run or skip and 4096�12 bits for counts for a total of 49,153 bits. For 64�64 code-blocks with run counts starting every group of four lines, one bit may be used to signal whether the first count is a run or skip for each group of four lines. Thus, a number of bits would be 1�64/4+4096�12=49,168 bits. For 1024�4 code-blocks with run counts starting every group of four lines, the number of bits would be 1�1024/4+4096�12=49,408 bits.
One embodiment of a variable length code can be used to represent counts. Table 3 shows an example where small counts are represented with a small number of bits (e.g., 3 bits) and large counts are represented with a larger number of bits (e.g., 13 bits). The goal of such an approach is to have most counts be either 1, 2, 3, or 4 so that the smaller codewords are used more frequently. Only two sizes are used to make the implementation simple. However, more than two sizes could be used with added complexity.
An Example of Simple Variable Length Code for Counts
. . .
. . .
For this code, the worst case is when all run lengths are 1 (every codeword is 3 bits). For three cases (counts go across lines, 64�64 code blocks with groups of four lines, 1024�4 code-blocks with groups of four lines), the total number of bits are 12,289 bits; 12,304 bits; and 12,544 bits, respectively.
Reduced memory usage can be achieved with a more complicated variable length code. A good structured code is a gamma code, γ1 or γ (from Appendix A of Bell, Cleary, Whitten "Text Compression", Prenice Hall, NJ, 1990.) as shown in Table 4.
Structured Variable Length Code for Counts
codeword (γ1 format)
codeword (γ format)
. . .
. . .
. . .
Note that γ1 and γ only differ in how the bits in the codeword are arranged. The "_" in γ1 codewords is not part of the codeword, it is just to make them easier to read by separating the prefix from the counter. The worst case is for counts of 2 which requires 3 bits. For the three cases (counts go across lines, 64�64 code-blocks with groups of 4 lines, and 1024�4 code-blocks with groups of four lines), the total number of bits are 6,145 bits; 6,160 bits; and 6,400 bits, are required, respectively.
Table 5 is one embodiment of a code for counts 1 . . . 4096 where the longest codeword is 16-bits. Counts of 1, 2, 3, 4 or 5 are represented with 1, 2, 4, 5 and 5 bits respectively. Counts of 6 . . . 21 are represented with 8 bits. Counts of 22 . . . 4096 are represented with 16-bits. Counts of 3 and 6 are the worst case. For the three cases (counts go across lines, 64�64 code-blocks with groups of 4 lines, and 1024�4 code-blocks with groups of 4 lines), the total number of bits are 5,463 bits; 5,478 bits; and 5,718 bits.
Optimal Variable Length Code for Counts
. . .
. . .
. . .
. . .
If using variable length codes with hardware, accessing both a run count and a skip count during the same clock cycle may be desirable. In one embodiment, the memory is larger than the minimum size by one word (e.g., 16 bits) so that flushing is simple. For example, with 16 bit words, run counts use 163 bits. Therefore, the last word uses only 3 bits. This requires padding with 13 bits to complete a word. Skip counts use 85 bits. Therfore, the last word uses only 5 bits. This requires padding with 11 bits to complete a word. If
or 17, padding of run and skip counts can be independent. If the size is 16, there is one word with both run counts and skip counts, with padding in between.
Note that separate skip count and run count decoders may be used to decode the information in the memory shown in FIG. 2B. Alternatively, a single decoder could be shared by both.
Hardware for Context Model
The context model may be implemented in hardware. In hardware, one goal is to generate the next context as soon as possible so the MQ coder is not idle.
Memory Organization
In one embodiment, these memories store one bit per coefficient for significance state (8 bits total per address). In an alternative embodiment, these memories store two bits per coefficient for significance state and sign (16 bits total per address). In still another embodiment, these memories store the entire coefficient (8N bits if N is the size of one coefficient). In an alternative embodiment, if the entire coefficient is not stored in these memories, an additional single memory with one address per coefficient may be used.
The following Verilog code is one embodiment of a procedure to convert two 6-bit address inputs ("x" and "y") from control logic in the context model (for the 64�64 code-blocks) into a 7-bit address output to memory ("addr") and a 2-bit "bank" select to indicate memory "A", "B", "C" or "D".
module makeAddress(x, y, addr, bank);
input [5:0] x;
/*x has bits 5...0, where 5 is MSB
input [5:0] y;
output [6:0] addr;
output [1:0] bank;
wire [5:0] yp2;
assign yp2 = y + 2;
assign addr = {yp2[5:3], x[5:2]};
assign bank = {yp2[2], x[1]};
The first assign statement above sets the offset for the boundary. In other words, the offset "assign yp2=y+2" is used for proper alignment of groups of four as shown in FIG. 4. The second assign statement above sets the address to bits 5 . . . 3 of the input y plus the offset concatenated with bits 5 . . . 2 of input x as the lower poriton of the number. The third assign statement above sets the bank equal to the bit 2 of the input y plus the offset concatenated with bit 1 of input x.
Significance Propagation Pass
All of the outputs of the memories and registers in
One embodiment of address generation logic for the significance propagation pass is set forth in the following pseudo code. Note that the addressing is not dependent on the data, and zero data is provided at boundaries.
address_A_y = 0
address_B_y = 0
address_C_y = 0
address_D_y = 0
for y = 0 to 60 step 4
address_A_x = 0
address_C_x = 0
read memory A (will be registered next)
read memory C (will be registered next)
assert clear for memory B register (will be cleared next)
assert clear for memory D register (will be cleared next)
for x = 0 to 60 step 4
address_A_x = x+4
address_B_x = x
address_C_x = x+4
address_D_x = x
if x < 60 then
read memory A (will be registered next)
read memory C (will be registered next)
use "all bits zero" for memory A output
use "all bits zero" for memory B output
read memory B(will be registered next)
read memory D(will be registered next)
process 4�4 block of coeffcients x...x+3, y...y+3
if y AND 4 == 0
address_A_y = address_A_y + 8
address_B_y = address_B_y + 8
address_C_y = address_C_y + 8
address_D_y = address_D_y + 8
For processing 4�4 blocks, runs of bits in the same pass may be handled together. If there are N coefficients in a row in the refinement pass, the following pseudo code can be used to process them:
If there are N coefficients in a row in the cleanup pass, the following pseudo code depicts one embodiment of a process for processing coefficients:
if state is not CLEANUP then
ci = ci + 1
c_run[ci] = N
c_skip[ci] = 0
state = CLEANUP
c_run[ci] = c_run[ci] + N
Referring to
Referring to
In operation, if any of the significance state bits E are 0, then the output of AND gates 3208 corresponding to those bit positions, and thus, the significance propagation signals 704, are going to be 1's if the significance state is 1 for any of coefficients A-D or F-I. Similarly, if any of the significance state bits E are 0, then the output of AND gate 3207 corresponding those bit positions, and thus the cleanup signals 705, are going to be 1's if the significance state bits are all zero for coefficients A-D or F-I.
As a result of the determination, logic 702 asserts either significant propagation signals 703, refinement pass signals 704, or clean up pass signals 705. In one embodiment, each of signals 703-705 is 16 bits wide. For each corresponding bit in signals 703, 704, and 705, only one bit may be 1 and 2 must be 0. Thus, there are three possibilities at 16 locations. Each of the outputs of logic 702 is coupled to one input of selection logic (e.g., multiplexer (MUX)) 707.
Selection logic 707 generates three pass bits for the current coefficient indicating the pass for the current coefficient and sends the pass bits to control logic 709. Only one of these pass bits is asserted in response to count signal 708 output from control 709. Count signal 708 indicates which of the 16 coefficients in the 4�4 block is currently by processed. When handling refinement bit runs and cleanup bit runs, count signal 708 may be incremented by a number greater than one. Thus, of the 16 bits in each of the outputs of determine pass logic 702, the bit in each of the three outputs corresponding to that coefficient is output.
The refinement pass signals 704 and clean up pass signals 705 are input to mask 705 with feedback count signal 708. Count signal 708 is the current coefficient position in the 4�4 region, e.g., 0 . . . 15. In response to these inputs, mask 705 masks what has already been done, as indicated by count 708, including only coefficients that are not being coded yet. For example, if three coefficients have already been processed, mask 705 masks the three signal lines of each of the refinement and cleanup outputs (704 and 705).
Mask 705 also generates 2 outputs to priority encoder 706 representing signal 704 and 705 with certain signals masked to one (in one embodiment). These outputs of mask 705 are masked refinement and masked cleanup indications (e.g., signals).
In response to the two inputs, priority encoder 706 finds the next non-refinement bit (or coefficient) and the next non-cleanup bit for the significance propagation pass and inputs these to control logic 709. In one embodiment, priority encoder 706 is a zero-finding priority encoder. In so doing, priority encoder 706 converts the current position of the bit (or coefficient) in the codeblock into a count of leading zeros. In one embodiment, this is performed using a truth table such as
Mask 705, priority encoder 706, and selection logic 707 may comprise a processing unit that receives outputs from determine pass unit 702 and generates outputs indicating the next non-refinement coefficient and next non-cleanup coefficient and the pass for the current coefficient.
In response to its inputs, control logic 709 generates a refinement next index, a refinement run indication, a refinement skip indication, a cleanup next index, a cleanup run indication, a cleanup skip indication, and a significant propagation indication. The inputs to control logic are:
next non-refinement bit position "R"
next non-cleanup bit position "C"
If R > count then
refinement run = R-count
refinement skip = 0
clean-up run = 0
clean-up skip = R-count
refinement next index =1
cleanup next index =0
signif prop =0
Else if C > count
refinement run = 0
refinement skip = C-count
clean-up run = C-count
clean-up skip = 0
refinement next index = 0
clean-up next index =1
signif prop = 0
refinement run = 0
refinement skip = 1
clean-up run = 0
clean-up skip = 1
refinement next index = 0
clean-up next index =0
signif prop = 1
The following pseudo code describes the operation of the significance propagation pass logic described in FIG. 7.
count = 0
while (count < 16)
mask = (1 << count)−1
refinement_masked = refinement | mask
use priority encoder to find next non-refinement bit
cleanup_mask = clean_up | mask
use priority encoder to find next non-cleanup bit
if current bit is in significance propagation pass
process coefficient as significance propagation
count = count + 1
else if current bit in refinement pass
N = "next non-refinement bit" - count
process N bits as refinement pass
count = count + N
N = "next non-cleanup bit" - count
process N bits as cleanup pass
count = count + N
Note that the significance states are updated from the MQ decoder (and MQ encoder or coefficient values when encoding) anytime a "1" coefficient is coded in the significance propagation pass.
Assuming the context model operates in one clock cycle and the MQ coder operates in one clock cycle, two clock cycles are required when there is feedback.
Significance Propagation Pass Skipping in Software
In software, parallel access from many memories is impractical. Instead, in one embodiment, the code-block is divided into 4�4 groups of coefficients. For each group, a count is maintained of the number of bits that are significant. In such a case, the maximum memory required is 256�5 bits. Blocks of coefficients that are all in the refinement pass have a count of 16. Blocks that have count 0 may be all cleanup and just need to have their neighbors checked to see if they are all cleanup.
Cleanup and Refinement Passes
For the cleanup pass, addressing is data dependent and may be generated using the following psuedo code. The address x,y of the next coefficient in the cleanup pass is input.
module cleanupAddress(x, y, addrA, addrB, addrC, addrD)
input [5:0] x;
input [5:0] y;
output [6:0] addrA;
output [6:0] addrB;
output [6:0] addrC;
output [6:0] addrD;
wire [5:0] yp2;
wire [4:0] ax;
wire [4:0] bx;
wire [4:0] cx;
wire [4:0] dx;
assign yp2 = y+ 2;
assign ax = (x[1:0] == 3) ? x[5:2]+1 : x[5:2];
assign cx = (x[1:0] == 3) ? x[5:2]+1 : x[5:2];
assign bx = (x[1:0] == 0) ? x[5:2]−1 : x[5:2];
assign dx = (x[1:0] == 0) ? x[5:2]−1 : x[5:2];
assign ay = y[2] ? yp2[5:3] + 1 : yp2[5:3];
assign by = y[2] ? yp2[5:3] + 1: yp2[5:3];
assign cy = yp2[5:3];
assign dy = yp2[5:3];
assign addrA = {ay, ax};
assign addrB = {by, bx};
assign addrC = {cy, cx};
assign addrD = {dy, dx};
The addressing used for the cleanup pass may also be used for the refinement pass. However, a smaller neighborhood is sufficient for the refinement pass.
If (yp2[1:0] == 1) or (yp2[1:0] == 2) then if yp2[2] == 1 then just read memories C and D else just read memories A and B else read memories A, B, C and D
Sequential Addressing for All Passes
With sequential addressing for all passes, a simpler memory organization using two memories can be used.
One embodiment of the pseudo code for addressing memory for all three coding passes is as follows.
address_A_y = 0
address_B_y = 0
for y = 0 to 60 step 4
address_A_x = 0
address_B_ x = 0
clear registers
read memory A (will be registered next)
read memory B (will be registered next)
for x = 0 to 60 step 4
address_A_x = x + 4
address_B_x = x + 4
if x < 60 then
read memory A (will be registered next)
read memory B (will be registered next)
use "all bits zero" for memory A output
use "all bits zero" for memory B output
process 4�4 block of coefficients x...x+3, y...y+3
if y AND 4 == 0
address_A_y = address_A_y + 8
address_B_y = address_B_y + 8
The memory contains state to indicate the correct pass for the refinement and cleanup passes. The state may be 2 bits per coefficient to distinguish between the three states (significance propagation, clean-up and refinement).
During the significance propagation pass, in parallel for all 16-coefficients, the state is set to refinement for all significant coefficients and to cleanup for all non-significant coefficients. As the processing on the 16-coefficients continues, the state of any coefficients that are in the significance propagation pass is changed from cleanup to significance propagation. The state may be 1 bit per coefficient, referred to herein as the "pass" bit. In one embodiment, the significance state and the pass bit are used to determine the correct pass. Table 6 below illustrates use of the pass bit. Since 1 bit per coefficient is used, this uses less memory than the run and skip count methods described herein.
Using "Pass" Bit
significance state,
pass bit
1, x
1, 1
in refinement pass*
in parallel for all 16 coefficients at
0, 0
0, 0
in cleanup pass
0, 1
code "0" in significance propagation
1, 0
code "1" in significance propagation
0, 1
0, 1
code "0" in significance propagation
1, 0
code "1" in significance propagation
refinement pass
1, 1
1, 1
cleanup pass
0, 0
0, 0
still not significant
1, x
became significant
*In one embodiment, this is done in a parallel for all 16 coefficients at the start of processing for the 4�4 block.
The memories providing access to 2�4 regions can be 48 bits wide with significance state, pass and sign bits for each coefficient.
Selective logic 1207 is responsive to current pass signal 1220 to output one of the indications 1204-1206 to mask logic 1208. In one embodiment, selective logic 1207 comprises a 16�3:1 multiplexer (Mux). Mask logic 1208 generates a signal in response to count signal 1210, which indicates the coefficient currently being processed. The output of the mask 1208 is input to priority encoder 1209 which outputs the signal to control logic 1212. Mask logic 1208 and priority encoder 1209 operates in a manner similar to their named counterparts in FIG. 7. In response to the inputs, control logic 1212 generates a code or idle indication on signal line 1213 and a count signal 1210.
Next pass bit logic 1211 receives an output from priority encoder 1209 (indicating the position of the coefficient currently being processed), the current pass signals 1220, a new significant state 1221 from an MQ coder, and the refinement pass signals 1205. The refinement pass signals 1205 represent significance state information by indicating whether coefficients are previously signficant. Together, current pass signal 1220 and new significance state 1221 indicate whether processing is in the cleanup pass. In response to the inputs, next pass logic 1211 generates a next pass bit, which is used as an output to distinguish between 'code "0"' and 'code "1"' cases in Table 6. The next pass bit may be stored in memory and used subsequently as the pass bit 1202.
The operation of the logic in
count = 0
if significance propagation pass then
set next pass bit to "1" for all coefficients in refinement pass
while (count < 16)
if significance propagtion pass then
in_pass = coefficients in significance propagtion pass
else if refinement pass then
in_pass = coefficients in refinement pass
in_pass = coefficients in cleanup pass
mask = (1 << count)−1
in_pass_masked = in_pass AND (NOT mask)
use priority encoder to find next coefficient in pass, N
if next coefficient found
code coeff N
if significance propagation pass then
next pass bit = NOT next significance state
else next pass bit = pass bit
count = N+1
count = 16
idle for coeff N
next pass bit = pass bit
In the above code, "in-pass" variable is the output of a 3:1 multiplexing function. The "mask" variable represents the mask, and the "in-pass-masked" variable represents the result of applying the mask. The variable N represents the next coefficient in the pass and is the output of the priority encoder. Once this has been found, the control function in the code follows.
In the above code "code coeff N" refers to coding coefficient when the coefficient is in the current pass. The "idle for coeff N" is executed when processing a run.
Double Context Generation
Contexts often depend on the last bit coded, causing a time critical feedback loop between the MQ-coder and context model when decoding. To reduce this context model delay to the time for a simple multiplex, the context model can generate two contexts, one for when the current bit being decoded is "0" and another when it is "1". When the bit is known, selection of the context may occur.
For run-length coding for the cleanup passes, Table 7 shows the two possible next contexts for each case and follows the cleanup pass flow described in the JPEG 2000 Standard. The value of the bit coded in the run-length context is used to decide if the next context is for the next group of four coefficients or is in the uniform context for the current group of four coefficients. If this bit is "0", then the run-length coding succeeded in representing four coefficients with one decision and having the MQ-coder idle for the following cycle does not significantly hurt speed performance. After the bit coded in the second uniform context ("uniform B") is a sign bit that is always coded directly in context 9 (with XOR bit 0) in the JPEG 2000 Standard, where the XOR bit being 0 indicates that the sign is not being flipped.
TABLE 7 Double Context Generation for Run-length Coding in Cleanup Passes current context (being used by MQ coder) next context for "0" next context for "1" run-length run-length or uniform A magnitude (or idle) uniform A uniform B uniform B uniform B sign sign
A and B above refer to the two bits that are described in Section D.3.4 as "[t]he next two bits, returned with the UNIFORM context" in the JPEG 2000 standard.
For the significance propagation and cleanup coding passes, the cases without run-length coding are show in Table 8. While a magnitude bit is being coded, the contexts are generated for the magnitude of the next coefficient assuming the current coefficient is "0" or the sign bit context for the current coefficient.
Double context generation tor significance propagation and
cleanup coding passes.
current context
(being used by MQ
next context for "0"
next context for "1"
magnitude bit
magnitude next
sign for current
sign bit
magnitude next
magnitude next
For the refinement pass, the value of any previous refinement coefficient coded does not effect the context.
MQ-Decoder Dataflow with Late Context
In contrast,
Referring to
Context 1402 is provided by context model 1410. Context 1402 is used to look up probability state 1404 in memory 1403, which is then converted by logic 1405 to a probability class (Qe_value) 1406. Qe_value 1406 represents the current estimate of a less probable symbol (LPS). Qe_value 1406 is compared with A and C register values as set forth in FIG. C-15 of the JPEG 2000 Standard of the MQ-coder's internal state by logic 1407 to generate the output decision 1408, which may be a more probable symbol (MPS) or LPS. The output decision 1408 is input to context model 1410. In one embodiment, the operations on the Qe_value and the internal state require 16-bit arithmetic. Operations of these blocks implement the decoding of a decision as set forth in section C.3.2 of the JPEG 2000 Standard.
Context model 1520 generates context 1502. Context 1502 is used to look up a probability state 1506 of memory 1505. In one embodiment, memory 1505 comprises a look up table. Identification of probability state 1506 allows determining the Qe_Value. Probability state 1506 output from memory 1505 is converted by logic 1507 into probability class (index) 1508.
Comparion logic 1511 determines if pclass 1509 is greater than the probability class index 1508 and comparison logic 1512 compares to determine whether probability class index 1508 is greater than pclass 1510. The results of both comparison logics 1511 and 1512 are input to AND gate 1513 such that if both comparisons are true, a decision is output. This decision may be an MPS or LPS. Thus, context 1502 is converted into a 5 bit probability class index 1508 (since there are 32 possible values for Qe_Value in JPEG 2000). The internal state is used to generate two 5-bit probability class indices. If the index corresponding to the context is outside the two indices generated from the state, the decision is a MPS; otherwise, it is a LPS (i.e., inside the two indices).
An important advantage of the embodiment of
Logic 1504 of
A similar method in hardware could be used to determine the MPS or LPS for each possible Qe_Value and then multiplex the result. For example,
Multiple Bit Decoding with MQ-Coder
Multiple MPSs can be decoded (for consecutive uses of the same PClass) at one time as long as none of the MPSs or only the last MPS requires normalization.
interval specified by A and C registers−location of the codestream/Qe
is determined and rounded to the next lowest interger, the result indicates the number of MPSs that may be decoded at one time. This calculation may be performed by well-known hardware.
An Exemplary Implementation of a 5,3 Filter
In one embodiment, a reversible and irreversible 5,3 wavelet filters are used. The term 5,3 refers to the number of taps in the wavelet fitlers, i.e., the number of non-zero (consecutive) values in the basis function support for the kernal. Reversible implies that performing the forward and the inverse tranformation (using the explicity rounding rules and without performing quantization in any form) will result in the exact same number at the output as the input. Only a modest and predictable increase in precision over the input precision is required for the intermediate mathematical terms. That is, there is no systemic distortion introduced by mathematical precision. Irreversible implies that very high precision is required to ensure no mathematical distortion (exact reconstruction). In practice, however, irreversible filters are almost always combined with quatization creating distortion that overwhelms the systemic mathematical precision distortion.
Previous outputs of highpass filter 2402 are delayed by delay 2407 and 2408 such that the current output of highpass filter 2402 and the last two outputs of highpass filter 2402 are input to highpass filter 2413. The output of highpass filter 2413 is a coefficient in the HH subband and is also input to lowpass filter 2415 along previous output of the highpass 2402 two cycles earlier, (two in the past), the output from delay 2408 and the previous output of highpass filter 2413. The output of lowpass filter 2415 is coefficient from the HL subband.
The output of lowpass filter 2404 along with the outputs of delays 2405 and 2406 are input to highpass filter 2409. The output of highpass filter 2409 is the LH subband.
The output of highpass filter 2409 is also input to one of the inputs of lowpass filter 2411 along with the output of delay 2406 and the previous output of highpass filter 2409 as delayed through delay 2410. The output of lowpass filter 2411 is the LL subband. As the LL subband, the output of lowpass filter 2411 is input to a line buffer 2412 the output of which, along with the output of lowpass filter 2411, represent the inputs to the next level of wavelet transform. The next level of wavelet transform may comprise a cascaded version of the wavelet transform in FIG. 24.
For the reversible case, the lowpass filter operates according to the following equation:
Referring to
For the reversible case, the highpass filter operates according to the following:
Referring to
The use of mux 2602 allows a simple switch to be invoked to switch between reversible and irreversible, instead of requiring completely separate hardware for both functions or requiring that reversible rounding effect the irreversible output.
It should be noted that for an inverse wavelet transform to convert filter in
A similar arrangement exists with respect to the LH and HH coefficients in that filter 2805 is coupled to receive the current HH coefficient and LH coefficient along with the HH coefficient from the previous cycle output from delay 2804. The output of even filter 2805 is coupled to one input of even filter 2811, the input of delay 2806, and one input of odd filter 2807. The other inputs of odd filter 2807 comprise the HH coeffcient from the previous cycle (the output of delay 2804) and the output of even filter 2805 from the previous cycle (the output of delay 2806). The output of odd filter 2807 is input to one input of even filter 2810.
Note that the outputs of even filter 2805 and odd filter 2807 are also coupled and are stored in inputs of line buffer 2808 and 2809. The size of line buffers 2808 and 2809 are equal to � the tile width. The outputs of line buffer 2808 are input to the other input of even filter 2811 and one input of odd filter 2815. The output of line buffer 2809 is coupled to one input of even filter 2810 and one input of odd filter 2814.
The output of even filter 2810 is the "C" portion fo the image data that is output, is stored in line buffer 2812, and is coupled to one input of odd filter 2814. In one embodiment, the size of line buffer 2812 is equal to � the tile width. In response to its input, odd filter 2814 generates data corresponding to the "A" portion of the image data.
The output of even filter 2811 corresponds to the "D" portion of image data is input to one input of odd filter 2815 and is stored in line buffer 2813. In one embodiment, the size of line buffer 2813 is � the tile width. The output of line buffer 2813 is coupled to one input of odd filter 2815. The output of odd filter 2815 corresponds to the "B" portion of the image data.
Other Parallelism Implementation Techniques
Assignment of Code-blocks to Coders for Parallelism
It is useful in hardware implementations to code multiple code-blocks in the same tile in parallel.
Referring to
The coder of
Note that although even numbers of MQ coders in parallel are discussed with respect to
Reduced Memory for Storing Coefficients in Hardware
Reducing memory usage for storing coefficients when not decoding losslessly can make use of zero bitplane information. If the hardware can store N bitplanes for each coefficient, decoding can terminate after N bitplanes are decoded. Any following bitplanes can be quantized (truncated).
During encoding, coefficients are stored before the number of zero bitplanes is known. Counters count the number of initial zeros for more significant bitplanes 8 . . . 15. As long as a bitplane 8 . . . 15 is all zero, the memory stores information (magnitude) for the corresponding bitplane 0 . . . 7. Once a one occurs in a bitplane 8 . . . 15, the corresponding counter stops and memory stores information for the corresponding bitplane 8 . . . 15. At the end of encoding a code-block, the counters either indicate all zeros for a bitplane 8 . . . 15 and that the corresponding bitplane 0 . . . 7 is in memory in the case that the counter stores a value at the end of the memory, or they indicate the starting address for bitplane 8 . . . 15 data in memory and that the corresponding 0 . . . 7 bitplane should be truncated (quantized). Thus, the counts act as sideband information to indicate that information stored in the memory array from the beginning of a row up to the location in the row at the position indicated by the count is no longer needed data. The results of truncation is that the least significant bitplanes are dropped.
A separate bitplane of memory can be used to store sign information or the sign information can be stored with the significance state.
In alternative embodiment, a small amount of memory may be used for variable length (VL) code information (e.g., run length code) instead of counters. This allows a bitplane with a small number of one bits to be stored in a small portion of memory for each bitplane. Once the bits have been stored in the memory, a context model accesses the memory to obtain the bits. However, since each row may potentially contain data that is to be quantized, and therefore, need not be accessed and used by the context model.
Referring to
For video where simultaneous operation of the transform and context model/MQ coder is desired, two banks of memory are needed. For still image applications, one band of memory is sufficient for sequential operation of the transform and context model/MQ-coder.
Although the reduced memory technique discussed above is described in terms of rows, any arbitrary memory area may be used, such as, for example, columns, blocks, pages, regions, etc. Also, separate memories may be used.
Packet Header Processing
To create a codestream, such as, for example, a JPEG 2000 codestream (or bitstream), packet headers are created. In one embodiment, this information may be with a tag tree structure to handle an arbitrary number of code-blocks. In certain situations, tile heades for tiles with a limited number of code-blocks are created. For example, in the case where a tile includes four 128�128 subbands that are each divided into 64�64 code-blocks, then there are four code-blocks that are coded together. The packet header indicates whether there is any data for a particular code-block, the number of zero bit planes if there is data, the length of the coded data and how many coding passes the data includes.
Table 9 illustrates one embodiment of a packet structure for packets with 2�2 code-blocks and 1 layer. Referring to Table 9, tag trees are only two levels high. The references to "z" show where the higher level zero bitplanes tag tree information goes, and the locations designated "_" show where the remaining zero bitplanes, coding passes and length infomation goes.
TABLE 9 Inclusion Information for 2 � 2 Code-blocks and 1 Layer. inclusion code inclusion code 0000 0* 1000 111z_000 0001 110001z— 1001 111z_001— 0010 11001z_0 1010 111z_01_0 0011 11001z_1— 1011 111z_01_1— 0100 1101z_00 1100 111z_1_00 0101 1101z_01_ 1101 111z_1_01— 0110 1101z_1_0 1110 111z_1_1_0 0111 1101z_1_1— 1111 111z_1_1_1— *Or 10 or 110000.
In one embodiment, a 110000 code is used when no code blocks are included for ease of implementation.
One embodiment of a procedue to write the packet headers for tile with a limited number of code-blocks and only a single layer begins with initialization that includes the following:
Next while coding coefficients in each code-block in the packet:
write "1" for each subband write "1" first_flag = 1 for each code-block if not included then write "0" else write "1" if first_flag then write MZP in tag tree format first_flag = 0 write zero bitplanes - MZP in tag tree format write coding passes determine minimum Lblock value write LBlock write length
Note that the LBlock is defined in the JPEG 2000 Standard in section B.10.7.1.
Note that the packet header is at least one byte and a JPEG 2000 compliant decoder can understand the information that is written.
When there are multiple layers, initialization of the MZP variable can be the same as for one layer. While coding each code-block, the included or not indication, the number of coding passes and the length are saved for each layer. Additionally, the following initialization is preferred.
To write the packet header for each layer, the following procedure may be used:
write "1" for each subband if layer 0 then write "1" for each code-block if not included then write "0" else write "1" if code-block not already included then if first_flag then write MZP in tag tree format first_flag = 0 write zero bitplanes - MZP in tag tree format set already included write coding passes determine minimum Lblock value write LBlock write length
The "already included" infomation can be a seperate bit for each code-block. Otherwise, an otherwise unused value of zero bitplanes can be used to indicate "already included". For example, if there are 14 bitplanes, seting zero bitplanes to 15 (0xF) can indicate "already included."
Reduced Coded Data Not Using "0" Packets
In JPEG 2000, packet headers are rounded up to bytes. In some cases, however, a packet header may contain only a single zero bit or a number of bits which are less than the number of bits needed to have the packet header fall on a byte boundary. Packet headers are usually rounded to bytes by padding. Also, packet header representations are not unique and although one typically desires the use of the shortest representation as possible, in one embodiment, a representation that is not the shortest possible may be used if the extra bits that are used take the place of bit locations that will have been filled by padding. This may be particularly useful in cases where the information that is encoded in the extra bits indicates something about the next packet in a tile component level partition.
For example, if there was a single subband and none of the 2�2 blocks was included, one could output a zero packet. However, in the same amount of space, one could output a zero to indicate that there is something in the packet but there is nothing included in the top level of the tag trees. Alternatively, one could indicate that there is something in the tag trees but it is 0000 (or that there is nothing individually in the four). Thus, these extra bits may be used to give more tag tree information, which is information that would have to occur in the packet header later on and has essentially been moved up. By shifting bits up into earlier packet headers, it may be possible to reduce the size of the overall codestream by a byte (or more).
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims which in themselves recite only those features regarded as essential to the invention.
|Cited Patent
|Filing date
|Publication date
|Oct 23, 1965
|May 25, 1971
|Battelle Development Corp
|Wavefront reconstruction
|Jun 21, 1974
|Apr 13, 1976
|Canadian Patents And Development Limited
|Method and apparatus to determine spatial distribution of magnitude and phase of electro-magnetic fields especially optical fields
|Dec 29, 1976
|Jan 30, 1979
|Jamieson John A
|Imaging apparatus including spatial-spectral interferometer
|Aug 18, 1977
|May 15, 1979
|U.S. Philips Corporation
|Method and arrangement for the redundancy-reducing coding of pictures
|Sep 1, 1977
|Feb 26, 1980
|U.S. Philips Corporation
|Method and arrangement for redundancy-reducing picture coding
|Aug 30, 1978
|Sep 16, 1980
|General Electric Company
|Phase corrected raster scanned light modulator and a variable frequency oscillator for effecting phase correction
|Mar 19, 1981
|Jul 12, 1983
|Bell Telephone Laboratories, Incorporated
|Digital filter bank
|Jan 27, 1982
|Mar 13, 1984
|Bell Telephone Laboratories, Incorporated
|Adaptive differential PCM coding
|Jul 19, 1982
|Feb 4, 1986
|International Business Machines Corporation
|Method of coding voice signals and device using said method
|Jul 29, 1983
|Jul 8, 1986
|Enelf Inc.
|Signal representation generator
|Jan 10, 1984
|Mar 24, 1987
|Lewis Bernard L
|Efficient adaptive filter bank
|Jun 20, 1986
|May 5, 1987
|Rca Corporation
|Compressed quantized image-data transmission technique suitable for use in teleconferencing
|Apr 4, 1984
|Jun 16, 1987
|Rca Corporation
|Real-time hierarchal pyramid signal processing apparatus
|Feb 20, 1985
|Oct 20, 1987
|Stanford University
|Optical-digital hologram recording
|May 7, 1985
|Jun 14, 1988
|Priority coding of transform coefficients
|Jan 9, 1986
|Jul 26, 1988
|Schlumberger Technology Corporation
|Seismic exploration using exactly invertible discrete transformation into tau-p space
|Nov 3, 1987
|Nov 15, 1988
|U.S. Philips Corp.
|System for the transmission and reception of high-definition television pictures in narrow-band channels
|Oct 5, 1987
|Nov 15, 1988
|Technology Inc. 64
|Digital video decompression system
|Jan 27, 1986
|Jan 17, 1989
|Telecommunications Radioelectriques Et Telephoniques T.R.T.
|Signal analysing and synthesizing filter bank system
|Oct 20, 1987
|Feb 14, 1989
|Sony Corporation
|Two-dimensional finite impulse response filter arrangements
|May 4, 1987
|Mar 21, 1989
|General Electric Company
|Quadrature mirror filters with staggered-phase subsampling
|May 4, 1987
|Mar 28, 1989
|General Electric Company
|Truncated subband coding of images
|Sep 23, 1986
|Apr 11, 1989
|Sony Corporation
|Two-dimensional finite impulse response filters
|Dec 18, 1987
|May 2, 1989
|General Electric Company
|Symbol code generation processing from interframe DPCM of TDM'd spatial-frequency analyses of video signals
|Jun 9, 1988
|May 9, 1989
|Bell Communications Research, Inc.
|Sub-band coding of images with low computational complexity
|Jul 16, 1987
|Jun 6, 1989
|Schlumberger Technology Corporation
|Spatial frequency method and apparatus for investigating earth conductivity with high vertical resolution by induction techniques
|Sep 20, 1988
|Jun 13, 1989
|Ant Nachrichtentechnik Gmbh
|Digital filter tree
|Jan 22, 1988
|Aug 15, 1989
|The Trustees Of Columbia University In The City Of New York
|System and method for hierarchal image encoding and decoding
|May 31, 1988
|Sep 5, 1989
|Sony Corp.
|Motion vector processing in digital television images
|Sep 23, 1987
|Sep 19, 1989
|Oki Electric Industry Co., Ltd.
|Sub-band speech analyzing and synthesizing device
|Oct 15, 1987
|Nov 14, 1989
|Digital Equipment Corporation
|Method and apparatus for adaptive data compression
|Jun 1, 1988
|Jan 16, 1990
|The Belgian State
|Method of coding video signals
|Mar 30, 1988
|Jan 30, 1990
|Starsignal, Inc.
|Computer-based video compression system
|Jun 3, 1988
|Feb 6, 1990
|Unisys Corporation
|Data compression/decompression apparatus with throttle, start-up and backward read controls
|Aug 10, 1988
|Feb 27, 1990
|Aware, Inc.
|Fractal tiling for multiple mirror optical devices
|Nov 18, 1988
|Feb 27, 1990
|International Business Machines Corporation
|Arithmetic coding encoder and decoder system
|Mar 14, 1989
|Apr 17, 1990
|Bell Communications Research, Inc.
|HDTV Sub-band coding using IIR filter bank
|Sep 10, 1987
|May 1, 1990
|Crosfield Electronics Limited
|Image processing
|Jan 11, 1988
|May 29, 1990
|Adolph Coors Company
|Packaging alignment system
|Feb 9, 1989
|May 29, 1990
|Storage Technology Corporation
|Adaptive data compression apparatus including run length encoding for a tape drive system
|Oct 25, 1987
|Jun 26, 1990
|Whitney Theodore R
|High resolution imagery systems and methods
|Feb 12, 1990
|Nov 27, 1990
|At&T Bell Laboratories
|Method and apparatus for carry-over control in arithmetic entropy coding
|Aug 2, 1989
|Nov 27, 1990
|Aware, Inc.
|Modular digital signal processing system
|May 6, 1988
|Jan 1, 1991
|General Electric Company
|Line-sequential pyramid processing of a plurality of raster-scanned image variables
|Mar 25, 1988
|Jan 15, 1991
|Texas Instruments Incorporated
|Method of detecting and reviewing pattern defects
|Jul 11, 1989
|Jan 22, 1991
|Massachusetts Institute Of Technology
|Multiscale coding of images
|May 3, 1990
|Mar 12, 1991
|At&T Bell Laboratories
|Three dimensional motion compensated video coding
|Sep 15, 1989
|Mar 19, 1991
|U.S. Philips Corporation
|Device for processing an echographic signal
|Mar 25, 1988
|Mar 19, 1991
|Texas Instruments Incorporated
|Guardbands for pattern inspector
|Sep 11, 1989
|May 7, 1991
|Aware, Inc.
|Image compression method and apparatus
|Mar 25, 1988
|May 21, 1991
|Texas Instruments Incorporated
|Pattern comparator with substage illumination and polygonal data representation
|Aug 27, 1990
|Sep 17, 1991
|Zenith Electronics Corporation
|HDTV system with receivers operable at different levels of resolution
|Oct 3, 1990
|Sep 17, 1991
|Bell Communications Research, Inc.
|Format conversion preprocessing method and circuit
|Feb 9, 1990
|Nov 26, 1991
|Aware, Inc.
|Method and apparatus for representing an image
|Nov 26, 1990
|Dec 10, 1991
|International Mobile Machines Corporation
|Communication signal compression system and method
|Aug 4, 1989
|Dec 17, 1991
|Aware, Inc.
|Signal processing device and method
|Aug 6, 1990
|Jan 14, 1992
|Aware, Inc.
|Novel spread spectrum codec apparatus and method
|Nov 21, 1990
|Mar 10, 1992
|Texas Instruments Incorporated
|Color overlay of scanned and reference images for display
|Nov 19, 1990
|Mar 17, 1992
|International Business Machines Corporation
|Data compression for recording on a record medium
|Aug 24, 1990
|Mar 17, 1992
|Bell Communications Research, Inc.
|Multiple block-size transform video coding using an asymmetric sub-band structure
|May 17, 1990
|Mar 31, 1992
|Fuji Photo Film Co., Ltd.
|Device for coding a picture signal by compression
|May 31, 1990
|Mar 31, 1992
|Aware, Inc.
|Method and apparatus for coding an image
|Mar 28, 1990
|Apr 7, 1992
|Transitions Research Corporation
|Digital image compression employing a resolution gradient
|Jun 28, 1991
|Apr 28, 1992
|Sharp Kabushiki Kaisha
|Orthogonal transform coding system for image data
|Mar 15, 1991
|Jun 9, 1992
|Aware, Inc.
|Method and apparatus for coding motion pictures
|Feb 20, 1990
|Jun 23, 1992
|Method for analyzing a signal by wavelets
|Jun 18, 1990
|Jul 7, 1992
|Zenith Electronics Corporation
|Video transmission system using adaptive sub-band coding
|Aug 13, 1990
|Jul 7, 1992
|Bell Communications Research, Inc.
|Multi-channel HDTV system
|Aug 1, 1990
|Sep 15, 1992
|Aware, Inc.
|Image coding apparatus and method utilizing separable transformations
|May 20, 1991
|Oct 6, 1992
|Werner Ackermann
|Installation for the flame metalization of small pieces of steel or cast iron
|May 8, 1990
|Oct 20, 1992
|Whitney Theodore R
|High resolution imagery systems and methods
|Nov 8, 1990
|Dec 22, 1992
|Exxon Production Research Company
|Method of generating seismic wavelets using seismic range equation
|Jun 12, 1991
|Jan 26, 1993
|U.S. Philips Corporation
|Apparatus for deriving a compatible low-definition interlaced television signal and other components for reconstructing the original signal from an interlaced high-definition television signal
|Dec 19, 1991
|Jun 29, 1993
|Sony Broadcast & Communications Limited
|Compression of video signals
|Jun 27, 1991
|Aug 10, 1993
|Polaroid Corporation
|Method and apparatus for selectively adjusting the brightness of large regions of an image
|Mar 23, 1992
|Aug 31, 1993
|Bell Communications Research, Inc.
|Adaptive transform coding using variable block size
|Apr 5, 1991
|Nov 16, 1993
|Texas Instruments Incorporated
|Spline-wavelet signal analyzers and methods for processing signals
|Mar 22, 1991
|Jan 4, 1994
|Bell Communications Research, Inc.
|Two-dimensional block scanning for subband image and video coding
|Nov 12, 1991
|May 24, 1994
|General Electric Company
|Digital data compression system including zerotree coefficient coding
|Feb 26, 1992
|Jun 14, 1994
|General Electric Company
|Data compression system including successive approximation quantizer
|Jan 23, 1992
|Aug 2, 1994
|Olympus Optical Co., Ltd.
|Image data compressing/coding apparatus
|Dec 22, 1992
|Sep 13, 1994
|Nec Corporation
|Small-size wavelet transform apparatus
|Aug 15, 1991
|Sep 20, 1994
|International Business Machines Corporation
|Multi-mode data stream generator
|Aug 24, 1992
|Jan 3, 1995
|Ricoh Corporation
|Data encoding using one or more adaptive decision trees
|Feb 10, 1993
|Jan 10, 1995
|Ricoh Corporation
|Method and apparatus for parallel decoding and encoding of data
|Oct 7, 1992
|Jan 24, 1995
|Sony United Kingdom Limited
|Image processing apparatus
|Jan 22, 1993
|May 2, 1995
|David Sarnoff Research Center, Inc.
|Apparatus and method for compressing information
|Nov 9, 1993
|May 9, 1995
|Motorola, Inc.
|Maximum likelihood paths comparison decoder
|Jan 27, 1993
|May 9, 1995
|Method and apparatus for image data transformation
|May 27, 1993
|May 16, 1995
|Samsung Electronics Co., Ltd.
|Image compression method for bit-fixation and the apparatus therefor
|Mar 18, 1993
|May 30, 1995
|New Jersey Institute Of Technology
|Multiplierless 2-band perfect reconstruction quadrature mirror filter (PR-QMF) banks
|Dec 18, 1991
|Aug 15, 1995
|Eastman Kodak Company
|Method and associated apparatus for encoding bitplanes for improved coding efficiency
|Jan 13, 1994
|Sep 26, 1995
|Tucker; Michael R.
|Method for decomposing signals into efficient time-frequency representations for data compression and recognition
|Sep 20, 1993
|Oct 3, 1995
|The Analytic Sciences Corporation
|Continuous-tone image compression
|Mar 15, 1995
|Jan 2, 1996
|At&T Corp.
|Method and apparatus for synthesizing subband video images
|Sep 3, 1993
|Feb 27, 1996
|Gte Laboratories Incorporated
|Inter-frame wavelet transform coder for color video compression
|Feb 23, 1993
|Mar 5, 1996
|Image Compression Technology Ltd.
|Apparatus and method for encoding and decoding digital signals
|Jun 10, 1992
|Apr 23, 1996
|Canon Information Systems, Inc.
|Method and apparatus for unwinding image data
|May 2, 1994
|Jul 9, 1996
|Cognitech Inc.
|Image compression by optimal reconstruction
|Jun 29, 1994
|Jul 16, 1996
|Sony Corporation
|Apparatus for compressing image data employing entropy encoding of data scanned from a plurality of spatial frequency bands
|Jul 13, 1994
|Jul 30, 1996
|Utah State University Foundation
|Fixed quality source coder with fixed threshold
|Dec 16, 1994
|Aug 5, 1997
|National Semiconductor Corp.
|Syntax-based arithmetic coding for low bit rate videophone
|Oct 9, 1996
|Nov 17, 1998
|Ericsson, Inc.
|Method and apparatus for encoding and decoding digital information
|Dec 15, 1995
|Dec 8, 1998
|Canon Kabushiki Kaisha
|Coding/decoding apparatus and coding/decoding method
|Aug 29, 1997
|Apr 25, 2000
|Seiko Epson Corporation
|Data encoding and decoding method and device of a multiple-valued information source
|Mar 10, 1997
|Dec 5, 2000
|U.S. Philips Corporation
|Method of and device for coding a digital information signal
|Dec 8, 1998
|Aug 28, 2001
|Samsung Electronics Co., Ltd.
|Context generation circuit and method for small screen
|Jun 7, 2001
|Feb 25, 2003
|Sony Corporation
|Decoder and decoding method
|Apr 11, 2000
|Jan 6, 2004
|Texas Instruments Incorporated
|Direct comparison adaptive halting decoder and method of use
|Antonini, et al., "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, vol. 1, No. 2, Apr. 1992, pp. 205-220.
|Blumberg, et al., "Visual Realism and Interativity for the Internet", IEEE, 1997, pp. 269-273.
|Boliek, et al., "Decoding compression with reversible embedded wavelets (CREW) codestreams", Journal of Electronic Imaging, Jul. 1998, vol. 7 (3), pp. 402-409.
|Boliek, et al., "JPEG 2000 for Efficient Imaging in a Client/Server Environment", Proceeding of the PIE, SPIE, Bellingham, VA, US, vol. 4472, Jul. 31, 2001, pp. 212-223, XP008010308.
|Boliek, et al., "JPEG 2000 Next Generation Image Compression System", IEEE 0-7803-6297, 45-48.
|Calderbank, et al., "Wavelet Transforms That Map Integers to Integers", Aug. 1996.
|Carey, et al: "Regularity-Preserving Image Interpolation", IEEE Transactions on Image Processing, vol. 8., No. 9, Sep. 1999, pgs. 1293-1297, XP002246254.
|Carrato, et al: "A Simple Edge-Sensitive Image Interpolation Filter", Proceedings of the International Conference on Image Processing (ICIP) Lausanne, Sep. 16-19, 1996, New York, IEEE, US, vol. 1, pgs. 711-714, XP010202493.
|Chen, et al., "Wavelet Pyramid Image Coding with Predictable and Controllable Subjective Picture Quality", IEICE Trans. Fundamentals, vol. E76-A., No. 9, Sep. 1993, pp. 1458-1468.
|Cheong, et al., "Subband Image Coding with Biorthogonal Wavelets", IEICE Trans. Fundamentals, vol. E75-A., No. 7, Jul. 1992, pp. 871-881.
|Chrysafis, et al., "An Algorith for Low Memory Wavelet Image Compression", IEEE 0-7803-5467-2/99, pg. 354-358.
|Chrysafis, et al., "Line Based Reduced Memory, Wavelet Image Compression," Data Compression Conference, 1998, DCC '98, Proceedings Snowbird, UT, Mar. 1998, pgs. 398-407.
|Chui, et al., "Wavelets on a Bounded Interval", Numerical Methods of Approximation Theory, vol. 9, 1992, pg. 53-75.
|Crochiere, et al., "Digital Coding of Speech in Sub-bands", 1976, American Telephone and Telegraph Company, The Bell System Technical Journal, vol. 55, No. 8, Oct. 1976, pp. 1069-1085.
|Denk, et al., "Architectures for Lattice Structure Based Orthonormal Discrete Wavelet Transforms", IEEE, 1994, pp. 259-270.
|Deshpande, et al., "HTTP Streaming of JPEG2000 Images", IEEE, 2001, pp. 15-19.
|Dutch Search Report, 133082, Nov. 26, 1996.
|Esteban, et al., "1977 IEEE International Conference on Acoustics, Speech & Signal Processing", "Application of Quadrature Mirror Filters to Split Band Voice Coding Schemes", pp. 191-195.
|Flashpix Format Specification, Version 1.0.2, Jul. 2, 1998 Copyright 1997 Digital Imaging Group.
|French Search Report, FR9511023, Nov. 26, 1996.
|French Search Report, FR9511024, Nov. 26, 1996.
|German Search Report, dated Mar. 21, 1997, 3 pages.
|Gharavi, et al., "Proceedings: ICASSP 87", 1987 International Conference on Acoustics, Speech, and Signal Processing, Apr. 6, 7, 8, 9, 1987, vol. 4 of 4, "Application of Quadrature Mirror Filtering to the Coding of Monochrome and Color Images", pp. 2384-2387.
|Gharavi, et al., "Sub-band Coding of Digital Images Using Two-Dimensional Quadrature Mirror Filtering:, SPIE vol. 707 Visual Communications and Image Processing", 1986, pp. 51-61.
|Gordon, Benjamin M., et al., "A 1.2 mW Video-Rate 2-D Color Subband Decoder," IEEE Journal of Solid-State Circuits, IEEE Inc. New York, vol. 30, No. 12, Dec. 1, 1995, pgs. 1510-1516.
|Hauf, et al., "The FlashPix(TM) Image File Format", The Fourth Color Imaging Conference: Color Science, Systems and Application, 1996, pp. 234-238.
|Howard, et al., "Fast and Efficient Lossless Image Compression", IEEE, 1993, pp. 351-360.
|Information Technology-JPEG 2000 Image Coding System-Part 1: Core Coding System, ISO/IEC 15444-1, Dec. 15, 2000, pg. 5, 14, 22.
|International Search Report for Application No.: GB 9518298.6, dated 8. Nov. 1995.
|Internet Imaging Protocol, Version 1.0.5, Oct. 1997 Copyright 1997 Hewlett Packard Company, Live Pictures, Inc., and Eastman Kodak Company.
|JPEG 2000 Part 1 Final Committee Draft Version 1.0, Image Compression Standard described in ISO/IEC 1/SC 29/WG 1 N1646, Mar. 16, 2000.
|Komatsu, et al., "Reversible Subband Coding of Images", SPIE vol. 2501, pp. 676-648.
|Langdon, JR., "Sunset: A Hardware-Oriented Algorithm for Lossless Compression of Gray Scale Images", SPIE vol. 1444, Image Capture, Formatting, and Display, 1991, pp. 272-282.
|Le Gall, et al., "Sub-band coding of Digital Images Using Symmetric Short Kernal Filters and Arithmetic Coding Techniques", 1988, International Conference on Acoustics, Speech and Signal Processing, pp. 761-764.
|Lewis, et al., "Image Compression Using the 2-D Wavelet Transform", IEEE Transactions on Image Processing, vol. 1, No. 2, Apr. 1992, pp. 244-250.
|Lux, P., "A Novel Set of Closed Orthogonal Functions for Picture Coding", 1977, pp. 267-274.
|Marcellin, et al., "An Overview of JPEG-2000", Proceedings. DCC 2000 Snowbird, UT, USA, Mar. 28-30, 2000, pp. 523-541, XP010377392.
|Meng, Teresa H., "A Wireless Portable Video-on-Demand System," VLSI Design, 1998, Proceedings Eleventh International Conference on Chennai, India 407, Jan. 1998, California, pgs. 4-9.
|Ohta, et al., "Wavelet Picture Coding with Transform Coding Approach", Jul. 1992, No. 7, pp. 776-784.
|Padmanabhan, et al., "Feedback-Based Orthogonal Digital Filters", IEEE Transactions on Circuits and Systems, Aug. 1993, No. 8, pp. 512-525.
|Pollara et al., "Rate-distortion Efficiency of Subband Coding with Integer Coefficient Filters", Jul. 1994, pg. 419, Information Theory, 1994, IEEE.
|Reeves, et al: "Multiscale-Based Image Enhancement", Electrical and Computer Engineering, 1997. Engineering Innovation: Voyage of Discovery. IEEE 1997 Canadian Conference on St. Johns, NFLD., Canada May 25-28, 1997, New York, NY. (pgs. 500-503), XP010235053.
|Reusens, "New Results in Subband/Wavelet Image Coding", May 1993, pg. 381-385.
|Said, et al., "Image Compression Using the Spatial-Orientation Tree", IEEE, 1993, pp. 279-282.
|Said, et al., "Reversible Image Compression Via Multiresolution representation and Predictive Coding", Aug. 11, 1993, pp. 664-674.
|Shah, et al., "A Chip Set for Lossless Image Compression", IEEE Journal of Solid-State Circuits, vol. 26, No. 3, Mar. 1991, pp. 237-244.
|Shapiro, J. M., "An Embedded Hierarchical Image Coder Using Zerotrees of Wavelet Coefficients", IEEE, 1993, pp. 214-223.
|Shapiro, J. M., "Embedded Image Coding Using Zerotrees of Wavelet Coefficients", IEEE Transactions on Signal Processing, Dec. 1993, No. 12, pp. 3445-3462.
|Smith, et al., "Exact Reconstruction Techniques for Tree-Structured Subband Coders" IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. ASSP-34, No. 3, Jun. 1986, pg. 434-441.
|Stoffel, et al: "A Survey Of Electronic Techniques For Pictorial Image Reproduction," IEEE Transactions On Communications, vol. COM-29, No. 12, Dec. 1981, pp. 1898-1925, XP000560531 IEEE, New York (US).
|Szu, et al., "Image Wavelet Transforms Implemented by Discrete Wavelet Chips", Optical Engineering, Jul. 1994, vol. 33, No. 7, pp. 2310-2325.
|Vetterli, Martin "Filter Banks Allowing Perfect Reconstruction", Signal Processing 10 (1986), p. 219-244.
|Vetterli, Martin, "Multi-Dimensional Sub-band Coding: Some Theory and Algorithms", Signal Processing 6 (1984) pg. 97-112.
|Villasenor, et al., "Filter Evaluation and Selection in Wavelet Image Compression", IEEE, 1994, pp. 351-360.
|Westernick, et al., "Proceedings; ICASSP 87", 1987 International Conference on Acoustics, Speech, and Signal Processing, Apr. 6, 7, 8, 9, 1987, vol. 3 of 4, "Sub-band coding of Images Using Predictive Vector Quantization", pp. 1378-1381.
|Wods, "Subband Image Coding", 1991, pp. 101-108, 163-167, and 180-189.
|Woods, et al., "Subband Coding of Images", IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 1 ASSP-34, No. 5, Oct. 1986, pp. 1278-1288.
|Woods, et al., "Sub-band coding of Images", Proceedings ICASSP 86, Tokyo, Japan, Apr. 1986, pp. 1005-1008.
|Wu, et al., "New Compression Paradigms in JPEG2000", Applications of Digital Image Processing XXII, San Diego, CA USA, Jul. 31-Aug. 3, 2000, vol. 4115, pp. 418-429, XP008013391, Proceedings of the DPIE-The International Society for Optical Engineering, 2000, SPIE-Int. Soc. Opt. Eng., USA.
|Xiong, et al.,"Joint Optimization of Scalar and Tree-structured Quantization of Wavelet Image Decompositions", Jan. 11, 1993, pp. 891-895.
|XSL Transformations (XSLT), Version 1.0, W3C Recommendation Nov. 16, 1999 by the W3C.
|Citing Patent
|Filing date
|Publication date
|Jul 10, 2002
|Nov 7, 2006
|Sanyo Electric Co., Ltd.
|Image coding apparatus and image coding method
|Apr 28, 2006
|Mar 22, 2011
|Ricoh Company, Ltd.
|Orderly structured document code transferring method using character and non-character mask blocks
|Mar 27, 2013
|Jan 19, 2016
|Intersil Americas LLC
|VC-2 decoding using parallel decoding paths
|Dec 28, 2001
|Dec 26, 2002
|Masahiro Taniguchi
|Method of performing bit modeling and circuit that uses this method
|Jul 10, 2002
|Feb 20, 2003
|Sanyo Electric Co., Ltd.
|Image coding apparatus and image coding method
|Apr 28, 2006
|Nov 2, 2006
|Tooru Suino
|Structured document code transferring method, image processing system, server apparatus and computer readable information recording medium
|Jun 30, 2006
|Feb 8, 2007
|Samsung Electro-Mechanics Co., Ltd.
|Image compression device and image compression method
|Mar 27, 2013
|Sep 18, 2014
|Intersil Americas LLC
|Vc-2 decoding using parallel decoding paths
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Sep 17, 2001
Owner name: RICOH CO., LTD., JAPAN
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHWARTZ, EDWARD L.;GORMISH, MICHAEL J.;REEL/FRAME:012169/0620
Effective date: 20010907
|Aug 13, 2008
|Fee payment
Year of fee payment: 4
|Aug 16, 2012
|Fee payment
Year of fee payment: 8
|Sep 30, 2016
|Maintenance fee reminder mailed
|Feb 22, 2017
|Lapse for failure to pay maintenance fees
|Apr 11, 2017
|Expired due to failure to pay maintenance fee
Effective date: 20170222


text:
McHENRY, Md. (AP) — Authorities say a skier died in an accident at the Wisp resort in western Maryland — the second man to die on the same ski slope this winter.
The Garrett County Sheriff's Office says 38-year-old Curt Winklevoss of Upper Arlington, Ohio, lost control while skiing on an expert-level slope called Squirrel Cage on Friday afternoon. Witnesses told investigators that he crashed into at least one tree.
Winklevoss was treated at the scene by ski patrol personnel and taken to a hospital, where he died.
Detective Mark Pfaff of the sheriff's office says no one else was injured. He says conditions on the slope were icy at the time of the accident.
Last month, a 40-year-old Rockville man crashed into trees and died on the same slope.

subset: commoncrawl


text:
© 2008 MLB Advanced Media, L.P. All rights reserved.
Sizemore, Sabathia to honor Robinson
Indians to wear legend's No. 42 next week in tribute
By Anthony Castrovince / MLB.com
ANAHEIM -- When asked for the second straight year if he wouldn't mind flipping around his No. 24 to read "42" for a day, Grady Sizemore didn't have to think twice about it. Honoring Jackie Robinson on April 15 by wearing his retired number, Sizemore figured, is the least he could do. "Just wearing his number doesn't do justice to all the things he did for the game," Sizemore said of Robinson. "He was one of the greats. We're just doing our part to pay tribute to him." Joining Sizemore in that tribute will be reigning American League Cy Young Award winner C.C. Sabathia, who, unfortunately, will not be pitching on Jackie Robinson Day, as he was while wearing No. 42 last year.
"It's pretty cool that guys are going to be doing it again," Sabathia said. They'll be doing it again at the invitation of Commissioner Bud Selig, who once again will lift the restriction on 42 to celebrate the man who broke baseball's color barrier. Introduced in 2004, Jackie Robinson Day was created to honor the enduring impact of Robinson and his legacy. Robinson played his first Major League game at Ebbets Field on April 15, 1947, as a member of the Brooklyn Dodgers. In 1997, in the 50th anniversary of that game, Robinson's No. 42 was retired throughout the Major Leagues. Robinson's memory lives on today in initiatives such as the Jackie Robinson Foundation, which was founded by Rachel Robinson in 1973 to provide education and leadership development opportunities for minority students with strong capabilities but limited financial resources, as well as Breaking Barriers, which utilizes baseball-themed activities to reinforce literacy skills, mathematics, science and social history. And his impact on the game itself is still obvious to anyone who has seen Sabathia pitch, or Sizemore, whose father is African-American, man center field for the Tribe. "To me, he means everything," Sabathia said. "I wouldn't get a chance to play this game if it weren't for him. He means so much to so many people, but he means everything to me, because, without him, I wouldn't get this opportunity." This pair of Indians players is pleased with the opportunity to once again honor Robinson on April 15. "It's his day," Sizemore said.
Anthony Castrovince is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.


text:
East Coast dirts met western-state rookies and Norwegian heavyweights on Sunday, December 16 for the men's finals of the second contest in the Mammoth Grand Prix.
Last season it was the nine–this year it's the 1080 that's separating the elite from the masses. Norway's Daniel Franck was visibly dominating with a complex trick combination including a struggle-free, inverted frontside 1080. Franck had qualified first from Saturday's competition, and because the finals ran in reverse-qualifying order, he went last and blew everyone's bets on who had the winning run.
But let's get on to the important stuff–the Americans, because incase you haven't heard, the Grand Prix contests are Olympic qualifiers for the United States. Mammoth resident Luke Wynen surprised even himself with a clean and boosting run that landed him in second-place and officially in the running for the men's Olympic team. And Ross Powers, bronze medallist at the 1998 Olympics in Japan, earned third with smooth switch McTwists and frontside nines.
Rest assured that there were a lot more people ripping out there beyond these three. Danny Kass, a top contender for the Olympic team and winner of Thursday's competition, nearly missed practice (which had been moved up an hour in anticipation of the afternoon's quarterpipe contest). He only took three runs in the halfpipe all day, including one warm up, but rode with amazing focus and became one of the few riders to pull the elusive 1080. One wonders, then, what he was doing way down in seventh place.
Impressive stunts were also pulled by Keir Dillon, Andy Finch, Travis Rice, and JJ Thomas. These guys, and truly every American in the contest, remain with horns locked for the four quota spots up for grabs. No pressure, it's only the Olympics at stake.
Men's Finals.
Final runs from Keir Dillon, Danny Kass, and Shaun White.
Women's Finals.
Men's qualifiers.
Danny Kass, Bjorn Leines, and Keir Dillon's high scoring qualification runs.


text:
Kelly to begin Triple-A rehab stint Friday
By Jenifer Langosch / MLB.com
ST. LOUIS -- Cardinals general manager John Mozeliak announced after Sunday's game that Joe Kelly will begin a Minor League rehab assignment on Friday with Triple-A Memphis. That decision was made after Kelly threw two pain-free simulated innings at Busch Stadium on Sunday morning.
Kelly's readiness for that next step took on added importance when Mozeliak also announced that two starters -- Michael Wacha and Jaime Garcia -- were being moved to the disabled list with shoulder injuries. Kelly will need at least two Minor League starts, Mozeliak said, before being considered an option to rejoin the Cardinals' rotation.
The right-hander will threw between 40-60 pitches Friday.
The organization had also planned to have Kelly do some PFP (pitcher's fielding practice) work Sunday, but a heavy morning downpour led the Cardinals to nix those plans. Kelly could do that defensive work as early as Monday, manager Mike Matheny said.
Kelly has been on the 15-day disabled list since April 17 with a left hamstring strain.
"Today you could see he trusted it and let it go," Matheny said. "He came in with a lot of bounce [after throwing]. He was extremely excited about how he felt."
Seeking spark, Matheny bats Holliday in two-hole
ST. LOUIS -- Amid all of Cardinals manager Mike Matheny's lineup maneuvering this season, only two players -- Matt Carpenter and Matt Holliday -- have remained in fixed spots in the batting order. Now, that's a distinction unique to Carpenter.
Continuing to seek a way to spark the offense, Matheny moved Holliday from the third spot in the order to the No. 2 hole for Sunday's series finale against the Phillies. Matheny justified the move by pointing out Holliday's on-base percentage -- a team-best .376, tied with Carpenter -- and noting that an ideal lineup should be OBP-heavy up top.
"We're just trying to get a real good feel here with how guys are swinging it and trying to take advantage with a couple guys who are getting on base a lot and having faith in guys later in the lineup, in the middle of the lineup to drive them in," Matheny said. "It's always trying to figure out what's going to work today, and this is what we're rolling with."
Holliday has driven in the game-winning run in 10 of the Cardinals' 40 wins, but he has also been slow to show power this year, evident in his .388 slugging percentage heading into Sunday. That, too, factored into this lineup move.
Sunday marked just the 11th time -- and the first since 2010 -- that Holliday has batted second for St. Louis. The previous 10 all came consecutively from June 14-25, 2010. Holliday went 16-for-40 with three doubles, five homers and 11 RBIs during that stretch.
Matheny would not project whether he would continue to bat Holliday second beyond Sunday.
"He's been getting on base a lot and he's been driving in runs, so it's kind of been one of those juggle issues," Matheny said. "I just believe there is some opportunities to maybe give us a little different look and see how it comes together. … He knows around here that we're just trying to do the best for him, like we're trying to do the best for everybody else."
Wong to have MRI on left shoulder Monday
ST. LOUIS -- Second baseman Kolten Wong, who was placed on the disabled Saturday, is scheduled to undergo an MRI on his ailing left shoulder Monday to get a better understanding of the seriousness of the injury.
Wong injured his shoulder nearly three weeks ago while making a diving play in the field. He missed four of the five games immediately after getting hurt, but that rest only temporarily alleviated the pain. It has since gradually worsened and left Wong unable to finish his swing. He had two hits in 26 at-bats after the injury.
"Any time I stretched my arm, I could feel a little pinch," Wong said. "I thought if I kept playing through it, eventually it would go away. But it's been a couple weeks now and it hasn't gone away. We thought we would take care of it now before it gets any worse."
Wong did not have an MRI on his shoulder after initially injuring it, so this follow-up exam should provide clarification on the specifics of the injury and what treatment plan should be followed. Wong won't be eligible to come off the DL until at least July 6. The Cardinals do not anticipate receiving a serious diagnosis.
"I'm watching some of the movements, and I'm watching some of the things he's doing," manager Mike Matheny said. "He looks close, but he looks a hair off."
The layoff is just another setback for Wong, who has faced several this year. He struggled to assert himself as the Cardinals' starting second baseman upon being awarded the job out of Spring Training, and that led to the club sending him back to Triple-A to regain his swing and confidence.
He crushed Triple-A pitching and carried that momentum over upon being recalled in mid-May. In the 15 games he played before injuring his shoulder, Wong was 18-for-57 with eight runs scored and 10 RBIs.
"Coming back after being sent down and doing what I did injuring my arm the same day I hit the grand slam, it did [stink]," Wong said. "You want to continue to progress and get better. It's not fun."
Waino paints face to support Team USA
ST. LOUIS -- Adam Wainwright painted himself patriotic Sunday in support of the U.S. men's national soccer team, which will face Portugal in a first-round World Cup match later in the day.
"Besides our game, it's the biggest game of the day, biggest game of the year," Wainwright said Sunday morning. "All these other people from all these other countries are getting fired up, painting their face and wearing flags and all that. It's time for the United States to stand up and be patriotic, too."
And so he did. Actually, it was Wainwright's wife, Jenny, who painted the American flag across Wainwright's face Sunday morning, before the Cardinals' ace reported to Busch Stadium. He also came clad with a USA soccer scarf, as well as several washable USA tattoos that he plans to pass out to teammates for their charter flight to Denver.
Wainwright is not a bandwagon soccer fan, either. He played competitive soccer as a child, where he starred at several different positions. In 1994, he traveled to Orlando to watch a World Cup game between the Netherlands and Ireland.
"I almost," he admitted, "quit baseball for soccer."
Worth noting
• Left-hander Kevin Siegrist played flat-ground catch again Sunday and noted afterward that his aching left shoulder continues to improve. If all continues to go well, Siegrist is expected to get back on a mound to throw this week.
• Outfielder Shane Robinson returned to the Cardinals' clubhouse Sunday after being recalled upon Wong's move to the disabled list. This marks the start of Robinson's third stint with the big league team this season.
"I can't begin to tell you how much we hate doing that," Matheny said of the yo-yo effect on Robinson. "You can't take the human aspect out of it, too. You have a guy with a young family and expecting wife and we keep sending him on the shuttle back-and-forth. He's a guy who is a good part of this team and a good player."
• Matheny implied that the Cardinals will likely keep 13 pitchers on the roster at least through the team's upcoming stop in Colorado. The Cardinals open a three-game series against the Rockies on Monday.
Jenifer Langosch is a reporter for MLB.com. Read her blog, By Gosh, It's Langosch, and follow her on Twitter @LangoschMLB. This story was not subject to the approval of Major League Baseball or its clubs.


text: I'd be interested to know if this was JJ's idea or Paramount's. Wouldn't surprise me if the Star Wars Episode 7-9 announcement factored into this, the nine minutes being a way to recapture some lost thunder for Trek XII. Not to say that they needed to--I think Trek XII will be plenty high-profile when the time comes--but it does strike me as the kind of consideration a studio suit would tend to make, for good or ill.


text:
9, 2009
of The Attorney General
Anne Milgram, Attorney General
of Criminal Justice
- Deborah L. Gramiccioni, Director
of Securities
- Marc B. Minor, Bureau Chief
Monmouth County Man Sentenced to State Prison
for Stealing $690,000 in Fraudulent Investment
– Attorney General Anne Milgram announced
that a Millstone Township man was sentenced
to prison for stealing $690,000 from more
than two dozen victims who invested millions
of dollars in his fraudulent get-rich-quick
to Criminal Justice Director Deborah L. Gramiccioni,
Michael D'Angelo, 48, of Millstone Township,
was sentenced on Friday, Nov. 6, to three
years in state prison by Superior Court Judge
Francis P. DeStefano in Monmouth County. D'Angelo
pleaded guilty on Jan. 26 to a charge of second-degree
theft by deception filed by the Division of
Criminal Justice Major Crimes Bureau.
April 29, D'Angelo executed a consent
order to settle a lawsuit filed by the New
Jersey Bureau of Securities, which investigated
the securities fraud involving D'Angelo
and his company, CMR Mngt. Group LLC. Under
the consent order, D'Angelo must pay
a total of $670,177 in restitution, penalties
and disgorged funds.
Division of Criminal Justice has worked closely
with the Bureau of Securities to ensure that
this defendant is held accountable for his
crime, not only by paying restitution but
also by serving the prison sentence imposed
today," said Attorney General Milgram.
"We are doing everything in our power
to recover the funds he stole from investors."
Division of Criminal Justice has filed a civil
forfeiture action against D'Angelo's
home, which is in the name of his wife, Diana.
She pleaded guilty to third-degree theft by
deception for her role in the fraudulent scheme
and was admitted into the Pre-Trial Intervention
D'Angelo was charged in a March 7, 2008
state grand jury indictment obtained by the
Division of Criminal Justice. The investigation
by the Bureau of Securities, and a separate
investigation by the Division of Criminal
Justice, revealed that between January 2004
and January 2006, D'Angelo solicited
approximately $3,260,000 from 26 investors,
including at least 24 New Jersey residents.
offered investments in the CMR "Capital
Enhancement Program," promising a guaranteed
rate of return of 5 percent interest per month
and return of the investor's principal
after 12 months. Investors were told their
money was absolutely safe because it was held
in "non-depletion funds" or "non-accessible"
bank accounts. Investors were given conflicting
stories about how profits were generated,
including foreign currency trading, unspecified
activity in Switzerland, U.S. government money
manipulation, and trading in large blocks
of bank notes.
reality, D'Angelo commingled investor
funds, using funds from new investors to pay
old investors in the typical fashion of a
Ponzi scheme. He diverted large sums into
his wife's bank accounts to pay the
couple's personal expenses including,
among other things, the mortgage payments
for their lavish home and payments on high-end
$2,570,000 was returned to investors, including
payments totaling $1,946,100 that were made
to some of the investors after D'Angelo
became aware of the Bureau of Securities investigation.
In return for the payments, the investors
were required to sign fraudulent releases
stating that D'Angelo had not engaged
in fraud or sold the investors any securities.
Attorney General Patrick Flor prosecuted the
case and handled today's sentencing
for the Division of Criminal Justice Major
Crimes Bureau.
Richard Smullen, Investigator Isaac Reyes,
Supervising Investigator Michael McElgunn,
and Chief of Enforcement Richard Barry conducted
the investigation for the Bureau of Securities.
Detective Sgt. Noelle Holl conducted the separate
investigation by the Division of Criminal
Justice. Deputy Attorney General Victoria
Manning and Deputy Attorney General Stacey
M. Davey filed the lawsuit for the Bureau
of Securities. Deputy Attorney General Michael
McCormick is handling the civil forfeiture
action for the Division of Criminal Justice.
of Securities Chief Marc B. Minor noted that
anyone offering to sell securities in the
state must be registered with the New Jersey
Bureau of Securities. In many instances, the
security itself must also be registered before
it can be offered to investors. Investors
should contact the Bureau of Securities before
investing to determine whether the security
and the person offering it are registered
in New Jersey.
Bureau of Securities can be contacted toll-free
within New Jersey at 1-877-I-INVEST
(1-877-446-8378) or from outside
New Jersey at 973-504-3600.
The Bureau's web site is located at
PDF plugin