← Back to Patent Explorer
EP1047198A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Encoder with optimally selected codebook

Assignee: Panasonic Corp
•
Filing: 2000-04-19
•
Granted: —
•
Expires: 2020-04-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An encoder of the present invention includes: a number G of storage sections (G is an integer equal to or greater than 1) for storing a number G of groups of data; a Huffman codebook selection section for selecting one of a number H of Huffman codebooks (H is an integer equal to or greater than 1) for each of the groups of data stored in the respective storage sections, each of the Huffman codebooks having a codebook number; a number G of Huffman encoding sections, each of the Huffman encoding sections Huffman-encoding a corresponding one of the G groups of data by using one of the Huffman codebooks which is selected by the Huffman codebook selection section for the one group of data; and a codebook number encoding section for encoding the codebook number of each Huffman codebook selected by the Huffman codebook selection section. The Huffman codebook selection section includes a code length calculation section for calculating a code length which would result from a Huffman encoding operation of each of the G groups of data using each Huffman codebook, and a control section for selecting one of the Huffman codebooks which is suitable for the group of data based on the code length calculated by the code length calculation section. When the Huffman codebook selected is an unsigned codebook, a number of bits required for sign information has previously been added to the code length calculated by the code length calculation section.

Inventors

  • 👤 Shuji Miyasaka
  • 👤 Takeshi Norimatsu
  • 👤 Mineo Tsushima
  • 👤 Tomokazu Ishikawa
  • 👤 Yoshiaki Sawada

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-01 21:59
CPC Classifications
H; H03; H03M; H03M7/00; H03M7/30; H03M7/40; H03M7/42

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 243 words
An encoder, comprising: a number G of storage sections (G is an integer equal to or greater than 1) for storing a number G of groups of data; a Huffman codebook selection section for selecting one of a number H of Huffman codebooks (H is an integer equal to or greater than 1) for each of the groups of data stored in the respective storage sections, each of the Huffman codebooks having a codebook number; a number G of Huffman encoding sections, each of the Huffman encoding sections Huffman-encoding a corresponding one of the G groups of data by using one of the Huffman codebooks which is selected by the Huffman codebook selection section for the one group of data; and a codebook number encoding section for encoding the codebook number of each Huffman codebook selected by the Huffman codebook selection section, wherein: the Huffman codebook selection section includes a code length calculation section for calculating a code length which would result from a Huffman encoding operation of each of the G groups of data using each Huffman codebook, and a control section for selecting one of the Huffman codebooks which is suitable for the group of data based on the code length calculated by the code length calculation section; and when the Huffman codebook selected is an unsigned codebook, a number of bits required for sign information has previously been added to the code length calculated by the code length calculation section.
Claim 2
Dependent Claim 27 words
An encoder according to claim 1, wherein the code length calculation section has a table of data including a code length previously calculated for each Huffman codebook.
Claim 3
Dependent Claim 228 words
An encoder, comprising: a number G of storage sections (G is an integer equal to or greater than 1) storing a number G of groups of data; a Huffman codebook selection section for selecting one of a number H of Huffman codebooks (H is an integer equal to or greater than 1) for each of the groups of data stored in the respective storage sections, each of the Huffman codebooks having a codebook number; a number G of Huffman encoding sections, each of the Huffman encoding sections Huffman-encoding a corresponding one of the G groups of data by using one of the Huffman codebooks which is selected by the Huffman codebook selection section for the one group of data; and a codebook number encoding section for encoding the codebook number of each Huffman codebook selected by the Huffman codebook selection section, wherein: the Huffman codebook selection section includes a code length calculation section for calculating a code length which would result from a Huffman encoding operation of each of the G groups of data using each Huffman codebook, and a control section for selecting one of the Huffman codebooks which is suitable for the group of data based on the code length calculated by the code length calculation section; and the code length calculation section is capable of simultaneously obtaining code lengths for a plurality of Huffman codebooks.
Claim 4
Dependent Claim 62 words
An encoder according to claim 3, wherein: the code length calculation section is adapted to output respective code lengths which would result from Huffman encoding operations of the one group of data, for a plurality of Huffman codebooks; and the control section selects one of the Huffman codebooks for which a smallest code length is output from the code length calculation section.
Claim 5
Dependent Claim 75 words
An encoder according to claim 3, wherein: the code length calculation section is adapted to output respective code lengths which would result from Huffman encoding operations of the one group of data, for a plurality of Huffman codebooks; and the control section selects one of the Huffman codebooks based on the code length of the Huffman codebook output from the code length calculation section and in view of the codebook number of the Huffman codebook.
Claim 6
Dependent Claim 145 words
An encoder according to claim 5, wherein the control section selects one of the Huffman codebooks for a (g+1) th group of data (g is an integer such that 1≤g≤G-1) by first obtaining a code length Bmin and another code length Bg, the code length Bmin being a code length which would result from a Huffman encoding operation of the (g+1) th group of data using a Huffman codebook Hmin for which a smallest code length is output from the code length calculation section, and the code length Bg being a code length which would result from a Huffman encoding operation of a g th group of data using a Huffman codebook Hg which has been selected for the g th group of data, and then selecting the Huffman codebook Hmin if Bmin<(Bg-A) (A is a predetermined integer) or the Huffman codebook Hg if Bmin≥(Bg-A).
Claim 7
Dependent Claim 40 words
An encoder according to claim 6, wherein the control section selects one of the Huffman codebooks for which a smallest code length is output from the code length calculation section as a Huffman codebook for a first group of data.
Claim 8
Dependent Claim 145 words
An encoder according to claim 5, wherein the control section selects one of the Huffman codebooks for a (g-1) th group of data (g is an integer such that 2≤g≤G) by first obtaining a code length Bmin and another code length Bg, the code length Bmin being a code length which would result from a Huffman encoding operation of the (g-1) th group of data using a Huffman codebook Hmin for which a smallest code length is output from the code length calculation section, and the code length Bg being a code length which would result from a Huffman encoding operation of a g th group of data using a Huffman codebook Hg which has been selected for the g th group of data, and then selecting the Huffman codebook Hmin if Bmin<(Bg-A) (A is a predetermined integer) or the Huffman codebook Hg if Bmin≥(Bg-A).
Claim 9
Dependent Claim 41 words
An encoder according to claim 8, wherein the control section selects one of the Huffman codebooks for which a smallest code length is output from the code length calculation section as a Huffman codebook for a G th group of data.
Claim 10
Dependent Claim 55 words
An encoder according to claim 6, wherein when a same Huffman codebook is selected for two or more contiguous groups of data, the codebook number encoding section encodes the codebook number of the Huffman codebook and the number of the contiguous groups of data with a number of bits equal to the predetermined integer A.
Claim 11
Dependent Claim 27 words
An encoder according to claim 3, wherein the H Huffman codebooks are eleven Huffman codebooks used for Huffman-encoding of spectral data as defined in the MPEG2-AAC standard.
Claim 12
Dependent Claim 92 words
An encoder according to claim 11, wherein: the code length calculation section is adapted to output respective code lengths which would result when encoding data using Huffman codebooks 1-4 defined in the MPEG2-AAC standard; and the code length calculation section has a first table including respective code lengths which would result when encoding data by using Huffman codebooks 1 and 2 for a common index value and a second table including respective code lengths which would result when encoding data by using Huffman codebooks 3 and 4 for the common index value.
Claim 13
Dependent Claim 38 words
An encoder according to claim 12, wherein a number of bits required for sign information has previously been added to each of the code lengths for Huffman codebooks 3 and 4 which are included in the second table.
Claim 14
Dependent Claim 219 words
An encoder according to claim 13, wherein the first table includes respective values of T1(F1(a, b, c, d)) and T2(F1(a, b, c, d)) for i1, and the second table includes respective values of T3(F2(a, b, c, d)) + nonz(a, b, c, d) and T4(F2(a, b, c, d)) + nonz(a, b, c, d) for i2, where: nonz(w, x, y, z) is a function which gives the number of non-zero values among w, x, y and z; F1(w, x, y, z) is a function defined as follows: F1(w, x, y, z) = 27*(w+1) + 9*(x+1) + 3*(y+1) + (z+1) (where an absolute value of each of w, x, y and z is 1 or less); F2(w, x, y, z) is a function defined as follows: F2(w, x, y, z) = 27*abs(w) + 9*abs(x) + 3*abs(y) + abs(z) (where an absolute value of each of w, x, y and z is 2 or less); abs(x) is a function which gives an absolute value of x; T1(index) to T4(index) are each a function which gives a code length which would result when encoding data by using Huffman codebooks 1 to 4, respectively; a, b, c and d are integers representing a group of data; and i1 and i2 are index values calculated as a function of the integers a, b, c and d.
Claim 15
Dependent Claim 54 words
An encoder according to claim 14, wherein: i1 = (X^3)*(a+1) + (X^2)*(b+1) + X*(c+1) + (d+1), where X is a positive number equal to or greater than 3; i2 = (Y^3)*abs(a) + (Y^2)*abs(b) +Y*abs(c) +abs(d), where Y is a positive number equal to or greater than 3; and the symbol "^" denotes an exponentiation.
Claim 16
Dependent Claim 86 words
An encoder according to claim 14, wherein: the index value i1 is obtained through a bit connecting operation of a, b, c and d each of which is represented with X bits or more, where X is a positive number equal to or greater than 2; and the index value i2 is obtained through a bit connecting operation of abs(a), abs(b), abs(c) and abs(d) each of which is represented with Y bits or more, where Y is a positive number equal to or greater than 2.
Claim 17
Dependent Claim 67 words
An encoder according to claim 11, wherein: the code length calculation section is adapted to output respective code lengths which would result when encoding data using Huffman codebooks 1-4 defined in the MPEG2-AAC standard; and the code length calculation section has a table of data including respective code lengths which would result when encoding data by using Huffman codebooks 1 to 4 for a common index value.
Claim 18
Dependent Claim 37 words
An encoder according to claim 17, wherein a number of bits required for sign information has previously been added to each of the code lengths for Huffman codebooks 3 and 4 which are included in the table.
Claim 19
Dependent Claim 206 words
An encoder according to claim 18, wherein the table includes respective values of T1(F1(a, b, c, d)), T2(F1(a, b, c, d)), T3(F2(a, b, a, d)) + nonz(a, b, c, d) and T4(F2(a, b, a, d)) + nonz(a, b, a, d) for j, where: nonz(w, x, y, z) is a function which gives the number of non-zero values among w, x, y and z; F1(w, x, y, z) is a function defined as follows: F1(w, x, y, z) = 27*(w+1) + 9*(x+1) + 3*(y+1) + (z+1) (where an absolute value of each of w, x, y and z is 1 or less); F2(w, x, y, z) is a function defined as follows: F2(w, x, y, z) = 27*abs(w) + 9*abs(x) + 3*abs(y) + abs(z) (where an absolute value of each of w, x, y and z is 2 or less); abs(x) is a function which gives an absolute value of x; T1(index) to T4(index) are each a function which gives a code length which would result when encoding data by using Huffman codebooks 1 to 4, respectively; a, b, c and d are integers representing a group of data; and j is an index value calculated as a function of the integers a, b, c and d.
Claim 20
Dependent Claim 46 words
An encoder according to claim 19, wherein the index value j is obtained through a bit connecting operation of a, b, c and d each of which is represented with Y bits or more, where Y is a positive number equal to or greater than 2.
Claim 21
Dependent Claim 117 words
An encoder according to claim 11, wherein: the code length calculation section is adapted to output respective code lengths which would result when encoding data using Huffman codebooks 5-10 defined in the MPEG2-AAC standard; and the code length calculation section has a first table including respective code lengths which would result when encoding data by using Huffman codebooks 5 and 6 for a common index value, a second table including respective code lengths which would result when encoding data by using Huffman codebooks 7 and 8 for a common index value, and a third table including respective code lengths which would result when encoding data by using Huffman codebooks 9 and 10 for a common index value.
Claim 22
Dependent Claim 70 words
An encoder according to claim 21, wherein: a number of bits required for sign information has previously been added to each of the code lengths for Huffman codebooks 7 and 8 which are included in the second table; and a number of bits required for sign information has previously been added to each of the code lengths for Huffman codebooks 9 and 10 which are included in the third table.
Claim 23
Dependent Claim 234 words
An encoder according to claim 22, wherein the first table includes respective values of T5(F3(a, b)) and T6(F3(a, b)) for i3, the second table includes respective values of T7(F4(a, b)) + nonz(a, b) and T8(F4(a, b)) + nonz(a, b) for i4, and the third table includes respective values of T9(F5(a, b)) + nonz(a, b) and T10(F5(a, b)) + nonz(a, b) for i5, where: nonz(x, y) is a function which gives the number of non-zero values among x and y; F3(x, y) is a function defined as follows: F3(x, y) = 9*(x+4) + (y+4) (where an absolute value of each of x and y is 4 or less); F4(x, y) is a function defined as follows: F4(x, y) = 8*abs(x) + abs(y) (where an absolute value of each of x and y is 7 or less); F5(x, y) is a function defined as follows: F5(x, y) = 13*abs(x) + abs(y) (where an absolute value of each of x and y is 12 or less); abs(x) is a function which gives an absolute value of x; T5(index) to T10 (index) are each a function which gives a code length which would result when encoding data by using Huffman codebooks 5 to 10 defined in the MPEG2-AAC standard, respectively; a and b are integers representing a group of data; and i3, i4 and i5 are index values calculated as a function of the integers a and b.
Claim 24
Dependent Claim 62 words
An encoder according to claim 23, wherein: i3 = X*(a+4) + (b+4) , where X is a positive number equal to or greater than 9; i4 = Y*abs(a) + abs(b) , where Y is a positive number equal to or greater than 8; and i5 = Z*abs(a) + abs(b) , where Z is a positive number equal to or greater than 13.
Claim 25
Dependent Claim 119 words
An encoder according to claim 24, wherein: the index value i3 is obtained through a bit connecting operation of a and b each of which is represented with X bits or more, where X is a positive number equal to or greater than 4; the index value i4 is obtained through a bit connecting operation of a and b each of which is represented with Y bits or more, where Y is a positive number equal to or greater than 4; and the index value i5 is obtained through a bit connecting operation of a and b each of which is represented with Z bits or more, where Z is a positive number equal to or greater than 5.
Claim 26
Dependent Claim 65 words
An encoder according to claim 11, wherein: the code length calculation section is adapted to output respective code lengths which would result when encoding data using Huffman codebooks 5-10 defined in the MPEG2-AAC standard; and the code length calculation section has a table including respective code lengths which would result when encoding data by using Huffman codebooks 5 to 10 for a common index value.
Claim 27
Dependent Claim 37 words
An encoder according to claim 26, wherein a number of bits required for sign information has previously been added to each of the code lengths for Huffman codebooks 7 to 10 which are included in the table.
Claim 28
Dependent Claim 209 words
An encoder according to claim 27, wherein the table includes respective values of T5(F3(a, b)), T6(F3(a, b)), T7(F4(a, b)) + nonz(a, b), T8(F4(a, b)) + nonz(a, b), T9(F5(a, b)) + nonz(a, b) and T10(F5(a, b)) + nonz(a, b) for k, where: nonz(x, y) is a function which gives the number of non-zero values among x and y; F3(x, y) is a function defined as follows: F3(x, y) = 9*(x+4) + (y+4) (where an absolute value of each of x and y is 4 or less); F4(x, y) is a function defined as follows: F4(x, y) = 8*abs(x) + abs(y) (where an absolute value of each of x and y is 7 or less); F5(x, y) is a function defined as follows: F5(x, y) = 13*abs(x) + abs(y) (where an absolute value of each of x and y is 12 or less); abs(x) is a function which gives an absolute value of x; T5(index) to T10(index) are each a function which gives a code length which would result when encoding data by using Huffman codebooks 5 to 10 defined in the MPEG2-AAC standard, respectively; a and b are integers representing a group of data; and k is an index value calculated as a function of the integers a and b.
Claim 29
Dependent Claim 44 words
An encoder according to claim 28, wherein the index value k is obtained through a bit connecting operation of a and b each of which is represented with Z bits or more, where Z is a positive number equal to or greater than 5.
Claim 30
Dependent Claim 73 words
An encoder according to claim 3, wherein: the code length calculation section is adapted to output an invalid signal which indicates that a Huffman codebook is invalid when an input data value is outside a variable range within which a code length can be calculated using the Huffman codebook; and the control section is adapted not to select a Huffman codebook when the control section receives an invalid signal for the Huffman codebook.
Claim 31
Dependent Claim 145 words
An encoder according to claim 14, wherein: the value of the function T1(F1(a, b, c, d)) and the value of the function T2(F1(a, b, c, d)) are stored respectively on a MSB side and on a LSB side with respect to the index value i1, with at least m1 bits of "0" (ml is a positive integer) being inserted between the value of the function T1 and the value of the function T2; and the value of the function T3(F2(a, b, c, d)) + nonz(a, b, c, d) and the value of the function T4(F2(a, b, c, d)) + nonz(a, b, c, d) are stored respectively on a MSB side and on a LSB side with respect to the index value i2, with at least m1 bits of "0" being inserted between the value of the function T3 and the value of the function T4.
Claim 32
Dependent Claim 119 words
An encoder according to claim 19, wherein: the value of the function T1(F1(a, b. c, d)), the value of the function T2(F1(a, b, c, d)), the value of the function T3(F2(a, b, c, d)) + nonz(a, b, c, d) and the value of the function T4(F2(a, b, c, d)) + nonz(a, b, c, d) are stored in this order from a MSB side to a LSB side with respect to the index value j, with at least m1 bits of "0" (m1 is a positive integer) being inserted between the value of T1 and the value of T2, between the value of T2 and the value of T3, and between the value of T3 and the value of T4.
Claim 33
Dependent Claim 59 words
An encoder according to claim 31, wherein the value of m1 is an integer value obtained by rounding up a value of the logarithm of 2 to the base of n1 (log 2 (n1)), where n1 is a value obtained by dividing a maximum number of data included in each group among the G groups of data by 4.
Claim 34
Dependent Claim 196 words
An encoder according to claim 23, wherein: the value of the function T5(F3(a, b)) and the value of the function T6(F3(a, b)) are stored respectively on a MSB side and on a LSB side with respect to the index value i3, with at least m2 bits of 0" (m2 is a positive integer) being inserted between the value of the function T5 and the value of the function T6; the value of the function T7(F4(a, b)) + nonz(a, b) and the value of the function T8(F4(a, b)) + nonz(a, b) are stored respectively on a MSB side and on a LSB side with respect to the index value i4, with at least m2 bits of "0" being inserted between the value of the function T7 and the value of the function T8; and the value of the function T9(F5(a, b)) + nonz(a, b) and the value of the function T10(F5(a, b)) + nonz(a, b) are stored respectively on a MSB side and on a LSB side with respect to the index value i5, with at least m2 bits of "0" being inserted between the value of the function T9 and the value of the function T10.
Claim 35
Dependent Claim 147 words
An encoder according to claim 28, wherein the value of the function T5(F3(a, b)), the value of the function T6(F3(a, b)), the value of the function T7(F4(a, b)) + nonz(a, b), the value of the function T8(F4(a, b)) + nonz(a, b), the value of the function T9(F5(a, b)) + nonz(a, b) and the value of the function T10(F5(a, b)) + nonz(a, b) are stored in this order from a MSB side to a LSB side with respect to the index value k, with at least m2 bits of "0" (m2 is a positive integer) being inserted between the value of T5 and the value of T6, between the value of T6 and the value of T7, between the value of T7 and the value of T8, between the value of T8 and the value of T9, and between the value of T9 and the value of T10.
Claim 36
Dependent Claim 59 words
An encoder according to claim 34, wherein the value of m2 is an integer value obtained by rounding up a value of the logarithm of 2 to the base of n2 (log 2 (n2)), where n2 is a value obtained by dividing a maximum number of data included in each group among the G groups of data by 2.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag