WO1997016918A2 - Image scanning compression method - Google Patents

Image scanning compression method Download PDF

Info

Publication number
WO1997016918A2
WO1997016918A2 PCT/NZ1996/000118 NZ9600118W WO9716918A2 WO 1997016918 A2 WO1997016918 A2 WO 1997016918A2 NZ 9600118 W NZ9600118 W NZ 9600118W WO 9716918 A2 WO9716918 A2 WO 9716918A2
Authority
WO
WIPO (PCT)
Prior art keywords
value
output
values
group
stream
Prior art date
Application number
PCT/NZ1996/000118
Other languages
French (fr)
Other versions
WO1997016918A3 (en
Inventor
Harold Salive
Original Assignee
Kiwisoft Programs Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kiwisoft Programs Limited filed Critical Kiwisoft Programs Limited
Priority to AU72320/96A priority Critical patent/AU7232096A/en
Publication of WO1997016918A2 publication Critical patent/WO1997016918A2/en
Publication of WO1997016918A3 publication Critical patent/WO1997016918A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Definitions

  • This invention relates to the field of data handling, data or information representing images, data compression, and more particularly to means for reducing the bulk of a file of information-carrying data while retaining the detailed information content of the data, using a compression technique.
  • Compressing electrical representations of images in order to minimise the bulk of data required to adequately represent the image has been an active area of software and hardware development in recent times, with particular reference to digitised television and providing household cable access to movies.
  • JPEG Joint motion Pictures Engineers' Group
  • Video signals have a number of requirements such as that the resulting image after transmission and/or storage in a compressed form remains pleasing to the eye, and is substantially free of objectionable defects.
  • These compression techniques generally treat the image in a two-dimensional form (both across and up and down an image) and for example the JPEG technique generally handles data in increments of 8 x 8 pixel cells.
  • compression would be an advantage in order to minimise the delay in the process while a collected image is moved out of the camera.
  • This example application is for stock and inventory control of logs being shipped from a transport base. For example, images captured in electrical form of spatial information which may be rather detailed as compared to the pitch of the sampling elements
  • pixels may be intended solely for “appreciation” by a machine. Compression of the JPEG type
  • a "word” is a unit sequence of bits of information such as but not limited to the well-known "byte” comprising 8 binary bits of information in sequence from most significant bit to least significant bit.
  • the invention provides an image compression method for accepting a stream of words (as herein defined) in a linear sequence; the words being digitized point values representing a two dimensional image of known size and encoding the digitized point values within a data processor so that an encoded compressed output is constructed, wherein the method of encoding follows a set of predetermined rules providing for assessing the value of each word in sequence so as to establish the existence, identify the type, and establish the size of a group of adjacent words as being of, or not of, a first class, the class comprising one or more groups each having a substantially orderly sequence (as herein defined) of change in value, and if the group is from the first class, then select and encode a group type from a predetermined list of group types together with a code representing the change in value, or to establish the existence of, and size ofthe group of adjacent words as being of, or not of, a second class, comprising a further group type not having a substantially orderly sequence of change of value but each word
  • the invention provides an image compression method as described above wherein the output following an initializing word value generated at the start of each stream comprises a series of word values for each of which a first part comprises a plurality of bits reserved for use in describing the type of the group, and a second part comprises a code comprised of a plurality of bits reserved for use as a descriptor of the group so described, capable when decoded of substantially characterising the word or sequence of words within the group when cumulative information obtained from previously decoded output is included.
  • the invention provides a method as described above wherein the group types available for selection in the first class includes group types capable of identifying systematic rises or falls in level for one or more specific sizes.
  • the invention provides a method as described above wherein the group types available for selection in the first class includes group types capable of identifying linear rises or falls in level for one or more specific sizes.
  • the invention provides a method as described above for taking, at an input to a processor, a representation of an electrically recorded image as at least one stream represented by a series of digitised point values, and then encoding the values within the processor so that an encoded, compressed output is constructed wherein the method of encoding involves the steps of: a. While there remain fixed-length streams of values to be compressed, process each stream; b. Send the first value in each stream as output (in unchanged form); c. While there are still enough values on the current stream for the required minimum rise or fall, check to see if the next ones are consistently rising or falling to a minimum total difference, and check to see if the steps are not too different from one another (i.e.
  • the invention provides a method as described above for representing an electrically recorded version of an image as at least one stream each represented by a series of digitised point values, and encoding the values, wherein the compressed data is capable of being subjected to an analysis procedure while remaining in its compressed form.
  • the invention provides a method for decoding a compressed version of an image encoded as described above, wherein the original information is capable of being reconstructed by a process of reading a word value, determining whether it is an unencoded value or an encoded value, and if it is an encoded value, using the predetermined set of rules in reverse to substantially reconstruct the original data.
  • the invention provides a method for decoding a compressed version of an image encoded as described above, wherein the original information is capable of being reconstructed by a process of reading a byte, determining whether it is an unencoded byte or an encoded byte, and if the latter, using the coding rules as previously described in reverse to substantially reconstruct the original data.
  • the rules for carrying out decompression comprise the following steps, where the first value is that calculated from the previous sequence (or the actual first value if at the second value): a. (LOOP:) While there remain fixed-length lines of values to be decompressed, process each line. b. At the first value for each line, place the first value obtained from the input channel in the output channel in unchanged form. c. (LOOP:) Repeat the following (step 4) until the line is complete - as determined by the output line having acquired the prescribed number of bytes. d.
  • the invention provides a package of information wherein the package represents an image which has been encoded in the manner described above.
  • the invention provides software for a computer wherein the software is capable of causing the computer to carry out an image compression method as described above.
  • the invention provides apparatus wherein the apparatus is capable of implementing an image compression method as described above.
  • the invention provides apparatus as described above, wherein the apparatus is capable of carrying out an image compression method as described above.
  • the invention provides an image compression method for taking a stream of words corresponding to a series of digitised point values representing an image; and then encoding the values within a data processor so that an encoded, compressed output is constructed wherein the number of values in the compressed output is smaller, wherein the method of encoding involves assessing the value of each word and the value of each of a group of adjacent approaching words in the stream, classifying the type and scale of the trend, and preparing an output capable of uniquely representing the value of each word, according to a predetermined set of rules.
  • the invention provides an image compression method, wherein the output following an initialising word value at the start of each stream comprises a series of word values for each of which a first part comprises a plurality of bits reserved for use as a classifier of trends, and a second part comprises a plurality of bits reserved for use as a classifier-dependent descriptor of the scale ofthe trend so classified.
  • the invention provides a method for encoding as previously described, wherein the classifier may signify that the following bytes are (a) substantially constant in value, and the descriptor indicates the number of bytes of that value, (bl) four bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (b2) three bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (b3) two bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (cl) four bytes, substantially steadily falling in value, and the descriptor indicates the magnitude ofthe fall, (c2) three bytes, substantially steadily falling in value, and the descriptor indicates the magnitude of the fall, (c3) two bytes, substantially steadily falling in value, and the descriptor indicates the magnitude of the fall, or (d) have no substantially consistent trend, and the descriptor indicates the approximate value ofthe byte.
  • the invention provides a method as described above for representing an electrically recorded version of an image as a series of streams each represented by a series of digitised point values, and encoding the values in a manner that discards redundant information so that an encoded, compressed form has been constructed, wherein the compressed data may be subjected to an analysis procedure while remaining in its compressed form.
  • the invention provides apparatus capable of taking a stream of words corresponding to a series of digitised point values representing an image; and then encoding the values within the apparatus so that an encoded, compressed output is constructed wherein the number of values in the compressed output is smaller, wherein the apparatus is capable of determining the value of each word and the value of each of a group of adjacent approaching words in the stream, classifying the values in terms of systematic trends exhibited by the group, and preparing an output capable of uniquely representing the value of each word, according to a predetermined set of rules.
  • the invention provides apparatus as described above wherein the apparatus is capable of repeatedly receiving an input comprising digitised information in the form of a series of words each representing one of a linear series of point values, holding the series of words for examination by an evaluation processor, evaluating absolute values and trends within the series of words according to a set of rules as follows: a. While there remain fixed-length streams of values to be compressed, process each stream; b. Send the first value in each stream as output (in unchanged form); c. While there are still enough values on the current stream for the required minimum rise or fall, check to see if the next one are consistently rising or falling to a minimum total difference, and the steps are not too different from one another (i.e. reasonably consistent rate of rise or fall exists); d.
  • the invention provides apparatus as described above implemented in hardware.
  • the invention provides apparatus as described above implemented in the form of a custom logic circuit.
  • the invention provides apparatus as described above implemented in the form of an at least partially programmable solid-state circuit.
  • the invention provides apparatus as described above comprising a microprocessor device such as a DSP processor chip.
  • the invention provides apparatus as described above comprising a general-purpose digital computer running software capable of performing these functions.
  • the invention provides a package of information that represents an image which has been encoded in the manner described previously in this section. DESCRIPTION OF THE INVENTION
  • Fig 1 illustrates, in block diagram form, a hardware embodiment of this invention.
  • a word comprises 8 bits - alternatively called a byte - and that the process is carried out by software within a digital computer.
  • the process can be implemented either in a specifically constructed and programmed microprocessor (such as a digital signal processor (DSP) chip), or in a circuit comprising digital logic elements. Indeed, it could be built into a CCD camera chip or, perhaps more usefully, into an A-D converter chip.
  • DSP digital signal processor
  • words of different bit sizes such as 12, 16, 32..
  • the system can also be applied to floating point variables and not just to integers.
  • the method can be considered as comprising steps to assess the value of each word in sequence as it comes up to the encoding processor so as to establish the existence, identify the type, and establish the size of a group of adjacent words as perhaps belonging to a first class which comprises a number of groups of defined types, such as rising steadily by 8 points between each word or falling by 12 points in a substantially orderly sequence. If the group is from the first class, then the processor selects and encodes a group type from the predetermined list of group types, (comprising the header) together with a code representing the change in value.
  • group types by length, and for our 8-bit words we limit length to 2, 3, or 4 words in a group.
  • a series of substantially constant values as being a second class, of some size that may be up to 31 words in length under an 8-bit word system.
  • a third class comprising a yet further group type of individual words, not in any recognisable orderly sequence and not similar in value to the immediately preceding encoded value. And finally there are those words at the beginning or at the end of a stream, not preceded or followed by another value.
  • Certain numbers used within the procedure can be empirically determined for a 256-level (eight-bit binary) word. They may be varied in order to optimise the amount of compression, depending on the particular application in use. They may be programmed into a machine as constants, they may be selected by the user for a particular task, or the machine may automatically set the selectable variable(s) during use according to real-time testing and verification of useful information being obtained.
  • Selectable variable #1 Nonsystematic data fluctuations of less than 6 are insignificant, are "noise”, and may be ignored. We refer to these as being “substantially constant”.
  • Selectable variable #2 Fluctuations by a factor of 2 or more between adjacent differences cannot be treated as being one average slope. This may be a multiplicative "constant"; a ratio, or a fixed value.
  • Selectable variable #3 Fluctuations of 8 or less in the difference between the last encoded value and the value two ahead are considered to be insigificant rises or falls.
  • selectable variable #1 we noted that at 4, it provides an average of 22% (17-27%) and the striping mentioned elsewhere is substantially absent. At 6, the average compression is down to 14%, and at 12, it is compressed to about 8% of the original data size. We use 6 in the numerical examples (sample outputs) below.
  • the output byte is 64 OR (gradient value) (e) If the byte under consideration is the first of three with a substantially consistent fall (at least selectable variable #3), the output byte is 128 OR (gradient value) (f) If the byte under consideration is the first of four with a substantially consistent fall (at least selectable variable #3), the output byte is 160 OR (gradient value)
  • Output 100 163 ( 160 OR 3) ( 160 is code for fall, 3 is (5-2), representing the average fall.)
  • This header construct complies with the general rules for such headers. Among other things, this header defines at tag lOOh the image width and at tag lOlh the image length. These can be useful when decompressing an image in order to define the point at which a line end occurs, in case a data error occurred.
  • ⁇ FF header we attach some user-specific material at tag 103h and at/after tag D2C2h; describing conditions within and about the image capture device, and defines the subject material itself; namely it identifies in context the items bearing the labels which are portrayed in the attached image.
  • Fig 1 illustrates an outline to show the principles of a hardware processor 100 capable of performing compression according to this invention.
  • 101 is a data input and 102 is a strobe input (assuming an asynchronous processor).
  • the data arrives in a stream 8 bits wide (alternatively formatted serial data in a single line) and may be stored temporarily in a FIFO (first in, first out) buffer 109 before analysis, because the shifting of data through the shift register may be of variable speed.
  • a series of shift registers 104, 104' temporarily store data within a series of cells. A total of five cells are shown here although it may be preferable to use more than 8-bit words in te encoded message and represent more classes of systematic trends in a wider header 'nibble' or part-word.
  • each register can be read by a processor section 105. This may act under control of stored microinstructions 106, or it may be fabricated (wired, lithographed, or programmed by software or by cutting links in a PLD device) so that it follows certain rules.
  • the processor emits clock pulses through the line 108, to cause the data to advance through the series of registers, then the clock pulses halt until the set of data is evaluated.
  • the processor 105 will commence processing the data by advancing 5 words of data from the input so that the first word reaches the lowest register 104". Then the processor records the value in register 104" and passes it to the output (see instruction 2 of Table 1). The processor then examines the values in the other registers to determine what action to take, in accordance with the rules in Table 1.
  • the "processor” may be logic circuits laid down within an integrated circuit or the like, which is probably the fastest option, or may be created within a "post-construction-modifiable” integrated circuit, such as a PAL or a PLD chip.
  • a digital signal processor (DSP) chip may provide a ready- made environment in which to use the procedure.
  • the entire procedure may also be implemented within a digital computer. (This may well be the slowest option, although increased flexibility is an advantage).
  • ring buffers may be used instead of shift registers, and an entire line may be read into such a buffer before processing.
  • Speed may be quite useful, as when large arrays (of the order of 1 to 4 million words) are to be compressed.
  • An existing application for which the invention can be used is an item tracking system.
  • snapshots of aggregated items lying in a certain place and at a certain time are analysed to detect and read encoded labels.
  • Automatic machine decoding of information is carried out on optically readable indicia uniquely printed upon paper labels.
  • the markings are basically similar to bar codes but are produced in a more sophisticated form as a two-dimensional matrix, including redundancy, locators, and a grey level as well as black or white.
  • a medium-resolution CCD camera is used to capture a single image of a large number such as 50-100 of items (here, tree trunks) each bearing a label.
  • the data representing one image is about 1.5 Megabytes which is not a trivial size for transmission to a remote receiving station.
  • Any useful compression system should retain the fine detail, which algorithms (such as JPEG) designed for human viewing generally are not optimised for.
  • One of our first steps is to find the position of a label by searching for the characteristic "signatures" of locator markings placed around the indicia on a label. Our searching procedure has already looked for a fall to a low (black) level, and then a rise to a high (white) level, and this information is now provided within the compressed data.
  • More pictures may be saved on a given storage device or the storage device can be smaller, or because processing and storage time is lower, power drain is reduced in proportion, or downloading can be faster, or wireless transmission requirements (power * bandwidth) can be relaxed.
  • a CCD camera of higher resolution e.g. one having about 3 times as many pixels in each axis (and retaining the same volume of data):
  • More labels may be captured in a single image, or smaller (hence cheaper) labels may be used, or data on a label may be replicated, or more information may be placed in each label .
  • VARIATIONS In other than an 8-bit word system (for example) it is easy to include other prescribed cases in the list of rules. For example if the compressed protocol assumed 12-bit words as it is easy to do if the compressed form exists during transmission but never actually requires length-matched hardware, we can devise codes to represent steadily changing curves, step functions, or the like. We could attempt to recognise the distinctive label locators during compression and give the values representing a presumed locator a particular header code which can be found easily.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A data compression procedure retains fine detail in a compressed version of an image. The procedure encodes into an output series of composite words (each having a header and a trailer) a series or stream of input data values from along a scan line in terms of classes of internal systematic trends over a small number of adjacent words, and takes no account of lines alongside the scan line being compressed. The header indicates the class of change in the incoming words; the trailer carries number, magnitude, or rate of change data. The procedure can shrink the data volume down to a quarter or less, yet still allows image analysis procedures such as label decoding to proceed using either re-expanded data (using the same rules in reverse) or data which is still in a shorthand or compressed state.

Description

Image Scanning Compression Method
TECHNICAL FIELD OF THE INVENTION
This invention relates to the field of data handling, data or information representing images, data compression, and more particularly to means for reducing the bulk of a file of information-carrying data while retaining the detailed information content of the data, using a compression technique.
BACKGROUND
Compressing electrical representations of images in order to minimise the bulk of data required to adequately represent the image has been an active area of software and hardware development in recent times, with particular reference to digitised television and providing household cable access to movies. For this there is a large family of compression and decompression techniques, of which the JPEG (Joint motion Pictures Engineers' Group) standard system is but one of many. Video signals have a number of requirements such as that the resulting image after transmission and/or storage in a compressed form remains pleasing to the eye, and is substantially free of objectionable defects. These compression techniques generally treat the image in a two-dimensional form (both across and up and down an image) and for example the JPEG technique generally handles data in increments of 8 x 8 pixel cells.
On the other hand data taken from images is sometimes not intended for visual appreciation, but for machine-vision or image analysis procedures. A particular application is the collection, onwards transmission and detailed analysis of about 1.5 Mb image files, with the intention of recovering images of labels contained within the entire image - perhaps up to 100 labels per image, and perhaps each being represented in more or often less ideal lighting, orientation, and state of preservation.
Here, compression would be an advantage in order to minimise the delay in the process while a collected image is moved out of the camera. This example application is for stock and inventory control of logs being shipped from a transport base. For example, images captured in electrical form of spatial information which may be rather detailed as compared to the pitch of the sampling elements
(pixels) may be intended solely for "appreciation" by a machine. Compression of the JPEG type
(intended mainly for images for human-eye appreciation) does result in loss of detail if used in the reading of multiple labels application. In these cases it is possible that a different approach to the problem of data compression and processing may result in a satisfactory preservation of detail while providing a significant amount of compression.
DEFINITIONS A "word" is a unit sequence of bits of information such as but not limited to the well-known "byte" comprising 8 binary bits of information in sequence from most significant bit to least significant bit.
OBJECT
It is an object of this invention to provide an improved form of data compression or at least to provide the public with a useful choice.
STATEMENT OF THE INVENTION
In a first broad aspect the invention provides an image compression method for accepting a stream of words (as herein defined) in a linear sequence; the words being digitized point values representing a two dimensional image of known size and encoding the digitized point values within a data processor so that an encoded compressed output is constructed, wherein the method of encoding follows a set of predetermined rules providing for assessing the value of each word in sequence so as to establish the existence, identify the type, and establish the size of a group of adjacent words as being of, or not of, a first class, the class comprising one or more groups each having a substantially orderly sequence (as herein defined) of change in value, and if the group is from the first class, then select and encode a group type from a predetermined list of group types together with a code representing the change in value, or to establish the existence of, and size ofthe group of adjacent words as being of, or not of, a second class, comprising a further group type not having a substantially orderly sequence of change of value but each word being similar in value, and if the group is from the second class, then encode the group type and group size, or to identify and encode each word as being of a third class, comprising a yet further group type of individual words not in orderly sequence and not similar in value to the immediately preceding encoded value, or not preceded or followed by another value.
In a related aspect the invention provides an image compression method as described above wherein the output following an initializing word value generated at the start of each stream comprises a series of word values for each of which a first part comprises a plurality of bits reserved for use in describing the type of the group, and a second part comprises a code comprised of a plurality of bits reserved for use as a descriptor of the group so described, capable when decoded of substantially characterising the word or sequence of words within the group when cumulative information obtained from previously decoded output is included.
In a related aspect the invention provides a method as described above wherein the group types available for selection in the first class includes group types capable of identifying systematic rises or falls in level for one or more specific sizes.
In a related aspect the invention provides a method as described above wherein the group types available for selection in the first class includes group types capable of identifying linear rises or falls in level for one or more specific sizes.
In a related aspect the invention provides a method as described above for taking, at an input to a processor, a representation of an electrically recorded image as at least one stream represented by a series of digitised point values, and then encoding the values within the processor so that an encoded, compressed output is constructed wherein the method of encoding involves the steps of: a. While there remain fixed-length streams of values to be compressed, process each stream; b. Send the first value in each stream as output (in unchanged form); c. While there are still enough values on the current stream for the required minimum rise or fall, check to see if the next ones are consistently rising or falling to a minimum total difference, and check to see if the steps are not too different from one another (i.e. a reasonably consistent rate of rise or fall exists); d. If a sufficient rise or fall is found, then code for output any count for identical values resetting count to zero and then check for additional values also showing an extension to the rise or fall to the limits ofthe allowed coded range; e. Code for output any rise or fall which fits within the code range with the average step size; f. If no consistent rise or fall is found, compare the value to the value of the previous output or calculated end value for a rise or fall and test if the result is close enough in magnitude to be considered as substantially the same; g. If the value is similar enough, then add 1 to the current count; h. If the value is too different, then code for output any count for identical values resetting the count to zero and code for output the different value and save the reconstructed output value as the comparison value for the next value tests on the stream; i. Repeat steps c to h until the entire stream has been coded for output, and sent; j. At the end of the stream (if the number of remaining values is too small to exhibit a trend) send those values as individuals - as per step h; 1. Repeat steps b to i for each stream; and provide an output comprising an encoded representation of the series of words.
In a related aspect the invention provides a method as described above for representing an electrically recorded version of an image as at least one stream each represented by a series of digitised point values, and encoding the values, wherein the compressed data is capable of being subjected to an analysis procedure while remaining in its compressed form.
In a second broad aspect the invention provides a method for decoding a compressed version of an image encoded as described above, wherein the original information is capable of being reconstructed by a process of reading a word value, determining whether it is an unencoded value or an encoded value, and if it is an encoded value, using the predetermined set of rules in reverse to substantially reconstruct the original data.
In a related aspect the invention provides a method for decoding a compressed version of an image encoded as described above, wherein the original information is capable of being reconstructed by a process of reading a byte, determining whether it is an unencoded byte or an encoded byte, and if the latter, using the coding rules as previously described in reverse to substantially reconstruct the original data.
In a related aspect the rules for carrying out decompression, according to this invention comprise the following steps, where the first value is that calculated from the previous sequence (or the actual first value if at the second value): a. (LOOP:) While there remain fixed-length lines of values to be decompressed, process each line. b. At the first value for each line, place the first value obtained from the input channel in the output channel in unchanged form. c. (LOOP:) Repeat the following (step 4) until the line is complete - as determined by the output line having acquired the prescribed number of bytes. d. For the next value from the input channel the header and trailer are decoded and - if header = 0 the next 2 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value. if header = 32 the next 3 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value. if header = 64 the next 4 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value. if header = 96 the next 2 bytes output are given values decrementing by (trailer) the offset from the (n-l)th value, if header = 128 the next 3 bytes output are given values decrementing by (trailer) the offset from the (n-l)th value. if header = 160 the next 4 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value, if header = 192 the next byte output is given a value equal to the trailer, * 8. if header = 224 trailer = number of bytes (max 31) that are the same, and the next number of bytes output are given values the same as the (n-1 th) byte; e. end of within - line LOOP. f. end of within - image LOOP.
In a third broad aspect the invention provides a package of information wherein the package represents an image which has been encoded in the manner described above.
In a related aspect the invention provides software for a computer wherein the software is capable of causing the computer to carry out an image compression method as described above.
In a fourth broad aspect the invention provides apparatus wherein the apparatus is capable of implementing an image compression method as described above.
In a related aspect the invention provides apparatus as described above, wherein the apparatus is capable of carrying out an image compression method as described above. In a fifth broad aspect the invention provides an image compression method for taking a stream of words corresponding to a series of digitised point values representing an image; and then encoding the values within a data processor so that an encoded, compressed output is constructed wherein the number of values in the compressed output is smaller, wherein the method of encoding involves assessing the value of each word and the value of each of a group of adjacent approaching words in the stream, classifying the type and scale of the trend, and preparing an output capable of uniquely representing the value of each word, according to a predetermined set of rules.
In a related aspect the invention provides an image compression method, wherein the output following an initialising word value at the start of each stream comprises a series of word values for each of which a first part comprises a plurality of bits reserved for use as a classifier of trends, and a second part comprises a plurality of bits reserved for use as a classifier-dependent descriptor of the scale ofthe trend so classified. In another related aspect the invention provides a method for encoding as previously described, wherein the classifier may signify that the following bytes are (a) substantially constant in value, and the descriptor indicates the number of bytes of that value, (bl) four bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (b2) three bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (b3) two bytes, substantially steadily rising in value, and the descriptor indicates the magnitude of the rise, (cl) four bytes, substantially steadily falling in value, and the descriptor indicates the magnitude ofthe fall, (c2) three bytes, substantially steadily falling in value, and the descriptor indicates the magnitude of the fall, (c3) two bytes, substantially steadily falling in value, and the descriptor indicates the magnitude of the fall, or (d) have no substantially consistent trend, and the descriptor indicates the approximate value ofthe byte.
In a related aspect the invention provides a method as described above for representing an electrically recorded version of an image as a series of streams each represented by a series of digitised point values, and encoding the values in a manner that discards redundant information so that an encoded, compressed form has been constructed, wherein the compressed data may be subjected to an analysis procedure while remaining in its compressed form.
In a sixth broad aspect the invention provides apparatus capable of taking a stream of words corresponding to a series of digitised point values representing an image; and then encoding the values within the apparatus so that an encoded, compressed output is constructed wherein the number of values in the compressed output is smaller, wherein the apparatus is capable of determining the value of each word and the value of each of a group of adjacent approaching words in the stream, classifying the values in terms of systematic trends exhibited by the group, and preparing an output capable of uniquely representing the value of each word, according to a predetermined set of rules.
In a related aspect the invention provides apparatus as described above wherein the apparatus is capable of repeatedly receiving an input comprising digitised information in the form of a series of words each representing one of a linear series of point values, holding the series of words for examination by an evaluation processor, evaluating absolute values and trends within the series of words according to a set of rules as follows: a. While there remain fixed-length streams of values to be compressed, process each stream; b. Send the first value in each stream as output (in unchanged form); c. While there are still enough values on the current stream for the required minimum rise or fall, check to see if the next one are consistently rising or falling to a minimum total difference, and the steps are not too different from one another (i.e. reasonably consistent rate of rise or fall exists); d. If a sufficient rise or fall is found, then code for output any count for identical values resetting count to zero and then check for additional values also showing an extension to the rise or fall to the limits ofthe allowed coded range; e. Code for output any rise or fall which fits within the code range with the average step size; f. If no consistent rise or call is found, compare the value to the value of the previous output or calculated end value for a rise or fall and see if they are close enough in magnitude to be considered as substantially the same; g. If the value is similar enough, then add 1 to the current count; h. If the value is too different, then code for output any count for identical values resetting the count to zero and code for output the different value and save the reconstructed output value as the comparison value for the next value tests on the stream; i. Repeat steps c to h until the entire stream has been coded for output, and sent; j. At the end ofthe stream (if an insufficient remaining values exist to demonstrate a systematic trend) send those values as individuals - as per step h; k. Repeat steps b to j for each stream; and providing an output comprising a coded representation ofthe series of words, so that the series of words provided at the input may be reconstructed using the set of rules in reverse.
In a related aspect the invention provides apparatus as described above implemented in hardware.
In a related aspect the invention provides apparatus as described above implemented in the form of a custom logic circuit.
In a related aspect the invention provides apparatus as described above implemented in the form of an at least partially programmable solid-state circuit.
In a related aspect the invention provides apparatus as described above comprising a microprocessor device such as a DSP processor chip. In a related aspect the invention provides apparatus as described above comprising a general-purpose digital computer running software capable of performing these functions.
In a seventh broad aspect the invention provides a package of information that represents an image which has been encoded in the manner described previously in this section. DESCRIPTION OF THE INVENTION
The following is a description of a preferred form of the invention, given by way of example only, with reference to the accompanying diagrams.
DRAWINGS
Fig 1 : illustrates, in block diagram form, a hardware embodiment of this invention.
PREFERRED EMBODIMENT.
Particular applications of image capture for machine vision or machine analysis purposes permit a different approach to the problem of data compression and processing, resulting in a satisfactory preservation of detail while providing a significant amount of compression. Using the preferred tolerances, the resulting image, after decompression and display, looks somewhat "streaky" because small constant differences are allowed between adjacent lines (between which no check is made) but the fine detail is retained spatially - although at a lower number of grey levels.
In the following explanation we assume that a word comprises 8 bits - alternatively called a byte - and that the process is carried out by software within a digital computer. It will be readily apparent that the process can be implemented either in a specifically constructed and programmed microprocessor (such as a digital signal processor (DSP) chip), or in a circuit comprising digital logic elements. Indeed, it could be built into a CCD camera chip or, perhaps more usefully, into an A-D converter chip. It will of course be evident that words of different bit sizes (such as 12, 16, 32..) can be used, especially during transmission where hardware limitations on word size do not apply. The system can also be applied to floating point variables and not just to integers. Our detailed examples use "pseudocode" or English-language steps rather than comprise reproductions in an actual computer language taken from a working program. We assume that the data actually represents scans across an image, and that there is a definite number of lines each having a certain number of values (i.e. pixels). Of course, the procedure would work equally well for streams of data representing a spiralling scan, arcuate scans, or the like, as long as the course of the scanning track is known and reproducible, because this method is not written to take account of information in neighbouring lines.
The method can be considered as comprising steps to assess the value of each word in sequence as it comes up to the encoding processor so as to establish the existence, identify the type, and establish the size of a group of adjacent words as perhaps belonging to a first class which comprises a number of groups of defined types, such as rising steadily by 8 points between each word or falling by 12 points in a substantially orderly sequence. If the group is from the first class, then the processor selects and encodes a group type from the predetermined list of group types, (comprising the header) together with a code representing the change in value. We also define group types by length, and for our 8-bit words we limit length to 2, 3, or 4 words in a group. For purposes of explanation we regard a series of substantially constant values as being a second class, of some size that may be up to 31 words in length under an 8-bit word system. Also for purposes of explanation we have a third class, comprising a yet further group type of individual words, not in any recognisable orderly sequence and not similar in value to the immediately preceding encoded value. And finally there are those words at the beginning or at the end of a stream, not preceded or followed by another value.
IΔBLt L
Rules for carrying out compression, according to this invention.
1. While there remain fixed-length lines of values to be compressed, process each line. 2. Send the first value in each line as output (in unchanged form).
3. While there are still enough values on the current line for the required minimum rise or fall, check to see if the next ones are consistently rising or falling in a systematic way to at least a minimum total difference, (i.e. a reasonably consistent rate of rise or fall exists).
4. If a sufficient rise or fall is found, then code for output any count for identical values resetting count to zero and then check for additional values also showing an extension to the rise or fall to the limits ofthe allowed coded range.
5. Code for output any rise or fall within the code range with the average step size.
6. If no consistent rise or call is found, compare the value to the value of the previous output or calculated end value for a rise or fall and see if they are close enough in magnitude to be considered as substantially the same.
7. If the value is similar enough, then add 1 to the current count.
8. If the value is too different, then code for output any count for identical values resetting the count to zero and code for output the different value and save the reconstructed output value as the comparison value for the next value tests on the line. 9. Repeat steps 3 to 8 until the entire line has been coded for output, and sent.
10. Repeat steps 2 to 9 for each line. 11. At the end of the line (if too few remaining values for another slope assessment exist) send those values as individual items.
SELECTABLE VARIABLES Certain numbers used within the procedure can be empirically determined for a 256-level (eight-bit binary) word. They may be varied in order to optimise the amount of compression, depending on the particular application in use. They may be programmed into a machine as constants, they may be selected by the user for a particular task, or the machine may automatically set the selectable variable(s) during use according to real-time testing and verification of useful information being obtained.
Selectable variable #1 : Nonsystematic data fluctuations of less than 6 are insignificant, are "noise", and may be ignored. We refer to these as being "substantially constant".
Selectable variable #2: Fluctuations by a factor of 2 or more between adjacent differences cannot be treated as being one average slope. This may be a multiplicative "constant"; a ratio, or a fixed value. Selectable variable #3: Fluctuations of 8 or less in the difference between the last encoded value and the value two ahead are considered to be insigificant rises or falls.
During tests on selectable variable #1 we noted that at 4, it provides an average of 22% (17-27%) and the striping mentioned elsewhere is substantially absent. At 6, the average compression is down to 14%, and at 12, it is compressed to about 8% of the original data size. We use 6 in the numerical examples (sample outputs) below.
IΔELE
Our preferred encoding rules, assuming 8-bit bytes:
(a) If the byte under consideration is the first of a line it is simply passed on unencoded.
(b) If the byte under consideration is the first of a set that is substantially the same (within a tolerance), the output byte is 224 OR (no. bytes in the set.
(c) If the byte under consideration is the first of three with a substantially consistent rise (at least equal to selectable variable #3), the output byte is 32 OR (gradient value)
(d) If the byte under consideration is the first of four with a substantially consistent rise (at least selectable variable #3), the output byte is 64 OR (gradient value) (e) If the byte under consideration is the first of three with a substantially consistent fall (at least selectable variable #3), the output byte is 128 OR (gradient value) (f) If the byte under consideration is the first of four with a substantially consistent fall (at least selectable variable #3), the output byte is 160 OR (gradient value)
(g) If the byte under consideration is not consistent with the following values, the output byte is 192 OR (actual value divided by 8; right shifted three times.) (h) If the byte under consideration is the first of two with a substantially consistent rise (at least selectable variable #3), the output byte is 0 OR (gradient value)
(i) If the byte under consideration is the first of two with a substantially consistent fall (at least selectable variable #3), the output byte is 96 OR (gradient value)
Under this system the number of bytes in a group that has been compressed is always included in the compressed information. All 8 options for a 3-bit header have been used. (Of course, a more than 8- bit word can allow more freedom in terms of the number of separately classifiable situations). We use as the starting value of a sequence that calculated value that results from the ramp as detected, rather than the actual value, so that errors do not accumulate. Applying this set of rules to some example series of numbers would provide encoded forms similar to these following. (Inputs are shown in decimal form; coded outputs are shown in decimal and in a 3-bit binary (3 MSBs) code, OR'd with a 5-bit value form). We assume that the string of input data is the complete line - in practice it may be many thousand numbers long.
SAMPLE OUTPUTS (wherein the end ofthe example is assumed to be the end of a line). Input (noise; no average drift) 100 105 95 103 9799 (Class 2 (see claims)) Output 100 228 (224 OR 5) (224 = code for constancy; 5 = no. points - 1 )
Input (noise not shown; slope = rise) 100 105 110 115 120 (Class 1) Output 100 67 (64 OR 3) (64 is the code for a rise; the 3 is (rise- 1 )) Input (average slope changes) 100 105 110 115 120 125 135 145 155 165 Output 100 67 71 212
Input (noise not shown; slope = fall) 100 95 90 85 80 (Class 1 )
Output 100 163 ( 160 OR 3) ( 160 is code for fall, 3 is (5-2), representing the average fall.)
Input (fine detailed variation implies useful data) 100 130 80 128 105 (5 values belonging to Class 3) Output 100
208 (192 OR [130 right-shifted 3 = 16]) (192 = code of Class 3.) 202 (192 OR [80 right-shifted 3 = 10]) 208 (192 OR [128 right-shifted 3 = 16]) 205 (192 OR [105 right shifted 3 = 13])
Particularly with the last example, it will be evident that some amplitude or level resolution of detail in the reconstructed output is lost. This is not important in the application we are now using. The loss of resolution is similar to the level of noise.
THE "TIFF" FORMAT
We prefer to transmit our encoded information, carrying our compressed image information as files in the known "ΗFF" format. The particular header construct used at present is attached as Table 3. This construct complies with the general rules for such headers. Among other things, this header defines at tag lOOh the image width and at tag lOlh the image length. These can be useful when decompressing an image in order to define the point at which a line end occurs, in case a data error occurred.
Note that in the example ΗFF header we attach some user-specific material at tag 103h and at/after tag D2C2h; describing conditions within and about the image capture device, and defines the subject material itself; namely it identifies in context the items bearing the labels which are portrayed in the attached image.
TABLE 3.
[IFD:1 • 0x0008, 15 antriaa] Tag Description Type Count Value
FEh NewSubfileType LONG 1 0x0000 10Oh ImageWidth SHORT 1 01536 0x0600 lOlh ImageLength SHORT 1 01024 0x0400 102h BitsPerSample SHORT 1 OOOOβ 0x0008 103h Compression SHORT 1 Kiwisoft Compression 106h Photometriclnterpretation SHORT 1 BlacklsZero llih StripOffsets LONG 1 0000000817 0x00000331 116h RowsPerStrip SHORT 1 01024 0x0400 117h StripByteCounts LONG 1 0000000000 0x00000000 128h ResolutionUnit SHORT 1 No absolute unit 13lh Software ASCII 69 Capture V3.20 132h DateTime ASCII 20 1996:09:24 12:36:05 lOFh Make ASCII 32 KODAK
11Oh Model ASCII 32 DCS420A FILE VERSION 3
D2C2h Kiwisoft-Private-IFD Type? 266
[Private IPD:1 • 0x00c2, 22 entriea]
Tag Description Type Count Value
ih Backpack ID ASCII 12 03
2h Shutter timing LONG 1 0000000114 0x00000072
3h Backpack Temp LONG 1 0000000237 OxOOOOOOed
4h FStop ASCII 16 F4
5h ISO ASCII 16 400
6h Shutter Speed ASCII 16 250
7h Camera Serial Number ASCII 32 420-9849
8h EEPROM Date ASCII 32 071395
9h CCD Defects LONG 1 0000000000 0x00000000
Ah IR Flash usage LONG 1 0000000001 0X00000001
Bh Flash Battery state LONG 1 0000000000 0x00000000
Ch Backpack battery voltage LONG 1 0000001205 0x000004b5
Dh Lot Number ASCII 8 92Z
Eh Deck/Hold LONG 1 D
Fh Cradle Side Number LONG 1 0000000001 0x00000001 lOh Voyage Code ASCII β llh Hatch Number LONG 1 2
12h LCD Shutter Temp LONG 1 0000000308 0x00000134
13h Spare 1 ASCII 32
14h Spare 2 ASCII 32
15h Spare 3 LONG 1 0000000000 0x00000000
16h Spare 4 LONG 1 0000000000 0x00000000
TABLE4.
Rules for carrying out decompression, according to this invention.
1. While there remain fixed-length lines of values to be decompressed, process each line.
2. At the first value for each line, place the first value obtained from the input channel in the output channel in unchanged form. 3. (LOOP:) Repeat the following (step 4) until the line is complete - as determined by the output line having acquired the prescribed number of bytes.
4. For the next value from the input channel the header and trailer are decoded and - if header = 0 the next 2 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value. if header = 32 the next 3 bytes output are given values incrementing by (trailer) the offset from the (n- l)th value. if header = 64 the next 4 bytes output are given values incrementing by (trailer) the offset from the (n- l)th value. if header = 96 the next 2 bytes output are given values decrementing by (trailer) the offset from the (n-l)th value. if header = 128 the next 3 bytes output are given values decrementing by (trailer) the offset from the (n-l)th value. if header = 160 the next 4 bytes output are given values incrementing by (trailer) the offset from the (n-l)th value. if header = 192 the next byte output is given a value equal to the trailer, * 8. if header = 224 trailer = number of bytes (max 31) that are the same, and the next number of bytes output are given values the same as the (n-lth) byte;
5. end of LOOP.
Alternatively, we can apply our image analysis programs to the image data while still in its compressed form and thereby save on time and on memory requirements and array size limitations within the image analysing computer. For these reasons, we have found that in a real-time environment it is an advantage to process the compressed version, looking first for the characteristic "signatures" ofthe locator blocks on our specifically designed labels.
A HARDWARE EMBODIMENT
Fig 1 illustrates an outline to show the principles of a hardware processor 100 capable of performing compression according to this invention. 101 is a data input and 102 is a strobe input (assuming an asynchronous processor). The data arrives in a stream 8 bits wide (alternatively formatted serial data in a single line) and may be stored temporarily in a FIFO (first in, first out) buffer 109 before analysis, because the shifting of data through the shift register may be of variable speed. A series of shift registers 104, 104' temporarily store data within a series of cells. A total of five cells are shown here although it may be preferable to use more than 8-bit words in te encoded message and represent more classes of systematic trends in a wider header 'nibble' or part-word. The data is lost from the lowest register when new data is read in from the input. By then, it will have been retained and transferred in some encoded way to the output 103. The contents of each register can be read by a processor section 105. This may act under control of stored microinstructions 106, or it may be fabricated (wired, lithographed, or programmed by software or by cutting links in a PLD device) so that it follows certain rules. The processor emits clock pulses through the line 108, to cause the data to advance through the series of registers, then the clock pulses halt until the set of data is evaluated. In use, the processor 105 will commence processing the data by advancing 5 words of data from the input so that the first word reaches the lowest register 104". Then the processor records the value in register 104" and passes it to the output (see instruction 2 of Table 1). The processor then examines the values in the other registers to determine what action to take, in accordance with the rules in Table 1.
The "processor" may be logic circuits laid down within an integrated circuit or the like, which is probably the fastest option, or may be created within a "post-construction-modifiable" integrated circuit, such as a PAL or a PLD chip. A digital signal processor (DSP) chip may provide a ready- made environment in which to use the procedure. As will be evident to a person skilled in the art, the entire procedure may also be implemented within a digital computer. (This may well be the slowest option, although increased flexibility is an advantage). Here, ring buffers may be used instead of shift registers, and an entire line may be read into such a buffer before processing. Speed may be quite useful, as when large arrays (of the order of 1 to 4 million words) are to be compressed. Naturally, applying the rules in reverse to a compressed set of data will result in recovery of the original data, subject to an uncertainty of about 6 to 10 units in 256 because (see constant 1) we chose to ignore fluctuations which are smaller than that. We have observed that if a recovered image is printed out, large blank areas tend to exhibit streaking or varying intensity between adjacent lines, probably because the system settles on a calculated value when entering the blank area, which if noise is present may not be a true average of the blank area. While the algorithm could be improved for example by looking further ahead for a better average, for our purposes this is not a significant drawback.
APPLICATION EXAMPLE
An existing application for which the invention can be used is an item tracking system. In this system snapshots of aggregated items lying in a certain place and at a certain time are analysed to detect and read encoded labels. Automatic machine decoding of information is carried out on optically readable indicia uniquely printed upon paper labels. The markings are basically similar to bar codes but are produced in a more sophisticated form as a two-dimensional matrix, including redundancy, locators, and a grey level as well as black or white.
A medium-resolution CCD camera is used to capture a single image of a large number such as 50-100 of items (here, tree trunks) each bearing a label. The data representing one image is about 1.5 Megabytes which is not a trivial size for transmission to a remote receiving station. Any useful compression system should retain the fine detail, which algorithms (such as JPEG) designed for human viewing generally are not optimised for. We tested an algorithm using the rules of Table 1 on an image of logs and found that a reconstructed image after decompression, using the rules in reverse, provided a satisfactory outcome.
Because we use a machine decoding procedure on the image data, it is not difficult to re-write ti e decoding procedure to operate on the compressed data itself, rather than on decompressed and reconstructed data. One of our first steps is to find the position of a label by searching for the characteristic "signatures" of locator markings placed around the indicia on a label. Our searching procedure has already looked for a fall to a low (black) level, and then a rise to a high (white) level, and this information is now provided within the compressed data.
ADVANTAGES
The performance ofthe prototype processor (implemented in software) was evaluated and found to be advantageous over previous compression techniques. Fine structure was retained in a reconstructed image, even when the linear structures of the label were imaged at a slant. (JPEG methods produced large artefacts here). Corners and bends were not "filled in". A JPEG compression of a similar image results in a substantial loss of detail and corner filling-in.
In the application described above, compression of data files down to about 0.25 to 0.1 of their original size may be exploited in a number of ways, such as:
1. Retaining a camera of similar resolution (and reducing the data bulk):
More pictures may be saved on a given storage device or the storage device can be smaller, or because processing and storage time is lower, power drain is reduced in proportion, or downloading can be faster, or wireless transmission requirements (power * bandwidth) can be relaxed. 2. Using a CCD camera of higher resolution (e.g. one having about 3 times as many pixels in each axis (and retaining the same volume of data):
More labels may be captured in a single image, or smaller (hence cheaper) labels may be used, or data on a label may be replicated, or more information may be placed in each label .
3. In either case, the data has now been converted into a form which data analysis software can handle more quickly and easily as a result ofthe reduction in bulk. That is, the act of file reading and the act of structure recognition are made faster because the identifying features have already been emphasised. In a commercial implementation, a balance of various of these advantages may be realised. Optimisation may be based on economic issues. For example label dimensions may be the most important factor to consider and minimise when the quantity of labelled items becomes large.
VARIATIONS In other than an 8-bit word system (for example) it is easy to include other prescribed cases in the list of rules. For example if the compressed protocol assumed 12-bit words as it is easy to do if the compressed form exists during transmission but never actually requires length-matched hardware, we can devise codes to represent steadily changing curves, step functions, or the like. We could attempt to recognise the distinctive label locators during compression and give the values representing a presumed locator a particular header code which can be found easily.
Finally, it will be appreciated that various alterations and modifications may be made to the foregoing without departing from the scope of this invention as set forth in the attached claims.

Claims

Claims:
1. An image compression method for accepting a stream of words (as herein defined) in a linear sequence; the words being digitized point values representing a two dimensional image of known size and encoding the digitized point values within a data processor so that an encoded compressed output is constructed, characterised in that the method of encoding follows a set of predetermined rules providing for the assessing the value of each word in sequence so as to establish the existence, identify the type, and establish the size of a group of adjacent words as being of, or not of, a first class, the class comprising one or more groups each having a substantially orderly sequence (as herein defined) of change in value, and if the group is from the first class, then to select and encode a group type from a predetermined list of group types together with a code representing the change in value, or if not of the first class, to establish the existence of, and size of the group of adjacent words as being of, or not of, a second class, comprising a further group type not having a substantially orderly sequence of change of value but each word being similar in value, and if the group is from the second class, then encode the group type and group size, or if not from the first or the second class to identify and encode each word as being of a third class, comprising a yet further group type of individual words not in orderly sequence and not similar in value to the immediately preceding encoded value, or else not preceded or followed by another value.
2. An image compression method as claimed in claim 1 characterised in that the output following an initializing word value generated at the start of each stream comprises a series of word values for each of which a first part comprises a plurality of bits reserved for use in describing the type of the group, and a second part comprises a code comprised of a plurality of bits reserved for use as a descriptor of the group so described, capable when decoded of substantially characterising the word or sequence of words within the group when cumulative information obtained from previously decoded output is included.
3. A method as claimed in claim 2 characterised in that the group types available for selection in the first class includes group types capable of identifying systematic rises or falls in level for one or more specific sizes.
4. A method as claimed in claim 3 characterised in that the group types available for selection in the first class includes group types capable of identifying linear rises or falls in level for one or more specific sizes.
5. A method as claimed in claim 2 for taking, at an input to a processor, a representation of an electrically recorded image as at least one stream represented by a series of digitised point values, and then encoding the values within the processor so that an encoded, compressed output is constructed characterised in that the method of encoding involves the steps of: a. While there remain fixed-length streams of values to be compressed, process each stream; b. Send the first value in each stream as output (in unchanged form); c. While there are still enough values on the current stream for the required minimum rise or fall, check to see if the next ones are consistently rising or falling to a minimum total difference, and check to see if the steps are not too different from one another (i.e. a reasonably consistent rate of rise or fall exists); d. If a sufficient rise or fall is found, then code for output any count for identical values resetting count to zero and then check for additional values also showing an extension to the rise or fall to the limits ofthe allowed coded range; e. Code for output any rise or fall which fits within the code range with the average step size; f. If no consistent rise or fall is found, compare the value to the value of the previous output or calculated end value for a rise or fall and test if the result is close enough in magnitude to be considered as substantially the same; g. If the value is similar enough, then add 1 to the current count; h. If the value is too different, then code for output any count for identical values resetting the count to zero and code for output the different value and save the reconstructed output value as the comparison value for the next value tests on the stream; i. Repeat steps c to h until the entire stream has been coded for output, and sent; j. At the end of the stream (if the number of remaining values is too small to exhibit a trend) send those values as individuals - as per step h;
1. Repeat steps b to i for each stream; and provide an output comprising an encoded representation of the series of words .
6. A method as claimed in claim 1 for representing an electrically recorded version of an image as at least one stream each represented by a series of digitised point values, and encoding the values, characterised in that the compressed data is capable of being subjected to an analysis procedure while remaining in its compressed form.
7. A method for decoding a compressed version of an image encoded as claimed in claim 2, characterised in that the original information is capable of being substantially reconstructed by a process of reading a word value, determining whether it is an unencoded value or an encoded value, and if it is an encoded value, using the predetermined set of rules in reverse to substantially reconstruct the original data.
8. A package of information characterised in that it represents an image which has been encoded in the manner described in claim 1.
9. Software for a computer characterised in that the software is capable of causing the computer to carry out an image compression method as claimed in claim 1.
10. Apparatus characterised in that the apparatus is capable of implementing an image compression method as claimed in claim 1.
11. Apparatus as claimed in claim 10, characterised in that the apparatus is capable of carrying out an image compression method as claimed in claim 5.
PCT/NZ1996/000118 1995-10-20 1996-10-21 Image scanning compression method WO1997016918A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU72320/96A AU7232096A (en) 1995-10-20 1996-10-21 Image scanning compression method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NZ28030795 1995-10-20
NZ280307 1995-10-20

Publications (2)

Publication Number Publication Date
WO1997016918A2 true WO1997016918A2 (en) 1997-05-09
WO1997016918A3 WO1997016918A3 (en) 1997-07-31

Family

ID=19925516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/NZ1996/000118 WO1997016918A2 (en) 1995-10-20 1996-10-21 Image scanning compression method

Country Status (2)

Country Link
AU (1) AU7232096A (en)
WO (1) WO1997016918A2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4103287A (en) * 1973-12-17 1978-07-25 Bell Telephone Laboratories, Incorporated Variable length codes for high quality image encoding
US4225885A (en) * 1977-02-12 1980-09-30 U.S. Philips Corporation Method and apparatus for adaptive transform coding of picture signals
US4325085A (en) * 1980-06-09 1982-04-13 Digital Communications Corporation Method and apparatus for adaptive facsimile compression using a two dimensional maximum likelihood predictor
US4590606A (en) * 1982-12-13 1986-05-20 International Business Machines Corporation Multi-function image processing system
US4626829A (en) * 1985-08-19 1986-12-02 Intelligent Storage Inc. Data compression using run length encoding and statistical encoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4103287A (en) * 1973-12-17 1978-07-25 Bell Telephone Laboratories, Incorporated Variable length codes for high quality image encoding
US4225885A (en) * 1977-02-12 1980-09-30 U.S. Philips Corporation Method and apparatus for adaptive transform coding of picture signals
US4325085A (en) * 1980-06-09 1982-04-13 Digital Communications Corporation Method and apparatus for adaptive facsimile compression using a two dimensional maximum likelihood predictor
US4590606A (en) * 1982-12-13 1986-05-20 International Business Machines Corporation Multi-function image processing system
US4626829A (en) * 1985-08-19 1986-12-02 Intelligent Storage Inc. Data compression using run length encoding and statistical encoding

Also Published As

Publication number Publication date
WO1997016918A3 (en) 1997-07-31
AU7232096A (en) 1997-05-22

Similar Documents

Publication Publication Date Title
US6411229B2 (en) Variable length decoder
US5463701A (en) System and method for pattern-matching with error control for image and video compression
KR950002671B1 (en) Image data processing apparatus
US5583657A (en) Method and apparatus for scanning image data
US5177622A (en) Method and apparatus for detecting run length of two successive pixels and subjecting run length to universal coding
CN103918272A (en) Data encoding and decoding
JP2003505991A (en) Video compression method using wavelet
US5883981A (en) Lattice vector transform coding method for image and video compression
US6363176B1 (en) Picture data decompression apparatus
KR900007191A (en) High efficiency video signal coding device
Sayood et al. A differential lossless image compression scheme
WO1997016918A2 (en) Image scanning compression method
US5055919A (en) Apparatus for image data transposition and compression/decompression
KR100579417B1 (en) High speed image compression apparatus
US6339659B1 (en) Fractal coding/decoding of picture data using memory capacity information
Sayood Data Compression.
US20120106861A1 (en) Image compression method
US5940542A (en) Encoding and decoding apparatus and method for analog and digital signals
US5903675A (en) System and method for compressing data using a dynamically changing compression window
JPS6118387B2 (en)
KR930003201B1 (en) Bit image data compressing method and apparatus
JPH0936749A (en) Coding decoding device and coding method used for it
JPH06245200A (en) Method and device for scanning two-dimensional data by energy distribution
JPH05316355A (en) Picture data coding and decoding device
JP3123797B2 (en) Coding device and decoding device for predictive coding method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG

AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase