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

Function fDCTQuant

static/webuploader/webuploader.js:5821–5952  ·  view source on GitHub ↗
(data, fdtbl)

Source from the content-addressed store, hash-verified

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

Callers 1

processDUFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected