2009年5月6日 星期三

JPEG library study

有三種DCT
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */

compress_data compress raw YCbCr block into data
compress_data call forward_DCT
forward_DCT 會 call _jpeg_fdct_islow (在jfdctint.c裡)

_jpeg_fdct_islow 單純地做DCT



JPEG Encode 順序 4:2:2 YCbCr

0 -- 1 4 6 8Lines
2 -- 3 5 7 8Lines

Y Cb Cr

之後再往右前進 Y( 16, 0 ) Cb( 8, 0 ) Cr( 8, 0 )
每個"大"block 16x16


For Full HD 1920x1080 YCbCr 4:2:2

encode_one_block() total MCU 120x68=8160 8160x8 = 65280 calls



沒有留言: