GB2309613A - Variable-length coding and decoding digital data - Google Patents

Variable-length coding and decoding digital data Download PDF

Info

Publication number
GB2309613A
GB2309613A GB9701440A GB9701440A GB2309613A GB 2309613 A GB2309613 A GB 2309613A GB 9701440 A GB9701440 A GB 9701440A GB 9701440 A GB9701440 A GB 9701440A GB 2309613 A GB2309613 A GB 2309613A
Authority
GB
United Kingdom
Prior art keywords
data
coding
selecting
scanning
symbols
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
GB9701440A
Other versions
GB2309613B (en
GB9701440D0 (en
Inventor
Jechang Jeong
Byeungwoo Jeon
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of GB9701440D0 publication Critical patent/GB9701440D0/en
Publication of GB2309613A publication Critical patent/GB2309613A/en
Application granted granted Critical
Publication of GB2309613B publication Critical patent/GB2309613B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A system for coding and decoding digital data divided into segments codes the segment data into symbols according to various scanning patterns, accumulates the various lengths of variable-length-coded data (ACCM 1 -ACCM N ), selects a scanning pattern corresponding to a minimum accumulated length (52), transmits or stores the coded data according to the selected scanning pattern, and scans the transmitted or retrieved data according to the same scanning pattern as applied to the coding process, thereby decoding the scanned data. As a result, the efficiency of data compression can be improved by means of utilising an optimised scanning pattern for coding and decoding the segment data.

Description

A SYSTEM, METHOD AND APPARATUS FOR VARIABLE-LENGTH CODING AND VARIABLE-LENGTH-DECODING DIGITAL DATA The present invention relates to a system, method and apparatus for coding and decoding digital data, and more particularly, though not exclusively, to a coding and decoding system for coding the digital data of a predetermined size using an optimised scanning pattern selected among various scanning patterns and decoding the coded data, thereby further improving a compression of stored or transmitted data.
Recently, methods for coding video and audio signals into digital data to be transmitted or stored in a storing unit, and decoding the coded digital data so as to reproduce the audio/video signals, have been used in systems for transmitting and receiving video and audio signals. However, there is needed a technique for compressing further the quantity of transmission data so as to increase the transmission efficiency of data in such a coding and decoding system. Examples of methods for coding transmitted or stored data include a transformation coding method, a Differential Pulse Code Modulation (DPCM) method, a vector quantization method and a variablelength-coding method. The coding methods compress a total quantity of data, by removing redundant data which are included in the transmitted or stored digital data.
The video data of each frame is divided into a segment of a predetermined size and data-processed in a coding and decoding system for storing, transmitting and receiving the video signal. Each segment data or differential data between segment data is orthogonaltrans formed, so that the video data is transformed into transformation coefficients in the frequency domain.
Known segment data transformation methods include a Discrete Cosine Transformation (DCT), a Walsh-Hadamard Transform (WHT), a Discrete Fourier Transform (DFT) and a Discrete Sine Transform (DST), among others. The transformation coefficients obtained by such transformation methods are properly coded according to the characteristic of coefficient data, so that compression efficiency is increased. Since human visual perception is more sensitive to the low frequencies than to high frequencies, high frequency data is reduced by dataprocessing. Accordingly, the quantity of the coded data can be decreased.
It is a first aim of preferred embodiments of the present invention to provide a coding system which adopts an optimised scanning pattern in accordance with data distribution characteristics of each segment to code the segment data.
It is a second aim of preferred embodiments of the present invention to provide a decoding system which decodes segment data according to the same scanning pattern selected in the process of coding each segment data.
According to the present invention in a first aspect, there is provided a coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the quantized segment data according to a plurality of scanning patterns, and transforming the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; coding said symbols; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as one of transmission data and storage data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of step for accumulating the lengths of coded data.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
Suitably, a series of processes for coding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
According to the present invention in a second aspect, there is provided a coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the quantized segment data according to a plurality of scanning patterns, and coding the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; separately accumulating said symbols according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols obtained at said accumulating step; and selecting as one of transmission data and storage data, the symbol corresponding to the scanning pattern selected at said selecting step.
Suitably, said coding step is a run-level coding step.
Suitably, said quantized segment data represent image segments which are block-wise divisions of predetermined size of an image.
Suitably, said quantized segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of step for accumulating the lengths of coded data.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
Suitably, a series of processes for coding according to a plurality of scanning patterns are separately preformed for a plurality of segment data.
Suitably, the coding method further includes a decoding method comprising the steps of: inputting scanning pattern data; inputting the coded data; decoding said input coded data into symbols; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding said symbols at said decoding step according to said scan address, thereby transforming the symbols into predetermined coefficients.
According to the present invention in a third aspect, there is provided a coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the segment data according to a plurality of scanning patterns, and transforming the scanned data to symbols in accordance with each of the scanning patterns; coding respective symbols transformed according to said plurality of scanning patterns; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as one of transmission data and storage data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step, wherein said segment data represent image segments which are block-wise divisions of predetermined size of an image.
Suitably, said coding step is a run-level-coding step.
Suitably, said coding step is a variable-lengthcoding step.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of variable-length-coded data, includes a substep for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of the step for accumulating the lengths of coded data.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of variable-length-coded data, includes a substep for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is variablelength-coded at said variable-length-coding step.
Suitably, a series of processes for variable-lengthcoding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
Suitably, the coding method further includes a decoding method comprising the steps of: inputting scanning pattern data; inputting said coded symbols as variable-length-coded data; variable-length-decoding said input variable-lengthcoded data to produce variable-length-decoded symbols; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding variable-length-decoded symbols produced in said variable-length-decoding step according to said scan address, thereby transforming the variable-length-decoded symbols into predetermined coefficients.
According to the present invention in a fourth aspect, there is provided a coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the segment data according to a plurality of scanning patterns, and transforming the scanned data to symbols in accordance with each of the scanning patterns; coding respective symbols transformed according to said plurality of scanning patterns; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as transmission data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step, wherein said segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, said coding step is a run-level-coding step.
Suitably, said coding step is a variable-lengthcoding step.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of the step for accumulating the lengths of coded data.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is variable-length-coded data at said variable-length-coding step.
Suitably, a series of processes for variable-lengthcoding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
Suitably, the coding method further includes a decoding method comprising the steps of: inputting scanning pattern data; inputting variable-length-coded data obtained in the variable-length-coding step; variable-length-coding said input variable-lengthcoded data; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding variable-length-decoded symbols at said variable-length-decoding step according to said scan address, thereby transforming the variable-length-decoded symbols into predetermined coefficients.
Suitably, at least one of said image segments circumscribes a given object within said image.
Suitable, transform coefficients of image areas outside of said object but inside a corresponding image segment are selected to be a predetermined value.
According to the present invention in a fifth aspect, there is provided a coding apparatus for coding digital data which is divided into segments, the apparatus comprising: input terminals for inputting quantization coefficients of said digital data; coefficient storing units for respectively storing quantization coefficients input through said input terminals; means for outputting different scan addresses to said coefficient storing units according to scanning patterns; coders for transforming the quantization coefficients which are stored in said coefficient storing units, into symbols according to the scanning patterns with input respective scan addresses; buffers for separately storing said symbols output from said coders; accumulators for separately accumulating the lengths of said symbols output from said coders;; a minimum selector for selecting a minimum value among accumulated lengths output respectively from said accumulators; means for selecting a predetermined buffer among said buffers according to a designated selecting signal input from said minimum selector; and means for outputting both scanning pattern data which represents a scanning pattern corresponding to a minimum value selected from said minimum selector and symbols which are output from the buffer selected by said buffer selector, to transmission channels.
Suitably, said coders are run level coders.
Suitably, each of said accumulators for separately accumulating the lengths of said symbols comprises: an adder for adding a corresponding one of the lengths of said symbols which are input from said coders to a predetermined accumulated length which is fed back from an accumulated length storing unit; and a storing unit for storing the data output by said adder to update an accumulated length, and outputting the accumulated length to said adders.
Suitably, said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said buffers, thereby resetting said buffers to a predetermined initial value.
Suitably, said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said accumulators, thereby separately resetting said accumulators to a predetermined initial value.
Suitably, said reset signals which are separately input to said accumulators, reset said accumulators.
Suitably, a selecting signal input from said means for selecting a predetermined buffer among said buffers, is a signal for selecting a buffer which stores symbols according to a scanning pattern that corresponds to a selected minimum value in said minimum selector.
According to the present invention in a sixth aspect, there is provided a coding apparatus for coding digital data which is divided into segments, the apparatus comprising: input terminals for inputting quantization coefficients of said digital data; coefficient storing units for respectively storing the quantization coefficients input through said input terminals; means for outputting different scan addresses to said coefficient storing units according to scanning patterns; first coders for transforming coefficients which are stored in said coefficient storing units, into symbols according to the scanning patterns with input respective scan addresses; second coders for respectively coding the data output from said first coders, and outputting the coded data; buffers for separately storing the coded data output from said second coders;; accumulators for separately accumulating the lengths of the coded data output from said second coders; a minimum selector for selecting a minimum value among accumulated lengths output respectively from said accumulators; means for selecting a predetermined buffer among said buffers according to a designated selecting signal input from said minimum selector; and means for outputting both scanning pattern data which represents a scanning pattern corresponding to a minimum value selected from said minimum selector and coded data which are output from the selected buffer in said buffer selector, to transmission channels.
Suitably, said first coders are run-level-coders.
Suitably, said second coders are variable-lengthcoders.
Suitably, each of said accumulators for separately accumulating the lengths of coded data from said second coders, comprises: an adder for adding the lengths of the coded data which is input from a corresponding one of said second coders to a predetermined accumulated length which are fed back from an accumulated length storing unit; and a storing unit for storing the output data of said adder to update a corresponding accumulated lengths, and outputting the corresponding accumulated length to said adder.
Suitably, said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said buffers, thereby resetting said buffers to a predetermined initial value.
Suitably, said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said accumulators, thereby separately resetting said accumulators to a predetermined initial value.
Suitably, said reset signals which are separately input to said accumulators, reset said accumulator.
Suitably, a selecting signal input from said means for selecting a predetermined buffer among said buffers, is a signal for selecting a buffer which stores symbols coded by the second coders according to a scanning pattern that corresponds to a selected minimum value in said minimum selector.
Suitably, said segment data represent image segments which are block-wise divisions of predetermined size of an image.
Suitably, said segments into which the digital data are divided represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, at least one of said image segments circumscribes a respective given object within said image.
Suitably, transform coefficients of image areas outside a corresponding one of said objects but inside a corresponding one of said image segments are selected to be a predetermined value.
According to the present invention in a seventh aspect, there is provided decoding apparatus for decoding digital data in response to coded data and scanning pattern data, said apparatus comprising: means for outputting a predetermined scan address corresponding to said scanning pattern data; and a decoder responsive to scan address for transforming said coded data into quantization coefficients.
Suitably, said coded data is a plurality of data segments representing portions of a single image frame.
Suitably, said coded data is a plurality of data segments representing portions of a plurality of image frames.
Suitably, said coded data is a plurality of data segments representing image segments which are block-wise divisions of predetermined size of an image.
Suitably, said coded data is a plurality of data segments representing image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, said decoder is a run-length-decoder.
Suitably, said scan address outputting means stores a plurality of scanning patterns and selects one of said scanning patterns in response to said scanning pattern data.
Suitably, the decoding apparatus further comprises a dequantizer for dequantizing the quantization coefficients applied from said decoder.
According to the present invention in an eighth aspect, there is provided a decoding apparatus for decoding digital data in response to coded data and scanning pattern data, said apparatus comprising: first decoder for decoding said coded data, thereby transforming said coded data into symbols; means for outputting a predetermined scan address corresponding to said scanning pattern data; and second decoder responsive to said scan address for transforming said symbols into quantization coefficients.
Suitably, said coded data is a plurality of data segments representing portions of a single image frame.
Suitably, said coded data is a plurality of data segments representing portions of a plurality of image frames.
Suitably, said coded data is a plurality of data segments representing image segments which are block-wise divisions of predetermined size of an image.
Suitably, said coded data is a plurality of data segments representing image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, said first decoder is a variable-lengthdecoder.
Suitably, said second decoder is a run-level-decoder.
Suitably, said scan address outputting means stores a plurality of scanning patterns and selects one of said scanning patterns in response to said scanning pattern data.
Suitably, the decoding apparatus further comprises a dequantizer for dequantizing the quantization coefficients applied from said second decoder.
According to the present invention in a ninth aspect, there is provided a method for decoding digital data in response to a coded data and scanning pattern data, said method comprising the steps of: decoding said coded data into symbols; outputting a predetermined scan address corresponding to said scanning pattern data; and transforming said symbols into quantization coefficients in response to said scan address.
Suitably, the method further comprises the steps of: storing a plurality of scanning patterns; and selecting one of said scanning patterns in response to said scanning pattern data.
Suitably, the method further comprises a step for dequantizing the quantization coefficients at said transforming step.
According to the present invention in a tenth aspect, there is provided a coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as a plurality of quantized segment data; simultaneously scanning said plurality of quantized segment data according to a plurality of scanning patterns, and coding the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; separately accumulating said symbols according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols obtained at said accumulating step; and selecting as one of transmission data and storage data, the symbol corresponding to the scanning pattern selected at said selecting step.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the accumulated values to a determined initial value, which are initial accumulated values of step for accumulating the lengths of said symbols.
Suitably, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
Suitably, said coding step is a run-level coding step.
Suitably, the coding method further comprises a step of coding said symbols.
Suitably, said coding step for coding said symbols is a variable-length-coding step.
Suitably, said segment data represent image segments which are block-wise divisions of predetermined size of an image.
Suitably, said segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
Suitably, said plurality of said quantized segment data represent image portions of a single image frame.
Suitably, said plurality of quantized segment data represent image portions of a plurality of image frames.
Suitably, said plurality of image frames are separated in time.
According to the present invention in an eleventh aspect, there is provided a system for coding and/or decoding digital data divided into segments, which coding system includes coding or transforming the segment data into symbols according to various scanning patterns, accumulating the various lengths of so coded or transformed data, selecting a scanning pattern corresponding to a minimum accumulated length, transmitting or storing the coded data according to the selected scanning pattern and in a decoding system scanning the transmitted or retrieved data according to the same scanning pattern as applied to the coding process, thereby decoding the scanned data.
Suitably, the system further comprises any one or more of the features of the accompanying description, claims, drawings and/or abstract, in any combination.
Embodiments of the present invention provide a method for coding the digital data which is divided into segments, comprising the following steps: scanning the segment data according to various scanning patterns, and coding the scanned data into symbols in accordance with each of the scanning patterns; coding respectively diverse symbols coded according to the various scanning patterns; accumulating separately the data which are coded at the coding step according to the various scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of variablelength-coded data obtained at the accumulating step according to the various scanning patterns; and selecting as storage or transmission data, that data which is coded in the coding step according to the scanning pattern selected at the selecting step.
Embodiments of the present invention also provide a method for decoding the data which are coded in segments comprising the following steps: receiving or retrieving both coded data and scanning pattern data corresponding to the selected scanning pattern; variable-length-decoding the input coded data; outputting a predetermined scan address corresponding to the input scanning pattern data; decoding decoded symbols at decoding step according to the scan address, thereby transforming the symbols into predetermined coefficients.
This invention may be used for coding and/or decoding of data which is transmitted, or which is stored or retrieved from semiconductor memory, magnetic tape or disc, CD-ROM, digital video disc, or other storage media.
The present invention will become more apparent from the consideration of the following detailed description of an embodiment of the present invention, by way of example only, taken in conjunction with the accompanying drawings in which: Figure 1 is a block diagram showing an embodiment of a conventional coder utilizing a variable length coder.
Figure 2 is a block diagram showing an embodiment of a conventional decoder utilizing a variable length decoder.
Figures 3A-3C are diagrams for explaining an example of a conventional method for dividing digital data as well as scanning pattern and a coding process.
Figures 3D-3G are diagrams for explaining another example of a conventional method for dividing the digital data in accordance with various objects, as well as a scanning pattern and a coding process.
Figure 3H is a flowchart of the POCS-based arbitrary shape transform.
Figure 4 is a diagram for explaining a distribution state of variable-length-coded data.
Figure 5 is a block diagram showing an embodiment of a variable length coder in accordance with the present invention.
Figure 6 is a block diagram showing an embodiment of a variable length decoder in accordance with the present invention.
Figures 7A-7C are diagrams for explaining the scanning patterns used in connection with Figures 5 and 6.
Figures 8A-8C show simple examples of multiple segment scanning in accordance with the present invention.
Figures 8D-8E show simple examples of scanning patterns for multiple segments in accordance with the present invention.
A preferred embodiment of the present invention will be described below with reference to the prior art and to the accompanying drawings, utilizing a variable-length coding method as an example.
Figure 1 represents a schematic block diagram of a conventional coding apparatus of video data which uses the variable-length-coding method. First, an input terminal 10 receives data segments corresponding to image segments divided in a block manner, or corresponding to image segments divided in accordance with objects; block type segments are generally represented as having dimensions of Mt X M2 and for the convenience of explanation, it is assumed that M1=M2=M. The segment data input through the input terminal 10 is added to a predetermined feedback data in a first adder Al, thereby calculating differential data between the two sets of data (i.e., between the input data and the feedback data). An orthogonal transformer 11 performs discrete-cosine-transforms on input differential data, thereby causing the differential data to be transformed into coefficients in the frequency domain.A quantizer 12 changes transform coefficients through a predetermined quantizing process into representative values of various levels. Then, the quantizer 12 variably quantizes the output data from the orthogonal transformer 11 according to the quantization level (Q) input from a buffer 14. A variable length coder 13 variable-lengthcodes the segment data, taking statistical characteristics of the quantization coefficients into consideration, thereby producing compressed data (VcD) . A variablelength-coding procedure with respect to video data will be described hereinafter. The buffer 14 receives compressed data from the variable length coder 13 and outputs the data to a transmission channel at a constant rate. Then, the quantization level (Q) is output for controlling the quantity of compressed data, so as to prevent an overflow or an underflow in transmission data.
Generally, there are similar patterns between adjacent frames in the video data. Accordingly, in the case of slight movement of an image, the motion of the image is estimated by comparing a present frame with previous frames. A motion vector (MV) is calculated as a result of the motion estimation. Motion compensation is achieved from previous frames with a motion vector. The quantity of differential data between segment data obtained from motion compensation and segment data input to the input terminal 10 is very small, so that the data can be further compressed in the above coding process. A feedback loop for performing the motion estimation and motion compensation includes a dequantizer 15, an inverse orthogonal-transformer 16, a frame memory 17, a motion estimator 18 and a motion compensator 19.The dequantizer 15 and inverse orthogonal-transformer 16 dequantizes and inversely discrete-cosine-transforms the quantization coefficients output from the quantizer 12, and transforms them into video data in the spatial domain. A second adder 42 adds the video data output from the inverse orthogonal-transformer 16 to the feedback data input via a second switch SW2, thereby outputting a resultant segment data. The segment data output from the second adder A2 is sequentially stored in the frame memory 17, thereby reconstructing a frame. A motion estimator 18 retrieves the segment data which is the most similar data in pattern with the segment data input via the input terminal 10, from the frame data stored in the frame memory 17, and calculates the motion vector MV for estimating the motion of images from the two segment data.
The motion vector MV is transmitted to a receiver and the motion compensator 19, in order to be used in a decoding system. The motion compensator 19 reads out the segment data corresponding to the motion vector MV from the frame data in the frame memory 17, and inputs the read data to the first adder Al. As described above, the first adder Al calculates differential data between the segment data input from the input terminal 10 and the segment data input from the motion compensator 19, then the differential data is coded, and the coded data is transmitted to the receiver. The two switches SW1 and SW2 in Figure 1 are refresh switches for refreshing the data in the unit of a frame or segment of a predetermined size, in order to prevent the difference between coded data of frames and unprocessed data of frames due to the accumulation of the differential data.
The coded video data (VcD) is stored in a storage medium, or transmitted to the receiver and input to a decoder such as is shown in Figure 2. A variable length decoder 21 decodes the input video data (VcD) via an inverse process of variable-length-coding. A dequantizer 22 decodes quantization coefficients input from the variable length decoder 21, thereby outputting transformation coefficients in the frequency domain. An inverse orthogonal-transformer 23 transforms the transformation coefficients in the frequency domain, which are input from the quantizer 22, into video data in the spatial domain. The motion vector MV output from the motion estimator 18 of the coder is input to a motion compensator 24 of the decoder. The motion compensator 24 reads out the segment data corresponding to the motion vector MV from the frame data stored in a frame memory 24, and inputs the read data to an adder A. The adder A adds the differential data output from the inverse orthogonaltransformer 23 to the segment data input from the motion compensator 24, thereby outputting resultant reconstructed segment data. A switch SW connected to an output terminal of the motion compensator 24 plays the same role with the refresh switches of the above described coder in Figure 1.
There has been used a Huffman Coding technique for variable-length-coding in a conventional coding system.
Huffman Coding allocates codes differing in length according to a probability of a predetermined symbol in the input data. That is, the higher the probability, the shorter the code which is allocated, and the lower the probability, the longer the code which is allocated. In coding by means of a Huffman algorithm, in the case where there are many different symbols in abundance, and specific symbols have low probabilities, when long codes are allocated for a plurality of rare symbols by the Huffman algorithm, data-processing comes to be further complicated in the process of coding and decoding.In order to solve these problems, in the case that a code with a predetermined fixed length is allocated for a distribution area of a plurality of rare symbols (which is hereinafter assumed as an escape area), the complexity of the data-processing is greatly reduced, even if an average code length can be increased more than an average value of original Huffman codes.
Figure 3A shows an example of a data structure in which the data is divided into segments of size 8 X 8, Figure 3B shows 8 X 8 quantization coefficients which transform the segment data of 8 X 8 into data in the frequency domain and quantize the transformed data, and Figure 3C shows the zigzag scan of the quantization coefficients from low frequency to high frequency, and codes the scanned coefficients into [run, level] symbols, considering that many quantization coefficients are "0" in the frequency domain. In the run-length coding technique, the run means the number of occurrences of "0" between coefficients not "0", level does absolute values of coefficients not "0". In the case of the 8 X 8 data of Figures 3A-3C, the run can have values from "0" to "63".
In the case where the quantization output is an integer value from "-255" to "255", the level is a value from "1" to "255", and the sign is separately indicated.
Figure 3D shows another method of dividing the image data in such a way that division occurs in accordance with various objects. Each data segment corresponds to an object which is generally arbitrarily shaped. Figure 3E shows an example of encoding the data segment which corresponds to an object. Since the shape of an object is arbitrary, a special transform method is necessary in which the traditional block-based orthogonal transform is exercised on a rectangle circumscribing the given object.
The pixel values outside the given object but inside the circumscribing rectangle are adaptively selected so that with the selected number of transform coefficients, the object can be reconstructed. Figure 3F shows an example of selecting transform coefficients. In the case of the data segment representing an image portion having L pixels, there can be a maximum of L meaningful transform coefficients in a transform domain. The coefficients in the hatched area in Figure 3F are made to be zeros or known values by selecting the values of exterior pixels in Figure 3E. The selected L or fewer pixels and zeroed transform coefficients in Figure 3F are further compressed using the run-length coding and variable-length-coding.
The process of transform coefficients selection and extrapolation is further described with reference to the flowchart in Figure 3H.
The pixel values outside the given object are selected in a POCS-based iterative way. In the first iteration, the outside pixel values can be arbitrarily set up; however it is known to be effective to repeat or mirror the inside pixel values. [S. F. Chang and D. G.
Messerschmit, "Transform Coding of an Arbitrarily-Shaped Image Segment" Proceedings of ACM Multimedia. August, 1993.] Once the outer pixel values are selected, the rectangular block is forward transformed to obtain L or fewer transform coefficients. Since the magnitude of each transform coefficient corresponds to energy associated with the coefficient, one method of coefficient selection is to select L (or a predetermined smaller number) largest transform coefficients.
Once the coefficients are selected, others are set to zero. This coefficient zeroing undoubtedly causes distortions of the signal in the spatial domain.
Therefore, after inverse transforming the coefficients being zeroed at de-selected locations, the pixel values inside and at the boundaries of the object are replaced by the original values.
Note that only the exterior pixel values are affected by the forward inverse transform and interior pixel replacement; however, the coefficient values at deselected locations may not be zeros any more. For this reason, the previous "forward transform zeroing inverse transform interior pixel replacement" processes are repeated until convergence. The convergence is known to be guaranteed (as seen in H.H. Chen, M.R. Civanlar and B.G. Haskell, "A Block Transform Coder for Arbitrarily Shaped Image Segments" Proceedings of IEEE International Conference on Image Proceedings, 1994, Vol. 1, 85-89).
Once convergence is reached the shape-adaptive transform is complete and the transform coefficients can be further compressed, for example, by run-length coding and variable-length-coding as shown in Figures 3F and 3G. The transform coefficients block in Figure 3F is scanned in zig-zag scan in order to be run-length encoded. The [run, level] symbols are further compressed by variable-lengthcoding.
Figure 4 shows an escape area and a regular area classified according to probabilities of [run, level] symbols. A probability of symbols with a large value of run and/or level in run level symbols is very low statistically. A distribution area of symbols with a low probability, that is, escape area, in which the symbols are represented as an escape sequence of fixed length, and a regular Huffman code is allocated for the other area (regular area). For example, in the case of 8 X 8 segment data, the escape sequence consists of 6-bit escape symbols, 6-bit runs for representing from "0" to "63", 8bit levels for showing from "1" to "255" and a sign bit of l-bit. Accordingly, the escape sequence has a fixed length of total 21 bits.
A conventional variable-length-coding system has utilized a zig-zag scanning pattern (described in Figures 3A-3C) for N X N quantization coefficients in variablelength-coding the video data, because energy of the video signal is concentrated at the low frequency domain centred around AC components. However, the energy of the video signal can be more widely distributed to frequency components of a horizontal orientation or a vertical orientation according to the pattern of the video signal.
Therefore, a conventional zig-zag scanning pattern is not necessarily an optimal scanning pattern for variablelength-coding the video data. Accordingly, the scanning patterns which can be adaptably sloped to a horizontal orientation or a vertical orientation according to the distribution characteristics of the video data, are desirable for variable-length-coding and variable-lengthdecoding.
Figure 5 shows a variable length coder in accordance with an embodiment of the present invention. The coder of Figure 5 comprises N coefficient storing units (CM,-CMN) for respectively storing the quantization coefficients of quantized segment data such as the quantized segment data shown in Figure 3B and Figure 3F; N scan address output units (SAG,-SAGN) for providing different scan addresses to each of the coefficient storing units; N [run, level] coders (CD,-CDN) for [run, level] coding efficients in each of the coefficients storing units according to respective scanning patterns; N variable length coders (VLC,-VLCN) for variable-length-coding [run, level] symbols output from each of the [run, level] coders according to a variablelength-coding map;N buffers (BF-BFN) for storing the variable-length-coding data of each of the variable length coders; N accumulators (ACCM,-ACCMN) for separately accumulating the lengths of variable-length coded data output from each of the variable length coders; a minimum selector 52 for selecting a minimum value among accumulated lengths in N accumulators; and a selecting switch 54 for selecting and transmitting the buffer output of variable-length-coding channels selected in the minimum selector 52.
First, the quantization coefficients which are quantized in a segment of a predetermined size, are stored in each of the N coefficient storing units (CM1-CMN). The first, second and N coefficient storing units respectively receive the first, second and N scan addresses which are separately output from the first, second and N scan address output units. Described below is a coding channel for the first coefficient storing unit (CM,) among N coefficient storing units which are scanned by each of the N scan addresses.
The quantization coefficients stored in the first coefficient storing unit (CM,) are scanned toward a predetermined scanning orientation by the first scan address, and coded to a [run, level] symbol in the first [run, level] coder (CD1). The first variable length coder (VLC,) variable-length-codes the [run, level] symbol input from the first [run, level] coder (CD,) according to a predetermined variable-length-coding map, and respectively outputs variable-length-coded data (DVLC) and the length of the variable-length-coded data (tvLc). The variable-lengthcoded data (DVLC) output from the first variable length coder (VLC,) is stored in the first buffer (BF,), and the length of the variable-length-coded data (LVLC) is input and accumulated to the first accumulator (ACCM, ) which accumulates the lengths (LVLC) of the codes that are coded by the first unit (VLC,). The first accumulator (ACCM,) consists of an adder (Al) and a first accumulated length storing unit (LM,). The length of the variable-lengthcoded data (LVLC) which is input from the first variable length coder (VLC,) is added to accumulated lengths which are fed back from the first accumulated length storing unit (LM1) in the adder (A,).The first accumulated length storing unit (LM,) stores an update accumulated length output from the adder (A,).
A series of such coding channels are applied to the quantization coefficients of the second, third and N coefficient storing units (CM2, CM3, CMN) . However, different patterns are used for scanning the quantization coefficients in a segment which are respectively stored in N coefficient storing units. Figure 7 shows examples of several different scanning patterns. The scanning pattern of Figure 7A has a scanning orientation of 0 degrees; the Figure 7B depicts a scanning pattern having a scanning orientation of 30 degrees; and Figure 7C depicts a scanning pattern having a scanning orientation of 45 degrees.
In the case of data segments corresponding to image segments which correspond to objects that are arbitrarily shaped and for which the transformation is exercised for the circumscribing rectangle, the scanning pattern may not necessarily need to cover all the frequency components.
In channels of variable-length-coding with various scanning patterns, N accumulators (ACCM,-ACCMN) respectively provide the accumulated length data stored in each of the accumulated length storing units, to N input terminals of the minimum selector 52 which determines the minimum value of accumulated lengths. Each of the output terminals of N buffers (BF,-BFN), which store the variablelength-coded data according to N types of scanning patterns, are separately connected to N input terminals of the selecting switch 54.The minimum selector 52 selects a minimum value among the accumulated length data input from each of the N accumulated length storing units (LM,- LMN) . The minimum selector 52 outputs a scanning pattern data (DSCAN) which represents scanning patterns of variablelength-coding channels with a selected minimum value of accumulated lengths, and provides a predetermined selecting control signal (SEL) corresponding to the selected minimum value of accumulated lengths to the selecting switch 54. The selecting switch 54 selects and outputs a variable-length-coded data (DVLC) with the minimum value of accumulated lengths among the input data which are respectively input to N input terminals.
Whenever, a minimum value is selected, that is, when the variable-length-coding of every segment data is completed, the minimum selector 52 generates a reset signal (RST), thereby resetting the N buffers (BF,-BFN) and the N accumulated length storing units (LM,-LMN) . The variable-length-coded data (DVLC) and the scanning pattern data (DSCAN), which are output from the variable length coder, may then be stored as digital data or transmitted to a receiver for decoding.
Figure 6 shows an embodiment of a variable length decoder in accordance with the present invention.
Referring to Figure 6, the input variable-length-coded data (DVLC) is input to a variable length decoder 61 and transformed to the [run, level] symbol according to a variable-length-decoding map. Moreover, the scanning pattern data (DSCAN) transmitted from the coder is input to a scanning pattern selector 62 which stores each of the scanning addresses corresponding to various scanning patterns (1, N scans), such as those shown in Figure 7.
The scanning pattern selector 62 selects and outputs scan addresses (ADDRs) corresponding to the input scanning pattern data (D5CAN)- A run level level decoder 63 transforms the [run, level] symbols input from the variable length decoder 61 into the two-dimensional quantization coefficients according to the scan addresses (ADDRs) input from the scanning pattern selector 62. Then, the quantization coefficients are provided to a dequantizer.
As described above, the variable-length-coding system in accordance with embodiments of the present invention variable-length-codes every segment data according to diverse scanning patterns, and then transmits both a scanning pattern which minimises the length of variablelength-coded data and variable-length-coded data according to the scanning pattern, or stores that data on a digital recording medium for later decoding. The variable-lengthdecoding system in accordance with the present invention variable-length-decodes the stored or transmitted variable-length-coded data according to the same scanning pattern as utilised in the process of variable-lengthcoding. As a result, the system for variable-lengthcoding and variable-length-decoding can further compress the transmission data.
In the present invention, each of the segment data may correspond to various sizes and shapes of image portions. That is, embodiments of the present invention may be used for encoding and decoding segment data regardless of how the digital data is divided into segment data. This can be best understood by referring to Figures 3D-3H. Once the shape-adaptive transform is completed as previously described, the transform coefficients in a rectangular block are scanned in multiple scan orders, and a particular scan order is selected in the same way as described with reference to Figure 5. Therefore it is readily apparent how the present invention described with respect to Figure 5 can be extended to more general cases of image portions with various sizes and shapes.
While the present invention has been illustrated and described using the variable-length coder/decoder, another type of coder/decoder may be used with the present invention. For example, a Huffman or arithmetic coder/decoder may be substituted. Additionally, the present invention may be used with a variable-length coder/decoder, since the benefit of the present invention may be obtained by utilising the optimum scanning pattern regardless of the type of the coder/decoder.
Furthermore, while the present invention has been illustrated and described in connection with twodimensional data, the present invention can be applied to a coding and decoding system which utilises multidimensional data.
The extension to multi-dimensions can be realised by simultaneously scanning multiple segments together.
Figures 8A-8B show simple examples of multiple segment scanning. Figure 8A shows a particular example of when the multiple segments are from the same picture. However, segments at different times can also be scanned simultaneously, as shown, for example, in Figure 8B.
Without any limit, the two cases of Figures 8D and 8E show examples of scanning patterns for multiple segments.
The present invention can always be applied without any limit to multi-dimensional cases.
The reader's attention is directed to all papers and documents which are filed concurrently with or previous to this specification in connection with this application and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference.
All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
Each feature disclosed in this specification (including any accompanying claims, abstract and drawings), may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
The invention is not restricted to the details of the foregoing embodiment(s). The invention extends to any novel one, or any novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combination, of the steps of any method or process so disclosed.

Claims (83)

Claims:
1. A coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the quantized segment data according to a plurality of scanning patterns, and transforming the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; coding said symbols; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as one of transmission data and storage data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step.
2. A coding method as claimed in claim 1, wherein step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of step for accumulating the lengths of coded data.
3. A coding method as claimed in claim 1, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
4. A coding method as claimed in any preceding claim, wherein a series of processes for coding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
5. A coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the quantized segment data according to a plurality of scanning patterns, and coding the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; separately accumulating said symbols according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols obtained at said accumulating step; and selecting as one of transmission data and storage data, the symbol corresponding to the scanning pattern selected at said selecting step.
6. A coding method as claimed in claim 5, wherein said coding step is a run-level coding step.
7. A coding method as claimed in claim 5 or claim 6, wherein said quantized segment data represent image segments which are block-wise divisions of predetermined size of an image.
8. A coding method as claimed in any one of claims 5-7, wherein said quantized segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
9. A coding method as claimed in any one of claims 5-8, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of step for accumulating the lengths of coded data.
10. A coding method as claimed in any one of claims 5-8, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
11. A coding method as claimed in any one of claims 5-10, wherein a series of processes for coding according to a plurality of scanning patterns are separately preformed for a plurality of segment data.
12. A coding method as claimed in any one of claims 5-11, further including a decoding method comprising the steps of: inputting scanning pattern data; inputting the coded data; decoding said input coded data into symbols; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding said symbols at said decoding step according to said scan address, thereby transforming the symbols into predetermined coefficients.
13. A coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the segment data according to a plurality of scanning patterns, and transforming the scanned data to symbols in accordance with each of the scanning patterns; coding respective symbols transformed according to said plurality of scanning patterns; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as one of transmission data and storage data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step, wherein said segment data represent image segments which are block-wise divisions of predetermined size of an image.
14. A coding method as claimed in claim 13, wherein said coding step is a run-level-coding step.
15. A coding method as claimed in claim 13, wherein said coding step is a variable-length-coding step.
16. A coding method as claimed in claim 15, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of variable-length-coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of the step for accumulating the lengths of coded data.
17. A coding method as claimed in claim 15, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of variable-length-coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is variable-lengthcoded at said variable-length-coding step.
18. A coding method as claimed in any one of claims 1517, wherein a series of processes for variable-lengthcoding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
19. A coding method as claimed in any one of claims 1518, further including a decoding method comprising the steps of: inputting scanning pattern data; inputting said coded symbols as variable-length-coded data; variable-length-decoding said input variable-lengthcoded data to produce variable-length-decoded symbols; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding variable-length-decoded symbols produced in said variable-length-decoding step according to said scan address, thereby transforming the variable-length-decoded symbols into predetermined coefficients.
20. A coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as quantized segment data; scanning the segment data according to a plurality of scanning patterns, and transforming the scanned data to symbols in accordance with each of the scanning patterns; coding respective symbols transformed according to said plurality of scanning patterns; separately accumulating a plurality of lengths of data coded at said coding step according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data obtained at said accumulating step; and selecting as transmission data, the data which is coded at said coding step according to the scanning pattern selected at said selecting step, wherein said segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
21. A coding method as claimed in claim 20, wherein said coding step is a run-level-coding step.
22. A coding method as claimed in claim 20, wherein said coding step is a variable-length-coding step.
23. A coding method as claimed in claim 22 wherein, said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the values to a predetermined initial value, which are accumulated values of the step for accumulating the lengths of coded data.
24. A coding method as claimed in claim 22, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of coded data includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is variable-length-coded data at said variable-lengthcoding step.
25. A method as claimed in any one of claims 22-24, wherein a series of processes for variable-length-coding according to a plurality of scanning patterns are separately performed for a plurality of segment data.
26. A coding method as claimed in any one of claims 22-25 further including a decoding method comprising the steps of: inputting scanning pattern data; inputting variable-length-coded data obtained in the variable-length-coding step; variable-length-coding said input variable-lengthcoded data; outputting a predetermined scan address corresponding to said input scanning pattern data; and decoding variable-length-decoded symbols at said variable-length-decoding step according to said scan address, thereby transforming the variable-length-decoded symbols into predetermined coefficients.
27. A coding method as claimed in any one of claims 2026, wherein at least one of said image segments circumscribes a given object within said image.
28. A coding method as claimed in claim 27, wherein transform coefficients of image areas outside of said object but inside a corresponding image segment are selected to be a predetermined value.
29. A coding apparatus for coding digital data which is divided into segments, the apparatus comprising: input terminals for inputting quantization coefficients of said digital data; coefficient storing units for respectively storing quantization coefficients input through said input terminals; means for outputting different scan addresses to said coefficient storing units according to scanning patterns; coders for transforming the quantization coefficients which are stored in said coefficient storing units, into symbols according to the scanning patterns with input respective scan addresses; buffers for separately storing said symbols output from said coders; accumulators for separately accumulating the lengths of said symbols output from said coders; a minimum selector for selecting a minimum value among accumulated lengths output respectively from said accumulators;; means for selecting a predetermined buffer among said buffers according to a designated selecting signal input from said minimum selector; and means for outputting both scanning pattern data which represents a scanning pattern corresponding to a minimum value selected from said minimum selector and symbols which are output from the buffer selected by said buffer selector, to transmission channels.
30. A coding apparatus as claimed in claim 29, wherein said coders are run level coders.
31. A coding apparatus as claimed in claim 29 or claim 30, wherein each of said accumulators for separately accumulating the lengths of said symbols comprises: an adder for adding a corresponding one of the lengths of said symbols which are input from said coders to a predetermined accumulated length which is fed back from an accumulated length storing unit; and a storing unit for storing the data output by said adder to update an accumulated length, and outputting the accumulated length to said adders.
32. A coding apparatus as claimed in any one of claims 29-31, wherein said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said buffers, thereby resetting said buffers to a predetermined initial value.
33. A coding apparatus as claimed in any one of claims 29-31, wherein said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said accumulators, thereby separately resetting said accumulators to a predetermined initial value.
34. A coding apparatus as claimed in claim 33, wherein said reset signals which are separately input to said accumulators, reset said accumulators.
35. A coding apparatus as claimed in any one of claims 29-34, wherein a selecting signal input from said means for selecting a predetermined buffer among said buffers, is a signal for selecting a buffer which stores symbols according to a scanning pattern that corresponds to a selected minimum value in said minimum selector.
36. A coding apparatus for coding digital data which is divided into segments, the apparatus comprising: input terminals for inputting quantization coefficients of said digital data; coefficient storing units for respectively storing the quantization coefficients input through said input terminals; means for outputting different scan addresses to said coefficient storing units according to scanning patterns; first coders for transforming coefficients which are stored in said coefficient storing units, into symbols according to the scanning patterns with input respective scan addresses; second coders for respectively coding the data output from said first coders, and outputting the coded data; buffers for separately storing the coded data output from said second coders; accumulators for separately accumulating the lengths of the coded data output from said second coders; ; a minimum selector for selecting a minimum value among accumulated lengths output respectively from said accumulators; means for selecting a predetermined buffer among said buffers according to a designated selecting signal input from said minimum selector; and means for outputting both scanning pattern data which represents a scanning pattern corresponding to a minimum value selected from said minimum selector and coded data which are output from the selected buffer in said buffer selector, to transmission channels.
37. A coding apparatus as claimed in claim 36, wherein said first coders are run-level-coders.
38. A coding apparatus as claimed in claim 36 or claim 37, wherein said second coders are variable-length-coders.
39. A coding apparatus as claimed in claim 38, wherein each of said accumulators for separately accumulating the lengths of coded data from said second coders, comprises: an adder for adding the lengths of the coded data which is input from a corresponding one of said second coders to a predetermined accumulated length which are fed back from an accumulated length storing unit; and a storing unit for storing the output data of said adder to update a corresponding accumulated lengths, and outputting the corresponding accumulated length to said adder.
40. A coding apparatus as claimed in claim 38 or claim 39, wherein said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said buffers, thereby resetting said buffers to a predetermined initial value.
41. A coding apparatus as claimed in claim 38 or claim 39, wherein said minimum selector selects said minimum value and simultaneously inputs respective reset signals to said accumulators, thereby separately resetting said accumulators to a predetermined initial value.
42. A coding apparatus as claimed in claim 41, wherein said reset signals which are separately input to said accumulators, reset said accumulator.
43. A coding apparatus as claimed in any one of claims 38-42, wherein a selecting signal input from said means for selecting a predetermined buffer among said buffers, is a signal for selecting a buffer which stores symbols coded by the second coders according to a scanning pattern that corresponds to a selected minimum value in said minimum selector.
44. A coding apparatus as claimed in any one of claims 36-43, wherein said segment data represent image segments which are block-wise divisions of predetermined size of an image.
45. A coding apparatus as claimed in any one of claims 36-43, wherein said segments into which the digital data are divided represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
46. A coding apparatus as claimed in claim 45, wherein at least one of said image segments circumscribes a respective given object within said image.
47. A coding apparatus as claimed in claim 45 or claim 46, wherein transform coefficients of image areas outside a corresponding one of said objects but inside a corresponding one of said image segments are selected to be a predetermined value.
48. A decoding apparatus for decoding digital data in response to coded data and scanning pattern data, said apparatus comprising: means for outputting a predetermined scan address corresponding to said scanning pattern data; and a decoder responsive to scan address for transforming said coded data into quantization coefficients.
49. A decoding apparatus as claimed in claim 48, wherein said coded data is a plurality of data segments representing portions of a single image frame.
50. A decoding apparatus as claimed in claim 48, wherein said coded data is a plurality of data segments representing portions of a plurality of image frames.
51. A decoding apparatus as claimed in claim 48, wherein said coded data is a plurality of data segments representing image segments which are block-wise divisions of predetermined size of an image.
52. A decoding apparatus as claimed in claim 48, wherein said coded data is a plurality of data segments representing image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
53. A decoding apparatus as claimed in any one of claims 48-52, wherein said decoder is a run-length-decoder.
54. A decoding apparatus as claimed in any one of claims 48-53, wherein said scan address outputting means stores a plurality of scanning patterns and selects one of said scanning patterns in response to said scanning pattern data.
55. A decoding apparatus as claimed in any one of claims 48-54, further comprising a dequantizer for dequantizing the quantization coefficients applied from said decoder.
56. A decoding apparatus for decoding digital data in response to coded data and scanning pattern data, said apparatus comprising: first decoder for decoding said coded data, thereby transforming said coded data into symbols; means for outputting a predetermined scan address corresponding to said scanning pattern data; and second decoder responsive to said scan address for transforming said symbols into quantization coefficients.
57. A decoding apparatus as claimed in claim 56, wherein said coded data is a plurality of data segments representing portions of a single image frame.
58. A decoding apparatus as claimed in claim 56, wherein said coded data is a plurality of data segments representing portions of a plurality of image frames.
59. A decoding apparatus as claimed in claim 56, wherein said coded data is a plurality of data segments representing image segments which are block-wise divisions of predetermined size of an image.
60. A decoding apparatus as claimed in claim 56, wherein said coded data is a plurality of data segments representing image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
61. A decoding apparatus as claimed in any one of claims 56-60, wherein first decoder is a variable-lengthdecoder.
62. A decoding apparatus as claimed in any one of claims 56-61, wherein said second decoder is a run-level-decoder.
63. A decoding apparatus as claimed in claim 62, wherein said scan address outputting means stores a plurality of scanning patterns and selects one of said scanning patterns in response to said scanning pattern data.
64. A decoding apparatus as claimed in any one of claims 56-63, further comprising a dequantizer for dequantizing the quantization coefficients applied from said second decoder.
65. A method for decoding digital data in response to a coded data and scanning pattern data, said method comprising the steps of: decoding said coded data into symbols; outputting a predetermined scan address corresponding to said scanning pattern data; and transforming said symbols into quantization coefficients in response to said scan address.
66. A method for decoding as claimed in claim 65, further comprising the steps of: storing a plurality of scanning patterns; and selecting one of said scanning patterns in response to said scanning pattern data.
67. A method for decoding as claimed in claim 65 or claim 66, further comprising a step for dequantizing the quantization coefficients at said transforming step.
68. A coding method for coding digital data which is divided into segments, the method comprising the steps of: obtaining quantization coefficients of digital data; arranging said quantization coefficients as a plurality of quantized segment data; simultaneously scanning said plurality of quantized segment data according to a plurality of scanning patterns, and coding the scanned quantized segment data into symbols in accordance with each of the scanning patterns, each symbol having a length; separately accumulating said symbols according to said plurality of scanning patterns; selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols obtained at said accumulating step; and selecting as one of transmission data and storage data, the symbol corresponding to the scanning pattern selected at said selecting step.
69. A coding method as claimed in claim 68, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the accumulated values to a determined initial value, which are initial accumulated values of step for accumulating the lengths of said symbols.
70. A coding method as claimed in claim 68, wherein said step for selecting a scanning pattern corresponding to a minimum value among accumulated values of lengths of said symbols, includes a sub-step for selecting a minimum value among a plurality of accumulated values and simultaneously resetting the data to a predetermined initial value, which is coded data at said coding step.
71. A coding method as claimed in any one of claims 6870, wherein said coding step is a run-level coding step.
72. A coding method as claimed in any one of claims 6871, further comprising a step of coding said symbols.
73. A coding method as claimed in claim 72, wherein said coding step for coding said symbols is a variable-lengthcoding step.
74. A coding method as claimed in any one of claims 6873, wherein said segment data represent image segments which are block-wise divisions of predetermined size of an image.
75. A coding method as claimed in any one of claims 6873, wherein said segment data represent image segments of an image in which the size and shape of said image segments are selected in accordance with objects within said image.
76. A coding method as claimed in any one of claims 6875, wherein said plurality of said quantized segment data represent image portions of a single image frame.
77. A coding method as claimed in any one of claims 6875, wherein said plurality of quantized segment data represent image portions of a plurality of image frames.
78. A coding method as claimed in claim 77, wherein said plurality of image frames are separated in time.
79. A system for coding and/or decoding digital data divided into segments, which coding system includes coding or transforming the segment data into symbols according to various scanning patterns, accumulating the various lengths of so coded or transformed data, selecting a scanning pattern corresponding to a minimum accumulated length, transmitting or storing the coded data according to the selected scanning pattern and in a decoding system scanning the transmitted or retrieved data according to the same scanning pattern as applied to the coding process, thereby decoding the scanned data.
80. A system for coding and/or decoding digital data according to claim 79, further comprising any one or more of the features of the accompanying description, claims, drawings and/or abstract, in any combination.
81. A coding method substantially as described and operating herein.
82. A coding apparatus substantially as described herein, with reference to and as shown in Figure 5 of the accompanying drawings.
83. A decoding apparatus substantially as described herein, with reference to and as shown in Figure 6 of the accompanying drawings.
GB9701440A 1996-01-25 1997-01-24 A System, method and apparatus for variable-length-coding and variable-length-decoding digital data Expired - Fee Related GB2309613B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960001588A KR100242635B1 (en) 1996-01-25 1996-01-25 A system for variable-length-coding and variable-length-decoding digital data

Publications (3)

Publication Number Publication Date
GB9701440D0 GB9701440D0 (en) 1997-03-12
GB2309613A true GB2309613A (en) 1997-07-30
GB2309613B GB2309613B (en) 1997-12-10

Family

ID=19450054

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9701440A Expired - Fee Related GB2309613B (en) 1996-01-25 1997-01-24 A System, method and apparatus for variable-length-coding and variable-length-decoding digital data

Country Status (5)

Country Link
KR (1) KR100242635B1 (en)
CN (6) CN1178395C (en)
GB (1) GB2309613B (en)
HK (4) HK1033508A1 (en)
MY (1) MY118173A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008128380A1 (en) * 2007-04-20 2008-10-30 Thomson Licensing Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1874509B (en) * 2001-09-14 2014-01-15 诺基亚有限公司 Method and system for context-based adaptive binary arithmetic coding
US7724830B2 (en) * 2004-11-09 2010-05-25 Panasonic Corporation Decoding-processing apparatus and method
US8004431B2 (en) * 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
WO2011050641A1 (en) * 2009-10-28 2011-05-05 Mediatek Singapore Pte. Ltd. Video coding methods and video encoders and decoders with localized weighted prediction
KR101373814B1 (en) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 Apparatus of generating prediction block
CN107580223B (en) * 2011-11-08 2020-12-08 株式会社Kt Method for decoding video signal by using decoding device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230632A2 (en) * 1985-12-20 1987-08-05 Fujitsu Limited Video communications system with variable scanning pattern
GB2219458A (en) * 1988-06-01 1989-12-06 Philips Electronic Associated Processing sub-sampled signals
GB2264605A (en) * 1992-02-29 1993-09-01 Samsung Electronics Co Ltd Signal compressing system
EP0580454A2 (en) * 1992-07-23 1994-01-26 Samsung Electronics Co., Ltd. Coding and decoding of digital data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230632A2 (en) * 1985-12-20 1987-08-05 Fujitsu Limited Video communications system with variable scanning pattern
GB2219458A (en) * 1988-06-01 1989-12-06 Philips Electronic Associated Processing sub-sampled signals
GB2264605A (en) * 1992-02-29 1993-09-01 Samsung Electronics Co Ltd Signal compressing system
EP0580454A2 (en) * 1992-07-23 1994-01-26 Samsung Electronics Co., Ltd. Coding and decoding of digital data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008128380A1 (en) * 2007-04-20 2008-10-30 Thomson Licensing Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding
US20100040298A1 (en) * 2007-04-20 2010-02-18 Qu Qing Chen Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding
US8447123B2 (en) 2007-04-20 2013-05-21 Thomson Licensing Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding

Also Published As

Publication number Publication date
CN1290069A (en) 2001-04-04
HK1033508A1 (en) 2001-08-31
CN1791218A (en) 2006-06-21
GB2309613B (en) 1997-12-10
CN1179486C (en) 2004-12-08
KR100242635B1 (en) 2000-02-01
HK1033509A1 (en) 2001-08-31
MY118173A (en) 2004-09-30
CN1178396C (en) 2004-12-01
CN1290070A (en) 2001-04-04
CN1652468A (en) 2005-08-10
HK1033511A1 (en) 2001-08-31
CN100568742C (en) 2009-12-09
HK1033510A1 (en) 2001-08-31
GB9701440D0 (en) 1997-03-12
KR970060954A (en) 1997-08-12
CN1290067A (en) 2001-04-04
CN1178395C (en) 2004-12-01
CN1290068A (en) 2001-04-04

Similar Documents

Publication Publication Date Title
US5714950A (en) System for variable-length-coding and variable-length-decoding digitaldata
US5497153A (en) System for variable-length-coding and variable-length-decoding digital data for compressing transmission data
CA2452550C (en) An apparatus and method for encoding digital image data in a lossless manner
US7411526B2 (en) Variable length coding method and variable length decoding method
US5831559A (en) Encoding/decoding video signals using multiple run-val mapping tables
US20040136457A1 (en) Method and system for supercompression of compressed digital video
US7630563B2 (en) System and method for decoding digital image and audio data in a lossless manner
JPH09247673A (en) Coded dynamic image reproducing device
US9077960B2 (en) Non-zero coefficient block pattern coding
US5719961A (en) Adaptive technique for encoder and decoder signal transformation
KR101066051B1 (en) Apparatus and method for multiple description encoding
KR100359821B1 (en) Method, Apparatus And Decoder For Motion Compensation Adaptive Image Re-compression
JPH05219385A (en) Picture compression expansion method and device
US6011499A (en) Encoding/decoding video signals using multiple run-val mapping tables
GB2309613A (en) Variable-length coding and decoding digital data
JP2010136454A (en) Decoding method, decoding apparatus, program therefor and recording medium
US6912070B1 (en) Sub-optimal variable length coding
JP2963958B2 (en) High efficiency coding device
KR0134358B1 (en) Coding and decoding system of variable scan method
KR100460947B1 (en) Device for processing image signal and method thereof
KR20030083703A (en) Moving picture information compressing method and its system
KR0134359B1 (en) Coding and decoding system of variable scan region
JPH08130737A (en) Picture data encoding and decoding device
JPH03124124A (en) Inter-frame/in-frame adaptive coding system
JPH0730895A (en) Picture processor and its processing method

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20150124