⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tables.asm

📁 这是一个JPEG解码器,里面使用了MMX,SSE等汇编指令集
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                real4 0.1469844502, -0.3448742240e-1, -0.1733799806, -0.9821186975e-1
                real4 0.1759254671, 0.1691647501, 0.1559031266, 0.1366502334
                real4 0.1691647501, 0.1121459482, 0.1732714604e-1, -0.8333195722e-1
                real4 0.1559031266, 0.1732714604e-1, -0.1366502334, -0.1691647501
                real4 0.1366502334, -0.8333195722e-1, -0.1691647501, 0.1732714604e-1
                real4 0.1250000000, 0.1250000000, 0.1250000000, 0.1250000000
                real4 -0.3448742240e-1, -0.9821186975e-1, -0.1469844502, -0.1733799806
                real4 -0.1633203706, -0.6764951252e-1, 0.6764951252e-1, 0.1633203706
                real4 0.9821186975e-1, 0.1733799806, 0.3448742240e-1, -0.1469844502
                real4 0.1121459482, 0.8333195722e-1, 0.5131556585e-1, 0.1732714604e-1
                real4 -0.1559031266, -0.1759254671, -0.1366502334, -0.5131556585e-1
                real4 -0.5131556585e-1, 0.1121459482, 0.1759254671, 0.8333195722e-1
                real4 0.1759254671, 0.5131556585e-1, -0.1559031266, -0.1121459482

;// rows 1,15
;// w = (cos(Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_1F    real4 0.1759254671, 0.1759254671, 0.1759254671, 0.1759254671
                real4 0.2440156328, 0.2068664647, 0.1382237526, 0.4853772720e-1
                real4 0.2298577000, 0.9521017680e-1, -0.9521017680e-1, -0.2298577000
                real4 0.2068664647, -0.4853772720e-1, -0.2440156328, -0.1382237526
                real4 0.2475981601, 0.2380831016, 0.2194186431, 0.1923220492
                real4 0.2380831016, 0.1578346268, 0.2438629010e-1, -0.1172817081
                real4 0.2194186431, 0.2438629010e-1, -0.1923220492, -0.2380831016
                real4 0.1923220492, -0.1172817081, -0.2380831016, 0.2438629010e-1
                real4 0.1759254671, 0.1759254671, 0.1759254671, 0.1759254671
                real4 -0.4853772720e-1, -0.1382237526, -0.2068664647, -0.2440156328
                real4 -0.2298577000, -0.9521017680e-1, 0.9521017680e-1, 0.2298577000
                real4 0.1382237526, 0.2440156328, 0.4853772720e-1, -0.2068664647
                real4 0.1578346268, 0.1172817081, 0.7222171918e-1, 0.2438629010e-1
                real4 -0.2194186431, -0.2475981601, -0.1923220492, -0.7222171918e-1
                real4 -0.7222171918e-1, 0.1578346268, 0.2475981601, 0.1172817081
                real4 0.2475981601, 0.7222171918e-1, -0.2194186431, -0.1578346268 

;// rows 2,14
;// w = (cos(2Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_2E    real4 0.1733799806, 0.1733799806, 0.1733799806, 0.1733799806
                real4 0.2404849416, 0.2038732892, 0.1362237767, 0.4783542905e-1
                real4 0.2265318616, 0.9383256940e-1, -0.9383256940e-1, -0.2265318616
                real4 0.2038732892, -0.4783542905e-1, -0.2404849416, -0.1362237767
                real4 0.2440156328, 0.2346382489, 0.2162438486, 0.1895393186
                real4 0.2346382489, 0.1555508988, 0.2403344196e-1, -0.1155847451
                real4 0.2162438486, 0.2403344196e-1, -0.1895393186, -0.2346382489
                real4 0.1895393186, -0.1155847451, -0.2346382489, 0.2403344196e-1
                real4 0.1733799806, 0.1733799806, 0.1733799806, 0.1733799806
                real4 -0.4783542905e-1, -0.1362237767, -0.2038732892, -0.2404849416
                real4 -0.2265318616, -0.9383256940e-1, 0.9383256940e-1, 0.2265318616
                real4 0.1362237767, 0.2404849416, 0.4783542905e-1, -0.2038732892
                real4 0.1555508988, 0.1155847451, 0.7117673452e-1, 0.2403344196e-1
                real4 -0.2162438486, -0.2440156328, -0.1895393186, -0.7117673452e-1
                real4 -0.7117673452e-1, 0.1555508988, 0.2440156328, 0.1155847451
                real4 0.2440156328, 0.7117673452e-1, -0.2162438486, -0.1555508988

;// rows 3,13
;// w = (cos(3Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_3D    real4 0.1691647501, 0.1691647501, 0.1691647501, 0.1691647501
                real4 0.2346382489, 0.1989167025, 0.1329118913, 0.4667244955e-1
                real4 0.2210243975, 0.9155130310e-1, -0.9155130310e-1, -0.2210243975
                real4 0.1989167025, -0.4667244955e-1, -0.2346382489, -0.1329118913
                real4 0.2380831016, 0.2289337015, 0.2109865077, 0.1849312207
                real4 0.2289337015, 0.1517691306, 0.2344913864e-1, -0.1127746378
                real4 0.2109865077, 0.2344913864e-1, -0.1849312207, -0.2289337015
                real4 0.1849312207, -0.1127746378, -0.2289337015, 0.2344913864e-1
                real4 0.1691647501, 0.1691647501, 0.1691647501, 0.1691647501
                real4 -0.4667244955e-1, -0.1329118913, -0.1989167025, -0.2346382489
                real4 -0.2210243975, -0.9155130310e-1, 0.9155130310e-1, 0.2210243975
                real4 0.1329118913, 0.2346382489, 0.4667244955e-1, -0.1989167025
                real4 0.1517691306, 0.1127746378, 0.6944627902e-1, 0.2344913864e-1
                real4 -0.2109865077, -0.2380831016, -0.1849312207, -0.6944627902e-1
                real4 -0.6944627902e-1, 0.1517691306, 0.2380831016, 0.1127746378
                real4 0.2380831016, 0.6944627902e-1, -0.2109865077, -0.1517691306

;// rows 4,12
;// w = (cos(4Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_4C    real4 0.1633203706, 0.1633203706, 0.1633203706, 0.1633203706
                real4 0.2265318616, 0.1920444392, 0.1283199918, 0.4505998888e-1
                real4 0.2133883476, 0.8838834768e-1, -0.8838834768e-1, -0.2133883476
                real4 0.1920444392, -0.4505998888e-1, -0.2265318616, -0.1283199918
                real4 0.2298577000, 0.2210243975, 0.2036972514, 0.1785421340
                real4 0.2210243975, 0.1465257427, 0.2263900730e-1, -0.1088784491
                real4 0.2036972514, 0.2263900730e-1, -0.1785421340, -0.2210243975
                real4 0.1785421340, -0.1088784491, -0.2210243975, 0.2263900730e-1
                real4 0.1633203706, 0.1633203706, 0.1633203706, 0.1633203706
                real4 -0.4505998888e-1, -0.1283199918, -0.1920444392, -0.2265318616
                real4 -0.2133883476, -0.8838834768e-1, 0.8838834768e-1, 0.2133883476
                real4 0.1283199918, 0.2265318616, 0.4505998888e-1, -0.1920444392
                real4 0.1465257427, 0.1088784491, 0.6704701788e-1, 0.2263900730e-1
                real4 -0.2036972514, -0.2298577000, -0.1785421340, -0.6704701788e-1
                real4 -0.6704701788e-1, 0.1465257427, 0.2298577000, 0.1088784491
                real4 0.2298577000, 0.6704701788e-1, -0.2036972514, -0.1465257427

;// rows 5,11
;// w = (cos(5Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_5B    real4 0.1559031266, 0.1559031266, 0.1559031266, 0.1559031266
                real4 0.2162438486, 0.1833226829, 0.1224923006, 0.4301357585e-1
                real4 0.2036972514, 0.8437416415e-1, -0.8437416415e-1, -0.2036972514
                real4 0.1833226829, -0.4301357585e-1, -0.2162438486, -0.1224923006
                real4 0.2194186431, 0.2109865077, 0.1944462791, 0.1704335891
                real4 0.2109865077, 0.1398712318, 0.2161084994e-1, -0.1039337014
                real4 0.1944462791, 0.2161084994e-1, -0.1704335891, -0.2109865077
                real4 0.1704335891, -0.1039337014, -0.2109865077, 0.2161084994e-1
                real4 0.1559031266, 0.1559031266, 0.1559031266, 0.1559031266
                real4 -0.4301357585e-1, -0.1224923006, -0.1833226829, -0.2162438486
                real4 -0.2036972514, -0.8437416415e-1, 0.8437416415e-1, 0.2036972514
                real4 0.1224923006, 0.2162438486, 0.4301357585e-1, -0.1833226829
                real4 0.1398712318, 0.1039337014, 0.6400205730e-1, 0.2161084994e-1
                real4 -0.1944462791, -0.2194186431, -0.1704335891, -0.6400205730e-1
                real4 -0.6400205730e-1, 0.1398712318, 0.2194186431, 0.1039337014
                real4 0.2194186431, 0.6400205730e-1, -0.1944462791, -0.1398712318

;// rows 6,10
;// w = (cos(6Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_6A    real4 0.1469844502, 0.1469844502, 0.1469844502, 0.1469844502
                real4 0.2038732892, 0.1728354290, 0.1154849416, 0.4055291860e-1
                real4 0.1920444392, 0.7954741132e-1, -0.7954741132e-1, -0.1920444392
                real4 0.1728354290, -0.4055291860e-1, -0.2038732892, -0.1154849416
                real4 0.2068664647, 0.1989167025, 0.1833226829, 0.1606836755
                real4 0.1989167025, 0.1318696845, 0.2037456829e-1, -0.9798801542e-1
                real4 0.1833226829, 0.2037456829e-1, -0.1606836755, -0.1989167025
                real4 0.1606836755, -0.9798801542e-1, -0.1989167025, 0.2037456829e-1
                real4 0.1469844502, 0.1469844502, 0.1469844502, 0.1469844502
                real4 -0.4055291860e-1, -0.1154849416, -0.1728354290, -0.2038732892
                real4 -0.1920444392, -0.7954741132e-1, 0.7954741132e-1, 0.1920444392
                real4 0.1154849416, 0.2038732892, 0.4055291860e-1, -0.1728354290
                real4 0.1318696845, 0.9798801542e-1, 0.6034072192e-1, 0.2037456829e-1
                real4 -0.1833226829, -0.2068664647, -0.1606836755, -0.6034072192e-1
                real4 -0.6034072192e-1, 0.1318696845, 0.2068664647, 0.9798801542e-1
                real4 0.2068664647, 0.6034072192e-1, -0.1833226829, -0.1318696845

;// rows 7,9
;// w = (cos(7Pi/32)/8)*transpose(M16)*transpose(P16)
TBL_16x16_79    real4 0.1366502334, 0.1366502334, 0.1366502334, 0.1366502334
                real4 0.1895393186, 0.1606836755, 0.1073653994, 0.3770171455e-1
                real4 0.1785421340, 0.7395457340e-1, -0.7395457340e-1, -0.1785421340
                real4 0.1606836755, -0.3770171455e-1, -0.1895393186, -0.1073653994
                real4 0.1923220492, 0.1849312207, 0.1704335891, 0.1493862902
                real4 0.1849312207, 0.1225981600, 0.1894206840e-1, -0.9109865125e-1
                real4 0.1704335891, 0.1894206840e-1, -0.1493862902, -0.1849312207
                real4 0.1493862902, -0.9109865125e-1, -0.1849312207, 0.1894206840e-1
                real4 0.1366502334, 0.1366502334, 0.1366502334, 0.1366502334
                real4 -0.3770171455e-1, -0.1073653994, -0.1606836755, -0.1895393186
                real4 -0.1785421340, -0.7395457340e-1, 0.7395457340e-1, 0.1785421340
                real4 0.1073653994, 0.1895393186, 0.3770171455e-1, -0.1606836755
                real4 0.1225981600, 0.9109865125e-1, 0.5609827240e-1, 0.1894206840e-1
                real4 -0.1704335891, -0.1923220492, -0.1493862902, -0.5609827240e-1
                real4 -0.5609827240e-1, 0.1225981600, 0.1923220492, 0.9109865125e-1
                real4 0.1923220492, 0.5609827240e-1, -0.1704335891, -0.1225981600

;// RGB conversion

;// conversion table indexed by number of components in the frame (Nf > 0)
TBL_RGBConv_SSE2  dword RGB_GrayConv_SSE2, 0, RGB_YCbCrConv_SSE2
TBL_RGBConv_SSE   dword RGB_GrayConv_SSE, 0, RGB_YCbCrConv_SSE

;// array of conversion table indexed by cpu type
TBL_RGBConv dword TBL_RGBConv_SSE, TBL_RGBConv_SSE2, TBL_RGBConv_SSE2

;// tbl[i] = 8*(Vmax/V) for idct type i
TBL_C0 byte 8*2, 8*1, 8*2, 8*1
;// tbl[i] = ROWSIZE*(Hmax/H) for idct type i
TBL_C1 byte ROWSIZE*1, ROWSIZE*2, ROWSIZE*2, ROWSIZE*1

ALIGN 16
TBL_MultCB  real4 1.772, -0.34414, 0.0, 0.0
TBL_MultCR  real4 0.0, -0.71414, 1.402, 0.0

;// donkey's trick to display constants at compile time
ECHO  --------------------------------------------------
siz   textequ %($ - data_start)
ssiz  textequ %(sizeof(DECODER))
tsiz  textequ %siz + ssiz
pag   textequ %siz/4096 + 1
lef   textequ %4096*pag - siz
spag  textequ %ssiz/4096 + 1
slef  textequ %4096*spag - ssiz
tpag  textequ %pag+spag
unus  textequ %lef + slef
% ECHO DataSize   = siz (pag page(s), lef left)
% ECHO StructSize = ssiz (spag page(s), slef left)
% ECHO TotalSize  = tsiz (tpag page(s), unus unused)
ECHO  --------------------------------------------------

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -