MCPcopy Create free account
hub / github.com/TruthHun/BookStack / fDCTQuant

Function fDCTQuant

static/webuploader/webuploader.fis.js:5796–5927  ·  view source on GitHub ↗
(data, fdtbl)

Source from the content-addressed store, hash-verified

5794
5795 // DCT & quantization core
5796 function fDCTQuant(data, fdtbl)
5797 {
5798 var d0, d1, d2, d3, d4, d5, d6, d7;
5799 /* Pass 1: process rows. */
5800 var dataOff=0;
5801 var i;
5802 var I8 = 8;
5803 var I64 = 64;
5804 for (i=0; i<I8; ++i)
5805 {
5806 d0 = data[dataOff];
5807 d1 = data[dataOff+1];
5808 d2 = data[dataOff+2];
5809 d3 = data[dataOff+3];
5810 d4 = data[dataOff+4];
5811 d5 = data[dataOff+5];
5812 d6 = data[dataOff+6];
5813 d7 = data[dataOff+7];
5814
5815 var tmp0 = d0 + d7;
5816 var tmp7 = d0 - d7;
5817 var tmp1 = d1 + d6;
5818 var tmp6 = d1 - d6;
5819 var tmp2 = d2 + d5;
5820 var tmp5 = d2 - d5;
5821 var tmp3 = d3 + d4;
5822 var tmp4 = d3 - d4;
5823
5824 /* Even part */
5825 var tmp10 = tmp0 + tmp3; /* phase 2 */
5826 var tmp13 = tmp0 - tmp3;
5827 var tmp11 = tmp1 + tmp2;
5828 var tmp12 = tmp1 - tmp2;
5829
5830 data[dataOff] = tmp10 + tmp11; /* phase 3 */
5831 data[dataOff+4] = tmp10 - tmp11;
5832
5833 var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
5834 data[dataOff+2] = tmp13 + z1; /* phase 5 */
5835 data[dataOff+6] = tmp13 - z1;
5836
5837 /* Odd part */
5838 tmp10 = tmp4 + tmp5; /* phase 2 */
5839 tmp11 = tmp5 + tmp6;
5840 tmp12 = tmp6 + tmp7;
5841
5842 /* The rotator is modified from fig 4-8 to avoid extra negations. */
5843 var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
5844 var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
5845 var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
5846 var z3 = tmp11 * 0.707106781; /* c4 */
5847
5848 var z11 = tmp7 + z3; /* phase 5 */
5849 var z13 = tmp7 - z3;
5850
5851 data[dataOff+5] = z13 + z2; /* phase 6 */
5852 data[dataOff+3] = z13 - z2;
5853 data[dataOff+1] = z11 + z4;

Callers 1

processDUFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected