AU3139001A - Accessing items of information - Google Patents

Accessing items of information Download PDF

Info

Publication number
AU3139001A
AU3139001A AU31390/01A AU3139001A AU3139001A AU 3139001 A AU3139001 A AU 3139001A AU 31390/01 A AU31390/01 A AU 31390/01A AU 3139001 A AU3139001 A AU 3139001A AU 3139001 A AU3139001 A AU 3139001A
Authority
AU
Australia
Prior art keywords
symbols
items
memory banks
symbol
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
AU31390/01A
Other versions
AU769072B2 (en
Inventor
Dominic Yip
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPQ6685A external-priority patent/AUPQ668500A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU31390/01A priority Critical patent/AU769072B2/en
Publication of AU3139001A publication Critical patent/AU3139001A/en
Application granted granted Critical
Publication of AU769072B2 publication Critical patent/AU769072B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

I
S&FRef: 549122
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
0 0 0 Name and Address of Applicant: Actual Inventor(s): Address for Service: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome, Ohta-ku Tokyo 146 Japan Dominic Yip Spruson Ferguson St Martins Tower,Level 31 Market Street Sydney NSW 2000 Accessing Items of Information Invention Title: ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU PQ6685 [32] Application Date 04 Apr 2000 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 1^ Austravi Documents received on: 8 2asc AR 2101 Batch No: 5815c ACCESSING ITEMS OF INFORMATION Technical Field of the Invention The present invention relates to a method and apparatus of accessing items of information. The present invention also relates to a method and apparatus for entropy encoding and decoding symbols.
Background The field of digital data compression and in particular digital image compression has attracted great interest for some time.
In the field of digital image compression, many different techniques have been utilised. In particular, one popular technique is the JPEG standard, which utilises the Discrete Cosine Transform (DCT) to transform standard size blocks of an image into o. *S corresponding cosine components. In this respect, the higher frequency cosine components are heavily quantised so as to assist in obtaining substantial compression factors. The heavy quantisation is an example of a "lossy" technique of image S 15 compression. The JPEG standard also provides for the subsequent "lossless" compression of the transformed coefficients.
A call for proposals for the new JPEG-2000 standard was recently issued and a draft •o standard has been published entitled "Information Technology JPEG 2000 Image coding System JPEG 2000 Committee Draft version 1.0, 9 December 1999". This draft 20 standard proposes that the whole image is firstly discrete wavelet transformed and divided into a number of code blocks of transform coefficients before each code block is entropy encoded. The entropy encoder consists of two parts: a context generator and an arithmetic coder. The arithmetic coder takes as input the bit symbol of a coefficient to be encoded and the context of that bit symbol. The arithmetic coder first codes all the bit symbols of the most significant bit-plane of a code block, then all the bit symbols of the next lower bit-plane of the code block and so on to the least significant bit-plane. Within each bit-plane of a code block, the arithmetic coder codes the bit symbols of the coefficients in a predetermined order. The context of a bit symbol of a coefficient, which bit symbol is to be coded by the arithmetic coder, is based on the 'significance' state of 549122.doc the 8 surrounding coefficients in the code block. When the surrounding coefficient is outside the code block, it can be symmetrically reflected or assumed to be zero. The 'significance' state of a coefficient is a binary-valued variable, ui[m,n], which is initialised to 0, but transitions to 1 when the coefficient's first non-zero bit-plane value is encoded. For example, a pixel coefficient having an integer value of seven and thus a binary value of 00111 will have a 'significance' state of zero in bit-planes four and three and a 'significance' state of one in bit-planes two, one and zero. It has been proposed to use a memory table for the look-up and update of the context generation. One proposal is to have a number of identical tables storing identical information on the 'significance' state of the coefficients. In this apparatus, the different locations are simultaneously looked up in respective tables to obtain the 'significance' state of the surrounding coefficients. Thus, all the data is duplicated many times, and the hardware cost may be ooo oi V large. Another proposal is to have one table and look up the table several times to obtain the 'significance' state of all the coefficients in the neighbourhood. This has the S15 advantage of low hardware cost, but this architecture is too slow.
*o Disclosure of the Invention It is an object of the present invention to substantially overcome, or at least ooo.
ameliorate, one or more disadvantages of existing arrangements.
According to a first aspect of the invention, there is provided apparatus for .i 20 accessing items of information in a neighbourhood of a location of a symbol specified by an input address, the apparatus comprising: a plurality of memory banks, wherein each memory bank is capable of storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; and an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to said input address, wherein said plurality of memory banks output a said plurality of said items of information associated with and 549122.doc corresponding to respective said symbols within said neighbourhood of said symbol corresponding to said input address.
According to a second aspect of the invention, there is provided an entropy encoder for encoding symbols, the entropy encoder comprising: a plurality of memory banks, wherein each memory bank is capable of storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; an arithmetic encoder for arithmetically encoding an input symbol utilising a context of said *.input symbol; an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said symbols within a neighbourhood of said input symbol corresponding to said input address; and a context generator for generating said context of said input symbol utilising V6 "said items of information output by said plurality of memory banks.
According to a third aspect of the invention, there is provided an entropy decoder for decoding symbols, the entropy decoder comprising: a plurality of memory banks, S. 20 wherein each memory bank is capable of storing items of information associated with and corresponding to respective decoded symbols of a sub-set of said decoded symbols, wherein the sub-sets of decoded symbols together comprise a set of decoded symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said decoded symbols of said set of decoded symbols; an arithmetic decoder for arithmetically decoding an input symbol utilising a context of said input symbol; an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of 549122.doc information associated with and corresponding to respective said decoded symbols within a neighbourhood of said input symbol corresponding to said input address; and a context generator for generating said context of said input symbol utilising said items of information output by said plurality of memory banks.
According to a fourth aspect of the invention, there is provided a method of accessing items of information in a neighbourhood of a location of a symbol specified by an input address, the method comprising: storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols in each one of a plurality of memory banks, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; and simultaneously generating a plurality S. of addresses for respective said plurality of memory banks in response to said input address, wherein said plurality of memory banks output a said plurality of said items of S* 15 information associated with and corresponding to respective said symbols within said neighbourhood of said symbol corresponding to said input address.
According to a fifth aspect of the invention, there is provided a method of entropy encoding symbols, the method comprising: storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols in each one of a 20 plurality of memory banks, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; arithmetically encoding an input symbol utilising a context of said input symbol; simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said symbols within a neighbourhood of said input symbol corresponding to said input 549122.doc address; and generating said context of said input symbol utilising said items of information output by said plurality of memory banks.
According to a sixth aspect of the invention, there is provided a method of entropy decoding symbols, the method comprising: storing items of information associated with and corresponding to respective decoded symbols of a sub-set of said decoded symbols in each one of a plurality of memory banks, wherein the sub-sets of decoded symbols together comprise a set of decoded symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said decoded symbols of said set of S 10 decoded symbols; arithmetically decoding an input symbol utilising a context of said oooo o oo input symbol; simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input °ooep .°symbol, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said decoded symbols within S15 a neighbourhood of said input symbol corresponding to said input address; and generating o0 said context of said input symbol utilising said items of information output by said plurality of memory banks.
o o 0000Brief Description of the Drawings A number of preferred embodiments of the present invention will now be described 20 with reference to the drawings, in which: Fig. 1 shows a schematic diagram of an entropy encoder comprising an arithmetic encoder and context generator; Fig. 2 shows the memory store 106 of Fig. 1 in more detail; Fig. 3 illustrates how the current 'significance' states of the coefficients of a code block are arranged in the sub-tables A to P of the respective memory banks 202 of Fig. 2; Fig. 4 shows a Table, which illustrates the mapping of the 'significance' states of coefficients of a code block to the sub-tables A to P of Fig. 2; Fig. 5 shows how the relevant 'significance' states of the coefficients of the code block are mapped within the sub-table A of Fig. 2; 549122.doc Fig. 6 shows a Table, which illustrates the read addressing of the sub-tables A to P of Fig. 2; Fig. 7 shows a Table, which illustrates how the output multiplexers 206 of Fig. 2 rearrange the results from the sub-tables A to P of Fig. 2; and Fig. 8 shows a schematic diagram of an entropy decoder comprising an arithmetic decoder and context generator.
Detailed Description including Best Mode Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
*0 0 ~The principles of the preferred method described herein have general applicability to entropy coding and, in particular, to arithmetic coding and context generation.
However, for ease of explanation, the steps of the preferred method are described with too* 15 reference to an entropy encoder suitable for use with the JPEG 2000 draft standard hereinbefore mentioned. However, it is not intended that the present invention be limited to the described entropy encoder. For example, the invention may have application to an entropy decoder.
-,oFigure 1 illustrates an entropy encoder 100 suitable for use with the JPEG 2000 to 9 S' 20 draft standard hereinbefore mentioned. The entropy encoder 100 comprises an arithmetic coder 102, a context generator 104, a pixel location counter 108, and a memory store 106 for storing the 'significance' state of the coefficients of a code block at the current bitplane.
The arithmetic coder 102 takes as input the bit symbol 120 to be encoded of a coefficient, and the context 128 of that bit symbol. The arithmetic coder 102 first codes all the bit symbols of the most significant bit-plane of a code block, then all the bit symbols of the next lower bit-plane of the code block and so on to the least significant bitplane. The arithmetic coder 102 codes the bit symbols of each bit-plane of a code block in a predetermined order according to the draft JPEG 2000 standard hereinbefore 549122.doc mentioned. The order which these bit symbols are encoded is not essential to the invention and will not be described further. The context of a bit symbol of a coefficient, which bit symbol is to be coded by the arithmetic coder 102, is based on the 'significance' state of the 8 surrounding pixel coefficients in the same bit-plane of the code block.
These 8 pixel coefficients together with the pixel coefficient they surround form a 3x3 neighbourhood of coefficients.
As mentioned before, the 'significance' state of a coefficient is a binary-valued variable, which is initialised to 0 (zero), but transitions to 1 (one) when the S' coefficient's first non-zero bit-plane value is encoded.
oo• 10 Preferably, the memory store 106 stores for each pixel coefficient in the code block .o.
the current 'significance' state of the coefficient at an address corresponding to the pixel ooooo coefficient's location in the code block. Initially, the 'significance' state of all the bit symbols of a code block stored in the memory store 106 are set to zero. When a ooooo coefficient's first non-zero bit-plane value is encoded by the arithmetic coder 102, the 'significance' state of the coefficient stored in the memory store 106 is updated to 1 (one).
This is achieved by in the following manner. If the incoming bit is zero then the original 'significance' state is not changed. If the incoming bit is one then always :write it as the new 'significance' state to the memory store 106. In this way, there is no go• need for a double read/write to the memory store 106.
Alternatively, each pixel coefficient of the code block can be pre-processed and the bit-plane number at which the coefficient's 'significance' state changes is stored in the memory store 106 at an address corresponding to the pixel coefficient's location in the code block.
The context 128 of a bit symbol, which is to be coded by the arithmetic coder 102, is generated by the context generator 104. The context 128 is based on the 'significance' states of the 8 surrounding pixel coefficients, which are output 126 from the memory store 106. These eight 'significance' states in the memory store 106 are addressed by the pixel coefficient location of the bit symbol being encoded, which pixel coefficient location is supplied by the pixel counter 108. The output 126 from the memory store 106 549122.doc is fed into the context generator 104, which determines what context state 128 those eight 'significance' states belong to and feeds that context state 128 to the arithmetic coder 102.
The context 128 of a bit symbol is generated in accordance with the draft JPEG 2000 standard and is not essential to the present invention and will not be described any further.
The operation of the pixel location counter 108, memory store 106, context generator 104, and arithmetic coder 102 are controlled by a clock controller (not shown) by means of clock signals (CLK). The entropy coder 100 receives as input a symbol bit 120 to be encoded in one cycle. The memory store 106 outputs the 8 'significance' states of the surrounding coefficients in the 3x3 neighbourhood of the addressed symbol bit's 10 location in the same one cycle. In order to achieve this throughput, the memory store 106 comprises sixteen memory banks each storing a respective portion of the 'significance' states of the code block. These sixteen memory banks together constitute the total 'significance' states of the code block with no duplication of any data. The memory store oooo° S. 106 simultaneously addresses these sixteen memory banks with the pixel location of the oooo symbol bit to be encoded, which memory banks return the 'significance' states of coefficients in a 4x4 neighbourhood surrounding the addressed pixel location including the 'significance' state of the addressed pixel location. The 'significance' states of the 4x4 neighbourhood are sent to the context generator 104, which in the same clock cycle outputs the context 128 to the arithmetic coder 102, which in turn encodes the symbol bit in the same clock cycle. As will be apparent to a person skilled in the art, the context generator 104 only needs the 'significance' states of the coefficients in the 3x3 neighbourhood surrounding the bit symbol to be encoded. Thus context generator 104 can discard those 'significance' states of those pixel coefficients not required by the context generator 104.
Turning now to Fig. 2, there is shown the memory store 106 of Fig. 1 in more detail. The memory store 106 comprises sixteen memory banks 202 storing respectively tables A, B, C, D, E, F, G, H, I, J, K, L, M, N, 0, and P. The memory store 106 further comprises an address generator 204 for simultaneously addressing the sixteen memory banks 202 storing the tables A to P. The pixel location 124 is fed as the read address to 549122.doc the address generator, which contains address generator logic for simultaneously generating sixteen corresponding addresses for the sixteen memory banks 202.
In the preferred embodiment, the sixteen memory banks 202 store the current 'significance' states of the coefficients of the code block. These memory banks then supply to the output multiplexers 206 the 'significance' states of a 4x4 neighbourhood surrounding the addressed pixel location including with the 'significance' state associated with the addressed pixel location. The output multiplexers 206 re-arrange the order of these 'significance' states, which are then sent to the context generator 104.
S .The outputs of the multiplexers 206 are identified in Fig. 2 by the coordinates S 10 and respectively, which indicate the pixel locations of the 4x4 neighbourhood. The output multiplexers 206 re-arrange the order of the 'significance' states output by the sixteen memory banks 202 so that the relevant 'significance' states go to the correct outputs of the multiplexers 206. For example, the output will supply the current 'significance' state of the bit symbol to encoded; output will supply the 15 current 'significance' state of the coefficient that is one coefficient up and to the left of a. the coefficient containing the bit symbol to be encoded; output will supply the current 'significance' state of the coefficient that is one coefficient down and to the right of the coefficient containing the bit symbol to be encoded; and so on.
When a coefficient's first non-zero bit-plane value is encoded by the arithmetic coder 102, the 'significance' state of the corresponding coefficient stored in the memory store 106 is updated to 1 (one).
Preferably, this is achieved by logic circuitry in the write controller 208. The write controller 208 receives the current symbol 120 to be encoded and determines if it is a zero or one If the current symbol 120 to be encoded is a zero then the original 'significance' state stored in the sub-tables 202 is not changed. On the other hand, if the current symbol 120 to be encoded is a one then the write controller 208 will write the current symbol 120 as the new 'significance' state to the sub-tables 202. The address generator 204 receives the pixel coefficient location 124 of the current symbol 120 to be encoded for writing a change in the 'significance' state at the relevant location in the sub- 549122.doc tables. The write controller 208 writes the change in 'significance' state, once a write enable signal has been received. The write enable signal is supplied to the write controller 208 only after the eight 'significance' states are addressed by the pixel coefficient location 124 of the current symbol 120 to be encoded and output to the context generator 104. The write and read can happen simultaneously, as the read locations are different from the write location.
In an alternative embodiment, the bit-plane number at which the coefficient's 'significance' state changes is stored in the memory store 106 at an address corresponding to the pixel coefficient's location in the code block. In this alternative embodiment, the 10 sixteen memory banks 202 output the bit-plane numbers of the 'significance' states of the 4x4 neighbourhood. These bit-plane numbers are output to a logic circuit (not shown), i which also receives as input the current bit-plane presently being encoded, and the pixel location of the bit symbol of the coefficient currently being encoded. This logic circuit othen determines the 'significance' state of the coefficients of the 4x4 neighbourhood. The logic circuit determines the 'significance' state in the following manner. If the current 9* S bit-plane presently being encoded is less than or equal to the bit-plane number of a pixel location output by a memory bank, and the bit symbol at that pixel location in the current :bit-plane is being or has been encoded, then the current 'significance' state of the coefficient at that pixel location is one Otherwise, the current 'significance, state of the coefficient at that pixel location is zero Preferably, the entropy encoder 100 can handle code blocks of different sizes.
According to the draft JPEG 2000 standard hereinbefore mentioned, the code block width and height are limited to powers of two with the minimum size being 22 and the maximum size being 210. Furthermore, the code block size is restricted to width height 12. Thus the number of coefficient can vary from a minimum of 22 x2 2 coefficients to a maximum of 2 6 X2 6 coefficients. Thus each of the sixteen memory banks 202 preferably should be able to store a sub-table of 16x16 'significance' states of one bit. In the alternative embodiment, each of the memory banks 202 preferably should be able to store a sub-table of 16x 16 bit-plane numbers.
549122.doc -11- Fig. 3 illustrates how the current 'significance' states of the coefficients of a code block are arranged in the sub-tables A to P of the respective memory banks 202. The 'significance' states 300 of the coefficients of the code block are arranged in a predetermined manner in the sub-tables A to P. The 'significance' states 300 of the code block are arranged in similar fashion to that of the pixel coefficients of the code block.
Namely, the 'significance' states 300 are arranged in rows and columns corresponding to the rows and columns of the coefficients of the code block. The 'significance' states 300 are allocated to various sub-tables A to P, depending on the remainder of the row and column when divided by 4. For example, if both the row remainder and column remainder in a row and column are zero the 'significance' state is allocated to subtable A.
Turning now to Fig. 4, there is shown a Table, which illustrates the mapping of the 'significance' states of coefficients of a code block to the sub-tables A to P of Fig. 2. For example, the 'significance' state I in column 0 row 3 of the 'significance' states 300 has a column remainder of zero and a row remainder of three and thus according to the Table shown in Fig. 4 will be allocated to sub-table I.
ooo Turning now to Fig. 5 there is shown how the relevant 'significance' states of the coefficients of the code block are mapped within the sub-table A. The other 'significance' states are mapped within the other sub-table B to P in similar fashion. The 'significance' states A of the total 'significance' states 300 of the coefficients of the code block are mapped to sub-table A in the same order as they are found in the code block.
For example: 'significance' state A at pixel location of 'significance' states 300 is mapped to pixel location in sub-table A; 'significance' state A at pixel location of 'significance' states 300 is mapped to pixel location in sub-table A; 'significance' state A at pixel location of 'significance' states 300 is mapped to pixel location in sub-table A; 549122.doc -12- 'significance' state A at pixel location of 'significance' states 300 is mapped to pixel location in sub-table A; and so on.
Returning now to Fig. 2, the addressing of the 'significance' states of a 4x4 neighbourhood stored in the sixteen memory banks 202 will be explained. The address generator 204 automatically calculates sixteen addresses to fetch the 'significance' states of the 4x4 neighbourhood of the bit symbol to be encoded from the respective 16 subtables A to P. These addresses are based on the pixel location of the bit symbol to be encoded and are calculated using the following algorithm. It should be noted that the pixel location of a bit symbol is the same as the pixel location of the coefficient to which 10 the bit symbol belongs. Let the pixel location of the bit symbol in the code block be (x,y) and let q x/4, where q is a quotient r y/4 where r is a quotient s x%4 where is a remainder t y%4 where t is a remainder Turning now to Fig. 6, there is shown a Table, which shows the addresses to the sub-tables A to P. This Table shown in Fig. 6 is explained with reference to an example.
In this example, the bit symbol to be encoded has a pixel location of supplied by the pixel location counter 108. The address generator 204 calculates the following values q 0, r 0, s 2, and t 2 for the pixel location in accordance with aforementioned formulae. The address generator 204 then determines from the Table shown in Fig. 6, that the corresponding address for table A is for Table B is for Table C is and so on.
Turning now to Fig. 7, there is shown a Table, which shows how the output multiplexers 206 rearrange the results from the sub-tables A to P to the correct places in the 4x4 neighbourhood. In the example given above, the bit symbol to be encoded has a pixel location of and the address generator 204 calculates the values s 2 and t =2 which are supplied by the address generator 204 to the output multiplexers 206. The multiplexers rearrange the results from the sub-tables A to P in accordance with the Table 549122.doc shown in Fig. 7. In this example (s 2, the results from sub-table F are output on the output of the multiplexers 206, the results from sub-table G are output on output of the multiplexers 206, and so on. As mentioned above, the outputs of the multiplexers 206 are identified in Fig. 2 by the coordinates and respectively, which indicate the pixel locations of the 4x4 neighbourhood relative to the pixel centre. The output multiplexers 206 re-arrange the order of the 'significance' states output from the memory banks so that they go to the correct outputs of the multiplexers 206.
As mentioned before, the memory banks 202 supply current 'significance' states of 10 a 4x4 neighbourhood of coefficients, which coefficients include the coefficient containing the bit symbol to be encoded and the 15 surrounding coefficients. According to the draft JPEG 2000 standard mentioned above, when any of the surrounding coefficients lie outside the current code block, it is regarded as having a zero 'significance' state. In ooo.oi this case, the address generator 204 determines by logic circuitry that the current neighbouring coefficient lies outside the code block and consequently does not address 9* any sub-table for this neighbouring coefficient. The address generator 204 will however supply a zero 'significance' state to an appropriate input of the output multiplexers 206 V for this neighbouring coefficient.
9 Turning now to Fig. 8, there is shown a schematic diagram of an entropy decoder comprising an arithmetic decoder and context generator. This entropy decoder 800 in principle mimics the entropy encoder 100 of Fig. 1, in that it performs the 'reverse' of those operations of the entropy encoder 100. The entropy decoder 800 comprises an arithmetic decoder 802, context generator 804, memory store 806, and pixel counter 808.
The arithmetic decoder 802 takes as input the bit stream 820 to be decoded and the context 828 of the next decoded bit symbol. In a similar fashion to the entropy encoder 100, the entropy decoder decodes all the encoded symbols of the most significant bitplane of the code block and so on to the least significant bit-plane. The arithmetic decoder 802 decodes the encoded bit symbols of each bit-plane of a code block in a predetermined order according to the draft JPEG 2000 standard. According to this 549122.doc -14standard, the position of the next symbol to be decoded sometimes depends on the current decoded symbol. Thus the need for the feedback of the decoded symbol 830 to the pixel location counter 808. However, the order in which these symbols are decoded is not essential to the invention and will not be described further. The context 828 of the symbol 820 to be decoded by the arithmetic decoder 802 is based on the 'significance' state of the 8 surrounding pixel coefficients, which are output 826 from memory store 806. These eight 'significance' states in the memory store 806 are addressed by the pixel coefficient location of the bit symbol to be decoded, which pixel coefficient location is supplied by the pixel counter 808. The output 826 from the memory store 806 is fed to 10 the context generator 104, which determines the context state 828 those eight 'significance' states belong to and feeds that context state 128 to the arithmetic decoder 802. The context 828 of the decoded bit symbol is generated in accordance with the draft JPEG 2000 standard and is not essential to the present invention and will not be described any further.
15 Preferably, the memory store 806 stores for each pixel coefficient in the code block the current 'significance' state of the coefficient at an address corresponding to the pixel coefficient's location in the code block. Prior to decoding the bit symbols, the 'significance' state of all the bit symbols of a code block stored in the memory store 806 are set to zero.
The memory organisation structure, addressing, output multiplexers and structural details of the memory store 806 are the same as that described with reference to the preferred embodiment of the memory store 106 and will not be described further.
Moreover, the significance table stored in memory store 806 is updated in similar fashion to the preferred memory store 106. Namely, if the decoded bit is zero then the original 'significance' state is not changed. On the other hand, if the decoded bit is one then this decoded bit is written to the table for the corresponding pixel location. The alternative embodiment of the memory store 106 which stores bit-plane numbers at which the 'significance' state changes is not suitable for use in the decoder 800.
549122.doc Industrial Applicability It is apparent from the above that the embodiment(s) of the invention are applicable to the computer graphics and other related industries.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiment(s) being illustrative and not restrictive. For example, the information may be partly duplicated in the sub-tables, as long as the information in each sub-table is not identical.
In the context of this specification, the word "comprising" means "including 10 principally but not necessarily solely" or "having" or "including" and not "consisting only of'. Variations of the word comprising, such as "comprise" and "comprises" have S" corresponding meanings.
9 9 9. 9 o.
549122.doc

Claims (4)

1. Apparatus for accessing items of information in a neighbourhood of a location of a symbol specified by an input address, the apparatus comprising: a plurality of memory banks, wherein each memory bank is capable of storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols 10 of said set of symbols; and an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to said input address, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said symbols within said neighbourhood of said symbol corresponding to said input address.
2. Apparatus as claimed in claim 1, wherein the sub-sets of symbols are mutually •oao a exclusive and said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols with no duplication of any said items of information.
3. Apparatus as claimed in claims 1 or 2, wherein each said symbol is a bit symbol and said set of symbols comprises said bit symbols of a bit-plane of a code block of coefficients arranged in rows and columns.
4. Apparatus as claimed in claim 3, wherein each said item of information comprises a current significance state of a respective coefficient of the code block.
549122.doc Apparatus as claimed in claim 3, wherein each said item of information comprises a bit-plane number indicating where a significance state of a respective coefficient of the code block changes. 6. Apparatus as claimed in any one of the preceding claims, wherein said plurality is sixteen and said neighbourhood comprises 4x4 symbols surrounding and including said symbol corresponding to said input address. 7. Apparatus as claimed in any one of the preceding claims, wherein said plurality is 10 2 mx2n, and the neighbourhood comprises 2 mx 2 n symbols. 8. Apparatus as claimed in any one of the preceding claims, wherein the apparatus further comprises: .ooo•i a re-arrangement device for re-arranging the order of the output of said plurality of 15 said items of information. 9. Apparatus as claimed in any one of the preceding claims, wherein said apparatus further comprises: a write controller for writing one or more said items of information to one or more said memory banks. Apparatus as claimed in any one of the preceding claims, wherein said apparatus is able to read and write said items of information in one clock cycle. 11. Apparatus as claimed in claim 3, wherein said input address of said corresponding symbol is indicative of a row number and a column number of said coefficient to which said corresponding symbol belongs. 12. Apparatus as claimed in claim 3, wherein said coefficients comprise pixels. 549122.doc -18- 13. Apparatus as claimed in claim 3, wherein said coefficients comprise wavelet coefficients. 14. Apparatus as claimed in any one of the preceding claims 1 to 13, wherein said apparatus is configured for entropy encoding. Apparatus as claimed in any one of the preceding claims 1 to 13, wherein said apparatus is configured for entropy decoding. *fl. 16. Apparatus as claimed in claim 4, wherein said apparatus further comprises: a write controller for writing a current significance state of a respective coefficient of the code block to a corresponding said memory bank. .*oooi 17. An entropy encoder for encoding symbols, the entropy encoder comprising: a plurality of memory banks, wherein each memory bank is capable of storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; an arithmetic encoder for arithmetically encoding an input symbol utilising a context of said input symbol; an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said symbols within a neighbourhood of said input symbol corresponding to said input address; and 549122.doc -19- a context generator for generating said context of said input symbol utilising said items of information output by said plurality of memory banks. 18. An entropy encoder as claimed in claim 17, wherein the sub-sets of symbols are mutually exclusive and said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols with no duplication of any said items of information. 19. An entropy encoder as claimed in claims 17 or 18, wherein each said symbol is a bit 10 symbol and said set of symbols comprises said bit symbols of a bit-plane of a code block of coefficients arranged in rows and columns. *oo• 9* o An entropy encoder as claimed in claim 19, wherein each said item of information comprises a current significance state of a respective coefficient of the code block. An entropy encoder as claimed in claim 19, wherein each said item of information comprises a bit-plane number indicating where a significance state of a respective •coefficient of the code block changes. 22. An entropy encoder as claimed in any one of the preceding claims 17 to 21, wherein said plurality is sixteen and said neighbourhood comprises 4x4 symbols surrounding and including said input symbol corresponding to said input address. 23. An entropy encoder as claimed in any one of the preceding claims 17 to 22, wherein said plurality is 2 m x2", and the neighbourhood comprises 2ex2" symbols. 24. An entropy encoder as claimed in any one of the preceding claims 17 to 23, wherein the entropy encoder further comprises: 549122.doc a re-arrangement device for re-arranging the order of the output of said plurality of said items of information. An entropy encoder as claimed in any one of the preceding claims 17 to 24, wherein said entropy encoder further comprises: a write controller for writing one or more said items of information to one or more said memory banks. •.00 26. An entropy encoder as claimed in any one of the preceding claims 17 to 25, wherein 0000 ol 10 said entropy encoder is able to arithmetically code one said input symbol in one clock :000., cycle. e S 27. An entropy encoder as claimed in claim 19, wherein said input address of said oo oo corresponding symbol is indicative of a row number and a column number of said coefficient to which said corresponding symbol belongs. 28. An entropy encoder as claimed in any one of the preceding claims 17 to 27, wherein said plurality is sixteen and said neighbourhood comprises 4x4 symbols surrounding and So. including said input symbol corresponding to said input address, and wherein said context generator generates said context based on a sub-neighbourhood of said neighbourhood comprising 3x3 symbols surrounding and including said input symbol corresponding to said input address. 29. An entropy encoder as claimed in claim 19, wherein said coefficients comprise pixels. An entropy encoder as claimed in claim 19, wherein said coefficients comprise wavelet coefficients. 549122.doc 31. An entropy decoder for decoding symbols, the entropy decoder comprising: a plurality of memory banks, wherein each memory bank is capable of storing items of information associated with and corresponding to respective decoded symbols of a sub- set of said decoded symbols, wherein the sub-sets of decoded symbols together comprise a set of decoded symbols, and said items of information of said plurality of memory banks together constitute the whole said items of informnation associated with and corresponding to respective said decoded symbols of said set of decoded symbols; an arithmetic decoder for arithmetically decoding an input symbol utilising a Losecontext of said input symbol; S* 10 an address generator for simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said decoded symbols within a neighbourhood of said input symbol corresponding to said input address; and 00 @0 a context generator for generating said context of said input symbol utilising said items of information output by said plurality of memory banks. 32 netoydcde scamdi lim3,weentesb-eso ybl r 32. An entropy decoder as claimed in claims 31o3, wherein heh su-esai feymosae symbol is a bit symbol and said set of decoded symbols comprises said bit symbols of a bit-plane of a code block of coefficients arranged in rows and columns. 34. An entropy decoder as claimed in claim 33, wherein each said item of information comprises a current significance state of a respective coefficient of the code block. 549 122.doc -22- An entropy decoder as claimed in any one of the preceding claims 31 to 34, wherein said plurality is sixteen and said neighbourhood comprises 4x4 symbols surrounding and including said input symbol corresponding to said input address. 36. An entropy decoder as claimed in any one of the preceding claims 31 to 35, wherein said plurality is 2"x2n, and the neighbourhood comprises 2rx 2 symbols. 37. An entropy decoder as claimed in any one of the preceding claims 31 to 36, wherein 10 the entropy decoder further comprises: a re-arrangement device for re-arranging the order of the output of said plurality of said items of information. 38. An entropy decoder as claimed in any one of the preceding claims 31 to 37, wherein 15 said entropy decoder further comprises: a write controller for writing one or more said items of information to one or more said memory banks. S: 39. An entropy decoder as claimed in in any one of the preceding claims 31 to 38, wherein said entropy decoder is able to arithmetically decode one said input symbol in one clock cycle. An entropy decoder as claimed in claim 33, wherein said input address of said corresponding symbol is indicative of a row number and a column number of said coefficient to which said corresponding symbol belongs. 41. An entropy decoder as claimed in any one of the preceding claims 31 to 40, wherein said plurality is sixteen and said neighbourhood comprises 4x4 symbols surrounding and including said input symbol corresponding to said input address, and wherein said context 549122.doc 4. -23- generator generates said context based on a sub-neighbourhood of said neighbourhood comprising 3x3 symbols surrounding and including said input symbol corresponding to said input address. 42. An entropy decoder as claimed in claim 33, wherein said coefficients comprise pixels. 43. An entropy decoder as claimed in claim 33, wherein said coefficients comprise wavelet coefficients. 44. A method of accessing items of information in a neighbourhood of a location of a symbol specified by an input address, the method comprising: S "storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols in each one of a plurality of memory banks, wherein 15 the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information .0.0associated with and corresponding to respective said symbols of said set of symbols; and simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to said input address, wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said symbols within said neighbourhood of said symbol corresponding to said input address. A method as claimed in claim 44, wherein the sub-sets of symbols are mutually exclusive and said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols with no duplication of any said items of information. 46. A method of entropy encoding symbols, the method comprising: 549122.doc r -24- storing items of information associated with and corresponding to respective symbols of a sub-set of said symbols in each one of a plurality of memory banks, wherein the sub-sets of symbols together comprise a set of symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols; arithmetically encoding an input symbol utilising a context of said input symbol; simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, wherein said plurality of memory banks output a said plurality of said items of oooo information associated with and corresponding to respective said symbols within a neighbourhood of said input symbol corresponding to said input address; and generating said context of said input symbol utilising said items of information o°9* S output by said plurality of memory banks. 47. A method as claimed in claim 46, wherein the sub-sets of symbols are mutually :..•exclusive and said plurality of memory banks together constitute the whole said items of 9 information associated with and corresponding to respective said symbols of said set of symbols with no duplication of any said items of information. 9 48. A method of entropy decoding symbols, the method comprising: storing items of information associated with and corresponding to respective decoded symbols of a sub-set of said decoded symbols in each one of a plurality of memory banks, wherein the sub-sets of decoded symbols together comprise a set of decoded symbols, and said items of information of said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said decoded symbols of said set of decoded symbols; arithmetically decoding an input symbol utilising a context of said input symbol; simultaneously generating a plurality of addresses for respective said plurality of memory banks in response to one input address corresponding to said input symbol, 549122.doc wherein said plurality of memory banks output a said plurality of said items of information associated with and corresponding to respective said decoded symbols within a neighbourhood of said input symbol corresponding to said input address; and generating said context of said input symbol utilising said items of information output by said plurality of memory banks. 49. A method as claimed in claim 48, wherein the sub-sets of symbols are mutually exclusive and said plurality of memory banks together constitute the whole said items of information associated with and corresponding to respective said symbols of said set of symbols with no duplication of any said items of information. o, 50. An entropy encoder substantially as described herein with reference to the Figs. 1 to 7 of the accompanying drawings. o*o* 15 51. A method of entropy encoding, the method substantially as described herein with reference to Figs. 1 to 7 of the accompanying drawings. 52. An entropy decoder substantially as described herein with reference to the Figs. 2 to S 8 of the accompanying drawings. 53. A method of entropy decoding, the method substantially as described herein with reference to Figs. 2 to 8 of the accompanying drawings. DATED this Twenty Seventh Day of March 2001 Canon Kabushiki Kaisha Patent Attorneys for the Applicant SPRUSON&FERGUSON 549122.doc
AU31390/01A 2000-04-04 2001-03-29 Accessing items of information Ceased AU769072B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU31390/01A AU769072B2 (en) 2000-04-04 2001-03-29 Accessing items of information

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPQ6685A AUPQ668500A0 (en) 2000-04-04 2000-04-04 Accessing items of information
AUPQ6685 2000-04-04
AU31390/01A AU769072B2 (en) 2000-04-04 2001-03-29 Accessing items of information

Publications (2)

Publication Number Publication Date
AU3139001A true AU3139001A (en) 2001-10-11
AU769072B2 AU769072B2 (en) 2004-01-15

Family

ID=25621788

Family Applications (1)

Application Number Title Priority Date Filing Date
AU31390/01A Ceased AU769072B2 (en) 2000-04-04 2001-03-29 Accessing items of information

Country Status (1)

Country Link
AU (1) AU769072B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7714752B2 (en) 2001-11-22 2010-05-11 Panasonic Corporation Variable length coding method and variable length decoding method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757973A (en) * 1991-01-11 1998-05-26 Sony Corporation Compression of image data seperated into frequency component data in a two dimensional spatial frequency domain
GB2252002B (en) * 1991-01-11 1995-01-04 Sony Broadcast & Communication Compression of video signals
GB2259824B (en) * 1991-09-19 1995-01-18 Sony Broadcast & Communication Data compression

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7714752B2 (en) 2001-11-22 2010-05-11 Panasonic Corporation Variable length coding method and variable length decoding method
US7956774B2 (en) 2001-11-22 2011-06-07 Panasonic Corporation Variable length coding method and variable length decoding method
US8604947B2 (en) 2001-11-22 2013-12-10 Panasonic Corporation Variable length coding method and variable length decoding method
US8941514B2 (en) 2001-11-22 2015-01-27 Panasonic Intellectual Property Corporation Of America Image coding and decoding system using variable length coding and variable length decoding

Also Published As

Publication number Publication date
AU769072B2 (en) 2004-01-15

Similar Documents

Publication Publication Date Title
JP4782181B2 (en) Entropy decoding circuit, entropy decoding method, and entropy decoding method using pipeline method
ES2610430T3 (en) Default macroblock coding
KR101426272B1 (en) Apparatus of encoding image and apparatus of decoding image
CN102547283B (en) Device and method for dynamic video data compression
CN103581679B (en) Decode the decoder and method of run-length encoded data
EP3386199A1 (en) Lossless compression method and system appled to video hard decoding
EP2433264B1 (en) Hierarchical lossless compression
CN101243611A (en) Efficient coding and decoding of transform blocks
US20080002896A1 (en) Strategies For Lossy Compression Of Textures
Hu et al. A new lossless compression scheme based on Huffman coding scheme for image compression
JPH0969951A (en) Encoding method and decoding method
US6577251B1 (en) Accessing sub-blocks of symbols from memory
CN101192303B (en) High speed bit flat surface decoding method and circuit suitable for Jpeg2000 standard
US5966467A (en) System for compressing and decompressing binary representations of dithered images
JP4061104B2 (en) Memory access and skipping based on run / skip count by context model
CN101951524A (en) JPEG (Joint Photographic Experts Group) compression method and device of color digital image
KR102219133B1 (en) Apparatus and method for compact bit-plane data compression
AU769072B2 (en) Accessing items of information
JP4515534B2 (en) Method and apparatus for extracting pixel values
JPH11308465A (en) Encoding method for color image, encoder therefor, decoding method for color image and decoder therefor
CN100466743C (en) Method for programmable entropy decoding based on shared storage and countra-quantization
JP2010004284A (en) Image decoder, and image decoding method
KR102267215B1 (en) Embedded codec (ebc) circuitry for position dependent entropy coding of residual level data
Sheu et al. A lossless index coding algorithm and VLSI design for vector quantization
JPH08116268A (en) Information processing unit

Legal Events

Date Code Title Description
DA3 Amendments made section 104

Free format text: THE NATURE OF THE AMENDMENT IS: SUBSTITUTE PATENT REQUEST REGARDING ASSOCIATED DETAILS

FGA Letters patent sealed or granted (standard patent)