CN102136270B - Audio frequency decoding method and device - Google Patents

Audio frequency decoding method and device Download PDF

Info

Publication number
CN102136270B
CN102136270B CN2010106073243A CN201010607324A CN102136270B CN 102136270 B CN102136270 B CN 102136270B CN 2010106073243 A CN2010106073243 A CN 2010106073243A CN 201010607324 A CN201010607324 A CN 201010607324A CN 102136270 B CN102136270 B CN 102136270B
Authority
CN
China
Prior art keywords
hlen
value
data
bit
decoding table
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.)
Expired - Fee Related
Application number
CN2010106073243A
Other languages
Chinese (zh)
Other versions
CN102136270A (en
Inventor
明亮
苏延雄
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.)
Huawei Technologies Co Ltd
Huawei Software Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2010106073243A priority Critical patent/CN102136270B/en
Publication of CN102136270A publication Critical patent/CN102136270A/en
Application granted granted Critical
Publication of CN102136270B publication Critical patent/CN102136270B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention discloses an audio frequency decoding method. The embodiment of the invention also provides a corresponding device. In the technical scheme of the invention, 8-bit storage is adopted for Huffman decoding table of which the value is 1, 2, 3, 5 or 6; the value N of the data of a first byte of the Huffman decoding table is obtained firstly; N is equal to the maximum value of hlen in an original Huffman decoding table; when data to be decoded is obtained, N-bit data is obtained each time; the value of the N-bit data is M; and then M is used as an index to search the data in the Huffman decoding table, and decoding is implemented according to the data. In the method, the Huffman decoding table is stored by 8-bit compressing, so that the storage space is saved and the CPU cache hit rate for data reading during decoding is improved; meanwhile, searching of command number is not increased; therefore, the decoding performance is improved.

Description

A kind of audio-frequency decoding method and device
Technical field
The present invention relates to the audio decoder technical field, be specifically related to a kind of audio-frequency decoding method and device.
Background technology
At ISO/IEC 11172-3; In these 3 international standards of ISO/IEC 13818-3 and ISO/IEC 14496-3; The audio compress standard Layer III of Motion Picture Experts Group (MPEG, Moving Picture Experts Group) has a wide range of applications as one of them very important part.Use worldwide popularizing very of various mp3 audio files that Layer III compresses out with popular.The Huffman encoding and decoding are important component parts of the popular audio coding decoding of many kinds.During syntactic structure definition and the 2.4.2.7 that initial and the termination procedure of once concrete Hafman decoding depends on Huffmancodebits () in the 11172-3 agreement 2.4.1.7 joint saves to the semantic description of Huffmancodebits ().
At ISO/IEC 11172-3 appendix B.7, promptly in " Huffman codes for Layer III ", table Huffman code table for quadruples A and B and table Huffman code table 0 to 31 have been provided.Table 0 except having little significance among the Huffman code table, from table 1 to table 31, table 4 and table 14 do not exist, table 17 is to the shared table 16 of table 23, table 25 is to the shared table 24 of table 31.
The original Huffman code table of part that below is the B.7 original Huffman code of ISO/IEC 11172-3 appendix table 5 and Huffmancode table 10 is represented example:
Figure GDA0000157713630000011
Figure GDA0000157713630000021
Figure GDA0000157713630000022
In each original Huffman code table, list item x, y and hlen and hcod are arranged.In each original Huffman code table for quadruples, list item v, w, x, y and hlen and hcod are arranged.The input of hcod during as the output in when coding and decoding, (x, y) or (v, w, x, the output when input during y) as coding and decoding, hlen only is an aid illustration, its value is identical with the physical length of hcod.Because these original tables are to arrange by the ascending order of coding, when decoding inquiry, need look into according to hcod is counter, in fact very inconvenient, so generally can self-defined decoding table.The most basic form of these decoding tables is that original table is arranged by the hcod ascending order, simultaneously will (x, y, hlen) or (v, w, x, y hlen) carries out compression expression, during actual queries, with hcod as index, inquire corresponding decode value (x, y) or (v, w, x, y).
Because adopting the most basic above-mentioned mode to store, big table can waste very much internal memory; Make that simultaneously the CPU cache CPU cache hit rate when loading internal memory is very low; Cause carrying out the reduction of efficient, in order further to compress these decoding tables, particularly last several big tables; Might hcod be split into a plurality of parts, carry out the inquiry of multiple index mode.
Overall principle is under acceptable situation, not reduce the performance of decoding simultaneously at the EMS memory occupation of maintenance table.
General decoding table is started from back table 13, and 15,16,24 need the consideration of complete 16 distribution, to 16 distribution of the unified employing of all tables, perhaps also adopts multiple index to represent at the several tables that begin most.
In research and practice process to prior art, inventor of the present invention finds:
1) if memory headroom has been wasted in 16 distribution of the unified employing of all tables, CPU cache hit rate is low;
2) if also adopt multiple index to represent at the several tables that begin most, just having saved a little memory headroom has still but increased many instruction numbers, has reduced performance;
So in the Hafman decoding of existing mpeg audio Layer III, the decoding table many performances of instruction too big or that decoding needs are low, do not reach the balance an of the best between the two.
Summary of the invention
The embodiment of the invention provides a kind of audio-frequency decoding method and device; Can the size of the Hafman decoding table that generates be controlled at reasonable range; Improve CPU cache hit rate, combined to reduce the required instruction number of decoding inquiry simultaneously, improved the efficient of Hafman decoding.
A kind of audio-frequency decoding method; According to resolving in the syntactic structure of table_select and the 2.4.2.7 joint specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint in the ISO/IEC11172-3 agreement; It is characterized in that, comprising:
If the tabular value of the Hafman decoding table that parses is 1,2,3,5 or 6 o'clock:
Obtain first byte data in the said Hafman decoding table; The maximal value of hlen equates in the appendix original Huffman code table B.7 of the value N of said data and ISO/IEC11172-3 agreement; Said Hafman decoding table adopts 8 storages, and begins from index 0 beginning sign successively from second byte of said Hafman decoding table;
When obtaining data to be decoded, obtain the N bit data, the value of said N bit data is M at every turn;
With said M as the data in the said Hafman decoding table of search index;
According to index is that the data decode of M goes out x, y and hlen.
A kind of audio decoding apparatus comprises:
First acquisition module; Be used for when resolving according to the specific descriptions of table_select being chosen corresponding Hafman decoding table in to the syntactic structure of table_select and 2.4.2.7 joint in the ISO/IEC11172-3 agreement 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 1,2,3,5 or 6 o'clock; Obtain first byte data in the said Hafman decoding table; The maximal value of hlen equates in the appendix original Huffman code table B.7 of the value N of said data and ISO/IEC11172-3 agreement, and said Hafman decoding table adopts 8 storages, and note index 0 begins to identify successively from second byte of said Hafman decoding table;
Second acquisition module when being used to obtain data to be decoded, according to said N, obtains the N bit data at every turn, and the value of said N bit data is M;
First enquiry module is used for according to said M, with said M as the data in the said Hafman decoding table of search index;
First parsing module, the data decode that is used for index according to the inquiry of said first enquiry module and is M goes out x, y and hlen.
The embodiment of the invention is employed in according to resolving among the syntactic structure of table_select and the 2.4.2.7 specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint in the 11172-3 agreement; If the tabular value of the Hafman decoding table that parses is 1,2,3,5,6 o'clock; To tabular value is that 1,2,3,5 or 6 Hafman decoding table adopts 8 storages; Obtain earlier the Hafman decoding table the value N of first byte data, the maximal value of the hlen in N and the original Huffman table equates, when obtaining data to be decoded; Obtain the N bit data at every turn; The value of this N bit data is M, is the data in the search index Hafman decoding table again with M, and decodes according to these data; This method with 8 compression memory, has been saved storage space to the Hafman decoding table, when decoding, has improved the CPU cache hit rate that data read, and does not increase the query statement number simultaneously, thereby improves decoding performance.
Description of drawings
Fig. 1 is the schematic flow sheet of embodiment of the invention audio-frequency decoding method;
Fig. 2 is the schematic flow sheet of embodiment of the invention audio-frequency decoding method;
Fig. 3 is the logical organization synoptic diagram of embodiment of the invention audio decoding apparatus;
Fig. 4 is the logical organization synoptic diagram of embodiment of the invention audio decoding apparatus.
Embodiment
The embodiment of the invention provides a kind of audio-frequency decoding method, and the embodiment of the invention also provides corresponding device thereof.Below be elaborated respectively.
See also Fig. 1, first embodiment of embodiment of the invention sound intermediate frequency coding/decoding method is concrete:
During syntactic structure definition and the 2.4.2.7 that initial and the termination procedure of once concrete Hafman decoding depends on function Huffmancodebits () in the 11172-3 agreement 2.4.1.7 joint saves to the semantic description of Huffmancodebits (); When utilizing the Hafman decoding table to decode, based on resolving among the syntactic structure of table_select and the 2.4.2.7 specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint in the 11172-3 agreement to mpeg audio Layer III;
101, obtain first byte data in the Hafman decoding table;
If the tabular value of the Hafman decoding table that parses is 1,2,3,5,6 o'clock; Obtain first byte data in the Hafman decoding table; The value N of these data equates with the maximal value of hlen in the 11172-3 original Huffman code table B.7; Wherein, the Hafman decoding table adopts 8 storages, and remembers that index 0 begins to identify successively from second byte of Hafman decoding table.
When 102, obtaining data to be decoded, obtain the N bit data at every turn;
When obtaining decoded data, obtain the N bit data at every turn, wherein, the value of N bit data is M.
103, with M as the data in the search index Hafman decoding table.
104, be that the data decode of M goes out x, y and hlen according to index.
Further, before data are decoded, need to generate the Hafman decoding table based on 11172-3 original Huffman code table B.7 earlier, wherein, the Hafman decoding table of generation carries out ascending order by hcod to be arranged, and satisfies equation (1):
Figure GDA0000157713630000051
Wherein, Xbits representes that x representes with xbits bit; Ybits representes that y representes with ybits bit; Hlenbits representes that hlen representes with hlenbits bit, and xmax, ymax and hlenmax are respectively maximal value, the maximal value of y and the maximal value of hlen of x in the original code table of 11172-3B.7; For each row of the Huffman code table after the same ascending order arrangement, will store 2^ continuously according to each expression value of above-mentioned equation (1) calculating gained (hlenmax-hlen)Inferior.
In the present embodiment; In according to the 11172-3 agreement, resolve among the syntactic structure of table_select and the 2.4.2.7 specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 1,2,3,5,6 o'clock, be that 1,2,3,5,6 Hafman decoding table carries out compression memory with 8 to tabular value, rather than 16; Saved storage space; Improve the CPU cache hit rate that data read, do not increased the query statement number simultaneously, thereby improved decoding performance.
See also Fig. 2, second embodiment of embodiment of the invention sound intermediate frequency coding/decoding method is concrete:
During syntactic structure definition and the 2.4.2.7 that initial and the termination procedure of once concrete Hafman decoding depends on Huffmancodebits () in the 11172-3 agreement 2.4.1.7 joint saves to the semantic description of Huffmancodebits (); When utilizing the Hafman decoding table to decode, based on resolving among the syntactic structure of table_select and the 2.4.2.7 specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint in the 11172-3 agreement to mpeg audio Layer III;
Step 201 to step 204 is please with reference to step 101 to the step 104 among the embodiment one;
205, get V position data to be decoded and in the zone one of Hafman decoding table, inquire about, from Query Result, obtain hlen as the one-level index;
If the tabular value of the Hafman decoding table that parses is 7,8,9,10,11 or 12 o'clock, get V position data to be decoded and in the zone one of Hafman decoding table, inquire about as the one-level index, from Query Result, obtain hlen; Wherein, and note index 0 begin to identify successively from first byte of said Hafman decoding table; V is a critical value of cutting apart hcod, each hcod in the 11172-3 original Huffman code table B.7 is divided into 2 parts, if hlen is greater than V; Then first's length of hcod is V; Second portion length is leftlen, and promptly hlen deducts the value of V, if hlen is smaller or equal to V; Then first's length of hcod is hlen, and second portion length is 0; The Hafman decoding table adopts 16 and 8 to mix storage; Each table is divided into two storage areas; First storage area is stored a V power value of 2 altogether; Each value is with 16 storages, and second storage area length tblbytes of storage list altogether deducts the difference value that 2 V adds 1 power, and each is worth with 8 storages;
206, judge whether the value of inquiring about the hlen that obtains is zeros;
In step 205, from Query Result, obtain the value of hlen, judge then whether the value of this hlen is 0, be that the value of 0 expression hlen is zeros, otherwise be not zeros that zeros is expressed as 0.
If the hlen of 207 Query Results is not zeros, then from Query Result, obtain x, y and hlen;
Be not zeros if in step 206, judge hlen, then from Query Result, can obtain x, y and hlen.
If the hlen of 208 Query Results is zeros, then obtain Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax;
If in step 206, judge hlen is zeros, then obtain Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax; Wherein, leftlenmax be mutually on the same group in the maximal value of leftlen, the so-called set that is meant on the same group mutually when the hlen row that all identical hcod of V position belong to before the hcod during greater than V.
209, read leftlenmax position data to be decoded and inquire about in zone two according to offset, decode x according to Query Result, y and hlen as secondary index;
In step 208, obtain Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax after; Reading leftlenmax position data to be decoded again inquires about in the zone two of Hafman decoding table according to offset as secondary index; Decode x according to Query Result; Y and hlen, wherein, hlen=leftlen+V.
Further; Before data are decoded; Need to generate the Hafman decoding table according to 11172-3 original Huffman code table B.7 earlier; Wherein, this Hafman decoding table carries out ascending order according to hcod to be arranged, and the tabular value of generation is that 7,8,9,10,11 or 12 Hafman decoding table satisfies equation (2):
Figure GDA0000157713630000071
Wherein, Xbits representes that x representes with xbits bit; Ybits representes that y representes with ybits bit, and hlenbits representes that hlen representes with hlenbits bit, and xmax and ymax are respectively the maximal value of x in the original code table of 11172-3B.7 and the maximal value of y.
Further, the tabular value of generation is that 7,8,9,10,11 or 12 Hafman decoding table also satisfies equation (3):
Wherein, Offsetbits representes that offset representes with offsetbits bit; Leftlenmaxbits representes that leftlenmax representes with leftlenmaxbits bit; Zerosbits representes that zeros representes with zerosbits bit, and zeroslsbpos representes the least significant bit (LSB) of zeros in storage area, and zerosmsbpos representes the highest significant position of zeros in storage area; Hlenlsbpos representes the least significant bit (LSB) of hlen in storage area, and hlenmsbpos representes the highest significant position of hlen in storage area.
Further, each row of the Huffman code table after arranging for same ascending order, if hlen smaller or equal to V, (x, y hlen) store 2^ continuously then will to calculate each expression value of gained according to equation (2) (V-hlen)Inferior in zone one; X wherein, y, the relative order of hlen is arbitrarily; If hlen contains mutually first hcod on the same group greater than V and this row, (offset, leftlenmax zeros) store in the zone one, and the value of offset is increased 2^ then will to calculate each expression value of gained according to equation (3) LeftlenmaxWherein, offset, leftlenmax, the relative order of zeros is arbitrarily; If hlen is greater than V, the storage representation in zone two be (leftlen), wherein, x is with the xbits bit representation for x, y, and y is with the ybits bit representation, and leftlen is with the leftlenbits bit representation, and xbits, ybits and leftlenbits satisfy equation (4):
Figure GDA0000157713630000082
And, will be according to each expression value (x, y, leftlen) the continuous storage 2^ in zone two of equation (4) calculating gained (leftlenmax-leftlen)Inferior.
In the present embodiment; In according to the 11172-3 agreement, resolve among the syntactic structure of table_select and the 2.4.2.7 specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint, according to the different situations of 11172-3 original Huffman code table B.7 different Hafman decoding tables is taked different storage modes, at 1,2,3,5,6 o'clock if the tabular value of the Hafman decoding table that parses is; The Hafman decoding table is carried out compression memory with 8; Rather than 16, both saved storage space, improved the CPU cache hit rate that data read; Do not increase simultaneously the query statement number, thereby improve decoding performance; If the tabular value of the Hafman decoding table that parses is 7,8,9,10,11 or 12 o'clock; The Hafman decoding table is carried out the compressed mixed storage with 16 and 8; Both taken into account the characteristic that most of data only need the one query table to accomplish; Make that instruction number is less and CPU cache hit rate is higher; Simultaneously under the situation that needs secondary to table look-up, save data storage capacity, made for complete 16 storage, to have higher CPU cache hit rate, can not increase extra instruction number again simultaneously.
Below be application examples of the present invention, concrete:
With the B.7 original Huffman code of ISO/IEC 11172-3 appendix table 1 is example, below is the raw data of Huffman code table 1:
Figure GDA0000157713630000091
In this 11172-3 original Huffman code table B.7, the maximal value hlenmax of hlen is 3, and hlenmax is stored in first byte of adjusted Hafman decoding table with 8 bit representations, is 0x03;
Original Huffman code table 1 is carried out ascending order according to hcod arrange, concrete:
Figure GDA0000157713630000092
Remember that the maximum x in the Huffman code table after same ascending order is arranged is xmax, maximum y is ymax, and for each row in this Huffman code table, the storage and uniform of computational solution code value is represented (x; Y, hlen), x wherein, y; The relative order of hlen is arbitrarily, and x is with the xbits bit representation, and y is with the ybits bit representation, and hlen is with the hlenbits bit representation; And xbits, ybits, hlenbits satisfy following equation (1):
Each value of this method for expressing is with 8 storages, for each row in the Huffman code table after the same ascending order arrangement, with (it is inferior hlen) to store 2^ (hlenmax-hlen) according to the value of equation (1) calculating gained continuously with 8 for x, y.
In order to decode conveniently, xbits that generally can these tables are corresponding, ybits and hlenbits are arranged to the same, with xbits=2, and ybits=2; Hlenbits=4 is an example, since the xmax=1 of Huffman code table 1, ymax=1, and hlenmax=3 can set up so this is provided with; And, because Huffman code table 1,2,3,5; 6 xmax=3, ymax=3, hlenmax≤8 are so this setting also can be set up.Be provided with down at this, the decoding table of final Huffman code table 1 to 6 can use 9,65,65,257,129 bytes to represent respectively.
(x, y, hlen) according to the value of equation (1) with 8 storage computation gained, as shown in the table:
Table 1
Figure GDA0000157713630000102
In this adjusted Hafman decoding table, first byte 0x03 is hlenmax, and effectively index is since second byte, and note is from index 0 beginning.
During actual the decoding, can accomplish through the method for once tabling look-up.For all values of this adjusted Hafman decoding table, it reads length and fixes, i.e. first byte hlenmax of each table.Read the hlenmax bit data at every turn; With its value as search index according to the data of equation (1) with 8 storage computation gained, according to actual xbits, the setting of ybits and hlenbits is decoded with the data of finding; Then can draw actual x, the value of y and hlen.
For simplifying the description process of hcod decoding, idealized model below is set only constitutes by hcod, promptly suppose not decode linbitsx, signx, linbitsy, signy.Comprise linbitsx, signx, linbitsy, signy actual decode procedure can referring in the syntactic structure of Huffmancodebits () in the 11172-3 2.4.1.7 joint and the 2.4.2.7 joint to the semantic description of Huffmancodebits (), actual hcod decoding process is identical with the hcod decoding process in the idealized model.The order of representation of hcod is the bslbf of defined among the 11172-3, i.e. bit string, left bit first (Bit String of the bit priority that keeps left).Be initiated with example with data to be decoded under the idealized model from 00101011001, and establish decodable significant bit length more than or equal to 11, the circulation when promptly having decoded this string data among the Huffmancodebits () is limit or also not limit just, and is concrete:
Get first byte 0x03 in the adjusted Hafman decoding table, the 0th from data to be decoded begins to get 3 bit data then, and promptly 001, again with 001 value; Promptly 1 as index since 0, promptly since second byte, inquiry obtains data 0x13 according to the data of equation (1) with the storage of 8 storage computation gained; With data 0x13 according to xbits=2, ybits=2, the setting of hlenbits=4 is decoded and is obtained x=00; Y=01, hlen=0011, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 3, the x=0 of decimal representation, y=1;
Get 3 bit data since the 3rd again, promptly 010, again with 010 value, promptly 2 as index since 0; Promptly since second byte, inquiry obtains data 0x42 according to the data of equation (1) with 8 storage computation gained storages, with data 0x42 according to xbits=2; Ybits=2, the setting of hlenbits=4 is decoded and is obtained x=01, y=00, hlen=0010; The actual effective length of this decoding is the value of hlen of decoding, promptly 2, and the x=1 of decimal representation, y=0; Because the actual effective length of this decoding is 2, and actual 3 bit data of having got are decoded so last bit data of actual 3 bit data of getting need be left to next time;
Because last time, decoding stayed the one digit number certificate,, promptly get 3 bit data since the 5th so when fetching data, begin to get 3 bit data from this this bit data that stays; Promptly 011, again with 011 value, promptly 3 as index since 0, promptly since second byte; Inquiry obtains data 0x42 according to the data of equation (1) with the storage of 8 storage computation gained, with data 0x42 according to xbits=2, ybits=2; The setting of hlenbits=4 is decoded and is obtained x=01, y=00, and hlen=0010, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 2, the x=1 of decimal representation, y=0; Because the actual effective length of this decoding is 2, and actual 3 bit data of having got are decoded so last bit data of actual 3 bit data of getting need be left to next time;
Because last time, decoding stayed the one digit number certificate,, promptly get 3 bit data since the 7th so when fetching data, begin to get 3 bit data from this this bit data that stays; Promptly 100, again with 100 value, promptly 4 as index since 0, promptly since second byte; Inquiry obtains data 0x01 according to the data of equation (1) with the storage of 8 storage computation gained, with data 0x01 according to xbits=2, ybits=2; The setting of hlenbits=4 is decoded and is obtained x=00, y=00, and hlen=0001, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 1, the x=0 of decimal representation, y=0; Because the actual effective length of this decoding is 1, and actual 3 bit data of having got are decoded so inverse two bit data of actual 3 bit data of getting need be left to next time;
Because last time, decoding stayed two bit data,, promptly get 3 bit data since the 8th so when fetching data, begin to get 3 bit data from this first bit data that stays; Promptly 001, again with 001 value, promptly 1 as index since 0, promptly since second byte; Inquiry obtains data 0x13 according to the data of equation (1) with the storage of 8 storage computation gained, with data 0x13 according to xbits=2, ybits=2; The setting of hlenbits=4 is decoded and is obtained x=00, y=01, and hlen=0011, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 3, the x=0 of decimal representation, y=1;
Data 00101011001 are accomplished decoding, in this example, are that example is described with the B.7 original Huffman code of ISO/IEC 11172-3 appendix table 1; Original Huffman code table 1 is carried out compression memory with 8; Rather than 16, saved storage space, improved the CPU cache hit rate that data read; Do not increase simultaneously the query statement number, thereby improve decoding performance.
Be example with the B.7 original Huffman code of ISO/IEC 11172-3 appendix table 7 again, original Huffman code table 7 carried out ascending order according to hcod arrange, concrete:
Figure GDA0000157713630000121
Figure GDA0000157713630000131
Figure GDA0000157713630000141
Each hcod in this Huffman code table is divided into 2 parts, and establishing the critical value of cutting apart length is v, if i.e. hlen>V; Then first's length is V, and second portion length is (hlen-V), is designated as leftlen; If hlen≤V, then first's length is hlen, and second portion length is 0.According to this division methods, adjusted Huffman code table is divided into 2 zones, 2^V value contained in zone one, and each value adopts 16 storages, the total individual byte of 2^ (V+1); The number of zone two intermediate values and total bytes can learn that each value adopts 8 storages behind all provisional capital codings of each table.
Each value in the adjusted Huffman code table can draw as follows:
Below " mutually on the same group " be meant the set of the row that all identical hcod of V position belong to before the hcod when hlen>V, for example, V=8 is with in descending; Hcod has 10, preceding 8 identical, all be 0; So following 4 behaviors mutually on the same group, and the maximal value of leftlen is 2, note leftlenmax=2;
Figure GDA0000157713630000142
Remember that the maximum x in the Huffman code table after same ascending order is arranged is xmax, maximum y is ymax, and the least significant bit (LSB) of hlen in storage representation is the hlenlsbpos position, and the highest significant position of hlen in storage representation is the hlenmsbpos position.For each row in the Huffman code table after the same ascending order arrangement, if hlen≤V calculates storage representation (x, y; Hlen), x wherein, y, the relative order of hlen is arbitrarily; X is with the xbits bit representation, and y is with the ybits bit representation, and hlen is with the hlenbits bit representation; And xbits, ybits, hlenbits satisfy following equation (2):
Each value of this method for expressing is with 16 storages.
Remember that adjusted Hafman decoding literary name joint length is tblbytes.And note offset representes the byte offset (the initial offset of each table is 2^ (V+1)) with respect to each table start address; Leftlenmax representes mutually the maximal value of middle leftlen on the same group; Zeros representes 0; The least significant bit (LSB) of zeros in storage representation is the zeroslsbpos position, and the highest significant position of zeros in storage representation is the zeromsbpos position.For each row in the Huffman code table after the same ascending order arrangement, if hlen>V, and this row contains phase first hcod on the same group; Then calculate storage representation (offset, leftlenmax, zeros); Offset wherein, leftlenmax, the relative order of zeros is arbitrarily; Offset is with the offsetbits bit representation, and leftlenmax is with the leftlenmaxbits bit representation, and zeros representes with zerosbits; And offsetbits, leftlenmaxbits, zerosbits satisfy following equation (3):
Figure GDA0000157713630000151
Each value of this method for expressing is with 16 storages.
For each row in the Huffman code table after the same ascending order arrangement, if hlen≤V, with (it is inferior in zone one hlen) to store 2^ (V-hlen) according to the value of equation (2) calculating gained continuously with 16 for x, y.For each row in the Huffman code table after the same ascending order arrangement; If hlen>V and this row contain phase first hcod on the same group; With (offset; Leftlenmax, the value of zeros) calculating gained according to equation (3) stores zone one into and the value of offset is increased 2^leftlenmax with 16.If hlen>V, the calculating storage representation (leftlen), wherein x is with the xbits bit representation for x, y, and y is with the ybits bit representation, and leftlen is with the leftlenbits bit representation, and xbits, and ybits, leftlenbits satisfy following equation (4):
Figure GDA0000157713630000152
The value in each zone two of this method for expressing is with 8 storages, and (leftlen) storage 2^ (leftlenmax-leftlen) is inferior in zone two continuously with 8 for x, y with each.
In order to decode conveniently, xbits that generally can these tables are corresponding, ybits and hlenbits are arranged to the same, with V=8; Xbits=4 in equation (2) and (3), ybits=4, hlenbits=4, offsetbits=10; Leftlenmaxbits=2, zerosbits=4, and xbits=3 in the equation (4), ybits=3; Leftlenbits=2 is an example, since the xmax=5 of Huffman code table 7, ymax=5; Leftlenmax=2, and the tblbytes of the decoding table of final adjusted Huffman code table 7 is 524 under this is provided with, the above formula of substitution can be set up in verification setting; And, since the xmax=7 of Huffman code table 7 to 12, ymax=7; Leftlenmax=3, and the tblbytes of the decoding table of final Huffman code table 7 to 12 is respectively 524,530 under this is provided with; 516,562,542; 528, the above formula of substitution can be set up in verification setting.
This compression memory method for expressing is represented with 2 grades of index stores, and is not adopted one-level index stores used among the Huffman code table1 to 6 to represent.If because represent that with the one-level index stores data volume can be too big, the CPU cache hit rate that can make data read simultaneously again reduces, and is concrete:
Table 2
Figure GDA0000157713630000171
In last table; Data subscript index is since 0 counting, and all with small end syllable sequence mode data stored in two in zone one and zone, and promptly the internal memory low address is deposited low byte; The internal memory high address is deposited high byte; With 0x96B6 is example, and byte subscript index is that 512 data are 0xB6, and byte subscript index is that 513 data are 0x96.
During actual the decoding, read the V bit data earlier as the inquiry in zone one of one-level index, if the hlen of Query Result is not 0; Then decodable code goes out actual x, and y and hlen are if the hlen of Query Result is 0; Be represented be zeros, what then can obtain corresponding offset and secondary index district reads length l eftlenmax, reads the leftlenmax bit data again and inquires about according to skew in zone two as secondary index; Then decodable code goes out actual x, y and hlen, this hlen=V+leftlen.
Describe for simplifying, set up the idealized model identical with precedent.Be initiated with example with data to be decoded under the idealized model from 1,010 0,010 1,111 1,000 0,001 01; And establish decodable significant bit length more than or equal to 22; Circulation when promptly having decoded this string data among the Huffmancodebits () is limit or also not limit just, and is concrete:
If V=8 gets 8 data to be decoded since the 0th, promptly 10100010 as the inquiry in zone one of one-level index, promptly with 10100010 value; Promptly 162, search the subscript index in the zone one and be 162 data, i.e. 0x0001, with data 0x0001 according to xbits=4; Ybits=4, the setting of hlenbits=4 is decoded and is obtained x=0000, y=0000, hlen=0001; Be x=0, y=0, hlen=1, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 1, the x=0 of decimal representation, y=0;
Because last time, decoding stayed seven bit data,, promptly get 8 data to be decoded since the 1st so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly 01000101 as the inquiry in zone one of one-level index, promptly with 01000101 value, and promptly 69, search the subscript index in the zone one and be 69 data; Be 0x0013, with data 0x0013 according to xbits=4, ybits=4, hlenbits=4; Setting decode and obtain x=0000, y=0001, hlen=0011, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 3, the x=0 of decimal representation, y=1;
Because last time, decoding stayed the four figures certificate,, promptly get 8 data to be decoded since the 4th so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly 00101111 as the inquiry in zone one of one-level index, promptly with 00101111 value, and promptly 47, search the subscript index in the zone one and be 47 data; Be 0x0206, with data 0x0206 according to xbits=4, ybits=4, hlenbits=4; Setting decode and obtain x=0010, y=0000, hlen=0110, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 6, the x=2 of decimal representation, y=0;
Because last time, decoding stayed two bit data,, promptly get 8 data to be decoded since the 10th so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly 11100000 as the inquiry in zone one of one-level index, promptly with 11100000 value, and promptly 224, search the subscript index in the zone one and be 224 data; Be 0x0001, with data 0x0001 according to xbits=4, ybits=4, hlenbits=4; Setting decode and obtain x=0000, y=0000, hlen=0001, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 1, the x=0 of decimal representation, y=0;
Because last time, decoding stayed seven bit data,, promptly get 8 data to be decoded since the 11st so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly 11000000 as the inquiry in zone one of one-level index, promptly with 11000000 value, and promptly 192, search the subscript index in the zone one and be 192 data; Be 0x0001, with data 0x0001 according to xbits=4, ybits=4, hlenbits=4; Setting decode and obtain x=0000, y=0000, hlen=0001, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 1, the x=0 of decimal representation, y=0;
Because last time, decoding stayed seven bit data,, promptly get 8 data to be decoded since the 12nd so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly 10000001 as the inquiry in zone one of one-level index, promptly with 10000001 value, and promptly 129, search the subscript index in the zone one and be 129 data; Be 0x0001, with data 0x0001 according to xbits=4, ybits=4, hlenbits=4; Setting decode and obtain x=0000, y=0000, hlen=0001, the actual effective length of this decoding is the value of the hlen of decoding; Promptly 1, the x=0 of decimal representation, y=0;
Because last time, decoding stayed seven bit data, so when fetching data, begin to get 8 bit data from this first bit data that stays; Promptly get 8 data to be decoded since the 13rd, promptly 00000010 as the inquiry in zone one of one-level index, promptly with 00000010 value; Promptly 2, search the subscript index in the zone one and be 2 data, i.e. 0x8190; Solving hlen is zeros, so need the inquiry to the secondary index district; Again with data 0x8190 according to offsetbits=10, the setting of leftlenmaxbits=2 is decoded and is obtained offset=1000000110, leftlenmax=01, i.e. offset=518; Leftlenmax=1 reads leftlenmax position data to be decoded, and promptly 1 data 1 to be decoded is as secondary index inquiry to the secondary index district; 518 bytes of reference position of inquiry offset distance table are because secondary index is 1, so inquiry subscript index is 519 data in the secondary index district; Be 0xA9, again with data 0xA9 according to xbits=3, ybits=3; The setting of lefthlenbits=2 is decoded and is obtained x=101, y=010, lefthlen=01; Be the x=5 of decimal representation, y=2, hlen=lefthlen+V=9.
So far; Data 1,010 0,010 1,111 1,000 0,001 01 are accomplished decoding, in this example, are that example is described with the B.7 original Huffman code of ISO/IEC11172-3 appendix table 7; Original Huffman code table 7 is carried out the compressed mixed storage with 16 and 8; Both take into account the characteristic that most of data only need the one query table to accomplish, made that instruction number was less and CPU cache hit rate is higher, under the situation that needs secondary to table look-up, saved data storage capacity simultaneously; Make for complete 16 storage, to have higher CPU cache hit rate, can not increase extra instruction number again simultaneously.
In above-mentioned application examples; With the actual conditions of Hafman decoding table according to each table, the Hafman decoding table is carried out compression memory with 8, perhaps carry out the compressed mixed storage with 16 and 8; Make the size of Hafman decoding table be controlled at reasonable range; Have high CPU cache hit rate, and the query statement number is less, thereby improves the efficient of decoding.
See also Fig. 3, embodiment of the invention sound intermediate frequency decoding device embodiment, concrete:
First acquisition module 301; Be used for when resolving according to the specific descriptions of table_select being chosen corresponding Hafman decoding table in to the syntactic structure of table_select and 2.4.2.7 in the 11172-3 agreement 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 1,2,3,5 or 6 o'clock; Obtain first byte data in the Hafman decoding table; The value N of these data equates that with the maximal value of hlen in the 11172-3 original Huffman code table B.7 the Hafman decoding table adopts 8 storages, and remembers that index 0 begins to identify successively from second byte of said Hafman decoding table;
Second acquisition module 302, when being used to obtain data to be decoded, the value N of the data of obtaining according to first acquisition module 301 obtains the N bit data at every turn, and wherein, the value of N bit data is M;
First enquiry module 303, the value M of the data that are used for obtaining according to second acquisition module 302, with M as the data in the search index Hafman decoding table;
First parsing module 304, the data decode that is used for index according to enquiry module inquiry and is M goes out x, y and hlen.
Further, see also Fig. 4, audio decoding apparatus also comprises:
Second enquiry module 305; Be used for when resolving according to the specific descriptions of table_select being chosen corresponding Hafman decoding table in to the syntactic structure of table_select and 2.4.2.7 in the 11172-3 agreement 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 7,8,9,10,11 or 12 o'clock; Get V position data to be decoded and in the zone one of Hafman decoding table, inquire about, from Query Result, obtain hlen as the one-level index; Wherein, and note index 0 begin to identify successively from first byte of said Hafman decoding table; V is a critical value of cutting apart hcod; Each hcod in the 11172-3 original Huffman code table B.7 is divided into 2 parts; If hlen is greater than V; Then first's length of hcod is V; Second portion length is leftlen, and promptly hlen deducts the value of V, if hlen is smaller or equal to V; Then first's length of hcod is hlen, and second portion length is 0; The Hafman decoding table adopts 16 and 8 to mix storage; Each table is divided into two storage areas; First storage area is stored a V power value of 2 altogether; Each value is with 16 storages; Second storage area length tblbytes of storage list altogether deducts the difference value that 2 V adds 1 power, and each is worth with 8 storages;
Judge module 306 is used to judge whether the value that second enquiry module 305 is inquired about the hlen that obtains is zeros, and wherein, zeros representes 0;
Second decoder module 307 is used for when judge module 306 is judged hlen not for zeros, then from the Query Result of second enquiry module, can obtaining x, y and hlen;
The 3rd acquisition module 308; Be used for when judge module 306 is judged hlen and is zeros; Then obtain Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax; Wherein, leftlenmax be mutually on the same group in the maximal value of leftlen, refer to set mutually on the same group when the hlen row that all identical hcod of V position belong to before the hcod during greater than V;
Query module 309 is used for the leftlenmax and the offset that obtain according to the 3rd acquisition module 308, reads leftlenmax position data to be decoded and in zone two, inquires about according to offset as secondary index, obtains Query Result;
The 3rd decoder module 310 is used for decoding x according to the Query Result of query module 309, y and hlen, wherein, hlen=leftlen+V.
In the present embodiment; With the actual conditions of Hafman decoding table according to each table, the Hafman decoding table is carried out compression memory with 8, perhaps carry out the compressed mixed storage with 16 and 8; Make the size of Hafman decoding table be controlled at reasonable range; Have high CPU cache hit rate, and the query statement number is less, thereby improves the efficient of decoding.
One of ordinary skill in the art will appreciate that all or part of step in the whole bag of tricks of the foregoing description is to instruct relevant hardware to accomplish through program; This program can be stored in the computer-readable recording medium; Storage medium can comprise: ROM (read-only memory) (ROM; Read Only Memory), RAS (RAM, Random Access Memory), disk or CD etc.
More than to audio-frequency decoding method that the embodiment of the invention provided and device * be described in detail; Used specific case herein principle of the present invention and embodiment are set forth, the explanation of above embodiment just is used for helping to understand method of the present invention and core concept thereof; Simultaneously, for one of ordinary skill in the art, according to thought of the present invention, the part that all can change in specific embodiments and applications, in sum, this description should not be construed as limitation of the present invention.

Claims (12)

1. audio-frequency decoding method; According to resolving in the syntactic structure of table_select and the 2.4.2.7 joint specific descriptions of table_select being chosen corresponding Hafman decoding table in the 2.4.1.7 joint in the ISO/IEC11172-3 agreement; It is characterized in that, comprising:
If the tabular value of the Hafman decoding table that parses is 1,2,3,5 or 6 o'clock:
Obtain first byte data in the said Hafman decoding table; The maximal value of hlen equates in the appendix original Huffman code table B.7 of the value N of said data and ISO/IEC11172-3 agreement; Said Hafman decoding table adopts 8 storages, and begins from index 0 beginning sign successively from second byte of said Hafman decoding table;
When obtaining data to be decoded, obtain the N bit data, the value of said N bit data is M at every turn;
With said M as the data in the said Hafman decoding table of search index;
According to index is that the data decode of M goes out x, y and hlen.
2. method according to claim 1 is characterized in that, said method also comprises:
If the tabular value of the Hafman decoding table that parses is 7,8,9,10,11 or 12 o'clock:
Get V position data to be decoded and in the zone one of said Hafman decoding table, inquire about, from Query Result, obtain hlen as the one-level index; Wherein, and note index 0 begin to identify successively from first byte of said Hafman decoding table; Said V is a critical value of cutting apart hcod, each hcod in the appendix original Huffman code table B.7 of ISO/IEC11172-3 agreement is divided into 2 parts, if hlen is greater than V; Then first's length of hcod is V; Second portion length is leftlen, and promptly hlen deducts the value of V, if hlen is smaller or equal to V; Then first's length of hcod is hlen, and second portion length is 0; Said Hafman decoding table adopts 16 and 8 to mix storage; Each table is divided into two storage areas, and a V power value of 2 is stored in zone one altogether, and each is worth with 16 storages; The zone two length tblbytes of storage list altogether deducts the difference value that 2 V adds 1 power, and each is worth with 8 storages;
Whether the value of judging the hlen that inquiry obtains is zeros, and said zeros representes 0;
If the hlen of Query Result is not zeros, then from said Query Result, can obtain x, y and hlen;
If the hlen of Query Result is zeros; Then obtain said Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax; Said leftlenmax be mutually on the same group in the maximal value of leftlen, said phase refers to the set when the hlen row that all identical hcod of V position belong to before the hcod during greater than V on the same group;
Read leftlenmax position data to be decoded and inquire about in zone two according to offset, decode x according to Query Result as secondary index, y and hlen, the value of said hlen equals the value that leftlen adds V.
3. according to claim 1 or the described method of claim 2, it is characterized in that said method also comprises:
Said Hafman decoding table carries out ascending order by hcod and arranges.
4. method according to claim 1 is characterized in that, said method also comprises:
Said tabular value is that x representes that with xbits bit y representes that with ybits bit hlen representes that with hlenbits bit said xbits, ybits and hlenbits satisfy equation (1) in each Hafman decoding table of 1,2,3,5,6:
Figure FDA0000157713620000021
Wherein, xmax, ymax and hlenmax are respectively maximal value, the maximal value of y and the maximal value of hlen of x in the appendix original code table B.7 of ISO/IEC11172-3 agreement.
5. method according to claim 4 is characterized in that, said method also comprises:
For each row of the Huffman code table after the same ascending order arrangement, will store 2^ continuously according to each expression value of said equation (1) calculating gained (hlenmax-hlen)Inferior.
6. method according to claim 2 is characterized in that, said method also comprises:
Said tabular value is in each Hafman decoding table of 7,8,9,10,11 or 12; X representes with xbits bit; Y representes that with ybits bit hlen representes that with hlenbits bit said xbits, ybits and hlenbits satisfy equation (2):
Figure FDA0000157713620000022
Wherein, xmax and ymax are respectively the maximal value of x in the appendix original code table B.7 of ISO/IEC11172-3 agreement and the maximal value of y.
7. method according to claim 6 is characterized in that, said method also comprises:
In the said Hafman decoding table; Offset representes with offsetbits bit; Leftlenmax representes that with leftlenmaxbits bit zeros representes that with zerosbits bit said offsetbits, leftlenmaxbits and zerosbits satisfy equation (3):
Wherein, Zeroslsbpos representes the least significant bit (LSB) of zeros in storage area; Zerosmsbpos representes the highest significant position of zeros in storage area; Hlenlsbpos representes the least significant bit (LSB) of hlen in storage area, and hlenmsbpos representes the highest significant position of hlen in storage area.
8. method according to claim 7 is characterized in that, said method also comprises:
Each row of Huffman code table after arranging for same ascending order, if hlen smaller or equal to V, (x, y hlen) store 2^ continuously then will to calculate each expression value of gained according to said equation (2) (V-hlen)Inferior in zone one; Wherein, x, y, the relative order of hlen is arbitrarily.
9. method according to claim 8 is characterized in that, said method also comprises:
Each row for the Huffman code table after the same ascending order arrangement; If hlen contains phase first hcod on the same group greater than V and this row; Then will calculate each expression value (offset of gained according to said equation (3); Leftlenmax zeros) stores in the zone one, and the value of said offset is increased 2^ LeftlenmaxWherein, offset, leftlenmax, the relative order of zeros is arbitrarily.
10. method according to claim 9 is characterized in that, said method also comprises:
Each row of Huffman code table after arranging for same ascending order, if hlen greater than V, the storage representation in zone two is (x; Y, leftlen), wherein; X is with the xbits bit representation; Y is with the ybits bit representation, and leftlen is with the leftlenbits bit representation, and xbits, ybits and leftlenbits satisfy equation (4):
And, will be according to each expression value (x, y, leftlen) the continuous storage 2^ in zone two of said equation (4) calculating gained (leftlenmax-leftlen)Inferior.
11. an audio decoding apparatus is characterized in that, comprising:
First acquisition module; Be used for when resolving according to the specific descriptions of table_select being chosen corresponding Hafman decoding table in to the syntactic structure of table_select and 2.4.2.7 joint in the ISO/IEC11172-3 agreement 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 1,2,3,5 or 6 o'clock; Obtain first byte data in the said Hafman decoding table; The maximal value of hlen equates in the appendix original Huffman code table B.7 of the value N of said data and ISO/IEC11172-3 agreement, and said Hafman decoding table adopts 8 storages, and note index 0 begins to identify successively from second byte of said Hafman decoding table;
Second acquisition module when being used to obtain data to be decoded, according to said N, obtains the N bit data at every turn, and the value of said N bit data is M;
First enquiry module is used for according to said M, with said M as the data in the said Hafman decoding table of search index;
First parsing module, the data decode that is used for index according to the inquiry of said first enquiry module and is M goes out x, y and hlen.
12. device according to claim 11 is characterized in that, said device also comprises:
Second enquiry module; Be used for when resolving according to the specific descriptions of table_select being chosen corresponding Hafman decoding table in to the syntactic structure of table_select and 2.4.2.7 joint in the ISO/IEC11172-3 agreement 2.4.1.7 joint; If the tabular value of the Hafman decoding table that parses is 7,8,9,10,11 or 12 o'clock; Get V position data to be decoded and in the zone one of Hafman decoding table, inquire about, from Query Result, obtain hlen as the one-level index; Wherein, And remember that index 0 begins to identify successively from first byte of said Hafman decoding table; Said V is a critical value of cutting apart hcod, each hcod in the appendix original Huffman code table B.7 of ISO/IEC11172-3 agreement is divided into 2 parts, if hlen is greater than V; Then first's length of hcod is V; Second portion length is leftlen, and promptly hlen deducts the value of V, if hlen is smaller or equal to V; Then first's length of hcod is hlen, and second portion length is 0; Said Hafman decoding table adopts 16 and 8 to mix storage; Each table is divided into two storage areas, and a V power value of 2 is stored in zone one altogether, and each is worth with 16 storages; The zone two length tblbytes of storage list altogether deducts the difference value that 2 V adds 1 power, and each is worth with 8 storages;
Judge module is used to judge whether the value of inquiring about the hlen that obtains is zeros, and said zeros representes 0;
Second decoder module is used for when judge module is judged hlen not for zeros, then from the Query Result of second enquiry module, can obtaining x, y and hlen;
The 3rd acquisition module; Be used for when judge module is judged hlen and is zeros; Then obtain said Hafman decoding table section two start address byte offset offset and secondary index district read length l eftlenmax; Said leftlenmax be mutually on the same group in the maximal value of leftlen, said phase refers to the set when the hlen row that all identical hcod of V position belong to before the hcod during greater than V on the same group;
The query module is used for the leftlenmax and the offset that obtain according to the 3rd acquisition module, reads leftlenmax position data to be decoded and in zone two, inquires about according to offset as secondary index, obtains Query Result;
The 3rd decoder module is used for decoding x according to the Query Result of query module, y and hlen, and the value of said hlen equals the value that leftlen adds V.
CN2010106073243A 2010-12-27 2010-12-27 Audio frequency decoding method and device Expired - Fee Related CN102136270B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106073243A CN102136270B (en) 2010-12-27 2010-12-27 Audio frequency decoding method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106073243A CN102136270B (en) 2010-12-27 2010-12-27 Audio frequency decoding method and device

Publications (2)

Publication Number Publication Date
CN102136270A CN102136270A (en) 2011-07-27
CN102136270B true CN102136270B (en) 2012-08-08

Family

ID=44296032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106073243A Expired - Fee Related CN102136270B (en) 2010-12-27 2010-12-27 Audio frequency decoding method and device

Country Status (1)

Country Link
CN (1) CN102136270B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253993B (en) * 2013-06-28 2018-01-12 炬芯(珠海)科技有限公司 A kind of multimedia data processing method, circuit and device
US9252807B2 (en) * 2013-10-21 2016-02-02 Globalfoundries Inc. Efficient one-pass cache-aware compression
CN104717499B (en) * 2015-03-31 2018-06-05 豪威科技(上海)有限公司 A kind of storage method of huffman table and the Hofmann decoding method for JPEG
CN108520763B (en) * 2018-04-13 2021-07-16 广州醇美电子有限公司 Data storage method, device, equipment and storage medium
CN109949819B (en) * 2019-03-14 2022-03-25 建荣半导体(深圳)有限公司 Method and device for saving program and data space of audio processing and electronic equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051846A (en) * 2007-05-09 2007-10-10 上海广电(集团)有限公司中央研究院 Quick Huffman decoding method based on context
CN101325418A (en) * 2008-08-05 2008-12-17 北京海尔集成电路设计有限公司 Haffman quick decoding method based on probability table look-up
CN101741392A (en) * 2008-11-27 2010-06-16 安凯(广州)软件技术有限公司 Huffman decoding method for fast resolving code length

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839005B1 (en) * 2003-11-07 2005-01-04 Broadcom Corporation Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels
KR100771401B1 (en) * 2005-08-01 2007-10-30 (주)펄서스 테크놀러지 Computing circuits and method for running an mpeg-2 aac or mpeg-4 aac audio decoding algorithm on programmable processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051846A (en) * 2007-05-09 2007-10-10 上海广电(集团)有限公司中央研究院 Quick Huffman decoding method based on context
CN101325418A (en) * 2008-08-05 2008-12-17 北京海尔集成电路设计有限公司 Haffman quick decoding method based on probability table look-up
CN101741392A (en) * 2008-11-27 2010-06-16 安凯(广州)软件技术有限公司 Huffman decoding method for fast resolving code length

Also Published As

Publication number Publication date
CN102136270A (en) 2011-07-27

Similar Documents

Publication Publication Date Title
CN102136270B (en) Audio frequency decoding method and device
CN103067022B (en) A kind of integer data lossless compression method, decompression method and device
CN102122960B (en) Multi-character combination lossless data compression method for binary data
CA2940382C (en) Method and apparatus for pyramid vector quantization indexing and de-indexing of audio/video sample vectors
GB2523348A (en) Encoder, decoder and method
US20120130965A1 (en) Data compression method
CN101751440A (en) Data compression/decompression method and device thereof
CN104125475B (en) Multi-dimensional quantum data compressing and uncompressing method and apparatus
CN113852379A (en) Data encoding method, system, equipment and computer readable storage medium
JP6309621B2 (en) System and method for saving power consumption in a memory system
US7880647B1 (en) Huffman decoding method
CN105337617B (en) A kind of FSN files high-efficiency compression method
CN100568284C (en) Computer graphics data coding apparatus, decoding device, Code And Decode method
CN1925331B (en) Devices and methods for data compression and decompression
KR101030726B1 (en) Memory efficient multimedia huffman decoding method and apparatus for adapting huffman table based on symbol from probability table
CN103210590A (en) Compression method and apparatus
CN112885364B (en) Audio encoding method and decoding method, audio encoding device and decoding device
CN104682966A (en) Non-destructive compressing method for list data
EP2883326A1 (en) Short string compression
CN107026652B (en) Partition-based positive integer sequence compression method
CN113364466A (en) Data processing system
CN102547267B (en) Video data decoding method and system
US7773003B1 (en) Huffman search algorithm for AAC decoder
CN101626242B (en) Improved Huffman decoding method and device
CN103517022A (en) Image data compression and decompression method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120808

Termination date: 20171227

CF01 Termination of patent right due to non-payment of annual fee