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

Function fDCTQuant

static/webuploader/webuploader.custom.js:5832–5963  ·  view source on GitHub ↗
(data, fdtbl)

Source from the content-addressed store, hash-verified

5830
5831 // DCT & quantization core
5832 function fDCTQuant(data, fdtbl)
5833 {
5834 var d0, d1, d2, d3, d4, d5, d6, d7;
5835 /* Pass 1: process rows. */
5836 var dataOff=0;
5837 var i;
5838 var I8 = 8;
5839 var I64 = 64;
5840 for (i=0; i<I8; ++i)
5841 {
5842 d0 = data[dataOff];
5843 d1 = data[dataOff+1];
5844 d2 = data[dataOff+2];
5845 d3 = data[dataOff+3];
5846 d4 = data[dataOff+4];
5847 d5 = data[dataOff+5];
5848 d6 = data[dataOff+6];
5849 d7 = data[dataOff+7];
5850
5851 var tmp0 = d0 + d7;
5852 var tmp7 = d0 - d7;
5853 var tmp1 = d1 + d6;
5854 var tmp6 = d1 - d6;
5855 var tmp2 = d2 + d5;
5856 var tmp5 = d2 - d5;
5857 var tmp3 = d3 + d4;
5858 var tmp4 = d3 - d4;
5859
5860 /* Even part */
5861 var tmp10 = tmp0 + tmp3; /* phase 2 */
5862 var tmp13 = tmp0 - tmp3;
5863 var tmp11 = tmp1 + tmp2;
5864 var tmp12 = tmp1 - tmp2;
5865
5866 data[dataOff] = tmp10 + tmp11; /* phase 3 */
5867 data[dataOff+4] = tmp10 - tmp11;
5868
5869 var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
5870 data[dataOff+2] = tmp13 + z1; /* phase 5 */
5871 data[dataOff+6] = tmp13 - z1;
5872
5873 /* Odd part */
5874 tmp10 = tmp4 + tmp5; /* phase 2 */
5875 tmp11 = tmp5 + tmp6;
5876 tmp12 = tmp6 + tmp7;
5877
5878 /* The rotator is modified from fig 4-8 to avoid extra negations. */
5879 var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
5880 var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
5881 var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
5882 var z3 = tmp11 * 0.707106781; /* c4 */
5883
5884 var z11 = tmp7 + z3; /* phase 5 */
5885 var z13 = tmp7 - z3;
5886
5887 data[dataOff+5] = z13 + z2; /* phase 6 */
5888 data[dataOff+3] = z13 - z2;
5889 data[dataOff+1] = z11 + z4;

Callers 1

processDUFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected