USRE41729E1 - Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method - Google Patents
- ️Tue Sep 21 2010
Info
-
Publication number
- USRE41729E1 USRE41729E1 US12/133,690 US13369008A USRE41729E US RE41729 E1 USRE41729 E1 US RE41729E1 US 13369008 A US13369008 A US 13369008A US RE41729 E USRE41729 E US RE41729E Authority
- US
- United States Prior art keywords
- coding
- unit
- digital signal
- data
- arithmetic Prior art date
- 2002-04-25 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.)
- Expired - Lifetime, expires 2023-07-31
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000005540 biological transmission Effects 0.000 claims abstract description 128
- 238000007906 compression Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 239000013598 vector Substances 0.000 description 35
- 238000013139 quantization Methods 0.000 description 30
- 230000002123 temporal effect Effects 0.000 description 18
- 238000010276 construction Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101001139126 Homo sapiens Krueppel-like factor 6 Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
- H04N7/52—Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2381—Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4381—Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
Definitions
- the present invention relates to a digital signal coding apparatus, a digital signal decoding apparatus, a digital signal arithmetic coding method and a digital signal arithmetic decoding method used for video compression coding and compressed video data transmission.
- Huffman coding In International standards for video coding such as MPEG and ITU-T H.26x, Huffman coding has been used for entropy coding. Huffman coding provides an optimum coding performance when individual information symbols are to be represented as individual codewords. Optimum performance is not, however, guaranteed when a signal such as a video signal exhibits localized variation so that the probability of appearance of information symbols varies.
- Arithmetic coding is proposed as a method that adapts dynamically to the probability of appearance of individual information symbols and is capable of representing a plurality of symbols as a single codeword.
- the probability of appearance of individual characters is defined as shown in FIG. 1 .
- portions of a probability line defined by a segment [0, 1) are uniquely established for respective characters.
- the characters are subject to a coding process.
- the letter “B” is coded. This is done in the form of identifying a range [0.2, 0.3) on the probability line for that character. Therefore, the letter “B” corresponds to a set of High value and a Low value in the range [0.2, 0.3).
- the range [0.2, 0.3) identified in the process of coding “B” is regarded as a new segment [0, 1) so that a sub-segment [0.5, 0.6) is identified therein.
- the process of arithmetic coding is a process of successively bounding rages on the probability line.
- a decoding process is an inverse of the coding process.
- the coding result “0.2572167752” is examined to determine a range on the probability line in which the result lies and determine a character assigned to the range. In this case, we restore “B”.
- arithmetic coding By performing an arithmetic coding as described above, a message of extreme length could be mapped onto a single codeword. In actual implementation, it is impossible to operate with infinite decimal precision. Moreover, multiplication and division are necessary for coding and decoding so that heavy computational load is imposed. These problems are addressed by floating-point decimal computation using, for codeword representation, registers of an integer type. The Low value is approximated by a power of 2 so that multiplication and division are replaced by shift operations.
- arithmetic coding according to the above-described process enables entropy coding adapted to the probability of occurrence of information symbols. More specifically, when the probability of occurrence varies dynamically, the coding efficiency higher than that of Huffman coding is available by tracing the variation and updating the table of FIG. 1 appropriately.
- each video frame is divided into segments for transmission in units that allows resynchronization (for example, MPEG-2 slice structure) in order to minimize degradation occurring in an entropy-coded video signal due to transmission errors.
- Huffman coding maps individual coding symbols into codewords of an integer bit length so that transmission unit is immediately defined as a group of codewords.
- a special code for explicitly suspending a coding process is required.
- the process of learning the probability of occurrence of earlier symbols should be reset so as to output bits for establishing a code. As a result, the coding efficiency may suffer prior to and subsequent to the suspension.
- Another problem to be addressed is that, when an arithmetic coding process is not reset while coding a video frame and the frame has to be divided into small units such as packet data for transmission, decoding of a packet cannot take place without the immediately preceding packet data so that significant adverse effects on video quality result when a transmission error or a packet loss due to a delay occurs.
- the present invention addresses these problems and has an objective of providing a digital signal coding apparatus and a digital signal coding method capable of ensuring a high degree of error resiliency and improving a coding efficiency of arithmetic coding.
- the present invention has a further objective of providing a digital signal decoding apparatus and a digital signal decoding method capable of proper decoding in a situation where the coding apparatus continues coding across bounds of transmission units, by inheriting, instead of resetting, the arithmetic coding status for earlier transmission units or the symbol probability learning status.
- a digital signal partitioned into units is compressed by arithmetic coding.
- Information representing an arithmetic coding status, occurring when a transmission unit has been coded may be multiplexed into data constituting a subsequent transmission unit.
- a probability of occurrence of coding symbols may be determined, based on dependence of the digital signal coded on the signal included in one or a plurality of adjacent transmission units, the probability of occurrence may be learned by counting a frequency of occurrence of coding symbols and information representing a probability learning status, occurring when a given transmission unit has been coded, may be multiplexed into data constituting a subsequent transmission unit.
- a decoding process may be initialized when decoding of a transmission unit is started, based on information multiplexed into data constituting the transmission unit and representing an arithmetic coding status.
- a probability of symbol occurrence used in decoding the transmission unit may be initialized when decoding of a transmission unit is started, based on information multiplexed into data constituting the transmission unit and representing a symbol occurrence probability learning status, the compressed digital signal received in the units may be decoded, by determining a probability of occurrence of restored symbols, based on dependence of the digital signal decoded on the signal included in one or a plurality of adjacent transmission units, and by learning the probability by counting a frequency of the restored symbols.
- FIG. 1 shows the probability of occurrence of individual characters when a phrase “BILL GATES” is arithmetically coded.
- FIG. 2 shows an arithmetic coding result when the phrase “BILL GATES” is arithmetically coded.
- FIG. 3 shows a construction of a video coding apparatus (digital signal coding apparatus) according to a first embodiment of the present invention.
- FIG. 4 shows a construction of a video decoding apparatus (digital signal decoding apparatus) according to the first embodiment.
- FIG. 5 shows an internal construction of an arithmetic coding unit 6 of FIG. 3 .
- FIG. 6 is a flowchart showing processes performed by the arithmetic coding unit 6 of FIG. 5 .
- FIG. 7 illustrates a concept of a context model.
- FIG. 8 illustrates an example of context model for a motion vector.
- FIG. 9 shows a slice structure
- FIG. 10 shows an example of bit stream generated by the arithmetic coding unit 6 .
- FIG. 11 shows another example of bit stream generated by the arithmetic coding unit 6 .
- FIG. 12 shows another example of bit stream generated by the arithmetic coding unit 6 .
- FIG. 13 shows an internal construction of an arithmetic decoding unit 27 of FIG. 4 .
- FIG. 14 is a flowchart of processes performed by the arithmetic decoding unit 27 of FIG. 13 .
- FIG. 15 shows an internal construction of the arithmetic coding unit 6 according to a second embodiment of the present invention.
- FIG. 16 is a flowchart showing processes performed by the arithmetic coding unit 6 of FIG. 15 .
- FIG. 17 illustrates a context model learning status
- FIG. 18 shows an example of bit stream generated by the arithmetic coding unit 6 according to the second embodiment.
- FIG. 19 shows an internal construction of the arithmetic decoding unit 27 according to the second embodiment.
- FIG. 20 is a flowchart showing processes performed by the arithmetic decoding unit 27 of FIG. 19 .
- FIG. 21 shows an example of bit stream generated by the arithmetic coding unit 6 according to a third embodiment of the present invention.
- a first embodiment of the present invention is presented using an example, disclosed in D. Marpe et al. “Video Compression Using Context-Based Adaptive Arithmetic Coding”, International Conference on Image Processing 2001, in which arithmetic coding is applied to a video coding scheme where a square area of 16 ⁇ 16 pixels (hereinafter, referred to as a macroblock) produced by uniformly dividing a video frame is a coding unit.
- a macroblock 16 ⁇ 16 pixels
- FIG. 3 shows a construction of a video coding apparatus (digital signal coding apparatus) according to the first embodiment of the present invention.
- a motion estimation unit 2 extracts a motion vector 5 for each of the macroblocks of an input video signal 1 , using a reference image 4 stored in a frame memory 3 a.
- a motion compensation unit 7 constructs a temporal predicted image 8 based on the motion vector 5 extracted by the motion estimation unit 2 .
- a subtractor 51 determines a difference between the input video signal 1 and the predicted image 8 and outputs the difference as an temporal prediction error signal 9 .
- a spatial prediction unit 10 a refers to the input video signal 1 so as to generate a spatial prediction error signal 11 by making a prediction from spatially neighboring areas in a given video frame.
- a coding mode determination unit 12 selects a mode capable of coding a target macroblock most efficiently and outputs coding mode information 13 , the mode selected by the code mode determination unit 12 being one of a motion compensation mode for coding the temporal prediction error signal 9 , a skip mode for a case where the motion vector 5 is zero and the temporal prediction error signal 9 has a null component, and an intra mode for coding the spatial prediction error signal 11 .
- An orthogonal transform unit 15 subjects the signal selected for coding by the coding mode determination unit 12 to orthogonal transform so as to output orthogonal transform coefficient data.
- a quantization unit 16 quantizes the orthogonal transform coefficient data with a granularity indicated by a quantization step parameter 23 determined by a coding controller 22 .
- An inverse quantization unit 18 subjects orthogonal transform coefficient data 17 output from the quantization unit 16 with the granularity indicated by the quantization step parameter 23 .
- An inverse orthogonal transform unit 19 subjects the orthogonal transform coefficient data subjected to inverse quantization by the inverse quantization unit 18 .
- a switching unit 52 selects for output the temporal predicted image 8 output from the motion compensation unit 7 or a spatial predicted image 20 output from the spatial prediction unit 10 a, in accordance with the coding mode information 13 output from the coding mode determination unit 12 .
- An adder 53 adds the output signal from the switching unit 52 to the output signal from the inverse orthogonal unit 19 so as to generate a local decoded image 21 and stores the locally decoded image 21 in the frame memory 3 a as the reference image 4 .
- An arithmetic coding unit 6 subjects coding data including the motion vector 5 , the coding mode information 13 , an spatial prediction mode 14 , the orthogonal transform coefficient data 17 to entropy coding, so as to output a coding result via a transmission buffer 24 as compressed video data 26 .
- the coding controller 22 controls components including the coding mode determination unit 12 , the quantization unit 16 and the inverse quantization unit 18 .
- FIG. 4 shows a configuration showing a video decoding apparatus (digital signal decoding apparatus) according to the first embodiment of the present invention.
- an arithmetic coding unit 27 performs entropy decoding so as to restore parameters including the motion vector 5 , the coding mode information 13 , the spatial prediction mode 14 , the orthogonal coefficient data 17 and the quantization step parameter 23 .
- the inverse quantization unit 18 subjects the orthogonal coefficient data 17 and the quantization step parameter 23 restored by the arithmetic decoding unit 27 to inverse quantization.
- the inverse orthogonal transform unit 19 subjects the orthogonal transform coefficient data 17 and the quantization step parameter 23 thus inverse-quantized to inverse orthogonal transform.
- the motion compensation unit 7 restores the temporal predicted image 8 using the motion vector 5 restored by the arithmetic decoding unit 27 .
- a spatial prediction unit 10 b restores the spatial predicted image 20 from the spatial prediction mode 14 restored by the arithmetic decoding unit 27 .
- a switching unit 54 selects for output the temporal predicted image 8 or the spatial predicted image 20 in accordance with the coding mode information 13 restored by the arithmetic decoding unit 27 .
- An adder 55 adds the prediction error signal output from the inverse orthogonal transform unit 19 to the output signal from the switching unit 54 so as to output a decoded image 21 .
- the decoded image 21 is stored in a frame memory 3 b so as to be used to generate a predicted image for a frame subsequent to the decoded image 21 .
- the input image signal 1 is input in units of macroblocks derived from division of individual video frames.
- the motion estimation unit 2 of the video coding apparatus estimates the motion vector 5 for each macroblock using the reference image 4 stored in the frame memory 3 a.
- the motion compensation unit 7 constructs the temporal predicted image 8 based on the motion vector 5 when the motion detection unit 2 extracts the motion vector 5 .
- the subtractor 51 receives the temporal predicted image 8 from the motion compensation unit 7 and determines a difference between the input image signal 1 and the temporal predicted image 8 . The subtractor 51 then outputs the difference, the temporal prediction error signal 9 , to the coding mode determination unit 12 .
- the spatial prediction unit 10 a refers to the input video signal 1 so as to generate the spatial prediction error signal 11 by making a prediction from spatially neighboring areas in a given video frame.
- the coding mode determination unit 12 selects a mode capable of coding a target macroblock most efficiently and outputs the coding mode information 13 to the arithmetic coding unit 6 , the mode selected by the code mode determination unit 12 being one of a motion compensation mode for coding the temporal prediction error signal 9 , a skip mode for a case where the motion vector 5 is zero and the temporal prediction error signal 9 has a null component, and an intra mode for coding the spatial prediction error signal 11 .
- the coding mode determination unit 12 outputs the temporal prediction error signal 9 to the orthogonal transform unit 15 as a signal that requires coding.
- the coding mode determination unit 12 outputs the spatial prediction error signal 11 to the orthogonal transform unit 15 as a signal that requires coding.
- the motion vector 5 is output from the motion estimation unit 2 to the arithmetic coding unit 6 as information that requires coding.
- the intra prediction mode 14 is output from the spatial prediction unit 10 a to the arithmetic coding unit 6 as information that requires coding.
- the orthogonal transform unit 15 receives the signal that requires coding from the coding mode determination unit 12 , subjects the signal to orthogonal transform and outputs the resultant orthogonal transform coefficient data to the quantization unit 16 .
- the quantization unit 16 receives the orthogonal transform coefficient data from the orthogonal transform unit 15 and quantizes the orthogonal transform coefficient data with a granularity indicated by the quantization parameter 23 determined by the coding controller 22 .
- the coding controller 22 By allowing the coding controller 22 to control the quantization step parameter 23 , appropriate balance between a coding rate and quality is ensured.
- the volume of arithmetically coded data stored in the transmission buffer 24 for transmission is examined at predetermined intervals so that the quantization step parameter 23 is adjusted in accordance with the residual volume 25 of the data that remain in the buffer. For example, when the residual volume 25 is large, the coding rate is controlled to be low and, when the residual volume 25 is relatively small, the coding rate is controlled to be high so that the quality is improved.
- the inverse quantization unit 18 receives the orthogonal transform coefficient data 17 from the quantization unit 16 and subjects the orthogonal transform coefficient data 17 to inverse quantization with the granularity indicated by the quantization step parameter 23 .
- the inverse orthogonal transform unit 19 subjects the orthogonal transform coefficient data subjected to inverse quantization by the inverse quantization unit 18 to inverse orthogonal transform.
- the switching unit 52 selects from output the temporal predicted image 8 output from the motion compensation unit 7 or the spatial predicted image 20 output from the spatial prediction unit 10 a, in accordance with the coding mode information 13 output from the coding mode determination unit 12 .
- the switching unit 52 selects for output the temporal predicted image 8 output from the motion compensation unit 7 .
- the switching unit 52 selects for output the spatial predicted image 20 output from the spatial prediction unit 10 a.
- the adder 53 adds the output signal from the switching unit 52 to the output signal from the inverse orthogonal transform unit 19 so as to generate the locally decoded image 21 .
- the locally decoded image 21 is stored in the frame memory 3 a as the reference image 4 so as to be used for motion prediction for subsequent frames.
- the arithmetic coding unit 6 subjects coding data including the motion vector 5 , the coding mode information 13 , the spatial prediction mode 14 and the orthogonal transform coefficient data 17 to entropy coding according to steps described later and outputs the coding result via the transmission buffer 24 as the compressed video data 26 .
- the arithmetic decoding unit 27 receives the compressed video data 26 from the video coding apparatus and subjects the received data to entropy decoding described later, so as to restore the motion vector 5 , the coding mode information 13 , the spatial prediction mode 14 , the orthogonal transform coefficient data 17 and the quantization step parameter 23 .
- the inverse quantization unit 18 subjects the orthogonal transform coefficient data 17 and the quantization step parameter 23 restored by the arithmetic decoding unit to inverse quantization.
- the inverse orthogonal transform unit 19 subjects the orthogonal transform coefficient data 17 and the quantization step parameter 23 thus inverse-quantized to inverse orthogonal transform.
- the motion compensation unit 7 restores the temporal predicted image 8 using the motion vector 5 restored by the arithmetic decoding unit 27 .
- the spatial prediction unit 10 b restores the spatial predicted image 20 using the spatial prediction mode 14 restored by the arithmetic decoding unit 27 .
- a difference between the spatial prediction unit 10 a of the video coding apparatus and the spatial prediction unit 10 b of the video decoding apparatus is that, while the spatial prediction unit 10 a is capable of performing a step of most efficiently identifying the spatial prediction mode 14 from a variety of available spatial prediction modes, the spatial prediction unit 10 b is limited to generating the spatial predicted image 20 from the spatial prediction mode 14 that is given.
- the switching unit 54 selects the temporal predicted image 8 restored by the motion compensation unit 7 or the spatial predicted image 20 restored by the spatial prediction unit 10 b, in accordance with the coding mode information 13 restored by the arithmetic decoding unit 27 .
- the switching unit 54 then outputs the selected image to the adder 55 as the predicted image.
- the adder 55 receiving the predicted image from the switching unit 54 , adds the predicted image to the prediction error signal output from the inverse orthogonal transform unit 19 so as to obtain the decoded image 21 .
- the decoded image 21 is stored in the frame memory 3 b so as to be used to generate predicted images for subsequent frames.
- a difference between the frame memories 3 a and 3 b consists in the difference between the video coding apparatus and the video decoding apparatus respectively hosting the memories.
- a coding process is performed by the arithmetic coding unit 6 of FIG. 3 and a decoding process is performed by the arithmetic decoding unit 27 of FIG. 4 .
- FIG. 5 shows a construction of the arithmetic coding unit 6 of FIG. 3 .
- the arithmetic coding unit 6 comprises a context model determination unit 28 , a binarization unit 29 , a probability generation unit 30 , a coding unit 31 and a transmission unit generation unit 35 .
- the context model determination unit 28 determines a context model (described later) defined for each of individual types of coding data including the motion vector 5 , the coding mode information 13 , the spatial prediction mode 14 and the orthogonal transform coefficient data 17 .
- the binarization unit 29 converts multilevel data in accordance with a binarization rule determined for each of types of coding data.
- the probability generation unit 30 assigns a probability of occurrence of binary values (0 or 1) for individual binary sequences after binarization.
- the coding unit 31 executes arithmetic coding based on the probability thus generated.
- the transmission unit generation unit 35 indicates the timing when the arithmetic coding should be suspended and constructs data constituting a transmission unit at the timing.
- FIG. 6 is a flowchart showing processes performed by the arithmetic coding unit 6 of FIG. 5 .
- step ST 1 Context Mode Determination Process
- a context model is a model that defines dependence of probability of occurrence of data symbols on information that causes variation in the probability. By switching between probability states in accordance with the dependence, it is possible to perform coding adapted to the probability.
- FIG. 7 illustrates a concept of context model.
- a binary data symbol is assumed.
- Options 0-2 available for ctx are defined on an assumption that the probability state of the data symbols to which ctx is applied changes depending on the condition.
- the value for ctx is switched from one to another in accordance with interdependence between coding data for a given macroblock and coding data for a neighboring macroblock.
- FIG. 8 illustrates an example of context model for a motion vector, the example being taken from D. Marpe et al. “Video Compression Using Context-Based Adaptive Arithmetic Coding”, International Conference on Image Processing 2001.
- the context model here is relevant to a motion vector in a macroblock.
- a motion vector prediction error mvdk(c) a difference between the motion vector for block C and a prediction thereof from its spatial neighbors, is coded.
- ctx_mvd (C, k) indicates a context model.
- mvdk(A) indicates a motion vector prediction error for block A
- mvdk(B) indicates a motion vector prediction error for block B.
- mvdk(A) and mvdk(B) are used to define an evaluated value ek(C) evaluated for switching between context models.
- the evaluated value ek(C) indicates a variation in motion vectors in the neighbors. Generally, if ek(C) is small, mvdk (C) will have a small magnitude. If ek(C) is large, it is more likely that mvdk(C) will have a large magnitude.
- a context model is one of predefined sets of variations of probability estimate. In this case, there are three variation sets of probability estimate.
- context models are defined for coding data including the coding mode information 13 , the spatial prediction mode 14 and the orthogonal transform coefficient data 17 .
- the context models are shared by the arithmetic coding unit 6 of the video coding apparatus and the arithmetic decoding unit 27 of the video decoding apparatus.
- the context model determination unit 28 of the arithmetic coding unit 6 of FIG. 5 selects a model defined for a type of coding data.
- the coding data is turned into a binary sequence by the binarization unit 29 so that a context model is applied to each bin (binary location) of the binary sequence.
- the rule for binarization is in accordance with the general distribution of values of the coding data.
- a variable-length binary sequence results.
- Each context model includes variations giving an estimate of the probability for 0/1.
- the probability generation unit 30 refers to the context model determined in step ST 1 so as to generate the probability of occurrence of 0/1 in each bin.
- FIG. 8 shows an example of the evaluated value ek(C) for selection of the probability.
- the probability generation unit 30 determines the evaluated value such as ek(C) shown in FIG. 8 for selection of the probability.
- the probability determination unit 30 accordingly examines options available in the context model referred to and determines which variation of probability estimate is to be used for coding of a current bin.
- the coding unit 31 performs arithmetic coding as described with reference to the related art (step ST 4 ).
- the actual coding data 32 (0 or 1) is fed back into the probability generation unit 30 .
- the frequency of occurrence of 0/1 is counted to update the variation of probability estimate in the context model used (step ST 5 ).
- An arithmetic code 33 generated by the coding unit 31 from the coding data 32 (0 or 1) is fed to the transmission unit generation unit 35 and multiplexed into data constituting a transmission unit as described in 6) below (step ST 6 ).
- Arithmetic coding turns a plurality of sequences of coding data into a single codeword.
- a special consideration that should be given to a video signal is that a decoded image should be created in units of frames so that a frame memory is updated. This is because a video signal is characterized by motion prediction between frames and frame-by-frame display. Therefore, it is necessary to identify a boundary between frames in arithmetically compressed data.
- the compressed data for transmission may have to be partitioned into units smaller than a frame.
- An example of sub-frame unit is known as a slice structure produced by grouping a plurality of macroblocks in raster scan order.
- FIG. 9 illustrates a slice structure
- a macroblock is encircled by dotted lines.
- a slice structure is used as a unit for resynchronization in decoding.
- slice data are mapped onto a payload of a IP transport packet.
- RTP real-time transport protocol
- An RTP packet has a time stamp attached to its header portion.
- Slice data for video may be mapped onto a payload portion for transmission.
- Kikuchi et al. “RTP Payload Format for MPEG- 4 Audio/Visual Streams” RFC 3016 describes a method for mapping the MPEG-4 compressed video data onto an RTP payload in units of MPEG- 4 slices (video packets).
- RTP packets are transmitted as UDP packets, Since UDP does not support retransmission, the entirety of slice data may not reach a decoding apparatus when a packet loss occurs. If the coding of subsequent slice data is conditioned on information of the discarded slice, appropriate decoding is not possible even if the subsequent slice data arrive at the decoding apparatus normally.
- a register value representing a codeword of arithmetic coding are not maintained when arithmetic coding of the last macroblock in Slice 4 is completed.
- the register is reset to an initial state so that coding is restarted. In this way, it is impossible to exploit correlation that exits between the end of Slice 4 and the head of Slice 5 , resulting in a lower coding efficiency.
- a general practice in the design is that resilience to unexpected loss of slice data due to transmission errors is improved at the cost of a decrease in the coding efficiency.
- the transmission unit generation unit 35 provides a method and an apparatus for improving the adaptability of the design. More specifically, where the possibility of loss of slice data due to transmission errors is extremely low, interdependence between slices is not disregarded but is fully exploited.
- the transmission unit generation unit 35 receives a transmission unit designation signal 36 at the end of a transmission unit.
- the transmission unit designation signal 36 is provided as a control signal in the video coding apparatus.
- the transmission unit generation unit 35 generates transmission units by partitioning the codeword of the arithmetic code 33 received from the arithmetic coding unit 31 in accordance with the timing of the input of the transmission unit designation signal 36 .
- the transmission unit generation unit 35 multiplexes the arithmetic code 33 derived from the coding data 32 sequentially into bits that constitute the transmission unit (step ST 6 ).
- the transmission unit generation unit 35 determines whether coding of data for macroblocks that fit into a transmission unit has been completed, by referring to the transmission unit designation signal 36 (step ST 8 ). When it is determined that coding to build the entirety of a transmission unit has not been completed, control is returned to step ST 1 so that the determination of a context model and subsequent steps are performed.
- the transmission unit generation unit 35 constructs a header for the subsequent transmission unit as described below (step ST 9 ).
- the unit 35 provides a register reset flag indicating whether a register value, which designates a probability line segmentation status, i.e. an arithmetic coding process for codeword representation, should be reset in the next transmission unit.
- the register reset flag is set to indicate that the register should be reset.
- the unit 35 provides an initial register value, which indicates a register value to be used to start arithmetic coding/decoding to build/decompose the next transmission unit, only when the register reset flag indicates that the register should not be reset. As shown in FIG. 5 , the initial register value is provided as an initial register value 34 fed from the coding unit 31 to the transmission unit generation unit 35 .
- FIG. 10 illustrates a bit stream generated by the arithmetic coding unit 6 .
- slide header data for compressed video slice data includes a slice start code, the register reset flag described in “1” above, the initial register value multiplexed into the bit stream only when the register reset flag indicates that the register should not be reset.
- FIG. 10 shows the slice header data and the compressed video slice data being multiplexed into the same bit stream.
- the slice header data may be carried in a separate bit stream for offline transmission and the compressed video slice data may have attached thereto ID information referring to the corresponding slice header data.
- the stream is transmitted in accordance with the IP protocol.
- the header data is transmitted using TCP/IP that provides relatively high reliability.
- the compressed video data is transmitted using RTP/UDP/IP characterized by small delays.
- the data transmitted using RTP/UDP/IP need not be partitioned into slices.
- video signals may be coded by fully exploiting the available context models in a frame.
- Resultant arithmetically coded data may be partitioned for transmission prior to RTP packetization.
- the fruit of arithmetic coding processes is consistently obtained without being affected by the conditions occurring in a circuit. Therefore, a bit stream produced without the constraints of the slice structure can be transmitted, while ensuring a relatively high degree of resilience to errors.
- FIG. 12 shows a register reset control flag, indicating whether a syntax comprising the register reset flag and the initial register value is to be used, being multiplexed into a header attached to a video sequence comprising a plurality of video frames.
- the register reset control flag is set to indicate that the register is always reset at the head of a slice throughout the video sequence.
- the register reset flag and the initial register value need not be multiplexed on a slice-by-slice level.
- register reset control flag may of course be attached to a header of any desired video frame (Nth frame, N+1th frame) in a video sequence.
- FIG. 13 shows an internal construction of the arithmetic decoding unit 27 of FIG. 4 .
- the arithmetic decoding unit 27 comprises a transmission unit decoding initialization unit 37 , a context model determination unit 28 , a binarization unit 29 , a probability generation unit 30 and a decoding unit 38 .
- the transmission unit decoding initialization unit 37 initializes, for a transmission unit received, an arithmetic decoding process, based on added information related to an arithmetic coding and included in a header.
- the context model determination unit 28 identifies the type of data, i.e.
- the binarization unit 29 generates a binarization rule defined for the identified decoding data type.
- the probability generation unit 30 gives the probability of occurrence of each bin (0 or 1) in accordance with the binarization rule and the context model.
- the decoding unit 38 performs arithmetic decoding based on the probability thus generated so as to restore the motion vector 5 , the coding mode information 13 , the spatial prediction mode 14 and the orthogonal transform coefficient data 17 in accordance with the binary sequence resulting from arithmetic decoding and the binarization rule.
- FIG. 14 is a flowchart showing a process performed by the arithmetic decoding unit 27 of FIG. 13 .
- the status in the decoding unit 38 is initialized before arithmetic decoding is started, based on the register reset flag and the initial register value 34 multiplexed into each transmission unit such as a slice (step ST 10 ), the register reset flag designating whether the register value indicating the arithmetic coding process is reset or not.
- the register reset flag designating whether the register value indicating the arithmetic coding process is reset or not.
- the initial register value 34 is not used.
- steps ST 1 -ST 3 are identified as steps ST 1 -ST 3 , respectively, in the flowchart and the description thereof is omitted since they are similar to the context model determination process ST 1 identified as the process 1), the binarization process ST 2 identified as the process 2) and the probability generation process ST 3 identified as the process 3) in the video coding apparatus.
- the probability of occurrence of bin to be restored is identified through the processes 1)-7).
- the decoding unit 38 restores the value of bin (step ST 11 ), in accordance with the arithmetic decoding process described with reference to the related art.
- the decoding unit 38 counts the frequency of occurrence of 0/1 so as to update the probability of occurrence of bin (step ST 5 ).
- the decoding unit 38 further confirms the value of bin restored by comparing it with a binary series pattern defined by the binarization rule (step ST 12 ).
- step ST 3 for generating the probability for 0/1 of each bin and the subsequent processes are performed for a second time (steps ST 3 , ST 11 , ST 5 , ST 12 ).
- step ST 13 the context model determination process of step ST 1 and the subsequent processes are performed repeatedly until the entirety of transmission unit is decoded.
- the slice header date has the register flag and the initial register value 34 attached thereto, the register reset flag designating whether the register value indicating the arithmetic coding process is reset or not. Accordingly, it is possible to perform coding without losing the continuity of the arithmetic coding process. The coding efficiency is maintained, while the resilience to transmission errors is improved. Decoding of resultant codes is also possible.
- a slice structure is assumed as a transmission unit.
- the present invention is equally applicable to a configuration in which a video frame is a transmission unit.
- the second embodiment provides a method and an apparatus for improving the adaptability of the design.
- the coding efficiency with which the transmission unit is coded is adaptively controlled such that the slice-to-slice interdependence in respect of arithmetic coding is be disregarded but fully exploited in a case where the probability of loss of slice data due to transmission errors is extremely low and the slice-to-slice interdependence may be disregarded in a case where the probability of loss of slice data is high.
- FIG. 15 shows an internal construction of the arithmetic coding unit 6 according to the second embodiment.
- a difference between the arithmetic coding unit 6 according to the second embodiment and the arithmetic coding unit 6 shown in FIG. 5 according to the first embodiment is that the probability generation unit 30 delivers a context model status 39 to be multiplexed into a slice header to the transmission unit generation unit 35 .
- FIG. 16 is a flowchart showing the process performed by the arithmetic coding unit 6 of FIG. 15 .
- the context model status 39 that occurs in the process of step ST 3 for generating the probability of occurrence of 0/1 for each bin i.e. the learning status 39 that occurs in the probability generation unit 30 as it updates the variation of probability estimate in a context model, is multiplexed into the slice header in the header construction process (step ST 9 ) in the transmission unit generation unit 35 for constructing a header for the next transmission unit, in a similar configuration as the register value that occurs in the binary arithmetic coding process of step ST 4 .
- FIG. 17 illustrates a context model learning status. A description will be given of the meaning of the context model learning status 39 using FIG. 17 .
- FIG. 17 shows a case where there are a total of n macroblocks in a kth transmission unit.
- a context model ctx used only once is defined for each macroblock and the probability in ctx varies macroblock to macroblock.
- the transmission unit generation unit 35 transmits data indicating the status of ctx k (n ⁇ 1) in the header of the k+1th transmission unit.
- FIG. 18 illustrates a bit stream generated by the arithmetic coding unit 6 according to the second embodiment.
- the slice header for the compressed video slice data has information indicating the context model status of the preceding slice attached thereto, in addition to the slice start code, the register reset flag and the initial register value according to the first embodiment shown in FIG. 10 .
- the register reset flag may include an indication of whether the context model status is multiplexed or not, in addition to an indication of whether the initial register value is multiplexed or not.
- a flag other than the register reset flag may indicate whether the context model status is multiplexed or not.
- FIG. 18 shows the slice header data and the compressed video slice data being multiplexed into the same bit stream.
- the slice header data may be carried in a separate bit stream for offline transmission and the compressed data may have attached thereto ID information referring to the corresponding slice header data.
- step ST 10 for transmission unit decoding initialization the context model status 39 restored from the slice header is output to the process of step ST 3 for generating the probability of occurrence of 0/1 for each bin by referring to the context model determined in step ST 1 .
- the context model status 39 output to step ST 3 is used to generate the probability of occurrence of 0/1 in the probability generation unit 30 .
- context models providing significant contribution to the coding efficiency may be selected so that the associated status is multiplexed.
- motion vectors and orthogonal transform coefficient data represent a large portion in the entire coding volume so that the status may be inherited for these context models only.
- the type of context model for which the status is inherited may be explicitly multiplexed into a bit stream so that the status may be selectively inherited for important context models depending on the local condition that occurs in video.
- the slice header data has the register flag, the initial register value 34 and the context model status information attached thereto, the initial register flag designating whether the register value indicating the arithmetic coding process is reset or not, and the context model status information indicating the context model status of the immediately preceding slice. Accordingly, it is possible to perform coding without losing the continuity of the arithmetic coding process. The coding efficiency is maintained, while the resilience to transmission errors is improved.
- a slice structure is assumed as a transmission unit.
- the present invention is equally applicable to a configuration in which a video frame is a transmission unit.
- the coding efficiency is improved through probability adaptation using context models, by exploiting the context model status of block B in determining the probability for block C.
- the coding efficiency with which the transmission unit is coded is adaptively controlled such that the slice-to-slice interdependence is not disregarded but the context model status for the immediately preceding slice is fully exploited in a case where the probability of loss of slide data due to transmission errors is extremely low.
- the context model status for the immediately preceding slice is not used and the slice-to-slice interdependence is disregarded in a case where the probability of loss of slice data is high.
- the second embodiment has been described assuming that information indicating the context model status for data in the immediately preceding slice is attached in each slice header in addition to the register reset flag and the initial register value according to the first embodiment.
- the register reset flag and the initial register value according to the first embodiment may be omitted so that only the information indicating the context model status for data in the immediately preceding slice is attached in each slice header.
- the context model status reset flag (see FIG. 21 ) may be provided irrespective of whether the register reset flag and the initial register value according to the first embodiment are provided, so that only when the context model status reset flag is off, i.e. the context model status is not reset, the information indicating the context model status for data in the immediately preceding slice is attached for use in decoding.
- transmission units are constructed according to a data partitioning format in which coding data are grouped according to a data type.
- a slice of data type 2 or TYPE_MVD is transmitted as slice data in which are collected as many motion vector information items as there are macroblocks fitting into a slice.
- FIG. 21 shows an example of bit stream generated by the arithmetic coding unit 6 according to the third embodiment.
- the slice header has attached thereto a slice start code, a data type ID designating TYPE_MVD, a context model status reset flag and information indicating the context model status for motion vectors occurring in the immediately preceding slice.
- the slice header has attached thereto a slice start code, a data type ID designating TYPE_COEFF_Y, a context model status reset flag and information indicating the context model status for orthogonal transform coefficient data occurring in the immediately preceding slice.
- FIG. 21 shows the slice header data and the compressed data being multiplexed into the same bit stream.
- the slice header data may be carried in a separate bit stream for offline transmission and the compressed data may have attached thereto ID information referring to the corresponding slice header data.
- the arithmetic coding unit 6 is implemented such that the transmission unit generation unit 35 reconstructs macroblock data in a slice in accordance with the data partitioning rule described above, so that the ID information designating the data type and the context model learning status corresponding to the data type are collected in slice data.
- the arithmetic decoding unit 27 is implemented such that, for arithmetic decoding, a context model to be used is determined by allowing the transmission unit decoding initialization unit 37 to notify the context model determination unit 28 of the data type ID multiplexed into the slice header, and the context model learning status 39 is inherited across bounds of slices by allowing the transmission decoding initialization unit 37 to notify the probability generation unit 30 of the context model learning status.
- a video signal is subject to compression coding by being divided into transmission units grouped according to predetermined data types.
- the video signal belonging to the transmission unit is arithmetically coded such that coding is continued across bounds of transmission units by inheriting, instead of resetting, the symbol occurrence probability learning status from the earlier transmission unit also grouped according to the data type. Accordingly, a high degree of error resilience is ensured and the coding efficiency of arithmetic coding is improved in a configuration in which data are grouped according to predetermined data types.
- video frames may also be organized according to a data type.
- bit stream syntax according to the third embodiment shown in FIG. 21 it is assumed that the header of slice data for a given data type has attached thereto a context model status reset flag and information indicating the context model status of data in the immediately preceding slice when the flag is off.
- the header of slice data for a given data type may have attached thereto a context model status reset flag and information indicating the context model status of data in the immediately preceding slice when the flat is off, in addition to the register reset flag and the initial register value.
- the context model status reset flag may be omitted so that the information indicating the context model status of data in the immediately preceding slice is always attached for use in decoding, irrespective of whether the register reset flag and the initial register value are provided.
- video data is given as an example of digital signals.
- the present invention is equally applicable to digital signals for audio, digital signals for sill pictures, digital signals for texts and multimedia digital signals in which these are mixed.
- a slice is given as an example of digital signal transmission unit.
- a transmission unit constructed according to data partitioning for collecting data in a slice according to a data type, is given as an example.
- the present invention also finds an application in a storage system. In this case, a storage unit, instead of a transmission unit may be constructed.
- a digital signal coding apparatus is suitably used for transmission of a compressed video signal in which a high degree of error resiliency is ensured and the coding efficiency for arithmetic coding is improved.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
In a bit stream syntax containing compressed video slice data for compressed video data of a slice structure, a slice header for compressed video slice data has attached thereto a slice start code, a register reset flag indicating whether a register value, which designates a status of a codeword occurring in an arithmetic coding process, should be reset in the next transmission unit, an initial register value which indicates a register value to be used to start arithmetic coding/decoding to build/decompose the next transmission unit, only when the register reset flag indicates that the register should not be reset.
Description
This application is a Divisional of application Ser. No. 10/480,046, filed on Dec. 9, 2003, now U.S. Pat. No. 7,095,344, for which priority is claimed under 35 U.S.C. § 120. Application Ser. No. 10/480,046 is the national phase of PCT International Application No. PCT/JP03/04578 filed on Apr. 10, 2003 under 35 U.S.C. § 371, which international application claims priority under 35 U.S.C. § 119(a)-(d) on Japanese Application No. 2002-124114, filed on Apr. 25, 2002. The entire contents of each of these applications are hereby incorporated by reference.
TECHNICAL FIELDThe present invention relates to a digital signal coding apparatus, a digital signal decoding apparatus, a digital signal arithmetic coding method and a digital signal arithmetic decoding method used for video compression coding and compressed video data transmission.
BACKGROUND ARTIn International standards for video coding such as MPEG and ITU-T H.26x, Huffman coding has been used for entropy coding. Huffman coding provides an optimum coding performance when individual information symbols are to be represented as individual codewords. Optimum performance is not, however, guaranteed when a signal such as a video signal exhibits localized variation so that the probability of appearance of information symbols varies.
Arithmetic coding is proposed as a method that adapts dynamically to the probability of appearance of individual information symbols and is capable of representing a plurality of symbols as a single codeword.
The concept behind arithmetic coding will be outlined by referring to Mark Nelson, “Arithmetic Coding+Statistical Modeling=
Data Compression Part1—Arithmetic Coding”, Dr. Dobb's Journal, February 1991. It is assumed that an information source generates information symbols comprising alphabets and a message “BILL GATES” is arithmetically coded.
The probability of appearance of individual characters is defined as shown in FIG. 1. As indicated in a column “RANGE” of
FIG. 1, portions of a probability line defined by a segment [0, 1) are uniquely established for respective characters.
Subsequently, the characters are subject to a coding process. First, the letter “B” is coded. This is done in the form of identifying a range [0.2, 0.3) on the probability line for that character. Therefore, the letter “B” corresponds to a set of High value and a Low value in the range [0.2, 0.3).
To code “I” subsequently, the range [0.2, 0.3) identified in the process of coding “B” is regarded as a new segment [0, 1) so that a sub-segment [0.5, 0.6) is identified therein. The process of arithmetic coding is a process of successively bounding rages on the probability line.
Repeating the process for the characters, the result of arithmetic coding “BILL GATES” is represented as a Low value “0.2572167752” of a segment after the coding of the letter “S” is completed.
A decoding process is an inverse of the coding process.
First, the coding result “0.2572167752” is examined to determine a range on the probability line in which the result lies and determine a character assigned to the range. In this case, we restore “B”.
Thereafter, the Low value for “B” is subtracted from the result and the resultant value is divided by the magnitude of the range of “B”, producing “0.572167752”. This enables us to restore “I” corresponding to the segment [0.5, 0.6). The process is repeated until “BILL GATES” is restored by decoding.
By performing an arithmetic coding as described above, a message of extreme length could be mapped onto a single codeword. In actual implementation, it is impossible to operate with infinite decimal precision. Moreover, multiplication and division are necessary for coding and decoding so that heavy computational load is imposed. These problems are addressed by floating-point decimal computation using, for codeword representation, registers of an integer type. The Low value is approximated by a power of 2 so that multiplication and division are replaced by shift operations. Ideally, arithmetic coding according to the above-described process enables entropy coding adapted to the probability of occurrence of information symbols. More specifically, when the probability of occurrence varies dynamically, the coding efficiency higher than that of Huffman coding is available by tracing the variation and updating the table of
FIG. 1appropriately.
Since the digital signal arithmetic coding method and digital arithmetic decoding method according to the related art are configured as described above, each video frame is divided into segments for transmission in units that allows resynchronization (for example, MPEG-2 slice structure) in order to minimize degradation occurring in an entropy-coded video signal due to transmission errors.
Huffman coding maps individual coding symbols into codewords of an integer bit length so that transmission unit is immediately defined as a group of codewords. In arithmetic coding, however, a special code for explicitly suspending a coding process is required. In addition, for resumption of coding, the process of learning the probability of occurrence of earlier symbols should be reset so as to output bits for establishing a code. As a result, the coding efficiency may suffer prior to and subsequent to the suspension. Another problem to be addressed is that, when an arithmetic coding process is not reset while coding a video frame and the frame has to be divided into small units such as packet data for transmission, decoding of a packet cannot take place without the immediately preceding packet data so that significant adverse effects on video quality result when a transmission error or a packet loss due to a delay occurs.
The present invention addresses these problems and has an objective of providing a digital signal coding apparatus and a digital signal coding method capable of ensuring a high degree of error resiliency and improving a coding efficiency of arithmetic coding.
The present invention has a further objective of providing a digital signal decoding apparatus and a digital signal decoding method capable of proper decoding in a situation where the coding apparatus continues coding across bounds of transmission units, by inheriting, instead of resetting, the arithmetic coding status for earlier transmission units or the symbol probability learning status.
DISCLOSURE OF THE INVENTIONIn accordance with a digital signal coding apparatus and a digital signal coding method according to the present invention, a digital signal partitioned into units is compressed by arithmetic coding. Information representing an arithmetic coding status, occurring when a transmission unit has been coded, may be multiplexed into data constituting a subsequent transmission unit. Alternatively, a probability of occurrence of coding symbols may be determined, based on dependence of the digital signal coded on the signal included in one or a plurality of adjacent transmission units, the probability of occurrence may be learned by counting a frequency of occurrence of coding symbols and information representing a probability learning status, occurring when a given transmission unit has been coded, may be multiplexed into data constituting a subsequent transmission unit.
With this, it is possible to continue coding across bounds of transmission units by inheriting, instead of resetting, the earlier arithmetic coding status or the symbol probability learning status. Thus, a high degree of error resilience and an improved coding efficiency of arithmetic coding result.
In accordance with a digital signal decoding apparatus and a digital signal decoding method according to the present invention, a decoding process may be initialized when decoding of a transmission unit is started, based on information multiplexed into data constituting the transmission unit and representing an arithmetic coding status. Alternatively, a probability of symbol occurrence used in decoding the transmission unit may be initialized when decoding of a transmission unit is started, based on information multiplexed into data constituting the transmission unit and representing a symbol occurrence probability learning status, the compressed digital signal received in the units may be decoded, by determining a probability of occurrence of restored symbols, based on dependence of the digital signal decoded on the signal included in one or a plurality of adjacent transmission units, and by learning the probability by counting a frequency of the restored symbols.
With this, proper decoding is possible in a situation where the coding apparatus continues coding across bounds of transmission units, by inheriting, instead of resetting, the arithmetic coding status for earlier transmission units or the probability learning status.
BRIEF DESCRIPTION OF THE DRAWINGSshows the probability of occurrence of individual characters when a phrase “BILL GATES” is arithmetically coded.
shows an arithmetic coding result when the phrase “BILL GATES” is arithmetically coded.
shows a construction of a video coding apparatus (digital signal coding apparatus) according to a first embodiment of the present invention.
shows a construction of a video decoding apparatus (digital signal decoding apparatus) according to the first embodiment.
shows an internal construction of an
arithmetic coding unit6 of FIG. 3.
is a flowchart showing processes performed by the
arithmetic coding unit6 of FIG. 5.
illustrates a concept of a context model.
illustrates an example of context model for a motion vector.
shows a slice structure.
shows an example of bit stream generated by the
arithmetic coding unit6.
shows another example of bit stream generated by the
arithmetic coding unit6.
shows another example of bit stream generated by the
arithmetic coding unit6.
shows an internal construction of an
arithmetic decoding unit27 of FIG. 4.
is a flowchart of processes performed by the
arithmetic decoding unit27 of FIG. 13.
shows an internal construction of the
arithmetic coding unit6 according to a second embodiment of the present invention.
is a flowchart showing processes performed by the
arithmetic coding unit6 of FIG. 15.
illustrates a context model learning status.
shows an example of bit stream generated by the
arithmetic coding unit6 according to the second embodiment.
shows an internal construction of the
arithmetic decoding unit27 according to the second embodiment.
is a flowchart showing processes performed by the
arithmetic decoding unit27 of FIG. 19.
shows an example of bit stream generated by the
arithmetic coding unit6 according to a third embodiment of the present invention.
Hereinafter, details of the invention will be explained by describing the best mode for carrying out the invention with reference to the attached drawings.
First Embodiment
A first embodiment of the present invention is presented using an example, disclosed in D. Marpe et al. “Video Compression Using Context-Based Adaptive Arithmetic Coding”, International Conference on Image Processing 2001, in which arithmetic coding is applied to a video coding scheme where a square area of 16×16 pixels (hereinafter, referred to as a macroblock) produced by uniformly dividing a video frame is a coding unit.
shows a construction of a video coding apparatus (digital signal coding apparatus) according to the first embodiment of the present invention. Referring to
FIG. 3, a
motion estimation unit2 extracts a
motion vector5 for each of the macroblocks of an
input video signal1, using a
reference image4 stored in a
frame memory3a. A
motion compensation unit7 constructs a temporal predicted
image8 based on the
motion vector5 extracted by the
motion estimation unit2. A
subtractor51 determines a difference between the
input video signal1 and the predicted
image8 and outputs the difference as an temporal
prediction error signal9.
A
spatial prediction unit10a refers to the
input video signal1 so as to generate a spatial
prediction error signal11 by making a prediction from spatially neighboring areas in a given video frame. A coding mode determination unit 12 selects a mode capable of coding a target macroblock most efficiently and outputs coding
mode information13, the mode selected by the code mode determination unit 12 being one of a motion compensation mode for coding the temporal
prediction error signal9, a skip mode for a case where the
motion vector5 is zero and the temporal
prediction error signal9 has a null component, and an intra mode for coding the spatial
prediction error signal11.
An
orthogonal transform unit15 subjects the signal selected for coding by the coding mode determination unit 12 to orthogonal transform so as to output orthogonal transform coefficient data. A
quantization unit16 quantizes the orthogonal transform coefficient data with a granularity indicated by a
quantization step parameter23 determined by a
coding controller22.
An
inverse quantization unit18 subjects orthogonal
transform coefficient data17 output from the
quantization unit16 with the granularity indicated by the
quantization step parameter23. An inverse
orthogonal transform unit19 subjects the orthogonal transform coefficient data subjected to inverse quantization by the
inverse quantization unit18. A switching
unit52 selects for output the temporal predicted
image8 output from the
motion compensation unit7 or a spatial predicted
image20 output from the
spatial prediction unit10a, in accordance with the
coding mode information13 output from the coding mode determination unit 12. An
adder53 adds the output signal from the switching
unit52 to the output signal from the inverse
orthogonal unit19 so as to generate a local decoded
image21 and stores the locally decoded
image21 in the
frame memory3a as the
reference image4.
An
arithmetic coding unit6 subjects coding data including the
motion vector5, the
coding mode information13, an
spatial prediction mode14, the orthogonal
transform coefficient data17 to entropy coding, so as to output a coding result via a
transmission buffer24 as compressed
video data26. The
coding controller22 controls components including the coding mode determination unit 12, the
quantization unit16 and the
inverse quantization unit18.
shows a configuration showing a video decoding apparatus (digital signal decoding apparatus) according to the first embodiment of the present invention. Referring to
FIG. 4, an
arithmetic coding unit27 performs entropy decoding so as to restore parameters including the
motion vector5, the
coding mode information13, the
spatial prediction mode14, the
orthogonal coefficient data17 and the
quantization step parameter23. The
inverse quantization unit18 subjects the
orthogonal coefficient data17 and the
quantization step parameter23 restored by the
arithmetic decoding unit27 to inverse quantization. The inverse
orthogonal transform unit19 subjects the orthogonal
transform coefficient data17 and the
quantization step parameter23 thus inverse-quantized to inverse orthogonal transform.
The
motion compensation unit7 restores the temporal predicted
image8 using the
motion vector5 restored by the
arithmetic decoding unit27. A
spatial prediction unit10b restores the spatial predicted
image20 from the
spatial prediction mode14 restored by the
arithmetic decoding unit27.
A switching
unit54 selects for output the temporal predicted
image8 or the spatial predicted
image20 in accordance with the
coding mode information13 restored by the
arithmetic decoding unit27. An
adder55 adds the prediction error signal output from the inverse
orthogonal transform unit19 to the output signal from the switching
unit54 so as to output a decoded
image21. The decoded
image21 is stored in a
frame memory3b so as to be used to generate a predicted image for a frame subsequent to the decoded
image21.
A description will now be given of the operation according to the first embodiment.
First, the operation of the video coding apparatus and the video decoding apparatus will be outlined.
(1) Outline of the Operation of the Video Coding Apparatus
The
input image signal1 is input in units of macroblocks derived from division of individual video frames. The
motion estimation unit2 of the video coding apparatus estimates the
motion vector5 for each macroblock using the
reference image4 stored in the
frame memory3a.
The
motion compensation unit7 constructs the temporal predicted
image8 based on the
motion vector5 when the
motion detection unit2 extracts the
motion vector5.
The
subtractor51 receives the temporal predicted
image8 from the
motion compensation unit7 and determines a difference between the
input image signal1 and the temporal predicted
image8. The
subtractor51 then outputs the difference, the temporal
prediction error signal9, to the coding mode determination unit 12.
The
spatial prediction unit10a refers to the
input video signal1 so as to generate the spatial
prediction error signal11 by making a prediction from spatially neighboring areas in a given video frame.
The coding mode determination unit 12 selects a mode capable of coding a target macroblock most efficiently and outputs the
coding mode information13 to the
arithmetic coding unit6, the mode selected by the code mode determination unit 12 being one of a motion compensation mode for coding the temporal
prediction error signal9, a skip mode for a case where the
motion vector5 is zero and the temporal
prediction error signal9 has a null component, and an intra mode for coding the spatial
prediction error signal11. When selecting the motion prediction mode, the coding mode determination unit 12 outputs the temporal
prediction error signal9 to the
orthogonal transform unit15 as a signal that requires coding. When selecting the intra mode, the coding mode determination unit 12 outputs the spatial
prediction error signal11 to the
orthogonal transform unit15 as a signal that requires coding.
When the motion prediction mode is selected, the
motion vector5 is output from the
motion estimation unit2 to the
arithmetic coding unit6 as information that requires coding. When the intra mode is selected, the
intra prediction mode14 is output from the
spatial prediction unit10a to the
arithmetic coding unit6 as information that requires coding.
The
orthogonal transform unit15 receives the signal that requires coding from the coding mode determination unit 12, subjects the signal to orthogonal transform and outputs the resultant orthogonal transform coefficient data to the
quantization unit16.
The
quantization unit16 receives the orthogonal transform coefficient data from the
orthogonal transform unit15 and quantizes the orthogonal transform coefficient data with a granularity indicated by the
quantization parameter23 determined by the
coding controller22.
By allowing the
coding controller22 to control the
quantization step parameter23, appropriate balance between a coding rate and quality is ensured. Generally, the volume of arithmetically coded data stored in the
transmission buffer24 for transmission is examined at predetermined intervals so that the
quantization step parameter23 is adjusted in accordance with the
residual volume25 of the data that remain in the buffer. For example, when the
residual volume25 is large, the coding rate is controlled to be low and, when the
residual volume25 is relatively small, the coding rate is controlled to be high so that the quality is improved.
The
inverse quantization unit18 receives the orthogonal
transform coefficient data17 from the
quantization unit16 and subjects the orthogonal
transform coefficient data17 to inverse quantization with the granularity indicated by the
quantization step parameter23.
The inverse
orthogonal transform unit19 subjects the orthogonal transform coefficient data subjected to inverse quantization by the
inverse quantization unit18 to inverse orthogonal transform.
The switching
unit52 selects from output the temporal predicted
image8 output from the
motion compensation unit7 or the spatial predicted
image20 output from the
spatial prediction unit10a, in accordance with the
coding mode information13 output from the coding mode determination unit 12. When the
coding mode information13 indicates the motion prediction mode, the switching
unit52 selects for output the temporal predicted
image8 output from the
motion compensation unit7. When the
coding mode information13 indicates the intra mode, the switching
unit52 selects for output the spatial predicted
image20 output from the
spatial prediction unit10a.
The
adder53 adds the output signal from the switching
unit52 to the output signal from the inverse
orthogonal transform unit19 so as to generate the locally decoded
image21. The locally decoded
image21 is stored in the
frame memory3a as the
reference image4 so as to be used for motion prediction for subsequent frames.
The
arithmetic coding unit6 subjects coding data including the
motion vector5, the
coding mode information13, the
spatial prediction mode14 and the orthogonal
transform coefficient data17 to entropy coding according to steps described later and outputs the coding result via the
transmission buffer24 as the
compressed video data26.
(2) Outline of the Operation of the Video Decoding Apparatus
The
arithmetic decoding unit27 receives the
compressed video data26 from the video coding apparatus and subjects the received data to entropy decoding described later, so as to restore the
motion vector5, the
coding mode information13, the
spatial prediction mode14, the orthogonal
transform coefficient data17 and the
quantization step parameter23.
The
inverse quantization unit18 subjects the orthogonal
transform coefficient data17 and the
quantization step parameter23 restored by the arithmetic decoding unit to inverse quantization. The inverse
orthogonal transform unit19 subjects the orthogonal
transform coefficient data17 and the
quantization step parameter23 thus inverse-quantized to inverse orthogonal transform.
When the
coding mode information13 restored by the
arithmetic decoding unit27 indicates the motion prediction mode, the
motion compensation unit7 restores the temporal predicted
image8 using the
motion vector5 restored by the
arithmetic decoding unit27.
When the
coding mode information13 restored by the
arithmetic decoding unit27 indicates the intra mode, the
spatial prediction unit10b restores the spatial predicted
image20 using the
spatial prediction mode14 restored by the
arithmetic decoding unit27.
A difference between the
spatial prediction unit10a of the video coding apparatus and the
spatial prediction unit10b of the video decoding apparatus is that, while the
spatial prediction unit10a is capable of performing a step of most efficiently identifying the
spatial prediction mode14 from a variety of available spatial prediction modes, the
spatial prediction unit10b is limited to generating the spatial predicted
image20 from the
spatial prediction mode14 that is given.
The switching
unit54 selects the temporal predicted
image8 restored by the
motion compensation unit7 or the spatial predicted
image20 restored by the
spatial prediction unit10b, in accordance with the
coding mode information13 restored by the
arithmetic decoding unit27. The switching
unit54 then outputs the selected image to the
adder55 as the predicted image.
The
adder55, receiving the predicted image from the switching
unit54, adds the predicted image to the prediction error signal output from the inverse
orthogonal transform unit19 so as to obtain the decoded
image21.
The decoded
image21 is stored in the
frame memory3b so as to be used to generate predicted images for subsequent frames. A difference between the
frame memories3a and 3b consists in the difference between the video coding apparatus and the video decoding apparatus respectively hosting the memories.
(3) Arithmetic Coding and Decoding
A detailed description will now be given of arithmetic coding and decoding according to the features of the present invention. A coding process is performed by the
arithmetic coding unit6 of
FIG. 3 and adecoding process is performed by the
arithmetic decoding unit27 of FIG. 4.
shows a construction of the
arithmetic coding unit6 of FIG. 3. Referring to
FIG. 5, the
arithmetic coding unit6 comprises a context
model determination unit28, a
binarization unit29, a
probability generation unit30, a
coding unit31 and a transmission
unit generation unit35. The context
model determination unit28 determines a context model (described later) defined for each of individual types of coding data including the
motion vector5, the
coding mode information13, the
spatial prediction mode14 and the orthogonal
transform coefficient data17. The
binarization unit29 converts multilevel data in accordance with a binarization rule determined for each of types of coding data. The
probability generation unit30 assigns a probability of occurrence of binary values (0 or 1) for individual binary sequences after binarization. The
coding unit31 executes arithmetic coding based on the probability thus generated. The transmission
unit generation unit35 indicates the timing when the arithmetic coding should be suspended and constructs data constituting a transmission unit at the timing.
is a flowchart showing processes performed by the
arithmetic coding unit6 of FIG. 5.
1) Context Mode Determination Process (step ST1).
A context model is a model that defines dependence of probability of occurrence of data symbols on information that causes variation in the probability. By switching between probability states in accordance with the dependence, it is possible to perform coding adapted to the probability.
illustrates a concept of context model. In
FIG. 7, a binary data symbol is assumed. Options 0-2 available for ctx are defined on an assumption that the probability state of the data symbols to which ctx is applied changes depending on the condition.
In video coding according to the first embodiment, the value for ctx is switched from one to another in accordance with interdependence between coding data for a given macroblock and coding data for a neighboring macroblock.
illustrates an example of context model for a motion vector, the example being taken from D. Marpe et al. “Video Compression Using Context-Based Adaptive Arithmetic Coding”, International Conference on Image Processing 2001. The context model here is relevant to a motion vector in a macroblock.
Referring to
FIG. 8, for coding of a motion vector for block C, a motion vector prediction error mvdk(c), a difference between the motion vector for block C and a prediction thereof from its spatial neighbors, is coded. ctx_mvd (C, k) indicates a context model.
mvdk(A) indicates a motion vector prediction error for block A and mvdk(B) indicates a motion vector prediction error for block B. mvdk(A) and mvdk(B) are used to define an evaluated value ek(C) evaluated for switching between context models.
The evaluated value ek(C) indicates a variation in motion vectors in the neighbors. Generally, if ek(C) is small, mvdk (C) will have a small magnitude. If ek(C) is large, it is more likely that mvdk(C) will have a large magnitude.
Accordingly, the probability of occurrence of symbols in mvdk(C) should best be optimized based on ek(C). A context model is one of predefined sets of variations of probability estimate. In this case, there are three variation sets of probability estimate.
Aside from the motion vector, context models are defined for coding data including the
coding mode information13, the
spatial prediction mode14 and the orthogonal
transform coefficient data17. The context models are shared by the
arithmetic coding unit6 of the video coding apparatus and the
arithmetic decoding unit27 of the video decoding apparatus. The context
model determination unit28 of the
arithmetic coding unit6 of
FIG. 5selects a model defined for a type of coding data.
Selection, from a context model, a probability estimate variation is described as a probability generation process in 3) below.
2) Binarization Step (step ST2)
The coding data is turned into a binary sequence by the
binarization unit29 so that a context model is applied to each bin (binary location) of the binary sequence. The rule for binarization is in accordance with the general distribution of values of the coding data. A variable-length binary sequence results. By coding each bin instead of directly subjecting the multilevel coding data to arithmetic coding, the number of divisions on a probability line is reduced so that computation is simplified. Thus, binarization has a merit of simplifying a context model.
3) Probability Generation Process (step ST3)
As a result of the processes 1) and 2) above, binarization of the multilevel coding data and the setting of a context model applied to each bin are completed. The bins are now ready for coding. Each context model includes variations giving an estimate of the probability for 0/1. The
probability generation unit30 refers to the context model determined in step ST1 so as to generate the probability of occurrence of 0/1 in each bin.
shows an example of the evaluated value ek(C) for selection of the probability. The
probability generation unit30 determines the evaluated value such as ek(C) shown in
FIG. 8for selection of the probability. The
probability determination unit30 accordingly examines options available in the context model referred to and determines which variation of probability estimate is to be used for coding of a current bin.
4) Coding Process (steps ST3-ST7)
As a result of the step 3), the probability of occurrence of 0/1 necessary for arithmetic coding is determined and identified on a probability line. Accordingly, the
coding unit31 performs arithmetic coding as described with reference to the related art (step ST4).
The actual coding data 32 (0 or 1) is fed back into the
probability generation unit30. The frequency of occurrence of 0/1 is counted to update the variation of probability estimate in the context model used (step ST5).
For example, it is assumed, that, when a total of 100 bins have been coded using a variation of probability estimate in a given context model, the frequency of occurrence of 0/1 under that variation of probability estimate is 0.25, 0.75. When 1 is subsequently coded using the same variation of probability estimate, the frequency of occurrence of 1 is updated so that the probability of occurrence of 0/1 is updated to 0.247, 0.752. According to this mechanism, efficient coding adapted to the actual probability of occurrence is possible.
An
arithmetic code33 generated by the
coding unit31 from the coding data 32 (0 or 1) is fed to the transmission
unit generation unit35 and multiplexed into data constituting a transmission unit as described in 6) below (step ST6).
A determination is made as to whether the entirety of a binary sequence (bins) of the coding data has been coded (step ST7). If the coding has not been completed, control is returned to step ST3, where probability generation for each bin and subsequent steps are performed. If it is determined that the coding process is completed, a transmission unit generation process described below is performed.
5) Transmission Unit Generation Process (steps ST8-ST9)
Arithmetic coding turns a plurality of sequences of coding data into a single codeword. A special consideration that should be given to a video signal is that a decoded image should be created in units of frames so that a frame memory is updated. This is because a video signal is characterized by motion prediction between frames and frame-by-frame display. Therefore, it is necessary to identify a boundary between frames in arithmetically compressed data. For the purpose of multiplexing with other media data such as voice/audio and for the purpose of packet transmission, the compressed data for transmission may have to be partitioned into units smaller than a frame. An example of sub-frame unit is known as a slice structure produced by grouping a plurality of macroblocks in raster scan order.
illustrates a slice structure.
A macroblock is encircled by dotted lines. Generally, a slice structure is used as a unit for resynchronization in decoding. In a typical example, slice data are mapped onto a payload of a IP transport packet. For real-time IP transmission of media data such as video which is relatively less tolerant of transmission delays, real-time transport protocol (RTP) is often used. An RTP packet has a time stamp attached to its header portion. Slice data for video may be mapped onto a payload portion for transmission. For example, Kikuchi et al. “RTP Payload Format for MPEG-4 Audio/Visual Streams”, RFC 3016 describes a method for mapping the MPEG-4 compressed video data onto an RTP payload in units of MPEG-4 slices (video packets).
RTP packets are transmitted as UDP packets, Since UDP does not support retransmission, the entirety of slice data may not reach a decoding apparatus when a packet loss occurs. If the coding of subsequent slice data is conditioned on information of the discarded slice, appropriate decoding is not possible even if the subsequent slice data arrive at the decoding apparatus normally.
For this reason, it is necessary to ensure that any given slice is properly decoded in its entirety without resorting to any interdependence. For example, it should be ensured that
Slice5 is coded without using information of macroblocks located in
Slice3 above or
Slice4 below.
For improvement of arithmetic coding efficiency, however, it is desirable to adapt the probability of occurrence of symbols to surrounding conditions or to maintain the process of dividing a probability line. To
code Slice4 and
Slice5 independent of each other, for example, a register value representing a codeword of arithmetic coding are not maintained when arithmetic coding of the last macroblock in
Slice4 is completed. For
Slice5, the register is reset to an initial state so that coding is restarted. In this way, it is impossible to exploit correlation that exits between the end of
Slice4 and the head of
Slice5, resulting in a lower coding efficiency. Thus, a general practice in the design is that resilience to unexpected loss of slice data due to transmission errors is improved at the cost of a decrease in the coding efficiency.
The transmission
unit generation unit35 according to the first embodiment provides a method and an apparatus for improving the adaptability of the design. More specifically, where the possibility of loss of slice data due to transmission errors is extremely low, interdependence between slices is not disregarded but is fully exploited.
When the possibility of loss of slice data is high, interdependence between slices may be disregarded so that the coding efficiency is adaptively controlled in units of transmission.
The transmission
unit generation unit35 according to the first embodiment receives a transmission
unit designation signal36 at the end of a transmission unit. The transmission
unit designation signal36 is provided as a control signal in the video coding apparatus. The transmission
unit generation unit35 generates transmission units by partitioning the codeword of the
arithmetic code33 received from the
arithmetic coding unit31 in accordance with the timing of the input of the transmission
unit designation signal36.
More specifically, the transmission
unit generation unit35 multiplexes the
arithmetic code33 derived from the
coding data32 sequentially into bits that constitute the transmission unit (step ST6). The transmission
unit generation unit35 determines whether coding of data for macroblocks that fit into a transmission unit has been completed, by referring to the transmission unit designation signal 36 (step ST8). When it is determined that coding to build the entirety of a transmission unit has not been completed, control is returned to step ST1 so that the determination of a context model and subsequent steps are performed.
When it is determined that the coding to build the entirety of a transmission unit is complete, the transmission
unit generation unit35 constructs a header for the subsequent transmission unit as described below (step ST9).
1. The
unit35 provides a register reset flag indicating whether a register value, which designates a probability line segmentation status, i.e. an arithmetic coding process for codeword representation, should be reset in the next transmission unit. In the initially generated transmission unit, the register reset flag is set to indicate that the register should be reset.
2. The
unit35 provides an initial register value, which indicates a register value to be used to start arithmetic coding/decoding to build/decompose the next transmission unit, only when the register reset flag indicates that the register should not be reset. As shown in
FIG. 5, the initial register value is provided as an
initial register value34 fed from the
coding unit31 to the transmission
unit generation unit35.
illustrates a bit stream generated by the
arithmetic coding unit6.
As shown in
FIG. 10, slide header data for compressed video slice data includes a slice start code, the register reset flag described in “1” above, the initial register value multiplexed into the bit stream only when the register reset flag indicates that the register should not be reset.
With the added information described above, slice-to-slice continuity for arithmetic coding is maintained even when loss of the preceding slice occurs, by using the register reset flag and the initial register value included in the current slice header data. Accordingly, the coding efficiency is prevented from becoming low.
shows the slice header data and the compressed video slice data being multiplexed into the same bit stream. Alternatively, as shown in
FIG. 11, the slice header data may be carried in a separate bit stream for offline transmission and the compressed video slice data may have attached thereto ID information referring to the corresponding slice header data. Referring to
FIG. 11, the stream is transmitted in accordance with the IP protocol. The header data is transmitted using TCP/IP that provides relatively high reliability. The compressed video data is transmitted using RTP/UDP/IP characterized by small delays. In accordance with the separate transmission scheme of
FIG. 11for transmission of headers and transmission units, the data transmitted using RTP/UDP/IP need not be partitioned into slices.
Use of slices basically requires resetting of interdependence (context model) between a video signal for a given slice and signals for neighboring areas to ensure that decoding for a slice can be resumed independent of the other slices. This will bring about a drop in video coding efficiency.
Once it is ensured, however, that the initial register status is transmitted over TCP/IP, as shown in
FIG. 11, video signals may be coded by fully exploiting the available context models in a frame. Resultant arithmetically coded data may be partitioned for transmission prior to RTP packetization. According to this separate transmission scheme, the fruit of arithmetic coding processes is consistently obtained without being affected by the conditions occurring in a circuit. Therefore, a bit stream produced without the constraints of the slice structure can be transmitted, while ensuring a relatively high degree of resilience to errors.
In an alternative approach shown in
FIG. 12, a layer above may be used to indicate whether a syntax comprising the register reset flag and the initial register value is to be used.
FIG. 12shows a register reset control flag, indicating whether a syntax comprising the register reset flag and the initial register value is to be used, being multiplexed into a header attached to a video sequence comprising a plurality of video frames.
For example, when it is determined that the circuit quality is low and stable video transmission may be possible by consistently resetting registers throughout a video sequence, the register reset control flag is set to indicate that the register is always reset at the head of a slice throughout the video sequence. In this case, the register reset flag and the initial register value need not be multiplexed on a slice-by-slice level.
By controlling register resetting on a video sequence level, overhead information otherwise transmitted for each slice is reduced in size when, for example, a specified circuit condition (for example, a specified error rate in a circuit) persists. The register reset control flag may of course be attached to a header of any desired video frame (Nth frame, N+1th frame) in a video sequence.
shows an internal construction of the
arithmetic decoding unit27 of FIG. 4.
The
arithmetic decoding unit27 comprises a transmission unit
decoding initialization unit37, a context
model determination unit28, a
binarization unit29, a
probability generation unit30 and a
decoding unit38. The transmission unit
decoding initialization unit37 initializes, for a transmission unit received, an arithmetic decoding process, based on added information related to an arithmetic coding and included in a header. The context
model determination unit28 identifies the type of data, i.e. identifying whether the
motion vector5, the
coding mode information13, the
spatial prediction mode14 or the orthogonal
transform coefficient data17 is to be restored by decoding, so as to determine a context model, shared by the video coding apparatus and the video decoding apparatus, for the identified type. The
binarization unit29 generates a binarization rule defined for the identified decoding data type. The
probability generation unit30 gives the probability of occurrence of each bin (0 or 1) in accordance with the binarization rule and the context model. The
decoding unit38 performs arithmetic decoding based on the probability thus generated so as to restore the
motion vector5, the
coding mode information13, the
spatial prediction mode14 and the orthogonal
transform coefficient data17 in accordance with the binary sequence resulting from arithmetic decoding and the binarization rule.
is a flowchart showing a process performed by the
arithmetic decoding unit27 of FIG. 13.
6) Transmission Unit Decoding Initialization Process (step ST10)
As shown in
FIG. 10, the status in the
decoding unit38 is initialized before arithmetic decoding is started, based on the register reset flag and the
initial register value34 multiplexed into each transmission unit such as a slice (step ST10), the register reset flag designating whether the register value indicating the arithmetic coding process is reset or not. When the register value is reset, the
initial register value34 is not used.
7) Context Model Determination Process, Binarization Process and Probability Generation Process
These processes are performed by the context
model determination unit28, the
binarization unit29 and the
probability generation unit30 shown in FIG. 13. These processes are identified as steps ST1-ST3, respectively, in the flowchart and the description thereof is omitted since they are similar to the context model determination process ST1 identified as the process 1), the binarization process ST2 identified as the process 2) and the probability generation process ST3 identified as the process 3) in the video coding apparatus.
8) Arithmetic Decoding Process (step ST11)
The probability of occurrence of bin to be restored is identified through the processes 1)-7). The
decoding unit38 restores the value of bin (step ST11), in accordance with the arithmetic decoding process described with reference to the related art. In a similar configuration as the video coding apparatus, the
decoding unit38 counts the frequency of occurrence of 0/1 so as to update the probability of occurrence of bin (step ST5). The
decoding unit38 further confirms the value of bin restored by comparing it with a binary series pattern defined by the binarization rule (step ST12).
If the value of bin restored is not confirmed as a result of comparison with the binary series pattern defined by the binarization rule, the process identified as step ST3 for generating the probability for 0/1 of each bin and the subsequent processes are performed for a second time (steps ST3, ST11, ST5, ST12).
If the value of bin restored is confirmed by successfully matching it with the binary series pattern defined by the binarization rule, the data indicated by the matching pattern are output as the restored data. If the decoding is not complete for the entirety of transmission unit such as a slice (step ST13), the context model determination process of step ST1 and the subsequent processes are performed repeatedly until the entirety of transmission unit is decoded.
As has been described, according to the first embodiment, for transmission of compressed video data in transmission units such as slices, the slice header date has the register flag and the
initial register value34 attached thereto, the register reset flag designating whether the register value indicating the arithmetic coding process is reset or not. Accordingly, it is possible to perform coding without losing the continuity of the arithmetic coding process. The coding efficiency is maintained, while the resilience to transmission errors is improved. Decoding of resultant codes is also possible.
In the first embodiment, a slice structure is assumed as a transmission unit. Alternatively, the present invention is equally applicable to a configuration in which a video frame is a transmission unit.
Second Embodiment
An alternative configuration of the
arithmetic coding unit6 and the
arithmetic decoding unit27 according to the second embodiment will now be described. In the second embodiment, not only the register value indicating the status of a codeword from the arithmetic coding process but also the status of learning of a variation of probability estimate in a context model is multiplexed into the slice header. The status of learning occurs in the
probability generation unit30 as the unit updates the probability of occurrence of each bin.
For example, referring to
FIG. 8in the first embodiment, in order to improve the arithmetic coding efficiency for block C, information on the motion vector for block B above block C is exploited to determine a variation of probability estimate. Accordingly, if block C and block B are located in difference slices, the information on block B should be prevented from being used to determine the probability of occurrence.
This means that the coding efficiency is lowered in a design where the probability of occurrence is adaptively determined using a context model.
Accordingly, the second embodiment provides a method and an apparatus for improving the adaptability of the design. The coding efficiency with which the transmission unit is coded is adaptively controlled such that the slice-to-slice interdependence in respect of arithmetic coding is be disregarded but fully exploited in a case where the probability of loss of slice data due to transmission errors is extremely low and the slice-to-slice interdependence may be disregarded in a case where the probability of loss of slice data is high.
shows an internal construction of the
arithmetic coding unit6 according to the second embodiment.
A difference between the
arithmetic coding unit6 according to the second embodiment and the
arithmetic coding unit6 shown in
FIG. 5according to the first embodiment is that the
probability generation unit30 delivers a
context model status39 to be multiplexed into a slice header to the transmission
unit generation unit35.
is a flowchart showing the process performed by the
arithmetic coding unit6 of FIG. 15.
An immediately appreciable difference from the flowchart of
FIG. 6according to the first embodiment is that the
context model status39 that occurs in the process of step ST3 for generating the probability of occurrence of 0/1 for each bin, i.e. the learning
status39 that occurs in the
probability generation unit30 as it updates the variation of probability estimate in a context model, is multiplexed into the slice header in the header construction process (step ST9) in the transmission
unit generation unit35 for constructing a header for the next transmission unit, in a similar configuration as the register value that occurs in the binary arithmetic coding process of step ST4.
illustrates a context model learning status. A description will be given of the meaning of the context
model learning status39 using FIG. 17.
shows a case where there are a total of n macroblocks in a kth transmission unit. A context model ctx used only once is defined for each macroblock and the probability in ctx varies macroblock to macroblock.
The
context model status39 is inherited from a transmission unit to the next transmission unit. This means that the final status ctx k(n−1) for the kth transmission unit is made to be equal to the initial status of ctx in the k+1th transmission unit, i.e. the probability p0, p1 of occurrence of 0, 1 in ctxk+1(n−1)=0, 1, 2 is made to be equal to the probability po, p of occurrence of 0, 1 in ctxk(n−1). The transmission
unit generation unit35 transmits data indicating the status of ctxk(n−1) in the header of the k+1th transmission unit.
illustrates a bit stream generated by the
arithmetic coding unit6 according to the second embodiment.
In the second embodiment, the slice header for the compressed video slice data has information indicating the context model status of the preceding slice attached thereto, in addition to the slice start code, the register reset flag and the initial register value according to the first embodiment shown in FIG. 10.
In an alternative configuration of the second embodiment, the register reset flag may include an indication of whether the context model status is multiplexed or not, in addition to an indication of whether the initial register value is multiplexed or not.
A flag other than the register reset flag may indicate whether the context model status is multiplexed or not.
shows the slice header data and the compressed video slice data being multiplexed into the same bit stream. Alternatively, as is described in the first embodiment, the slice header data may be carried in a separate bit stream for offline transmission and the compressed data may have attached thereto ID information referring to the corresponding slice header data.
shows an internal construction of the
arithmetic decoding unit27 according to the second embodiment. A difference between the
arithmetic decoding unit27 according to the second embodiment and the
arithmetic decoding unit27 according to the first embodiment show in
FIG. 13is that the transmission unit
decoding initialization unit37 of the
arithmetic decoding unit27 according to the second embodiment delivers the
context model status39 for the immediately preceding slice multiplexed into the header to the
probability generation unit30 so that the context model status is inherited from the immediately preceding slice.
is a flowchart showing a process performed by the
arithmetic decoding unit27 of FIG. 19.
A difference between the flowchart of FIG. 20 and that of
FIG. 14is that, in step ST10 for transmission unit decoding initialization, the
context model status39 restored from the slice header is output to the process of step ST3 for generating the probability of occurrence of 0/1 for each bin by referring to the context model determined in step ST1. The
context model status39 output to step ST3 is used to generate the probability of occurrence of 0/1 in the
probability generation unit30.
If the number of context models is extremely large, carrying of the context model status in the slice header introduces an overhead caused by slice headers. In this case, context models providing significant contribution to the coding efficiency may be selected so that the associated status is multiplexed.
For example, motion vectors and orthogonal transform coefficient data represent a large portion in the entire coding volume so that the status may be inherited for these context models only. The type of context model for which the status is inherited may be explicitly multiplexed into a bit stream so that the status may be selectively inherited for important context models depending on the local condition that occurs in video.
As has been described, according to the second embodiment, for transmission of compressed video data in transmission units, the slice header data has the register flag, the
initial register value34 and the context model status information attached thereto, the initial register flag designating whether the register value indicating the arithmetic coding process is reset or not, and the context model status information indicating the context model status of the immediately preceding slice. Accordingly, it is possible to perform coding without losing the continuity of the arithmetic coding process. The coding efficiency is maintained, while the resilience to transmission errors is improved.
In the second embodiment, a slice structure is assumed as a transmission unit. Alternatively, the present invention is equally applicable to a configuration in which a video frame is a transmission unit.
In the second embodiment, information indicating the context model status of the immediately preceding slice is attached to a current header. Therefore, referring to
FIG. 8, even when block C and block B immediately preceding block C are located in different slices, the coding efficiency is improved through probability adaptation using context models, by exploiting the context model status of block B in determining the probability for block C. The coding efficiency with which the transmission unit is coded is adaptively controlled such that the slice-to-slice interdependence is not disregarded but the context model status for the immediately preceding slice is fully exploited in a case where the probability of loss of slide data due to transmission errors is extremely low. The context model status for the immediately preceding slice is not used and the slice-to-slice interdependence is disregarded in a case where the probability of loss of slice data is high.
Referring to the bit stream syntax shown in
FIG. 18, the second embodiment has been described assuming that information indicating the context model status for data in the immediately preceding slice is attached in each slice header in addition to the register reset flag and the initial register value according to the first embodiment. Alternatively, the register reset flag and the initial register value according to the first embodiment may be omitted so that only the information indicating the context model status for data in the immediately preceding slice is attached in each slice header. Alternatively, the context model status reset flag (see
FIG. 21) may be provided irrespective of whether the register reset flag and the initial register value according to the first embodiment are provided, so that only when the context model status reset flag is off, i.e. the context model status is not reset, the information indicating the context model status for data in the immediately preceding slice is attached for use in decoding.
Third Embodiment
A disclosure will now be given of the third embodiment in which transmission units are constructed according to a data partitioning format in which coding data are grouped according to a data type.
The example explained below is taken from
Working Draft Number2,
Revision3, JVT-B118r3 for a video coding scheme discussed in Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG. The draft discloses as many data items of a specific type as there are macroblocks in a slice structure as shown in
FIG. 9, are grouped. The resultant data unit is transmitted in the form of slice data. The slice data (data unit) constructed by grouping is of one of data types 0-7 such as those shown below, for example.
- 0 TYPE_HEADER picture (frame) or slice header
- 1 TYPE_MBHEADER macroblock header information (coding mode information)
- 2 TYPE_MVD motion vector
- 3 TYPE_CBP CBP (non-zero orthogonal transform coefficient pattern in macroblock)
- 4 TYPE —2×2DC orthogonal transform coefficient data (1)
- 5 TYPE_COEFF_Y orthogonal transform coefficient data (2)
- 6 TYPE_COEFF_C orthogonal transform coefficient data (3)
- 7 TYPE_EOS end of stream identification information
For example, a slice of
data type2 or TYPE_MVD is transmitted as slice data in which are collected as many motion vector information items as there are macroblocks fitting into a slice.
Accordingly, when the k+1TB slice of a type TYPE_MVD is subject to decoding following the kth slice of a type TYPE_MVD, only the context model status for motion vectors occurring at the end of the kth slice should be multiplexed into a header of the k+1TB slice carrying the TYPE_MVD data, in order to allow the context model learning status for arithmetic coding of motion vectors to be inherited.
shows an example of bit stream generated by the
arithmetic coding unit6 according to the third embodiment. Referring to
FIG. 21, when motion vectors are collected to construct slice data of a
data type2 or TYPE_MVD, the slice header has attached thereto a slice start code, a data type ID designating TYPE_MVD, a context model status reset flag and information indicating the context model status for motion vectors occurring in the immediately preceding slice.
When only orthogonal transform coefficient data (2) of a
data type5 or TYPE_COEFF_Y are collected to construct slice data, the slice header has attached thereto a slice start code, a data type ID designating TYPE_COEFF_Y, a context model status reset flag and information indicating the context model status for orthogonal transform coefficient data occurring in the immediately preceding slice.
shows the slice header data and the compressed data being multiplexed into the same bit stream. Alternatively, the slice header data may be carried in a separate bit stream for offline transmission and the compressed data may have attached thereto ID information referring to the corresponding slice header data.
Referring to
FIG. 15, the
arithmetic coding unit6 according to the third embodiment is implemented such that the transmission
unit generation unit35 reconstructs macroblock data in a slice in accordance with the data partitioning rule described above, so that the ID information designating the data type and the context model learning status corresponding to the data type are collected in slice data.
Referring to
FIG. 19, the
arithmetic decoding unit27 according to the third embodiment is implemented such that, for arithmetic decoding, a context model to be used is determined by allowing the transmission unit
decoding initialization unit37 to notify the context
model determination unit28 of the data type ID multiplexed into the slice header, and the context
model learning status39 is inherited across bounds of slices by allowing the transmission
decoding initialization unit37 to notify the
probability generation unit30 of the context model learning status.
As has been described, according to the third embodiment, a video signal is subject to compression coding by being divided into transmission units grouped according to predetermined data types. The video signal belonging to the transmission unit is arithmetically coded such that coding is continued across bounds of transmission units by inheriting, instead of resetting, the symbol occurrence probability learning status from the earlier transmission unit also grouped according to the data type. Accordingly, a high degree of error resilience is ensured and the coding efficiency of arithmetic coding is improved in a configuration in which data are grouped according to predetermined data types.
While the third embodiment assumes that slice structures are organized according to a data type as a transmission unit, video frames may also be organized according to a data type.
In the example of bit stream syntax according to the third embodiment shown in
FIG. 21, it is assumed that the header of slice data for a given data type has attached thereto a context model status reset flag and information indicating the context model status of data in the immediately preceding slice when the flag is off. Alternatively, in a similar configuration as the bit stream syntax according to the second embodiment shown in
FIG. 18, the header of slice data for a given data type may have attached thereto a context model status reset flag and information indicating the context model status of data in the immediately preceding slice when the flat is off, in addition to the register reset flag and the initial register value. Alternatively, the context model status reset flag may be omitted so that the information indicating the context model status of data in the immediately preceding slice is always attached for use in decoding, irrespective of whether the register reset flag and the initial register value are provided.
In the first through third embodiments, video data is given as an example of digital signals. The present invention is equally applicable to digital signals for audio, digital signals for sill pictures, digital signals for texts and multimedia digital signals in which these are mixed.
In the first and second embodiments, a slice is given as an example of digital signal transmission unit. In the third embodiment, a transmission unit, constructed according to data partitioning for collecting data in a slice according to a data type, is given as an example. Alternatively, an image (picture) constructed from a plurality of slices, i.e. a video frame, may be a transmission unit. The present invention also finds an application in a storage system. In this case, a storage unit, instead of a transmission unit may be constructed.
INDUSTRIAL APPLICABILITYAs has been described, a digital signal coding apparatus according to the present invention is suitably used for transmission of a compressed video signal in which a high degree of error resiliency is ensured and the coding efficiency for arithmetic coding is improved.
Claims (11)
1. A digital signal coding apparatus for partitioning a digital signal into predetermined units for compression coding, comprising:
an arithmetic coding unit for compressing, by arithmetic coding, the digital signal partitioned into the units, wherein said arithmetic coding unit multiplexes information representing an arithmetic coding status, occurring when a given transmission unit has been coded, into with data constituting a subsequent transmission unit.
2. The digital signal coding apparatus according to
claim 1, wherein said arithmetic coding unit arithmetically codes the digital signal partitioned into the units, by determining a probability of occurrence of coding symbols, based on dependence of the digital signal coded on the signal included in one or a plurality of adjacent transmission unit.
3. The digital signal coding apparatus according to
claim 2, wherein said arithmetic coding unit learns the probability of occurrence by counting a frequency of occurrence of coding symbols.
4. The digital signal coding apparatus according to
claim 1, wherein the information representing the arithmetic coding status includes a register reset flag indicating whether a register value designating an arithmetic coding process is reset or not and an initial register value included in the information only when the register value is not reset.
5. A digital signal coding apparatus for partitioning a digital signal into predetermined units for compression coding, comprising:
an arithmetic coding unit for compressing, by arithmetic coding, the digital signal partitioned into the units, wherein said arithmetic coding unit determines a probability of occurrence of coding symbols, based on dependence of the digital signal coded on the signal included in one or a plurality of adjacent transmission units, learns the probability of occurrence by counting a frequency of occurrence of coding symbols and multiplexes information representing a probability learning status, occurring when a given transmission unit has been coded, into with data constituting a subsequent transmission unit.
6. The digital signal coding apparatus according to
claim 5, wherein the information representing the probability learning status is information representing a context model status, a context model being a model that defines dependence of the probability of occurrence of data symbols on information that causes variation in the probability.
7. The digital signal coding apparatus according to
claim 1, wherein the digital signal is a video signal and the transmission unit is a slice constituted by one or a plurality of macroblocks in a video frame.
8. The digital signal coding apparatus according to
claim 1, wherein the digital signal is a video signal and the transmission unit is constructed by collecting coding data in a slice according to a type of the coding data.
9. The digital signal coding apparatus according to
claim 1, wherein the digital signal is a video signal and the transmission unit is a video frame.
10. A digital signal coding apparatus for outputting a bitstream containing coded data of a digital signal of a predetermined unit, comprising:
an arithmetic coding unit for compressing, by arithmetic coding, the digital signal of the predetermined unit, and
a header multiplexing unit for multiplexing information representing an arithmetic coding status to be used for arithmetic decoding of the predetermined unit, with the bitstream as an element of header information associated with said predetermined unit.
11. A digital signal coding method for outputting a bitstream containing coded data of a digital signal of a predetermined unit, comprising:
compressing, by arithmetic coding, the digital signal of the predetermined unit, and multiplexing information representing an arithmetic coding status to be used for arithmetic decoding of the predetermined unit, with the bitstream as an element of header information associated with said predetermined unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/133,690 USRE41729E1 (en) | 2002-04-25 | 2008-06-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002124114A JP3807342B2 (en) | 2002-04-25 | 2002-04-25 | Digital signal encoding apparatus, digital signal decoding apparatus, digital signal arithmetic encoding method, and digital signal arithmetic decoding method |
JP2002-124114 | 2002-04-25 | ||
PCT/JP2003/004578 WO2003092168A1 (en) | 2002-04-25 | 2003-04-10 | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method, and digital signal arithmetic decoding method |
US10/480,046 US7095344B2 (en) | 2002-04-25 | 2003-04-10 | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method and digital signal arithmetic decoding method |
US11/325,439 US7321323B2 (en) | 2002-04-25 | 2006-01-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/133,690 USRE41729E1 (en) | 2002-04-25 | 2008-06-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/325,439 Reissue US7321323B2 (en) | 2002-04-25 | 2006-01-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
USRE41729E1 true USRE41729E1 (en) | 2010-09-21 |
Family
ID=29267519
Family Applications (14)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/480,046 Expired - Lifetime US7095344B2 (en) | 2002-04-25 | 2003-04-10 | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method and digital signal arithmetic decoding method |
US11/325,439 Expired - Lifetime US7321323B2 (en) | 2002-04-25 | 2006-01-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US11/797,462 Expired - Lifetime US7388526B2 (en) | 2002-04-25 | 2007-05-03 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US11/781,682 Expired - Lifetime US7408488B2 (en) | 2002-04-25 | 2007-07-23 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/032,449 Expired - Lifetime US7518537B2 (en) | 2002-04-25 | 2008-02-15 | Decoding apparatus and decoding method |
US12/133,690 Expired - Lifetime USRE41729E1 (en) | 2002-04-25 | 2008-06-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/367,266 Expired - Lifetime US7859438B2 (en) | 2002-04-25 | 2009-02-06 | Digital signal coding method and apparatus, digital signal decoding apparatus; digital signal arithmetic coding method, and digital signal arithmetic decoding method |
US12/862,183 Expired - Lifetime US7928869B2 (en) | 2002-04-25 | 2010-08-24 | Digital signal coding method and apparatus, digital signal decoding apparatus, ditigal signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,181 Expired - Fee Related US8094049B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,153 Expired - Fee Related US8203470B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,203 Expired - Lifetime US8354946B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/987,661 Expired - Fee Related US7994951B2 (en) | 2002-04-25 | 2011-01-10 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/987,637 Expired - Fee Related US8188895B2 (en) | 2002-04-25 | 2011-01-10 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US13/213,462 Expired - Lifetime US8604950B2 (en) | 2002-04-25 | 2011-08-19 | Digital signal coding method and apparatus, digital signal arithmetic coding method and apparatus |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/480,046 Expired - Lifetime US7095344B2 (en) | 2002-04-25 | 2003-04-10 | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method and digital signal arithmetic decoding method |
US11/325,439 Expired - Lifetime US7321323B2 (en) | 2002-04-25 | 2006-01-05 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US11/797,462 Expired - Lifetime US7388526B2 (en) | 2002-04-25 | 2007-05-03 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US11/781,682 Expired - Lifetime US7408488B2 (en) | 2002-04-25 | 2007-07-23 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/032,449 Expired - Lifetime US7518537B2 (en) | 2002-04-25 | 2008-02-15 | Decoding apparatus and decoding method |
Family Applications After (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/367,266 Expired - Lifetime US7859438B2 (en) | 2002-04-25 | 2009-02-06 | Digital signal coding method and apparatus, digital signal decoding apparatus; digital signal arithmetic coding method, and digital signal arithmetic decoding method |
US12/862,183 Expired - Lifetime US7928869B2 (en) | 2002-04-25 | 2010-08-24 | Digital signal coding method and apparatus, digital signal decoding apparatus, ditigal signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,181 Expired - Fee Related US8094049B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,153 Expired - Fee Related US8203470B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/985,203 Expired - Lifetime US8354946B2 (en) | 2002-04-25 | 2011-01-05 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/987,661 Expired - Fee Related US7994951B2 (en) | 2002-04-25 | 2011-01-10 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US12/987,637 Expired - Fee Related US8188895B2 (en) | 2002-04-25 | 2011-01-10 | Digital signal coding method and apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
US13/213,462 Expired - Lifetime US8604950B2 (en) | 2002-04-25 | 2011-08-19 | Digital signal coding method and apparatus, digital signal arithmetic coding method and apparatus |
Country Status (11)
Country | Link |
---|---|
US (14) | US7095344B2 (en) |
EP (10) | EP2293451A1 (en) |
JP (1) | JP3807342B2 (en) |
KR (2) | KR100585901B1 (en) |
CN (8) | CN1522497B (en) |
AU (1) | AU2003236062A1 (en) |
CA (10) | CA2632408C (en) |
HK (2) | HK1140324A1 (en) |
SG (9) | SG187281A1 (en) |
TW (1) | TWI222834B (en) |
WO (1) | WO2003092168A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8798139B1 (en) | 2011-06-29 | 2014-08-05 | Zenverge, Inc. | Dual-pipeline CABAC encoder architecture |
US9258565B1 (en) * | 2011-06-29 | 2016-02-09 | Freescale Semiconductor, Inc. | Context model cache-management in a dual-pipeline CABAC architecture |
US9319675B2 (en) | 2011-02-24 | 2016-04-19 | Panasonic Intellectual Property Corporation Of America | Arithmetic decoding method and arithmetic coding method |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3807342B2 (en) * | 2002-04-25 | 2006-08-09 | 三菱電機株式会社 | Digital signal encoding apparatus, digital signal decoding apparatus, digital signal arithmetic encoding method, and digital signal arithmetic decoding method |
KR100701810B1 (en) | 2002-04-26 | 2007-04-02 | 가부시키가이샤 엔티티 도코모 | Signal encoding method, signal decoding method, signal encoding device, signal decoding device, computer-readable recording medium |
JP3821086B2 (en) * | 2002-11-01 | 2006-09-13 | ソニー株式会社 | Streaming system, streaming method, client terminal, data decoding method, and program |
US7978769B2 (en) * | 2003-06-30 | 2011-07-12 | Ntt Docomo, Inc. | Method and apparatus for coding motion information |
KR101103867B1 (en) * | 2003-09-07 | 2012-01-12 | 마이크로소프트 코포레이션 | Slice layer in video codec |
US7573406B2 (en) * | 2004-05-21 | 2009-08-11 | Broadcom Corporation | System and method for decoding context adaptive variable length coding |
US7271749B2 (en) * | 2004-09-14 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Context-based denoiser that simultaneously updates probabilities for multiple contexts |
US7684627B2 (en) * | 2004-09-29 | 2010-03-23 | Intel Corporation | Techniques for image decompression |
KR100829558B1 (en) * | 2005-01-12 | 2008-05-14 | 삼성전자주식회사 | Scalable audio data arithmetic decoding method and apparatus, and method for truncating audio data bitstream |
EP1836858A1 (en) * | 2005-01-14 | 2007-09-26 | Sungkyunkwan University | Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding |
AU2006201490B2 (en) * | 2005-04-19 | 2008-05-22 | Samsung Electronics Co., Ltd. | Method and apparatus for adaptively selecting context model for entropy coding |
KR100746007B1 (en) | 2005-04-19 | 2007-08-06 | 삼성전자주식회사 | Method and apparatus for adaptively selecting context model of entrophy coding |
KR100703776B1 (en) * | 2005-04-19 | 2007-04-06 | 삼성전자주식회사 | Method and apparatus of context-based adaptive arithmetic coding and decoding with improved coding efficiency, and method and apparatus for video coding and decoding including the same |
US7592936B2 (en) * | 2005-07-12 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Input distribution determination for denoising |
US7620108B2 (en) * | 2005-09-16 | 2009-11-17 | Sony Corporation | Integrated spatial-temporal prediction |
US7245241B2 (en) * | 2005-11-25 | 2007-07-17 | Microsoft Corporation | Image coding with scalable context quantization |
US8599841B1 (en) | 2006-03-28 | 2013-12-03 | Nvidia Corporation | Multi-format bitstream decoding engine |
US8593469B2 (en) * | 2006-03-29 | 2013-11-26 | Nvidia Corporation | Method and circuit for efficient caching of reference video data |
US7884742B2 (en) * | 2006-06-08 | 2011-02-08 | Nvidia Corporation | System and method for efficient compression of digital data |
JP4928176B2 (en) * | 2006-06-27 | 2012-05-09 | キヤノン株式会社 | Video encoding apparatus and video encoding method |
CN101098322B (en) * | 2006-06-30 | 2012-07-04 | 佛山市顺德区顺达电脑厂有限公司 | Data transmission method and information device using the same |
US7365659B1 (en) * | 2006-12-06 | 2008-04-29 | Silicon Image Gmbh | Method of context adaptive binary arithmetic coding and coding apparatus using the same |
US7443318B2 (en) * | 2007-03-30 | 2008-10-28 | Hong Kong Applied Science And Technology Research Institute Co. Ltd. | High speed context memory implementation for H.264 |
US8305244B2 (en) * | 2007-04-16 | 2012-11-06 | Hewlett-Packard Development Company, L.P. | Coding data using different coding alphabets |
JP2008294669A (en) * | 2007-05-23 | 2008-12-04 | Toshiba Corp | Image encoding device |
JP4382840B2 (en) * | 2007-08-20 | 2009-12-16 | Nttエレクトロニクス株式会社 | Binary arithmetic coding device |
CN101878650B (en) | 2007-11-30 | 2013-07-10 | 杜比实验室特许公司 | Temporal image prediction method and system |
JP2009152990A (en) * | 2007-12-21 | 2009-07-09 | Panasonic Corp | Image encoding device and image decoding device |
JP4915350B2 (en) * | 2008-01-16 | 2012-04-11 | 日本電気株式会社 | Entropy encoder, video encoding device, video encoding method, and video encoding program |
US8542748B2 (en) | 2008-03-28 | 2013-09-24 | Sharp Laboratories Of America, Inc. | Methods and systems for parallel video encoding and decoding |
FR2932050B1 (en) * | 2008-06-03 | 2010-05-21 | Canon Kk | METHOD AND DEVICE FOR TRANSMITTING VIDEO DATA |
FR2933565A1 (en) * | 2008-07-01 | 2010-01-08 | France Telecom | METHOD AND DEVICE FOR ENCODING AN IMAGE SEQUENCE USING TEMPORAL PREDICTION, SIGNAL, DATA MEDIUM, DECODING METHOD AND DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT |
US7714754B2 (en) * | 2008-07-14 | 2010-05-11 | Vixs Systems, Inc. | Entropy decoder with pipelined processing and methods for use therewith |
KR101590633B1 (en) | 2008-11-11 | 2016-02-02 | 삼성전자주식회사 | / /apparatus for processing video encoding and decoding using video separation based on slice level and method therefor |
WO2010099801A1 (en) * | 2009-03-04 | 2010-09-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Processing of multimedia data |
JP5274317B2 (en) * | 2009-03-17 | 2013-08-28 | パナソニック株式会社 | Code amount estimation apparatus, code amount estimation method, code amount estimation program, and code amount estimation integrated circuit |
WO2011008243A1 (en) * | 2009-06-29 | 2011-01-20 | Thomson Licensing | Methods and apparatus for adaptive probability update for non-coded syntax |
EP2457214B1 (en) | 2009-07-20 | 2015-04-29 | Thomson Licensing | A method for detecting and adapting video processing for far-view scenes in sports video |
US20110038416A1 (en) * | 2009-08-14 | 2011-02-17 | Apple Inc. | Video coder providing improved visual quality during use of heterogeneous coding modes |
EP2315358A1 (en) | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
WO2011053300A1 (en) * | 2009-10-29 | 2011-05-05 | Hewlett-Packard Development Company, L.P. | Joint image compression method and apparatus |
WO2011052142A1 (en) * | 2009-10-29 | 2011-05-05 | パナソニック株式会社 | Image encoding method and image decoding method |
US20110158310A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Decoding data using lookup tables |
CN102823248B (en) | 2010-04-08 | 2015-06-24 | 株式会社东芝 | Image encoding method and image decoding method |
JP5914962B2 (en) * | 2010-04-09 | 2016-05-11 | ソニー株式会社 | Image processing apparatus and method, program, and recording medium |
WO2012019297A1 (en) * | 2010-07-28 | 2012-02-16 | Research In Motion Limited | Method and device for compression of binary sequences by grouping multiple symbols |
US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
EP2606648A1 (en) | 2010-10-05 | 2013-06-26 | General instrument Corporation | Coding and decoding utilizing adaptive context model selection with zigzag scan |
US20130223528A1 (en) * | 2010-11-15 | 2013-08-29 | Electronics And Telecommunications Research Institute | Method and apparatus for parallel entropy encoding/decoding |
WO2012099433A2 (en) * | 2011-01-20 | 2012-07-26 | 한국전자통신연구원 | Entropy coding method using an index mapping table, and image-encoding/decoding apparatus and method using said entropy coding method |
KR20120084639A (en) | 2011-01-20 | 2012-07-30 | 한국전자통신연구원 | Adaptive sorting table for entropy coding |
ES2715703T3 (en) | 2011-03-09 | 2019-06-05 | Nec Corp | Video decoding device, video decoding procedure and video decoding program |
EP4228264B1 (en) | 2011-06-23 | 2024-07-31 | Sun Patent Trust | Image decoding device, image encoding device |
USRE47366E1 (en) | 2011-06-23 | 2019-04-23 | Sun Patent Trust | Image decoding method and apparatus based on a signal type of the control parameter of the current block |
MX2013012019A (en) | 2011-06-24 | 2013-12-10 | Panasonic Corp | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device. |
KR102067683B1 (en) | 2011-06-24 | 2020-01-17 | 선 페이턴트 트러스트 | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device |
WO2013001764A1 (en) | 2011-06-27 | 2013-01-03 | パナソニック株式会社 | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device |
AU2012277215B2 (en) | 2011-06-28 | 2016-07-07 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
MX2013010892A (en) | 2011-06-29 | 2013-12-06 | Panasonic Corp | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device. |
EP3944617A1 (en) | 2011-06-30 | 2022-01-26 | Sun Patent Trust | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding and decoding device |
KR102060619B1 (en) | 2011-06-30 | 2019-12-30 | 선 페이턴트 트러스트 | Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device |
CN106851295B (en) | 2011-07-11 | 2019-10-18 | 太阳专利托管公司 | Coding method and code device |
JP2013046282A (en) * | 2011-08-25 | 2013-03-04 | Sony Corp | Image processor and image processing method |
CN103096062A (en) * | 2011-11-01 | 2013-05-08 | 珠海扬智电子科技有限公司 | Arithmetic decoding method |
CN108513129A (en) | 2011-11-08 | 2018-09-07 | 三星电子株式会社 | The method and apparatus and computer media of method, coding that video is decoded |
US9247257B1 (en) | 2011-11-30 | 2016-01-26 | Google Inc. | Segmentation based entropy encoding and decoding |
FR2988960A1 (en) * | 2012-03-29 | 2013-10-04 | France Telecom | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
JP6133400B2 (en) | 2012-04-13 | 2017-05-24 | ジーイー ビデオ コンプレッション エルエルシー | Scalable data streams and network entities |
GB2502620B (en) * | 2012-06-01 | 2020-04-22 | Advanced Risc Mach Ltd | A parallel parsing video decoder and method |
RU2680749C2 (en) | 2012-06-22 | 2019-02-26 | Вилос Медиа Интернэшнл Лимитед | Image encoding method, image decoding method, image encoding device, image decoding device and image encoding and decoding device |
TWI769904B (en) | 2012-06-29 | 2022-07-01 | 美商Ge影像壓縮有限公司 | Video data stream concept |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
FR3000623B1 (en) | 2012-12-28 | 2018-04-27 | Sunna Design | METHOD FOR DYNAMICALLY CONTROLLING AN ELECTRICAL EQUIPMENT |
EP2940999B1 (en) | 2013-01-04 | 2019-06-12 | Samsung Electronics Co., Ltd. | Method for entropy-decoding slice segments |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
US9179151B2 (en) * | 2013-10-18 | 2015-11-03 | Google Inc. | Spatial proximity context entropy coding |
JP5915679B2 (en) * | 2014-03-10 | 2016-05-11 | ソニー株式会社 | Image processing apparatus and method, program, and recording medium |
JP6381364B2 (en) | 2014-08-22 | 2018-08-29 | カルソニックカンセイ株式会社 | Head-up display device |
US10455244B2 (en) * | 2014-11-14 | 2019-10-22 | Lg Electronics Inc. | Method and device for entropy encoding or entropy decoding video signal for high-capacity parallel processing |
JP7082056B2 (en) * | 2016-01-03 | 2022-06-07 | アウロ テクノロジーズ エンフェー. | Signal encoders, decoders and methods that use predictor models |
JP2016106483A (en) * | 2016-02-03 | 2016-06-16 | ソニー株式会社 | Image processing device and method, program, and recording medium |
US10142652B2 (en) | 2016-05-05 | 2018-11-27 | Google Llc | Entropy coding motion vector residuals obtained using reference motion vectors |
CN106445890B (en) * | 2016-07-07 | 2019-06-25 | 湖南千年华光软件开发有限公司 | Data processing method |
CN108092670B (en) * | 2017-11-03 | 2019-06-07 | 西安万像电子科技有限公司 | Coding method and device |
US11006150B2 (en) | 2018-09-24 | 2021-05-11 | Tencent America LLC | Method and apparatus for video coding |
CN113055017A (en) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | Data compression method and computing device |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01305739A (en) | 1988-06-03 | 1989-12-11 | Fujitsu Ltd | Voice transmission equipment |
US4891643A (en) | 1986-09-15 | 1990-01-02 | International Business Machines Corporation | Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders |
US4905297A (en) | 1986-09-15 | 1990-02-27 | International Business Machines Corporation | Arithmetic coding encoder and decoder system |
JPH0799452A (en) | 1993-08-06 | 1995-04-11 | Mitsubishi Electric Corp | Coding system and coding decoding method |
JPH07170196A (en) | 1993-12-16 | 1995-07-04 | Nec Corp | Coding decoding circuit for binary symbol |
US5587710A (en) | 1995-03-24 | 1996-12-24 | National Semiconductor Corporation | Syntax based arithmetic coder and decoder |
JPH09121168A (en) | 1995-08-31 | 1997-05-06 | Ricoh Co Ltd | Compressor, compressing method, expander and context serving device |
US5654702A (en) * | 1994-12-16 | 1997-08-05 | National Semiconductor Corp. | Syntax-based arithmetic coding for low bit rate videophone |
US5774457A (en) | 1995-11-21 | 1998-06-30 | Nec Corporation | Multi-point video conference control apparatus |
JPH10215228A (en) | 1997-01-30 | 1998-08-11 | Fuji Xerox Co Ltd | Transmission code error correction system and coder and decoder used for the system |
KR19990066516A (en) | 1998-01-30 | 1999-08-16 | 전주범 | Context-based Arithmetic Coding / Decoding Method and Apparatus |
JPH11274938A (en) | 1998-03-25 | 1999-10-08 | Mitsubishi Electric Corp | Adaptive probability estimation method, adaptive coding method and adaptive decoding method |
KR19990075942A (en) | 1998-03-26 | 1999-10-15 | 전주범 | Adaptive Arithmetic Coding and Its Decoding Method |
US6108449A (en) * | 1997-08-25 | 2000-08-22 | Mitsubishi Denki Kabushiki Kaisha | Motion picture encoding system and motion picture decoding system |
US6116768A (en) | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
CN1275263A (en) | 1998-03-16 | 2000-11-29 | 皇家菲利浦电子有限公司 | Artihmetic encoding/decoding of multi-channel information signal |
US6188795B1 (en) * | 1996-06-13 | 2001-02-13 | Dublin City University | Data compression |
US6265997B1 (en) * | 1998-11-10 | 2001-07-24 | Ricoh Company, Ltd. | Arithmetic-encoding device and an arithmetic-decoding device |
US6275176B1 (en) | 1998-03-19 | 2001-08-14 | U.S. Philips Corporation | Arithmetic encoding/decoding of a digital information signal |
JP2001292328A (en) | 2000-04-06 | 2001-10-19 | Matsushita Graphic Communication Systems Inc | Prediction coding decoding device |
US6542644B1 (en) | 1996-09-02 | 2003-04-01 | Fujitsu Limited | Statistical data compression/decompression method |
US6677868B2 (en) | 2001-03-16 | 2004-01-13 | Sharp Laboratories Of America, Inc. | Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols |
US6856701B2 (en) | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
US6864813B2 (en) * | 2001-02-22 | 2005-03-08 | Panasonic Communications Co., Ltd. | Arithmetic decoding method and an arithmetic decoding apparatus |
US7095344B2 (en) * | 2002-04-25 | 2006-08-22 | Mitsubishi Denki Kabushiki Kaisha | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method and digital signal arithmetic decoding method |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01275263A (en) | 1988-04-27 | 1989-11-02 | Mitsubishi Electric Corp | Passenger guide indicating device |
US5025258A (en) * | 1989-06-01 | 1991-06-18 | At&T Bell Laboratories | Adaptive probability estimator for entropy encoding/decoding |
US6571019B1 (en) * | 1995-10-26 | 2003-05-27 | Hyundai Curitel, Inc | Apparatus and method of encoding/decoding a coded block pattern |
JP3529938B2 (en) * | 1996-04-19 | 2004-05-24 | 富士通株式会社 | Semiconductor integrated circuit device and method of manufacturing semiconductor device |
CN1224478A (en) * | 1996-05-21 | 1999-07-28 | 奥马·威克 | Method and device for leveling and filling groove |
WO1998033322A1 (en) * | 1997-01-29 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | Coding method, decoding method, coding device and decoding device |
GB2333412B (en) * | 1998-01-20 | 2002-05-15 | Daewoo Electronics Co Ltd | Context-based arithmetic encoding/decoding apparatus |
CN1174634C (en) * | 1998-01-26 | 2004-11-03 | 株式会社大宇电子 | Context-based arithmetic encoding/decoding method and apparatus |
JP2001518273A (en) * | 1998-01-26 | 2001-10-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Time discrete filter |
AU757911B2 (en) * | 1998-03-23 | 2003-03-13 | Koninklijke Philips Electronics N.V. | Arithmetic encoding and decoding of an information signal |
CN1249473A (en) * | 1998-09-30 | 2000-04-05 | 朗迅科技公司 | Arithmetic code without multiplication |
WO2000044177A1 (en) * | 1999-01-21 | 2000-07-27 | Koninklijke Philips Electronics N.V. | Method and arrangement for encoding video images |
JPH11274928A (en) | 1999-02-15 | 1999-10-08 | Seiko Instruments Inc | Analog-to-digital converter circuit device |
US6856643B1 (en) * | 1999-10-22 | 2005-02-15 | Cwill Telecommunications, Inc. | Communication system and method for performing fast symbol estimation for multiple access disperse channels |
WO2003043345A1 (en) * | 2001-11-16 | 2003-05-22 | Ntt Docomo, Inc. | Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system |
EP2391019B1 (en) * | 2002-03-27 | 2014-06-25 | Panasonic Corporation | Variable length decoding method, storage medium, variable length decoding device |
-
2002
- 2002-04-25 JP JP2002124114A patent/JP3807342B2/en not_active Expired - Lifetime
-
2003
- 2003-04-10 CN CN038005166A patent/CN1522497B/en not_active Expired - Lifetime
- 2003-04-10 EP EP20100011915 patent/EP2293451A1/en not_active Withdrawn
- 2003-04-10 CN CN2010101438551A patent/CN101841710B/en not_active Expired - Lifetime
- 2003-04-10 CN CNB2006100997152A patent/CN100566179C/en not_active Expired - Lifetime
- 2003-04-10 SG SG2011053873A patent/SG187281A1/en unknown
- 2003-04-10 SG SG200908733-9A patent/SG158847A1/en unknown
- 2003-04-10 CA CA2632408A patent/CA2632408C/en not_active Expired - Lifetime
- 2003-04-10 EP EP20060012563 patent/EP1699137A3/en not_active Ceased
- 2003-04-10 KR KR20037015954A patent/KR100585901B1/en active IP Right Grant
- 2003-04-10 CA CA2686449A patent/CA2686449C/en not_active Expired - Lifetime
- 2003-04-10 EP EP20100011909 patent/EP2288035A1/en not_active Withdrawn
- 2003-04-10 CA CA2685312A patent/CA2685312C/en not_active Expired - Lifetime
- 2003-04-10 AU AU2003236062A patent/AU2003236062A1/en not_active Abandoned
- 2003-04-10 SG SG200603967-1A patent/SG147308A1/en unknown
- 2003-04-10 CA CA2756577A patent/CA2756577C/en not_active Expired - Lifetime
- 2003-04-10 CN CN2007100917010A patent/CN101060622B/en not_active Expired - Lifetime
- 2003-04-10 SG SG2010049658A patent/SG177782A1/en unknown
- 2003-04-10 US US10/480,046 patent/US7095344B2/en not_active Expired - Lifetime
- 2003-04-10 SG SG2011053881A patent/SG190454A1/en unknown
- 2003-04-10 EP EP20100011913 patent/EP2288037A1/en not_active Withdrawn
- 2003-04-10 EP EP20100011911 patent/EP2315359A1/en not_active Withdrawn
- 2003-04-10 EP EP20100011912 patent/EP2288036A1/en not_active Withdrawn
- 2003-04-10 CA CA2686438A patent/CA2686438C/en not_active Expired - Lifetime
- 2003-04-10 CN CN2010101297426A patent/CN101815217B/en not_active Expired - Lifetime
- 2003-04-10 CN CN2009101740943A patent/CN101686059B/en not_active Expired - Lifetime
- 2003-04-10 EP EP20100011910 patent/EP2306651A1/en not_active Withdrawn
- 2003-04-10 SG SG2011053907A patent/SG180068A1/en unknown
- 2003-04-10 CA CA2807566A patent/CA2807566C/en not_active Expired - Lifetime
- 2003-04-10 SG SG2011053899A patent/SG187282A1/en unknown
- 2003-04-10 EP EP03747210A patent/EP1422828A4/en not_active Ceased
- 2003-04-10 CA CA2756676A patent/CA2756676C/en not_active Expired - Lifetime
- 2003-04-10 CA CA2809277A patent/CA2809277C/en not_active Expired - Lifetime
- 2003-04-10 CN CN2009102035235A patent/CN101626244B/en not_active Expired - Lifetime
- 2003-04-10 CA CA002449924A patent/CA2449924C/en not_active Expired - Lifetime
- 2003-04-10 WO PCT/JP2003/004578 patent/WO2003092168A1/en active Application Filing
- 2003-04-10 SG SG200908732-1A patent/SG158846A1/en unknown
- 2003-04-10 CN CN2009102035254A patent/CN101626245B/en not_active Expired - Lifetime
- 2003-04-10 EP EP20100011914 patent/EP2293450A1/en not_active Ceased
- 2003-04-10 CA CA002554143A patent/CA2554143C/en not_active Expired - Lifetime
- 2003-04-10 SG SG2011053865A patent/SG186521A1/en unknown
- 2003-04-10 KR KR1020057022204A patent/KR100740381B1/en active IP Right Grant
- 2003-04-10 EP EP20100011908 patent/EP2288034A1/en not_active Withdrawn
- 2003-04-16 TW TW92108784A patent/TWI222834B/en not_active IP Right Cessation
-
2006
- 2006-01-05 US US11/325,439 patent/US7321323B2/en not_active Expired - Lifetime
-
2007
- 2007-05-03 US US11/797,462 patent/US7388526B2/en not_active Expired - Lifetime
- 2007-07-23 US US11/781,682 patent/US7408488B2/en not_active Expired - Lifetime
-
2008
- 2008-02-15 US US12/032,449 patent/US7518537B2/en not_active Expired - Lifetime
- 2008-06-05 US US12/133,690 patent/USRE41729E1/en not_active Expired - Lifetime
-
2009
- 2009-02-06 US US12/367,266 patent/US7859438B2/en not_active Expired - Lifetime
-
2010
- 2010-07-07 HK HK10106603A patent/HK1140324A1/en not_active IP Right Cessation
- 2010-08-24 US US12/862,183 patent/US7928869B2/en not_active Expired - Lifetime
- 2010-11-26 HK HK10111042A patent/HK1144632A1/en not_active IP Right Cessation
-
2011
- 2011-01-05 US US12/985,181 patent/US8094049B2/en not_active Expired - Fee Related
- 2011-01-05 US US12/985,153 patent/US8203470B2/en not_active Expired - Fee Related
- 2011-01-05 US US12/985,203 patent/US8354946B2/en not_active Expired - Lifetime
- 2011-01-10 US US12/987,661 patent/US7994951B2/en not_active Expired - Fee Related
- 2011-01-10 US US12/987,637 patent/US8188895B2/en not_active Expired - Fee Related
- 2011-08-19 US US13/213,462 patent/US8604950B2/en not_active Expired - Lifetime
Patent Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891643A (en) | 1986-09-15 | 1990-01-02 | International Business Machines Corporation | Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders |
US4905297A (en) | 1986-09-15 | 1990-02-27 | International Business Machines Corporation | Arithmetic coding encoder and decoder system |
JPH01305739A (en) | 1988-06-03 | 1989-12-11 | Fujitsu Ltd | Voice transmission equipment |
JPH0799452A (en) | 1993-08-06 | 1995-04-11 | Mitsubishi Electric Corp | Coding system and coding decoding method |
US5592163A (en) | 1993-08-06 | 1997-01-07 | Mitsubishi Denki Kabushiki Kaisha | Coding system |
US6116768A (en) | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
JPH07170196A (en) | 1993-12-16 | 1995-07-04 | Nec Corp | Coding decoding circuit for binary symbol |
US5555323A (en) | 1993-12-16 | 1996-09-10 | Nec Corporation | System for bi-level symbol coding/decoding with saved storage and method for same |
US5654702A (en) * | 1994-12-16 | 1997-08-05 | National Semiconductor Corp. | Syntax-based arithmetic coding for low bit rate videophone |
US5587710A (en) | 1995-03-24 | 1996-12-24 | National Semiconductor Corporation | Syntax based arithmetic coder and decoder |
JPH09121168A (en) | 1995-08-31 | 1997-05-06 | Ricoh Co Ltd | Compressor, compressing method, expander and context serving device |
US5774457A (en) | 1995-11-21 | 1998-06-30 | Nec Corporation | Multi-point video conference control apparatus |
US6188795B1 (en) * | 1996-06-13 | 2001-02-13 | Dublin City University | Data compression |
US6542644B1 (en) | 1996-09-02 | 2003-04-01 | Fujitsu Limited | Statistical data compression/decompression method |
JPH10215228A (en) | 1997-01-30 | 1998-08-11 | Fuji Xerox Co Ltd | Transmission code error correction system and coder and decoder used for the system |
US6108449A (en) * | 1997-08-25 | 2000-08-22 | Mitsubishi Denki Kabushiki Kaisha | Motion picture encoding system and motion picture decoding system |
KR19990066516A (en) | 1998-01-30 | 1999-08-16 | 전주범 | Context-based Arithmetic Coding / Decoding Method and Apparatus |
CN1275263A (en) | 1998-03-16 | 2000-11-29 | 皇家菲利浦电子有限公司 | Artihmetic encoding/decoding of multi-channel information signal |
US6229463B1 (en) * | 1998-03-16 | 2001-05-08 | U.S. Philips Corporation | Arithmetic encoding/decoding of a multi-channel information signal |
US6275176B1 (en) | 1998-03-19 | 2001-08-14 | U.S. Philips Corporation | Arithmetic encoding/decoding of a digital information signal |
JPH11274938A (en) | 1998-03-25 | 1999-10-08 | Mitsubishi Electric Corp | Adaptive probability estimation method, adaptive coding method and adaptive decoding method |
US20020021234A1 (en) | 1998-03-25 | 2002-02-21 | Taichi Yanagiya | Encoding, decoding, and probability estimation method |
KR19990075942A (en) | 1998-03-26 | 1999-10-15 | 전주범 | Adaptive Arithmetic Coding and Its Decoding Method |
US6049633A (en) | 1998-03-26 | 2000-04-11 | Daewoo Electronics Co., Ltd. | Adaptive arithmetic codec method and apparatus |
US6265997B1 (en) * | 1998-11-10 | 2001-07-24 | Ricoh Company, Ltd. | Arithmetic-encoding device and an arithmetic-decoding device |
JP2001292328A (en) | 2000-04-06 | 2001-10-19 | Matsushita Graphic Communication Systems Inc | Prediction coding decoding device |
US6864813B2 (en) * | 2001-02-22 | 2005-03-08 | Panasonic Communications Co., Ltd. | Arithmetic decoding method and an arithmetic decoding apparatus |
US6677868B2 (en) | 2001-03-16 | 2004-01-13 | Sharp Laboratories Of America, Inc. | Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols |
US6856701B2 (en) | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
US7095344B2 (en) * | 2002-04-25 | 2006-08-22 | Mitsubishi Denki Kabushiki Kaisha | Digital signal encoding device, digital signal decoding device, digital signal arithmetic encoding method and digital signal arithmetic decoding method |
Non-Patent Citations (9)
Title |
---|
Chen H. et al: "Burst Error Recovery for VF Arithmetic Coding" IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Engineering Sciences Society, Tokyo, JP, vol. E84-A, No. 4, Apr. 2001, pp. 1050-1063, XP001050994 ISSN: 0916-8508. |
Clarke M. et al., "Optimum delivery of telemedicine over low bandwidth satellite links" Proceedings of the 23rd. Annual International Conference of the IEEE Engineering in Medecine and Biology Society. 2001 Conference Proceedings. (EMBS). Instanbul, Turkey, Oct. 25-28, 2001, Annual International Conference of the IEEE Engineering in M, vol. 1 of 4. Conf. 23, Oct. 25, 2001, pp. 3606-3609, XP010593893 ISBN: 0-7803-7211-5. |
Detlev Marpe et al., International Conference on Image Processing 2001, pp. 1-4. |
Mark Nelson, Dr. Dobb's Journal, Feb. 1991, 6 pages. |
S. H. Park, Y. B. Thomas Kim and S. W. Kim , "Core Experiment Proposal on Complexity Reduction and Error Resilience for BSAC", Samsung AIT, ISO/IEC JTC1/SC29/WG11, MPEG99/M4817, Jul. 1999, XP030034037. |
Sodagar I. et al., "A new error resilience technique for image compression using arithmetic coding" Acoustics, Speech, and Signal Processing, 2000. ICASSP '00. Proceedings. 2000 IEEE International Conference on Jun. 5-9, 2000, vol. 6, Jun. 5, 2000, pp. 2127-2130, XP010504719. |
Sosagar I. et al., "A new error resilience technique for image compression using arithmetic coding" Acoustics, Speech, and Signal Processing, 2000. ICASSP '00. Proceedings, 2000 IEEE International Conference on Jun. 5-9, 2000, vol. 6, Jun. 5, 2000, pp. 2127-2130, XP010504719. |
Wiegand Thomas: "Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG" Conference Proceedings Article Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T, Mar. 13, 2002, pp. 1-105, XP002373040. |
Y. Kikuchi et al., RFC3016, The International Society, Nov. 2000, pp. 1-20. |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9319675B2 (en) | 2011-02-24 | 2016-04-19 | Panasonic Intellectual Property Corporation Of America | Arithmetic decoding method and arithmetic coding method |
US9930336B2 (en) | 2011-02-24 | 2018-03-27 | Sun Patent Trust | Arithmetic decoding method and arithmetic coding method |
US10462463B2 (en) | 2011-02-24 | 2019-10-29 | Sun Patent Trust | Arithmetic decoding method and arithmetic coding method |
US10757414B2 (en) | 2011-02-24 | 2020-08-25 | Sun Patent Trust | Arithmetic decoding method and arithmetic coding method |
US8798139B1 (en) | 2011-06-29 | 2014-08-05 | Zenverge, Inc. | Dual-pipeline CABAC encoder architecture |
US9258565B1 (en) * | 2011-06-29 | 2016-02-09 | Freescale Semiconductor, Inc. | Context model cache-management in a dual-pipeline CABAC architecture |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41729E1 (en) | 2010-09-21 | Digital signal coding apparatus, digital signal decoding apparatus, digital signal arithmetic coding method and digital signal arithmetic decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
2010-12-03 | FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
2011-06-22 | FPAY | Fee payment |
Year of fee payment: 4 |
2015-07-08 | FPAY | Fee payment |
Year of fee payment: 8 |
2019-07-11 | MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
2020-09-28 | AS | Assignment |
Owner name: XYLENE HOLDING S.A., LUXEMBOURG Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MITSUBISHI ELECTRIC CORPORATION;REEL/FRAME:053905/0001 Effective date: 20200813 |