WO2008054005A2 - Encoding apparatus and control method thereof - Google Patents

Encoding apparatus and control method thereof Download PDF

Info

Publication number
WO2008054005A2
WO2008054005A2 PCT/JP2007/071442 JP2007071442W WO2008054005A2 WO 2008054005 A2 WO2008054005 A2 WO 2008054005A2 JP 2007071442 W JP2007071442 W JP 2007071442W WO 2008054005 A2 WO2008054005 A2 WO 2008054005A2
Authority
WO
WIPO (PCT)
Prior art keywords
zone
unit
normalization
bit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2007/071442
Other languages
English (en)
French (fr)
Other versions
WO2008054005A3 (en
Inventor
Shingo Nozawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to US12/440,867 priority Critical patent/US8588540B2/en
Publication of WO2008054005A2 publication Critical patent/WO2008054005A2/en
Publication of WO2008054005A3 publication Critical patent/WO2008054005A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Definitions

  • the present invention relates to a technique of performing arithmetic coding of a binary symbol stream generated from digital information such as image data.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CAVLC Context-based Adaptive Variable length coding
  • Japanese Patent Laid-Open No. 2004-135251 proposes a technique focused on the abovementioned CABAC and CAVLC.
  • the application discloses "image information coding method and image information decoding method" of limiting the amount of input/output data to CABAC thereby ensuring processing time in a decoder.
  • FIG. 5 is a flowchart showing a processing procedure of a conventional arithmetic coding method. Note that this processing procedure is defined with the ITU-T H.264 standard and is publicly known.
  • the H.264 arithmetic coding i,e, CABAC coding, handles input of a binary symbol .
  • step S900 it is determined whether or not the input of a symbol has been completed.
  • a symbol is inputted at step S901.
  • the input symbol is "0" or "1", a binary symbol.
  • step S902 zone dividing is performed.
  • the zone means an area of integers from “0” to "1023” represented with a lower limit and a length.
  • the zone dividing refers to dividing a zone into two zones at a ratio between occurrence probabilities of the binary symbols.
  • the zone is divided at a ratio of 75 to 25 (in this case, the symbol "0" is referred to as an "MPS (More Probable Symbol)", the symbol "1", as an "LPS (Less Probable Symbol)”.
  • MPS Moore Probable Symbol
  • LPS Less Probable Symbol
  • one of the divided zones is selected in accordance with the input symbol.
  • FIG. 6 shows an example where the current zone is represented with a lower limit value "21" and a length "320". The occurrence probabilities of the symbols 0 and 1 are 75% and 25%. When an input symbol is "1", the "1" zone is selected.
  • step S904 it is determined whether or not the length of the new zone is less than "256".
  • the process returns to step S900.
  • step S905 it is determined whether or not the value of the lower limit of the zone is less than "256".
  • step S905 When the lower limit of the zone is less than "256" (YES at step S905) , the process branches to step S906, at which "0" is outputted as a code stream. At step S907, "1" is outputted in correspondence with the number of reserved bits to be described later, as a code stream. Further, the number of reserved bits is reset to zero.
  • step S908 the zone is normalized. The normalization is processing to expand the length of a zone less than "256" and ensure precision in the subsequent processing. At step S908, the value of the lower limit and the length of the zone are doubled.
  • step S905 when it is determined that the lower limit is greater than or equal to "256" (NO at step S905) , the process branches to step S909, at which it is determined whether or not the lower limit of the zone is less than "512". If it is determined that the lower limit of the zone is less than "512" (YES at step S909) , the process branches to step S910. If it is determined that the lower limit of the zone is greater than or equal to "512" (NO at step S909) , the process branches to step S912.
  • step S912 "1" is outputted as a code stream, and at step S913, "0" is outputted in correspondence with the number of reserved bits to be described later, as a code stream. The number of reserved bits is reset to zero.
  • step S914 the zone is normalized. In the normalization at this step, a value, obtained by subtracting "512" from the value of the lower limit and doubling the subtraction result, is set as a new value of the lower limit. Further, the length of the zone is doubled. [0012] Further, at step S909, when it is determined that the value of the lower limit is less than "512", the process branches to step S910, at which the number of reserved bits is incremented by one.
  • step S911 the zone is normalized.
  • "256" is subtracted from the value of the lower limit, then the subtraction result is doubled, and the length of the zone is doubled.
  • the number of reserved bits is incremented to "1”.
  • step S906 As the length of the normalized zone is "160”, the process proceeds from step S904 to step S905 again. As the value of the lower limit is "10", the process proceeds to step S906. At step S906, "0" is outputted, and as the number of reserved bits has been incremented to "1", one "1" is outputted (step S907) . That is, a code stream "01" is outputted. Further, by the normalization processing at step S908, the value of the lower limit is doubled to "20” and the length of the zone is doubled to "320". As the length of the zone is greater than "256", the process returns from step S904 to step S900. The above processing is repeated until the completion of input is detected at step S900 and the process branches to termination processing at step S915.
  • the above-described conventional arithmetic coding has two problems.
  • the first problem is the large number of steps to process one input symbol in the loop from step S904 to step S914, which may increase software processing time or increase the hardware circuit scale.
  • the second problem is the increase in memory capacity for holding values in repetition of increment of the number of reserved bits at step S910, and by extension, the increase in the amount of processing time at steps S907 and S913 as reserved bit resolving processing.
  • the present invention has been made in view of the above problems, and provides a technique of, upon application of the arithmetic coding to hardware, realizing simplification of the circuitry and reduction of power consumption, and upon application of the arithmetic coding to software, reduction of memory consumption and high speed processing in accordance with simplification of processing.
  • a coding apparatus using arithmetic coding, which sequentially inputs a binary symbol to be encoded, generates binary data indicating a value of decimal place greater than or equal to "0" and less than “1” as coded data, and outputs the coded data, comprising: a zone dividing and selection unit to, upon each input of a binary symbol, repeat dividing of a zone represented with finite precision into two zones in accordance with a ratio between occurrence probabilities of MPS (More Probable Symbol) and LPS (Less Probable Symbol) and selection of one of the two zones; a normalization unit to, when a length of the zone selected by the zone dividing and selection unit is less than a predetermined zone length, perform normalization so as to increase the size of the selected zone; and a processing unit to, upon normalization by the normalization unit, determine coded bit data and output the coded bit data, or increment the number of
  • a coding apparatus using arithmetic coding, which sequentially inputs a binary symbol to be encoded, generates binary data indicating a value of a decimal place greater than or equal to "0" and less than “1” as coded data, and outputs the coded data, comprising: a zone dividing and selection unit to, upon each input of a binary symbol, repeat dividing of a zone represented with finite precision into two zones in accordance with a ratio between occurrence probabilities of MPS (More Probable Symbol) and LPS (Less Probable Symbol) and selection of one of the two zones; a normalization times determination unit to determine the number of times of normalizations to expand a length of the zone selected by the zone dividing and selection unit based on the length of the zone; a calculation unit to calculate the number of output bits to be outputted as coded data based on the zone selected by the zone dividing and selection unit; a coded data output
  • the number of process steps to increment the number of reserved bits is smaller than that in the conventional technique. Accordingly, upon application of the arithmetic coding to hardware, the circuitry can be simplified and the power consumption can be reduced. Further, upon application of the arithmetic coding to software, the memory consumption can be reduced and high speed processing can be performed in accordance with simplification of processing.
  • FIG. 1 is a flowchart showing a processing procedure in an arithmetic coding unit according to a first embodiment of the present invention
  • FIG. 2 is a Venn diagram showing the classification of a zone in an arithmetic coding process according to the first embodiment
  • FIG. 3 is a flowchart showing the processing procedure in the arithmetic coding unit according to a second embodiment of the present invention.
  • FIG 4 is a graph showing zones in arithmetic coding according to the second embodiment
  • FIG. 5 is a flowchart showing the processing procedure of the conventional arithmetic coding
  • FIG. 6 is an explanatory view of normalization processing
  • FIG. 7 is a block diagram of an encoder in an apparatus to which the embodiment is applied.
  • FIG. 8 is a particular block diagram of the arithmetic coding unit according to the first embodiment.
  • FIG. 9 is a particular block diagram of the arithmetic coding unit according to the second embodiment .
  • BEST MODE FOR CARRYING OUT THE INVENTION [0031]
  • embodiments of the present invention will be described based on the attached drawings . [0032] ⁇ First Embodiment>
  • FIG. 7 is a block diagram showing a configuration of an encoder to which the first embodiment of the present invention is applied.
  • Reference numeral 101 denotes a video input unit; 102, a converter; 103, a quantizer; 104, a CAVLC unit; 105, a CABAC unit; 106, a binarizer; 107, an arithmetic coding unit; 108, a selector; and 109, a stream output unit.
  • the encoder according to the present embodiment performs high- efficiency coding processing in accordance with the following procedure based on the H.264 standard. Note that the encoder is applicable to an image sensing apparatus (video camera) or a video image recording/reproducing apparatus.
  • a digital video signal inputted from the video input unit 101 is supplied to the converter 102.
  • the converter 102 divides image data represented by the input digital video signal into, e.g., 16 x 16 pixel blocks, and converts each block into a coefficient stream.
  • the converter 102 reduces the amount of redundant visual information in each block by performing motion prediction processing, motion compensation processing and orthogonal transformation processing (frequency conversion) and the like.
  • the coefficient stream obtained by the conversion processing in the converter 102 is supplied to the quantizer 103.
  • the quantizer 103 quantizes the input coefficient stream in accordance with a previously-set quantization parameter.
  • the information volume of the coefficient stream is reduced in correspondence with the size of the quantization parameter.
  • the quantized coefficient stream is supplied to the CAVLC unit 104 and the CABAC unit 105.
  • the CAVLC unit 104 is not directly related to the present invention, a detailed explanation of the CAVLC unit 104 will be omitted; • the CABAC unit 105 will now be described.
  • the binarizer 106 converts the input coefficient stream to a binary symbol stream including symbols "0" and "1".
  • the arithmetic coding unit 107 sequentially inputs the binary symbol stream binarized by the binarizer 106, performs processing in accordance with the following procedure, thereby generates a compressed arithmetic coded data stream and outputs the data stream.
  • the processing can be performed by one coefficient.
  • the arithmetic coding unit 107 performs processing on each binary symbol.
  • the code stream generated by the CAVLC unit 104 and the code stream generated by arithmetic coding in the CABAC unit 105 are respectively supplied to the selector 108, and one of the code streams is selected as an output by the selector 108. The selected stream is then outputted from the stream output unit 109.
  • the characteristic feature of the present embodiment resides in the arithmetic coding unit 107 in FIG. 7. Next, the arithmetic coding unit 107 will be described in more detail.
  • the arithmetic coding is repeating zone dividing and zone selection in correspondence with the value of input symbol, to obtain a value greater than or equal to "0" and less than "1" after the decimal point as an encoded result.
  • a value greater than or equal to "0" and less than "1” after the decimal point is represented as ⁇ 0.xxx... (where x takes the binary value 0 or I)"
  • the "xxx" portion excluding integer and decimal point is obtained as encoded data.
  • the bit in the first decimal place indicates a decimal number "0.5", and the bit in the second decimal place, "0.25".
  • a value represented with a bit in the i-th decimal place is 1/2 the value represented with a bit in the (i-l)th decimal place.
  • a decimal number ⁇ 0.75" is represented as ⁇ X 0.11" in binary notation.
  • the lower limit, the upper limit and the length of one zone are represented with registers with a limited number of bits. However, when the respective bits after the decimal point are obtained, the length of the zone is gradually narrowed.
  • FIG. 1 is a flowchart showing a processing procedure of the arithmetic coding processing in the arithmetic coding unit 107 according to the present embodiment.
  • the content of processing in the arithmetic coding unit 107 will be described in accordance with the flowchart.
  • step SlOO it is determined whether or not input of symbols to be encoded has been completed. The determination may be made by counting the number of input symbols and determining whether or • not the counted number has reached a predetermined number of symbols as a coding unit. [0044] When input is complete, i.e, when it is determined that the coding processing has been completed (YES at step SlOO) , the process proceeds to step S115.
  • step SlOl if input is has not been completed, i.e., when it is determined that the coding processing has not been completed (NO at step SlOO), the process proceeds to step SlOl.
  • step SlOl one symbol is obtained.
  • the symbol to be encoded is a "0" or "1" binary symbol outputted from the binarizer 106.
  • the zone is divided.
  • the zone ranges from “0" to "1023". That is, the lower limit is “0" and the length of the zone is "1024".
  • the zone is defined with the lower limit "0", the upper limit value "1023” as an integer “1”, and the value between the lower limit and the upper limit representing a value after the decimal point.
  • the value of the lower limit and that of the upper limit are each respectively held in 10-bit registers.
  • the dividing of the zone at step S102 is a division into two zones at a ratio between occurrence probabilities of input binary symbols. For example, when the occurrence probability of "0" is 75% and that of "1" is 25%, the zone is divided at a ratio of 75 to 25.
  • one of the divided zones is selected in accordance with the input symbol.
  • the value of the lower limit of the current zone is "21”
  • the length of the zone is "320”
  • the occurrence probabilities of "0" symbols and "1” symbols are 75% and 25%.
  • the input symbol is "1”
  • the "1" zone is selected.
  • the value of the new lower limit is "261”
  • the length of the zone is "80”.
  • step S104 the new zone length is compared with the threshold value "256". When the length of the zone is greater than or equal to "256" (NO at step S104), the process returns to step SlOO. [0051] Further, as shown in FIG. 6, when the length of the zone is "80" and is less than "256" (YES at step S104), the process branches to step S105. [0052] At step S105, the value of the lower limit of the zone is determined. When the value of the lower limit is less than ⁇ 512" (YES at step S105) , the process branches to step S106. At step S106, it is determined whether or not the value of the upper limit of the zone is less than "512".
  • step S107 When it is determined at step SlO 6 that the value of the upper limit is less than "512" (YES at step S106) , the process proceeds to step S107. [0054] The process proceeds to step S107 when the value of the upper limit and the lower limit of the selected zone are both equal to or less than "512". Accordingly, at step S107, "0" is outputted as a bit after coding. Then, at step S108, "1" is outputted in correspondence with a value indicated with the number of reserved bits at this time, then the number of reserved bits is reset to "0". Note that immediately after the process has proceeded to step S108, when the number of reserved bits is "0", resetting is not performed.
  • the zone is normalized.
  • the normalization processing at step S109 is to expand the zone less than "256" so as to ensure precision in the subsequent coding processing.
  • a value obtained by doubling the value of the lower limit is set as a value of the lower limit of the updated zone. Further, the length of the zone is doubled, and the result is set as the length of the updated zone. The process then returns to step S104.
  • step S105 when it is determined at step S105 that the value of the lower limit of the selected zone is greater than or equal to "512" (NO at step S105) , the process branches to step S112. That is, when the values of the upper limit and the lower limit of the current zone are both greater than or equal to "512" .
  • step S112 as the value of digit of interest, "1" is outputted as a bit after coding.
  • step S113 "0" is outputted in correspondence with a number indicated by the number of reserved bits, then the number of reserved bits is reset to "0".
  • step S114 the zone is normalized.
  • the normalization processing at step S114 expands the zone less than "256" so as to ensure precision in the subsequent coding processing.
  • step S114 a value obtained by subtracting "512" from the value of the lower limit and doubling the subtraction result, is set as the value of the lower limit of the updated zone. Further, the result of doubling of the length of the zone is set as the length of the updated zone. The process then returns to step S104.
  • step S106 determines that the value of the upper limit of the zone is greater than or equal to "512" (NO at step S106)
  • the process proceeds to step SIlO.
  • the process proceeds to step SIlO when the value of the lower limit of the zone is less than "512" and the value of the upper limit of the zone is greater than or equal to "512".
  • step SIlO determines whether the bit of the digit of interest is "0" or "1" is unknown. Accordingly, the number of reserved bits is incremented by one at step SIlO.
  • step Sill the zone is normalized.
  • step Sill In the normalization at step Sill, "256" is subtracted from the value of the lower limit of the zone, the subtraction result is doubled and this value is used to as the lower limit of the updated zone. Further, the result of doubling of the length of the zone is set as the length of the updated zone. Thereafter, the process returns to step S104.
  • termination processing is performed at step S115.
  • a convenient between the upper limit and the lower limit determined in the processing just described, in binary notation is determined, and based on the value, a bit of a yet-to- be outputted digit is outputted. For example, assuming that the value of the upper limit of the zone is equal to that of the lower limit (the length of the zone is "0") , a coded bit and a reserved bit at that time are outputted.
  • the processing by the arithmetic coding unit 107 according to the present embodiment is as described above.
  • the number of execution times of the step to increment the number of reserved bits can be reduced to the half of that in the conventional method described above in FIG. 5.
  • the value of the lower limit of the new zone obtained by zone selection is "261".
  • the process upon branching at steps S905 and S909, the process proceeds to step S910 to increment the number of reserved bits.
  • the processing at step S107 and the subsequent steps is performed through the branching at steps S105 and S106. That is, in the above case, the processing to increment the number of reserved bits is not performed.
  • step S107 a bit "0" is outputted as coded data. Thereafter, the process proceeds to step S108, however, in FIG. 6, the number of reserved bits is still zero. Accordingly, this step S108 is not performed. Then, the value of the lower limit of the current zone and the length of the zone are respectively doubled in the normalization processing at step S109. That is, the value of the lower limit of the zone becomes "522" and the length of the zone becomes "160". Thereafter, the process returns to step S104. As the length of the zone is "160” and is less than the threshold value "256", the process proceeds, through the branching at steps S104 and S105, to step S112.
  • FIG. 2 is a Venn diagram showing a zone before normalization which is classified with ranges of upper limit and lower limit.
  • the length of the zone is less than "256” and a bit "0" is outputted as coded data only in an area 201 where the value of the lower limit of the zone is less than "256". That is, in the remaining areas 202 and 203, the processing to increment the number of reserved bits is performed.
  • a bit "0" is outputted as coded data. Only in the area 203 where the value of the upper limit of the zone is greater than or equal to "512" and the value of the lower limit is less than "512", the number of reserved bits is incremented.
  • the zone is classified in more detail using the upper limit.
  • a bit "0" is outputted as coded data when the zone stands in the area 202 where the reservation is not required,- the number of times of the increment of the number of reserved bits can be reduced to the half of that in the conventional technique.
  • "1" is outputted as a bit of coded, data. Accordingly, the processed result according to the present embodiment in the area 204 where the value of the lower limit of the zone is greater than or equal to "512" corresponds with that of the conventional technique.
  • FIG. 8 is a block diagram showing a particular configuration of the arithmetic coding unit 107 according to the present embodiment.
  • the arithmetic coding unit 107 according to the present embodiment has an input unit 801, a control unit 802, a termination processing unit 803, an output zone unit 804, a zone update unit 805, a normalization processing unit 806, an output bit generation unit 807, and a reserved bit processing unit 808.
  • the operation of the arithmetic coding unit 107 having this configuration will be described in correspondence with the flowchart of FIG.
  • step SlOl the input unit 801 sequentially inputs a binary symbol from the binarizer
  • the input unit 801 outputs a termination determination signal to the control unit
  • the zone update unit 805 performs zone dividing at step S102 and zone selection at step S103, and supplies signals indicating values of the upper limit and the lower limit of the selected zone to the control unit 802 and the normalization processing unit
  • the control unit 802 supplies control signals based on signals supplied from the respective blocks, to the respective blocks.
  • the termination processing unit 803 performs the termination processing at step S115 in accordance with a trigger signal from the control unit
  • the output bit generation unit 807 supplies "0" or "1" to the output selection unit 804 in accordance with a control signal from the control unit 802. This processing corresponds to step S107 or S112 in FIG. 1.
  • the reserved bit processing unit 808 supplies the reserved bit stream at step S108, SIlO or S113 to the output selection unit 804 in accordance with a control signal from the control unit 802. [0080]
  • the output selection unit 804 selects one of the bit streams supplied from the termination processing unit 803, the output bit generation unit 807 and the reserved bit processing unit 808 in accordance with a control signal from the control unit 802, and outputs the selected bit stream.
  • the normalization processing unit 806 receives a control signal from the control unit 802 and signals indicating the values of the upper limit and the lower limit from the zone update unit 805, normalizes the zone, and supplies values of the upper limit and the lower limit of the new zone to the zone update unit 805.
  • This processing corresponds to steps S109, Sill and S114 in FIG. 1.
  • One of these steps S109, Sill and S114 is performed based on a control signal from the control unit 802.
  • the values of the upper limit and the lower limit changed by the normalization processing are supplied via the zone update unit 805 to the control unit 802.
  • the control unit 802 generates signals to control the respective blocks in accordance with determination at steps SlOO, S104, S105 and S106 as branching steps of the flowchart of FIG. 1.
  • an input device a video camera, an image scanner or a storage device for storing non-compressed image data
  • the other respective constituent elements shown in FIG. 1 are realized with a high-level control unit such as a microcomputer and a RAM holding a program executed by the control unit.
  • a high-level control unit such as a microcomputer and a RAM holding a program executed by the control unit.
  • only the arithmetic coding unit 107 in FIG. 7 is realized with a microcomputer and a software program executed by the microcomputer.
  • FIG. 3 is a flowchart showing the processing procedure- in the arithmetic coding unit 107 according to the second embodiment.
  • the constituent elements other than the arithmetic coding unit 107 are identical to those in the first embodiment, explanations of those elements will be omitted.
  • step S300 it is determined whether or not input of symbols to be encoded has been completed. The determination may be made by counting the number of input symbols and determining whether or not the counted number has become a predetermined number of symbols as a coding unit.
  • step S300 When the input has been completed, i.e., when it is determined that the coding processing has been completed (YES at step S300) , the process proceeds to step S315.
  • step S300 the process proceeds to step S301.
  • step S301 one symbol is obtained.
  • the symbol to be encoded is a
  • step S302 the zone is divided.
  • the lower limit is "0" and the length of the zone is "1024".
  • the dividing of the zone at step S302 is a division of the zone into two zones at a ratio between occurrence probabilities of input binary symbols. For example, when the occurrence probability of "0" is 75% and that of "1" is 25%, the zone is divided at a ratio of 75 to 25.
  • step S303 one of the divided zones is selected in accordance with the input symbol. For example, in FIG. 6, the zone is represented with the lower limit "21" and the length "320" and the occurrence probabilities of symbols "0" and "1" are 75% and 25%. In this case, when the input symbol is "1", the "1" zone is selected. The value of the lower limit of the new zone is "261" and the length is "80".
  • step S304 the number of times of normalization processing (i.e, the number of normalization) is calculated based on the length of the zone newly selected at step S303.
  • normalization processing is performed when the length of the zone is less than "256", to double the length of the zone. Normalization processing is repeated until the length of the zone is greater than or equal to "256".
  • the number of normalizations corresponds to a sequence of zeros from the most significant bit (MSB) toward the least significant bit
  • step S304 the number of continuous zeros is counted from the MSB, and the counted value is set as the number of times of normalizations.
  • the acquisition of the number of times of normalizations is not limited to the above method.
  • the base-"2" logarithm of the length of the zone is obtained, and its decimal portion is rounded down.
  • the value obtained by subtracting the obtained logarithm from "8" is set as the number of times of normalizations.
  • the number of times of normalizations can be obtained with more simple processing or a more simple circuit configuration.
  • step S305 the number of code bits to be determined and outputted is calculated. When the processing to increment the number of reserved bits is not performed, the number of times of normalizations and the number of bits to be determined and outputted correspond with each other.
  • FIG. 4 shows zones 401 to 403 with lengths respectively greater than or equal to "128" and less than "256". Accordingly, the number of times of normalizations for the zones 401 to 403 is one.
  • the value of the upper limit is less than "512”
  • "0" is outputted as a bit of coded data.
  • the zone 402 as the value of the lower limit is greater than or equal to "512”
  • "1" is outputted.
  • the number of reserved bits is incremented by- one but no coded data bit is outputted at this time. That is, in a zone, when the threshold value "512" exists between the upper limit and the lower limit, the number of reserved bits is incremented by one, and no coded data is outputted.
  • the number of output bits is two.
  • the number of output bits is three. Therefore, when the values of the upper limit and the lower limit of a zone are represented in 10-bit binary notation, the number of corresponding bits from the MSB between the both limits is equal to the number of output bits. Note that as the number of output bits does not exceed the allowable number of times of normalizations, the number of output bits is clipped by the allowable number of times of normalizations as an upper limit. [0110] Returning to FIG. 3, the number of output bits calculated as above is determined.
  • step S306 it is determined whether or not the number of output bits is greater than or equal to "1". When it is determined that the number of output bits is greater than or equal to "1" (YES at step S306) , processing at steps S307 to S309 is performed. When it is determined that the number of output bits is zero (NO at step S306) , the process proceeds to step S310. [0111] At steps S307 to S309, a bit stream is outputted as a code. At this time, the output bit stream is the corresponding bit stream between the upper limit and the lower limit of the zone. [0112] For example, in the case of the zone 404 in FIG. 4, the value of the upper limit is ⁇ 389" and that of the lower limit is "270".
  • step S310 the number of reserved bits is updated. A value obtained by subtracting the number of output bits from the number of times of normalizations is added to the number of reserved bits.
  • step S311 the zone is normalized. The normalization is repeated removal of the output bit stream (set to zero) from the lower limit and doubling of the value of the lower limit by the number of times of normalizations. Further, the length of the zone is doubled by the number of times of normalizations. Note that doubling by N times is the same as an N-bit left shift calculation.
  • step S307 At the output of the bit stream from step S307 to step S309, when the number of reserved bits is greater than or equal to one, first, at step S307, only the head bit of the output bit stream is outputted. Then at step S308, an inverted bit of the head bit is outputted by the number of reserved bits. Then at step S309, the remaining bit stream is outputted.
  • the number of reserved bits is "3"
  • the head bit "0" of the output bit stream "01" is first outputted
  • the inverted bit "1" of the bit "0” is outputted by the number of reserved bits, "111”.
  • the remaining bit stream "1" (second bit of "01") is outputted at step S309. Accordingly, the outputted coded data is "01111".
  • the number of reserved bits is reset to zero.
  • step S300 to repeat the processing at steps S301 to S311 until it is determined that the input of the symbols has been completed.
  • the termination processing at step S315 is performed.
  • FIG. 9 is a block diagram showing the configuration of the arithmetic coding unit 107 according to the second embodiment to perform the above-described processing.
  • the arithmetic coding unit 107 according to the second embodiment has an input unit 901, a control unit 902, a termination processing unit 903, an output selection unit 904, a zone update unit 905, a normalization unit 906, an output bit generation unit 907, a reserved bit processing unit 908, a corresponding bit detection unit 909, and a zone length calculation unit 910.
  • the input unit 901 sequentially inputs a binary symbol from the binarizer 106. Further, when it is detected that the number of input symbols has reached a predetermined number as the unit of coding, the input unit 901 outputs a termination determination signal to the control unit 902.
  • the zone update unit 905 performs the zone dividing at step S302 and the zone selection at step S303, and supplies signals indicating the values of the upper limit and the lower limit of the selected zone to the corresponding bit detection unit 909, the zone length calculation unit 910 and the normalization unit 906.
  • the corresponding bit detection unit 909 compares the value of the upper limit supplied from the zone update unit 905 with the value of the lower limit also supplied from the zone update unit 905, and counts the number of corresponding bits continuous from the MSB in binary representation. This processing corresponds to step S305.
  • the number of corresponding bits is supplied to the control unit 902.
  • the zone length calculation unit 910 subtracts the value of the lower limit supplied from the zone update unit 905 from the value of the upper limit also supplied from the zone update unit 905 thereby obtains the length of the zone (corresponding to the step S304) .
  • control unit 902 calculates a necessary number of times of normalizations from the length of the zone inputted from the zone length calculation unit
  • the normalization unit 906 normalizes the values of the upper limit and the lower limit supplied from the zone update unit 905, in accordance with the number of times of normalizations supplied from the control unit 902, and supplies the values of the new upper and lower limits of the zone to the zone update unit 905. This processing corresponds to step S311.
  • control unit 902 supplies control signals based on signals supplied from the respective units, to the respective units.
  • the termination processing unit 902 outputs a trigger signal to the termination processing unit 903.
  • the output bit .generation unit 907 supplies "0" or "1" to the output selection unit 904 in accordance with a control signal from the control unit 902. This processing corresponds to step S307 and S309 in the flowchart of FIG. 3, to generate output bits, the number of which corresponds with that of the corresponding bits detected by the corresponding bit detection unit 909.
  • the reserved bit processing unit 908 supplies the reserved bit stream at step S3O8 or S310 to the output selection unit 904 in accordance with a control signal from the control unit 902.
  • the output selection unit 904 selects one of the bit streams supplied from the termination processing unit 903, the output bit generation unit 907 and the reserved bit processing unit 908 in accordance with a control signal from the control unit 902, and outputs the selected bit stream.
  • control unit 902 performs processing corresponding to the determination branching steps S300 and S306 in the flowchart of FIG. 3, and issues the control signals for the respective blocks.
  • the loop processing in the arithmetic coding is reduced and the increment of the number of reserved bits can be suppressed.
  • an arithmetic coding apparatus capable of performing processing with a smaller circuit scale and reduced power consumption can be provided.
  • an input device an image sensing device such as a video camera or an image scanner, or a storage device for storing uncompressed image data
  • the other respective constituent elements shown in FIG. 7 are realized with a high-level control unit such as a microcomputer and a RAM holding a program executed by the control unit.
  • a high-level control unit such as a microcomputer and a RAM holding a program executed by the control unit.
  • only the arithmetic coding unit 107 in FIG. 7 is realized with a microcomputer and a software program executed by the microcomputer .
  • the present invention is applied to an image sensing apparatus (video camera) or a video recording and reproducing apparatus.
  • video camera video camera
  • the present invention is applicable to any apparatus having a structure to generate binary symbols as information to be encoded, the present invention is not limited to the above embodiments.
  • software i.e., a computer program is stored in a computer-readable storage medium such as a CD-ROM.
  • a computer-readable storage medium such as a CD-ROM.
  • the computer- readable storage medium may be set in a reader of a computer (e.g., a CD-ROM drive) and the computer program may be duplicated or installed in the system, thereby allowing the computer to performs the task of the computer program. Accordingly, the such computer- readable storage medium is included in the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
PCT/JP2007/071442 2006-11-01 2007-10-30 Encoding apparatus and control method thereof Ceased WO2008054005A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/440,867 US8588540B2 (en) 2006-11-01 2007-10-30 Arithmetic encoding apparatus executing normalization and control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006298214A JP4717780B2 (ja) 2006-11-01 2006-11-01 符号化装置及びその制御方法
JP2006-298214 2006-11-01

Publications (2)

Publication Number Publication Date
WO2008054005A2 true WO2008054005A2 (en) 2008-05-08
WO2008054005A3 WO2008054005A3 (en) 2008-07-17

Family

ID=39328786

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/071442 Ceased WO2008054005A2 (en) 2006-11-01 2007-10-30 Encoding apparatus and control method thereof

Country Status (3)

Country Link
US (1) US8588540B2 (enExample)
JP (1) JP4717780B2 (enExample)
WO (1) WO2008054005A2 (enExample)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016045565A1 (zh) * 2014-09-23 2016-03-31 清华大学 一种视频数据编码、解码的方法及装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102687512A (zh) * 2009-12-28 2012-09-19 松下电器产业株式会社 图像编码装置以及集成电路
WO2012048055A1 (en) 2010-10-05 2012-04-12 General Instrument Corporation Coding and decoding utilizing adaptive context model selection with zigzag scan
US8938001B1 (en) * 2011-04-05 2015-01-20 Google Inc. Apparatus and method for coding using combinations
US9258565B1 (en) 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
US8798139B1 (en) * 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
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
CN106537914B (zh) * 2014-06-29 2019-10-11 Lg 电子株式会社 通过限制的进位运算来执行算术编译的方法和设备
CN110999298B (zh) * 2017-07-05 2024-06-07 Red.Com有限责任公司 电子装置中的视频图像数据处理

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905297A (en) * 1986-09-15 1990-02-27 International Business Machines Corporation Arithmetic coding encoder and decoder system
JP3108479B2 (ja) * 1991-08-28 2000-11-13 株式会社リコー 符号化復号化方法およびその装置
KR950013404B1 (ko) * 1991-11-15 1995-11-08 미쯔비시덴끼 가부시끼가이샤 부호전송장치
JP3018990B2 (ja) * 1996-07-18 2000-03-13 日本電気株式会社 算術符号化装置
US5859604A (en) * 1997-01-14 1999-01-12 International Business Machines Corporation Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder
JP2002094386A (ja) * 2000-09-12 2002-03-29 Mitsubishi Electric Corp 符号化装置、復号装置、符号化方法および復号方法
US6756921B2 (en) * 2000-12-27 2004-06-29 Mitsubishi Denki Kabushiki Kaisha Multiple quality data creation encoder, multiple quality data creation decoder, multiple quantity data encoding decoding system, multiple quality data creation encoding method, multiple quality data creation decoding method, and multiple quality data creation encoding/decoding method
US6677869B2 (en) * 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
US6950558B2 (en) * 2001-03-30 2005-09-27 Ricoh Co., Ltd. Method and apparatus for block sequential processing
JP3801501B2 (ja) * 2001-12-18 2006-07-26 三菱電機株式会社 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
PT2037412E (pt) * 2002-05-02 2013-12-05 Fraunhofer Ges Forschung Método e disposição para a codificação e descodificação aritmética de estados binários e um programa de computador apropriado e correspondente suporte de memória legível por computador
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
JP4453398B2 (ja) * 2004-03-01 2010-04-21 ソニー株式会社 符号化装置、プログラム、および符号化処理方法
US7176815B1 (en) * 2004-09-24 2007-02-13 Texas Instruments Incorporated Video coding with CABAC
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
FR2903269B1 (fr) * 2006-06-28 2008-10-03 Assistance Tech Et Etude De Ma Dispositif et procede d'encodage de type cabac

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GARY SULLIVAN ET AL: "Technical Description of ITU-T VCEG Draft H.26L Algorithm in Response to Video and DCinema CfPs" VIDEO STANDARDS AND DRAFTS, XX, XX, no. M7512, 10 July 2001 (2001-07-10), pages 1-46, XP030036619 *
OSORIO R R ET AL: "A New Architecture for fast Arithmetic Coding in H.264 Advanced Video Coder" DIGITAL SYSTEM DESIGN, 2005. PROCEEDINGS. 8TH EUROMICRO CONFERENCE ON PORTO, PORTUGAL 30-03 AUG. 2005, PISCATAWAY, NJ, USA,IEEE, 30 August 2005 (2005-08-30), pages 298-305, XP010864760 ISBN: 978-0-7695-2433-7 *
WITTEN I H ET AL: "ARITHMETIC CODING FOR DATA COMPRESSION" COMMUNICATIONS OF THE ASSOCIATION FOR COMPUTING MACHINERY, ACM, NEW YORK, NY, US, vol. 30, no. 6, 1 June 1987 (1987-06-01), pages 520-540, XP000615171 ISSN: 0001-0782 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016045565A1 (zh) * 2014-09-23 2016-03-31 清华大学 一种视频数据编码、解码的方法及装置
US10499086B2 (en) 2014-09-23 2019-12-03 Tsinghua University Video data encoding and decoding methods and apparatuses

Also Published As

Publication number Publication date
WO2008054005A3 (en) 2008-07-17
US8588540B2 (en) 2013-11-19
JP2008118307A (ja) 2008-05-22
US20100054328A1 (en) 2010-03-04
JP4717780B2 (ja) 2011-07-06

Similar Documents

Publication Publication Date Title
US8588540B2 (en) Arithmetic encoding apparatus executing normalization and control method
TWI685245B (zh) 資料編碼及解碼
US7079057B2 (en) Context-based adaptive binary arithmetic coding method and apparatus
KR100648258B1 (ko) 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
KR101356733B1 (ko) 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
US5045852A (en) Dynamic model selection during data compression
JP4865757B2 (ja) 限定されたビット数を用いる画像処理のための装置、画像処理システム、カメラモジュールおよび画像処理用回路
KR0180169B1 (ko) 가변길이 부호기
US9860564B2 (en) Method for producing video coding and programme-product
US7817864B2 (en) Coding apparatus and decoding apparatus
WO1997034375A1 (en) Method for reducing storage requirements for digital data
JPWO2008065814A1 (ja) 符号化装置
CN103918186B (zh) 上下文自适应数据编码
JP5231243B2 (ja) 符号化装置及び符号化方法
JP2009021775A (ja) 符号化装置及び符号化方法
WO2013068733A1 (en) Context adaptive data encoding
JP2012089917A (ja) 符号化装置および方法、並びにプログラム
JP2008311803A (ja) 算術復号方法、算術復号装置及び算術復号プログラム
JP4936574B2 (ja) 符号化装置及びその制御方法
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2009017232A (ja) 算術符号化装置及び画像符号化装置
JP2578966B2 (ja) 網点画像データ圧縮装置
TW200826685A (en) Joint Bi-level Image Group (JBIG) coding and decoding system
WO2013068732A1 (en) Context adaptive data encoding
JP2008131526A (ja) 動画像符号化装置及び動画像符号化プログラム

Legal Events

Date Code Title Description
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 12440867

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07831175

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 07831175

Country of ref document: EP

Kind code of ref document: A2