有三種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
沒有留言:
張貼留言