videoeditorengine/avcedit/src/invtransform.cpp
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditorengine/avcedit/src/invtransform.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - Initial contribution
-*
-* Contributors:
-* Ixonos Plc
-*
-* Description:
-*
-*/
-
-
-#include "globals.h"
-#include "invtransform.h"
-
-
-#ifndef AVC_RECO_BLOCK_ASM
-
-/*
- *
- * itrIDCTdequant4x4:
- *
- * Parameters:
- *      src                   Source values
- *      dest                  Inverse transformed values
- *      dequantPtr            Dequant coefficients
- *      qp_per                qp/6
- *      isDc                  True if DC is separate
- *      dcValue               Possible DC value
- *
- * Function:
- *      Dequantize coefficients and compute approximate 4x4 inverse DCT.
- *
- * Returns:
- *      -
- */
-void itrIDCTdequant4x4(int src[4][4], int dest[4][4], const int *dequantPtr,
-                       int qp_per, int isDc, int dcValue)
-{
-  int tmp[4][4];
-  int A, B, C, D, E, F;
-  int i;
-  int deqc;
-
-  /*
-   *  a = A + B + C + (D>>1)
-   *  b = A + (B>>1) - C - D
-   *  c = A - (B>>1) - C + D
-   *  d = A - B + C - (D>>1)
-   *   =>
-   *  E = A + C
-   *  F = B +  (D>>1)
-   *  a = E + F
-   *  d = E - F
-   *  E = A - C
-   *  F = (B>>1) - D
-   *  b = E + F
-   *  c = E - F
-   */
-
-  A = dcValue;
-
-  for (i = 0; i < 4; i++) {
-    deqc = (*dequantPtr++) << qp_per;
-
-    if (!isDc)
-      A = src[i][0] * deqc;
-
-    C = src[i][2] * deqc;
-
-    deqc = (*dequantPtr++) << qp_per;
-
-    B = src[i][1] * deqc;
-    D = src[i][3] * deqc;
-
-    E = A +  C;
-    F = B + (D>>1);
-    tmp[i][0] = E + F;
-    tmp[i][3] = E - F;
-    E =  A     - C;
-    F = (B>>1) - D;
-    tmp[i][1] = E + F;
-    tmp[i][2] = E - F;
-
-    isDc = 0;
-  }
-
-  for (i = 0; i < 4; i++) {
-    E = tmp[0][i] +  tmp[2][i];
-    F = tmp[1][i] + (tmp[3][i]>>1);
-    dest[0][i] = E + F;
-    dest[3][i] = E - F;
-    E =  tmp[0][i]     - tmp[2][i];
-    F = (tmp[1][i]>>1) - tmp[3][i];
-    dest[1][i] = E + F;
-    dest[2][i] = E - F;
-  }
-}
-
-#endif
-
-
-/*
- *
- * itrIHadaDequant4x4:
- *
- * Parameters:
- *      src                   Source values
- *      dest                  Inverse transformed values
- *      deqc                  Dequantization coefficient
- *
- * Function:
- *      Compute 4x4 inverse Hadamard transform and dequantize coefficients.
- *
- * Returns:
- *      -
- *
- */
-void itrIHadaDequant4x4(int src[4][4], int dest[4][4], int deqc)
-{
-  int tmp[4][4];
-  int E;
-  int F;
-  int i;
-
-  for (i = 0; i < 4; i++) {
-    E = src[i][0] + src[i][2];
-    F = src[i][1] + src[i][3];
-    tmp[i][0] = E + F;
-    tmp[i][3] = E - F;
-    E = src[i][0] - src[i][2];
-    F = src[i][1] - src[i][3];
-    tmp[i][1] = E + F;
-    tmp[i][2] = E - F;
-  }
-
-  for (i = 0; i < 4; i++) {
-    E = tmp[0][i] + tmp[2][i];
-    F = tmp[1][i] + tmp[3][i];
-    dest[0][i] = ((E + F) * deqc + 2) >> 2;
-    dest[3][i] = ((E - F) * deqc + 2) >> 2;
-    E = tmp[0][i] - tmp[2][i];
-    F = tmp[1][i] - tmp[3][i];
-    dest[1][i] = ((E + F) * deqc + 2) >> 2;
-    dest[2][i] = ((E - F) * deqc + 2) >> 2;
-  }
-}
-
-
-/*
- *
- * itrIDCTdequant2x2:
- *
- * Parameters:
- *      src                   Source values
- *      dest                  Inverse transformed values
- *      deqc                  Dequantization coefficient
- *
- * Function:
- *      Compute 2x2 inverse DCT and dequantize coefficients.
- *
- * Returns:
- *      -
- *
- */
-void itrIDCTdequant2x2(int src[2][2], int dest[2][2], int deqc)
-{
-  int DDC00 = src[0][0];
-  int DDC10 = src[0][1];
-  int DDC01 = src[1][0];
-  int DDC11 = src[1][1];
-  int A, B;
-
-  /*
-   *  DDC(0,0) DDC(1,0)  =>  DC0 DC1
-   *  DDC(0,1) DDC(1,1)      DC2 DC3
-   *
-   *  DC0 = (DDC00+DDC10+DDC01+DDC11)
-   *  DC1 = (DDC00-DDC10+DDC01-DDC11)
-   *  DC2 = (DDC00+DDC10-DDC01-DDC11)
-   *  DC3 = (DDC00-DDC10-DDC01+DDC11)
-   */
-
-  A = DDC00 + DDC01;
-  B = DDC10 + DDC11;
-  dest[0][0] = ((A + B) * deqc) >> 1;
-  dest[0][1] = ((A - B) * deqc) >> 1;
-  A = DDC00 - DDC01;
-  B = DDC10 - DDC11;
-  dest[1][0] = ((A + B) * deqc) >> 1;
-  dest[1][1] = ((A - B) * deqc) >> 1;
-}