METHOD AND APPARATUS FOR PERFORMING ARITHMETIC CODING BY LIMITED CARRY OPERATION
20180205952 ยท 2018-07-19
Inventors
Cpc classification
H04N19/126
ELECTRICITY
International classification
H04N19/13
ELECTRICITY
Abstract
Disclosed herein is a method of performing an arithmetic coding for data symbols, comprising: creating an interval for each of the data symbols, the interval being represented based on a starting point and a length of the interval; updating the interval for each of the data symbols; checking whether the updated interval is included in a specific range; and renormalizing the updated interval based on a result of the checking.
Claims
1. A method of performing an arithmetic coding for data symbols, comprising: creating an interval for each of the data symbols, the interval being represented based on a starting point and a length of the interval; updating the interval for each of the data symbols; checking whether the updated interval is included in a specific range; and adjusting the updated interval to reduce outstanding bits.
2. The method of claim 1, further comprising renormalizing the adjusted interval.
3. The method of claim 1, further comprising: if the updated interval is not included in a specific range, selecting one of a top part and a bottom part of the updated interval, wherein the updated interval is adjusted based on a selected part.
4. The method of claim 3, further comprising: calculating a threshold point within the updated interval; and comparing a first distance with a second distance, wherein the first distance indicates a length from the threshold point to the top part and the second distance indicates a length from the threshold point to the bottom part, and wherein the updated interval is adjusted based on a result of the comparing step.
5. The method of claim 4, wherein if the first distance is smaller than the second distance, a length of the updated interval is set as the second distance.
6. The method of claim 4, wherein if the first distance is not smaller than the second distance, a length of the updated interval is set as the first distance, and a starting point of the updated interval is set by the threshold point.
7. An apparatus of performing an arithmetic coding for data symbols, which includes a binary arithmetic coding unit, comprising: the binary arithmetic coding unit configured to create an interval for each of the data symbols, the interval being represented based on a starting point and a length of the interval, update the interval for each of the data symbols, check whether the updated interval is included in a specific range, and renormalize the updated interval based on a result of the checking.
8. The apparatus of claim 7, wherein if the updated interval is included in a specific range, the bit being positioned within the specific range is stored in a buffer and the updated interval is renormalized.
9. The apparatus of claim 7, wherein if the updated interval is not included in a specific range, the binary arithmetic coding unit is further configured to select one of a top part and a bottom part of the updated interval, wherein the updated interval is adjusted based on a selected part.
10. The apparatus of claim 9, wherein the binary arithmetic coding unit is further configured to compare a length of the top part and a length of the bottom part, wherein the updated interval is renormalized based on a result of the comparison.
11. The apparatus of claim 10, wherein if the length of the top part is smaller than the length of the bottom part, a length of the updated interval is set as the length of the bottom part.
12. The apparatus of claim 10, wherein if the length of the top part is not smaller than the length of the bottom part, a length of the updated interval is set as the length of the top part, and a starting point of the updated interval is set as bit position.
Description
DESCRIPTION OF DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
BEST MODE
[0026] In accordance with an aspect of the present invention, there is provided a method of performing an arithmetic coding for data symbols, comprising: creating an interval for each of the data symbols, the interval being represented based on a starting point and a length of the interval; updating the interval for each of the data symbols; checking whether the updated interval is included in a specific range; and renormalizing the updated interval based on a result of the checking.
[0027] In the present invention, the method is further comprised of renormalizing the adjusted interval.
[0028] In the present invention, if the updated interval is not included in a specific range, the method is further comprised of selecting one of a top part and a bottom part of the updated interval, wherein the updated interval is adjusted based on a selected part.
[0029] In the present invention, the method is further comprised of calculating a threshold point within the updated interval; and comparing a first distance with a second distance, wherein the first distance indicates a length from the threshold point to the top part and the second distance indicates a length from the threshold point to the bottom part, and wherein the updated interval is adjusted based on a result of the comparing step.
[0030] In the present invention, if the first distance is smaller than the second distance, a length of the updated interval is set as the second distance.
[0031] In the present invention, if the first distance is not smaller than the second distance, a length of the updated interval is set as the first distance, and a starting point of the updated interval is set by the threshold point.
[0032] In accordance with another aspect of the present invention, there is provided an apparatus of performing an arithmetic coding for data symbols, which includes a binary arithmetic coding unit, comprising: the binary arithmetic coding unit configured to create an interval for each of the data symbols, the interval being represented based on a starting point and a length of the interval, update the interval for each of the data symbols, check whether the updated interval is included in a specific range, and renormalize the updated interval based on a result of the checking.
MODE FOR INVENTION
[0033] Hereinafter, exemplary elements and operations in accordance with embodiments of the present invention are described with reference to the accompanying drawings. It is however to be noted that the elements and operations of the present invention described with reference to the drawings are provided as only embodiments and the technical spirit and kernel configuration and operation of the present invention are not limited thereto.
[0034] Furthermore, terms used in this specification are common terms that are now widely used, but in special cases, terms randomly selected by the applicant are used. In such a case, the meaning of a corresponding term is clearly described in the detailed description of a corresponding part. Accordingly, it is to be noted that the present invention should not be construed as being based on only the name of a term used in a corresponding description of this specification and that the present invention should be construed by checking even the meaning of a corresponding term.
[0035] Furthermore, terms used in this specification are common terms selected to describe the invention, but may be replaced with other terms for more appropriate analysis if such terms having similar meanings are present. For example, a signal, data, a sample, a picture, a frame, and a block may be properly replaced and interpreted in each coding process. And, a range, a length, an interval (or coding interval, arithmetic coding interval), and an interval length may be properly replaced and interpreted in each arithmetic coding process.
[0036]
[0037] The encoder 100 of
[0038] The encoder 100 receives a video signal and generates a prediction error by subtracting a predicted signal from the video signal.
[0039] The generated prediction error is transmitted to the transform unit 110. The transform unit 110 generates a transform coefficient by applying a transform scheme to the prediction error.
[0040] The quantization unit 120 quantizes the generated transform coefficient and sends the quantized coefficient to the entropy encoding unit 130.
[0041] The entropy encoding unit 130 performs entropy coding on the quantized signal and outputs an entropy-coded signal. In this case, the entropy coding is the process used to optimally define the number of bits that go into a compressed data sequence. Arithmetic coding, which is one of an optimal entropy coding technique, is a method of representing multiple symbols by a single real number.
[0042] In normal coding conditions, the values of the bits in the compressed data buffer are nearly equally probable, and thus very long sequences of outstanding bits are very improbable, because the probability of a sequence of n outstanding bits is .sup.n. However, practical implementations of arithmetic coding must be designed to work with any set of input data and symbol probabilities, including those that could accidentally (or intentionally) produce unbounded numbers of outstanding bits.
[0043] Encoders designed for software (general-purpose processor) implementation employed a counter of outstanding bits, or simply assumed carries on the compressed data buffer. Whereas, encoders implemented using specialized processors (ASICs), on the other hand, commonly require strong limits on number of cycles required for each operation, and thus cannot accommodate very large variations between the average and worst cases.
[0044] One solution for this problem, called bit stuffing, was developed for arithmetic coders that put out one bit a time: when the number of consecutive 1 bits exceeds a certain limit, a 0 bit may be artificially inserted to limit carry propagation. There is some loss in compression, since those extra bits do not carry any useful information, but it can be kept relatively small.
[0045] The problem with this solution is that it is not effective in new implementations of arithmetic coding, which generate sets of full bytes (8-bit words, instead of single bits). The new implementations means a scheme to generate byte-unit information, other than a single bit-unit information, by a arithmetic encoder, when data buses and parallel processing are cheap while it is hard to increase clock speeds.
[0046] For those implementations the bit stuffing approach can be extended to byte stuffing, i.e., artificially adding a zero byte to limit carry propagation. While this achieves the desired result, it is not practical because 8 bits that do not convey any information have to be added, and the relative loss in compression becomes excessive.
[0047] Accordingly, the present invention defines a technique that enables an implementation of arithmetic coding based on byte-renormalization to be effectively implemented in either general purpose or specialized hardware.
[0048] Furthermore, the present invention provides a method to effectively limit the maximum number of changes to the compressed data bytes with little loss in compression.
[0049] In an aspect of the present invention, the entropy encoding unit 130 may create an interval for each of the data symbols, and update the interval for each of the data symbols. In this case, the interval may be represented based on a starting point and a length of the interval.
[0050] The entropy encoding unit 130 may check whether the updated interval is included in a specific range, and renormalize the updated interval based on a result of the checking.
[0051] If the updated interval is included in a specific range, the entropy encoding unit 130 may store the bit positioned within the specific range in a buffer, and renormalize the updated interval.
[0052] The decoder 200 of
[0053] The entropy decoding unit 210 performs entropy decoding on the received signal. For example, the entropy decoding unit 210 may receive a signal including location information of code value, check a symbol corresponding to the location information of code value, and decode the checked symbol.
[0054] In arithmetic coding, the decoded sequence may be determined by the code value of the compressed sequence. In decoding process, the code value can be used for decoding the correct sequence.
[0055] The entropy decoding unit 210 may search k.sup.th correct value from k.sup.th normalized code value, and then may compute (k+1).sup.th normalized code value from the k.sup.th correct value and k.sup.th normalized code value.
[0056] Meanwhile, the dequantization unit 220 obtains a transform coefficient from the entropy-decoded signal based on information about a quantization step size.
[0057] The inverse transform unit 230 obtains a prediction error by performing inverse transform on the transform coefficient. A reconstructed signal is generated by adding the obtained prediction error to a prediction signal.
[0058]
[0059] The arithmetic coder to which the present invention is applied can include data source unit (310), data modelling unit (320), 1.sup.st delay unit (330) and 2.sup.nd delay unit.
[0060] The data source unit (310) can generate a sequence of N random symbols, each from an alphabet of M symbols, as the following equation 1.
S={s.sub.1,s.sub.2,s.sub.3, . . . ,s.sub.N},s.sub.k{0,1,2, . . . ,M1}[Equation 1]
[0061] In this case, the present invention assumes that the data symbols are all independent and identically distributed (i.i.d.), with nonzero probabilities as the following equation 2.
Prob{s.sub.k=n}=p(n)>0,k=1,2, . . . ,N,n=0, . . . ,M1
[0062] And, the present invention can define the cumulative probability distribution, as the following equation 3.
[0063] In this case, c(s) is strictly monotonic, and c(0)=0 and c(M)=1.
[0064] Even though those conditions may seem far different from what is found in actual complex media signals, in reality all entropy coding tools are based on techniques derived from those assumptions, so the present invention can provide embodiments constrained to this simpler model.
[0065] Arithmetic coding consists mainly of updating semi-open intervals in the line of real numbers, in the form [b.sub.k, b.sub.k+l.sub.k), where b.sub.k represents the interval base and l.sub.k represents its length. The intervals may be updated according to each data symbol s.sub.k, and starting from initial conditions b1=0 and l1=1, they are recursively updated for k=1, 2, . . . , N using the following equations 4 and 5.
l.sub.k+1=p(s.sub.k)l.sub.k[Equation 4]
b.sub.k+1=b.sub.k+c(s.sub.k)l.sub.k[Equation 5]
[0066] In this case, the intervals may be progressively nested, as the following equation 6.
[b.sub.k,b.sub.k+l.sub.k)[b.sub.i,b.sub.i+l.sub.i),k=1,2, . . . ,i1,i=2,3, . . . ,N+1[Equation 6]
[0067] As described above, referring to
[0068] The interval length l.sub.k+.sub.1 can be obtained by multiplication operation of S.sub.k outputted from the data modelling unit (320) and l.sub.k outputted from 1.sup.st delay unit (330).
[0069] And, the interval base b.sub.k1 can be obtained by addition operation of b.sub.k outputted from 2.sup.nd delay unit (340) and the multiplication of C(S.sub.k) and
[0070] The arithmetic coding to which the present invention is applied can be defined by the arithmetic operations of multiplication and addition. In this case, b.sub.k and l.sub.k can be represented with infinite precision, but this is done to first introduce the notation in a version that is intuitively simple. Later the present invention provides methods for implementing arithmetic coding approximately using finite precision operations.
[0071] After the final interval [b.sub.N+1, b.sub.N+1+l.sub.N+1) has been computed the arithmetic encoded message is defined by a code value {circumflex over (V)}[b.sub.N+1, b.sub.N+1+l.sub.N+1). It can be proved that there is one such value that can be represented using at most 1+log 2(l.sub.N+1) bits.
[0072] To decode the sequence S using code value {circumflex over (V)}, the present invention again starts from initial conditions b.sub.1=0 and l.sub.1=1, and then use the following equations 7 to 9 to progressively obtain s.sub.k, l.sub.k, and b.sub.k.
[0073] The correctness of this decoding process can be concluded from the property that all intervals are nested, that {circumflex over (V)}[b.sub.N+1, b.sub.N+l.sub.N+1), and assuming that the decoder perfectly reproduces the operations done by the encoder.
[0074] The present invention can use symbols B.sub.k, L.sub.k, and D.sub.k to represent the finite precision values (normally scaled to integer values) of b.sub.k, l.sub.k and {circumflex over (V)}b.sub.k, respectively. the aspects of encoding can be defined by the following equations 10 and 11.
L.sub.k+1=[[c(s.sub.k+.sup.1)L.sub.k]][[c(s.sub.k)L.sub.k]][Equation 10]
B.sub.k+1=B.sub.k+[[c(s.sub.k)L.sub.k]][Equation 11]
[0075] In this case, the double brackets surrounding the products represent that the multiplications are finite-precision approximations.
[0076] The equation 10 corresponds to equation 4 because p(s)=c(s+1)c(s)(s=1, 2, . . . , M).
[0077] Thus, the decoding process can be defined by the following equations 12 to 14.
S.sub.k={s:[[c(s)L.sub.k]]D.sub.k<[[c(s+1)L.sub.k]]}[Equation 12]
L.sub.k+1=[[c(s.sub.k+1)L.sub.k]][[c(s.sub.k)L.sub.k]][Equation 13]
B.sub.k+1=B.sub.k+[[c(s.sub.k)L.sub.k]][Equation 14]
[0078]
[0079] Referring to
[0080] The binarization unit (410) may receive a sequence of data symbols and output bin string consisted of binarized values 0 or 1 by performing the binarization. The binarization unit (410) may maps the syntax elements to binary symbols (bins). Several different binarization processes, for example, unary (U), truncated unary (TU), kth-order Exp-Golomb (EGk), and fixed length (FL), may be used for the binarization. The binarization process may be selected based on the type of syntax element.
[0081] The outputted bin string is tranmitted to context modeling unit (420). The context modeling unit (420) performs probability estimation for entropy-encoding. That is, the context modeling unit (420) may estimate the probability of the bins.
[0082] The context modeling unit (420) may provide an accurate probability estimate required to achieve high coding efficiency. Accordingly, it is highly adaptive and different context models can be used for different bins and the probability of that context model may be updated based on the values of the previously coded bins.
[0083] Bins with similar distributions may share the same context model. The context model for each bin can be selected based on at least one of the type of syntax element, bin position in syntax element (binIdx), luma/chroma, neighboring information, etc.
[0084] The binary arithmetic encoding unit (430) entropy-encodes the outputted bin string and outputs compressed data bits.
[0085] The binary arithmetic encoding unit (430) performs arithmetic coding based on recursive interval division.
[0086] An interval (or a range), with an initial value of 0 to 1, is divided into two subintervals based on the probability of the bin. The encoded bits provide an offset that, when converted to a binary fraction, selects one of the two subintervals, which indicates the value of the decoded bin.
[0087] After every decoded bin, the interval may be updated to equal the selected subinterval, and the interval division process repeats itself. The interval and offset have limited bit precision, so renormalization may be required whenever the interval falls below a specific value to prevent underflow. The renormalization can occur after each bin is decoded.
[0088] Arithmetic coding can be done using an estimated probability, or assuming equal probability of 0.5. For bypass coded bins, the division of the range into subintervals can be done by a shift, whereas a look up table may be required for the context coded bins.
[0089] Referring to
[0090] The entropy decoding unit (210) can reversely perform the above encoding process which is explained in the description of
[0091] At binary arithmetic decoding unit (510), the updated interval may be fed back for recursive interval division. The updated context may be fed back for an accurate probability estimate, from binary arithmetic decoding unit (510) to context modeling unit (520).
[0092] The context modeling unit (520) may select context based on the type of syntax element. At the entropy decoding unit (210), the decoded bin may be fed back to determine whether to continue processing the same syntax element, or to switch to another syntax element. The context modeling unit (520) may also select context based on the bin position in the syntax element (binldx).
[0093] The de-binarization unit (530) may convert the binary symbol string to multivalued symbols.
[0094]
[0095] For a practical implementation of arithmetic coding, the present invention can consider that all additions are done with infinite precision, but multiplications are approximated using finite precision, in a way that preserves some properties. This specification will cover only the aspects needed for understanding this invention.
[0096] One important aspect of arithmetic coding is that it can be considered a process of doing arithmetic with infinite precision for addition, but replacing exact multiplications with approximations that guarantee that all operations are done implicitly infinite-precision registers.
[0097] Based on this interpretation, the coding process can be done with arithmetic at windows of active bits, as shown in
[0098] Since interval length l.sub.k decreases, it is necessary to periodically increase P, and re-scale the values of L=2.sup.pL, in a process called renormalization. During renormalization, individual bits or full bytes may be copied from a register word to a buffer that contains the compressed data.
[0099] In
[0100]
[0101] For a practical implementation of arithmetic coding, since the operation is done in finite-precision registers, when the upper-bit of the interval to be outputted is determined, the bit may be outputted and the renormalization may be performed for extending a width of the interval.
[0102] As shown in
[0103]
[0104] In the following explanations, the present invention assumes that arithmetic coding operations may be done with P-bit registers (e.g., P=32 or P=64), but to simplify notation, the present invention can define a carry-precision of P.sub.c bits, which may include extra memory bytes reserved for carry propagation. For example, an implementation using a processor with registers of P=32 bits, but with a separate byte reserved for carry propagation is for convenience interpreted as an implementation using registers with P.sub.c=40 bits. Furthermore, the present invention assumes that the index k in the interval base and length, B.sub.k and L.sub.k, is omitted and B and L represent the latest index values.
[0105] The present invention proposes a method of adjusting the interval. In this case, the encoder and decoder can keep track of B and L, and both can identify the situations when it is desired to limit carry propagation.
[0106] The present invention can perform correct decoding as long as the encoder and decoder use the same rule to change B and L, and that rule does not violate the conditions for correct arithmetic decoding.
[0107] In an aspect of the present invention, the finite-precision arithmetic coding needs to renormalize its interval length L when it is smaller than a specific value.
[0108]
[0109] And, if intervals are nested as equation 16, the bits at position R and above are not going to be changed by a carry, and thus can be immediately saved to the compressed data buffer, and the interval can be renormalized.
[0110]
[0111] If interval [C,D) does not contain interval [B,B+L), then the encoder cannot know if a carry will occur. In this case, the present invention proposes two embodiments.
[0112] In the first embodiment, the present invention are not assuming any temporary storage of outstanding bytes, i.e., P.sub.c=P. In the second embodiment, the present invention consider that a small number of outstanding bytes are stored to allow some carries, and P.sub.c>P.
[0113] In an aspect of the present invention, the following algorithm, to be used by the encoder and decoder, completely describes the decisions for interval renormalization. In
[0114] The entropy encoding unit may compute the bit position as the below equation 17.
T=2.sup.R(B+L1)/2.sup.R[equation 17]
[0115] The entropy encoding unit may check whether T is larger than B. If T is larger than B, the entropy encoding unit may check whether L is larger than 2.sup.s. If L is larger than 2.sup.s, then return. And, the entropy encoding unit may check whether a length of a top part (B+LT) is smaller than that of a bottom part (TB), or whether T is equal to 0.
[0116] If a length of a top part (B+LT) is smaller than that of a bottom part (TB), or T is equal to 0, then the entropy encoding unit may set L as (TB). Otherwise, the entropy encoding unit may set L as (B+LT) and set B as T.
[0117] And then, the entropy encoding unit may normalize the interval.
[0118] In this case, the present invention are assuming L<2R and SR, and the condition T=0 only occurs when there is unsigned integer arithmetic overflow. This is related the condition used to start carry propagation on some implementations.
[0119] In the second embodiment, the entropy encoding unit may perform a decision constrained to buffer values. The present invention may store the latest data bytes in short buffers, with possible carries in those bytes only. As explained above, this may be equivalent to having registers with additional bits, and the present invention can use the following algorithm.
[0120] The entropy encoding unit may compute the bit position as the above equation 17. In this case, the present invention may assume P.sub.c bits of precision.
[0121] And, the entropy encoding unit may check whether T is equal to 0.
[0122] If T is equal to 0, the entropy encoding unit may set L as (TB). And then, the entropy encoding unit may normalize the interval.
[0123] As explained, the present invention may adjust the interval to eliminate the possibility of overflow in the extended-precision register, or equivalently overflow in the buffer with outstanding bits.
[0124]
[0125] The binary arithmetic encoding unit (440) may perform recursive interval division. That is, the interval, with an initial value 0 to 1, can be divided into two subintervals based on the probability of the bin.
[0126] The binary arithmetic encoding unit (440) may select one of the two subintervals, which indicates the value of coded bin. The interval can be updated to equal the selected subinterval.
[0127] In this case, a range and a base of coding interval are represented by finite number of bits, it is necessary to renormalize the interval to prevent precision degradation. And, the upper bits of the base may be outputted as coded bits during renormalization. The coding interval (base, base+range) may be renormalized when a range is smaller than a threshold value.
[0128] For the processing of carry propagation and output of coded bits, the coded bits are not outputted until it is confirmed that further carry propagation will not influence bit values.
[0129] In an aspect of the present invention, the binary arithmetic encoding unit (440) may create an interval for each of the data symbols (S1010). The created interval for each of the data symbols may be updated based on the probability of the bin (S1020).
[0130] The binary arithmetic encoding unit (440) may check if intervals are nested (S1030). For example, the binary arithmetic encoding unit (440) may check whether the updated interval is included in a specific range. That is, referring to
[0131] Then, the binary arithmetic encoding unit (440) may renormalize the updated interval based on a result of the checking (S1040).
[0132]
[0133] In an aspect of the present invention, the binary arithmetic encoding unit (440) may perform interval adjustment.
[0134] First, the binary arithmetic encoding unit (440) may define a specific range (S1110). Referring to
[0135] The binary arithmetic encoding unit (440) may check whether the interval is included in the specific range (S1120). For example, the binary arithmetic encoding unit (440) can check whether the interval corresponds to
[0136] If the interval is included in the specific range, the binary arithmetic encoding unit (440) can store bit positioned within the specific range to a buffer (S1130). Otherwise, the binary arithmetic encoding unit (440) may select one of a top part or bottom part of the interval under a specific condition (S1140).
[0137] And, the binary arithmetic encoding unit (440) may renormalize the interval (S1150).
[0138]
[0139] In an aspect of the present invention, the binary arithmetic encoding unit (440) may perform the decisions for interval renormalization.
[0140] The entropy encoding unit may compute the bit position as equation 17 (S1210).
[0141] The entropy encoding unit (440) may check whether a value of bit position is larger than a value of interval base (S1220). For example, referring to
[0142] If a value of bit position is larger than a value of interval base, the entropy encoding unit (440) may also check whether a length of top part of the interval is smaller than that of bottom part (S1230). For example, referring to
[0143] If the length of the top part is smaller than that of the bottom part, then the entropy encoding unit (440) may set a length of the interval as the length of the bottom part (S1240).
[0144] Otherwise, the entropy encoding unit (440) may set a length of the interval as the length of the top part, and set a starting point of the interval as bit position (S1250).
[0145] Then, the entropy encoding unit (440) may renormalize the interval (S1260).
[0146]
[0147] In another aspect of the present invention, the entropy encoding unit (440) may perform a decision constrained to buffer values. The present invention may store the latest data bytes in short buffers, with possible carries in those bytes only. As explained above, this may be equivalent to having registers with additional bits, and the present invention can use the following algorithm.
[0148] The binary arithmetic encoding unit (440) may define a specific range (S1310). Referring to
[0149] The binary arithmetic encoding unit (440) may check whether the interval is included in the specific range (S1320). For example, the binary arithmetic encoding unit (440) can check whether the interval corresponds to
[0150] If the interval is included in the specific range, the binary arithmetic encoding unit (440) can store bit positioned within the specific range to a buffer (S1330). Otherwise, the binary arithmetic encoding unit (440) may adjust the interval to eliminate the possibility of overflow in the extended-precision register, or equivalently overflow in the buffer with outstanding bits (S1340). And, the binary arithmetic encoding unit (440) may renormalize the interval (S1350).
[0151] In another embodiment of the present invention, the entropy encoding unit (440) may compute the bit position (S1410), as the above equation 17.
[0152] The entropy encoding unit (440) may check whether bit position is equal to 0 (S1420).
[0153] If bit position is equal to 0, the entropy encoding unit (440) may set the interval length as a value which subtract interval base from bit position (S1430).
[0154] Then, the entropy encoding unit (440) may renormalize the interval (S1440).
[0155] As described above, the embodiments explained in the present invention may be implemented and performed on a processor, a micro processor, a controller or a chip. For example, functional units explained in
[0156] Furthermore, the decoder and the encoder to which the present invention is applied may be included in a multimedia broadcasting transmission/reception apparatus, a mobile communication terminal, a home cinema video apparatus, a digital cinema video apparatus, a surveillance camera, a video chatting apparatus, a real-time communication apparatus, such as video communication, a mobile streaming apparatus, a storage medium, a camcorder, a VoD service providing apparatus, an Internet streaming service providing apparatus, a three-dimensional (3D) video apparatus, a teleconference video apparatus, and a medical video apparatus and may be used to process video signals and data signals.
[0157] Furthermore, the processing method to which the present invention is applied may be produced in the form of a program that is to be executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present invention may also be stored in computer-readable recording media. The computer-readable recording media include all types of storage devices in which data readable by a computer system is stored. The computer-readable recording media may include a BD, a USB, ROM, RAM, CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device, for example. Furthermore, the computer-readable recording media includes media implemented in the form of carrier waves (e.g., transmission through the Internet). Furthermore, a bit stream generated by the encoding method may be stored in a computer-readable recording medium or may be transmitted over wired/wireless communication networks.
INDUSTRIAL APPLICABILITY
[0158] The exemplary embodiments of the present invention have been disclosed for illustrative purposes, and those skilled in the art may improve, change, replace, or add various other embodiments within the technical spirit and scope of the present invention disclosed in the attached claims.