| Electronic Components Datasheet Search |
|
AN1482 Datasheet(PDF) 4 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
AN1482 Datasheet(HTML) 4 Page - STMicroelectronics |
|
4 / 8 page ![]() AN1482 - APPLICATION NOTE 4/8 2 - PROFILING OF THE CODE 2.1 - Wang IDCT This block has been taken directly from the Simple Profile implementation. Since inverse zig-zag/ alternate scan is already performed by the Huffman decoding/IQ block, there’s no need to unroll the first loop of IDCT, and the code size is significantly reduced. The module wang_idct.st1* is made by two functions, one for intra IDCT (that includes clipping and add 128) and one for non-intra IDCT. This module uses 32 bytes of read-only data memory for constants ( IDCT_const). The code size and performances are reported in Table 1. This algorithm can be replaced by the high performance Huang IDCT, whose ST120 implementation is now available. * For more information on the MPEG2 code implemented on ST120 please contact st100.marketing@st.com. 2.2 - Add_Prediction() This function is located in the module add_pred.st1. Its purpose is to compute the sum of two 8x8 blocks and clip the result in the range [0,255]. In fact, one of the two blocks is the predictor computed by temporal prediction and the other is the difference block read from bitstream. The result overwrites the predictor, and this highlights a global optimization that is very effective: Add_Prediction() is applied only to the decoded blocks that are non-null, based on the coded block pattern read from bitstream. The frame/field DCT coding is dealt with at this time: the Add_Prediction() routine can read the predictor both in frame or field mode, and the result is written in the same fashion. Table 2 shows the number of clock cycles needed for this function in both frame/field cases and its code size. 2.3 - Huffman Decoding/Inv Quant/Inverse Scan This is the function that takes from the input bitstream the Huffman variable length codes of the data coefficients for one 8x8 block and decodes them. Then, inverse quantization and reverse zig-zag/ alternate scan are applied. Another task performed by this function, is to clear the result block before starting decoding. This is needed since the decoding process affects only the non-zero coefficients. Four of these functions are needed to build a Main Profile decoder, that is MPEG-1 backward compatible. In particular, we need different functions for intra and non-intra blocks, since they use different Huffman tables. MPEG-1 backward compatibility requires to deal with a different kind of escape codes, whose peculiarity is the fact that they do not have a fixed length (there is a sort of "escape in escape" increasing the level of difficulty). The computational cost of the four functions cannot be given as standalone, since it depends on the number of symbols that are decoded. The only interesting figure is the number of cycles/symbol, that is the same for all the four functions (Table 3). Table 1 : Wang IDCT (code size and cycles) Function Code Size (Bytes) Cycles/8x8 Block Wang_idct() 1104 530 Wang_idct_inter() 996 469 Table 2 : Add prediction (code size and cycles) Function Code Size (Bytes) Cycles/8x8 Block Frame DCT Coding Cycles/8x8 Block Field DCT Coding Add_Prediction() 612 117 115 |
|
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |