LCOV - code coverage report
Current view: top level - third_party/aom/av1/encoder - hybrid_fwd_txfm.c (source / functions) Hit Total Coverage
Test: output.info Lines: 0 153 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 22 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
       3             :  *
       4             :  * This source code is subject to the terms of the BSD 2 Clause License and
       5             :  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
       6             :  * was not distributed with this source code in the LICENSE file, you can
       7             :  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
       8             :  * Media Patent License 1.0 was not distributed with this source code in the
       9             :  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
      10             :  */
      11             : 
      12             : #include "./av1_rtcd.h"
      13             : #include "./aom_config.h"
      14             : #include "./aom_dsp_rtcd.h"
      15             : 
      16             : #include "av1/common/idct.h"
      17             : #include "av1/encoder/hybrid_fwd_txfm.h"
      18             : 
      19             : #if CONFIG_CHROMA_2X2
      20             : static void fwd_txfm_2x2(const int16_t *src_diff, tran_low_t *coeff,
      21             :                          int diff_stride, TX_TYPE tx_type, int lossless) {
      22             :   tran_high_t a1 = src_diff[0];
      23             :   tran_high_t b1 = src_diff[1];
      24             :   tran_high_t c1 = src_diff[diff_stride];
      25             :   tran_high_t d1 = src_diff[1 + diff_stride];
      26             : 
      27             :   tran_high_t a2 = a1 + c1;
      28             :   tran_high_t b2 = b1 + d1;
      29             :   tran_high_t c2 = a1 - c1;
      30             :   tran_high_t d2 = b1 - d1;
      31             : 
      32             :   a1 = a2 + b2;
      33             :   b1 = a2 - b2;
      34             :   c1 = c2 + d2;
      35             :   d1 = c2 - d2;
      36             : 
      37             :   coeff[0] = (tran_low_t)(4 * a1);
      38             :   coeff[1] = (tran_low_t)(4 * b1);
      39             :   coeff[2] = (tran_low_t)(4 * c1);
      40             :   coeff[3] = (tran_low_t)(4 * d1);
      41             : 
      42             :   (void)tx_type;
      43             :   (void)lossless;
      44             : }
      45             : #endif
      46             : 
      47           0 : static void fwd_txfm_4x4(const int16_t *src_diff, tran_low_t *coeff,
      48             :                          int diff_stride, TX_TYPE tx_type, int lossless) {
      49           0 :   if (lossless) {
      50           0 :     assert(tx_type == DCT_DCT);
      51           0 :     av1_fwht4x4(src_diff, coeff, diff_stride);
      52           0 :     return;
      53             :   }
      54             : 
      55           0 :   av1_fht4x4(src_diff, coeff, diff_stride, tx_type);
      56             : }
      57             : 
      58           0 : static void fwd_txfm_4x8(const int16_t *src_diff, tran_low_t *coeff,
      59             :                          int diff_stride, TX_TYPE tx_type,
      60             :                          FWD_TXFM_OPT fwd_txfm_opt) {
      61             :   (void)fwd_txfm_opt;
      62           0 :   av1_fht4x8(src_diff, coeff, diff_stride, tx_type);
      63           0 : }
      64             : 
      65           0 : static void fwd_txfm_8x4(const int16_t *src_diff, tran_low_t *coeff,
      66             :                          int diff_stride, TX_TYPE tx_type,
      67             :                          FWD_TXFM_OPT fwd_txfm_opt) {
      68             :   (void)fwd_txfm_opt;
      69           0 :   av1_fht8x4(src_diff, coeff, diff_stride, tx_type);
      70           0 : }
      71             : 
      72           0 : static void fwd_txfm_8x16(const int16_t *src_diff, tran_low_t *coeff,
      73             :                           int diff_stride, TX_TYPE tx_type,
      74             :                           FWD_TXFM_OPT fwd_txfm_opt) {
      75             :   (void)fwd_txfm_opt;
      76           0 :   av1_fht8x16(src_diff, coeff, diff_stride, tx_type);
      77           0 : }
      78             : 
      79           0 : static void fwd_txfm_16x8(const int16_t *src_diff, tran_low_t *coeff,
      80             :                           int diff_stride, TX_TYPE tx_type,
      81             :                           FWD_TXFM_OPT fwd_txfm_opt) {
      82             :   (void)fwd_txfm_opt;
      83           0 :   av1_fht16x8(src_diff, coeff, diff_stride, tx_type);
      84           0 : }
      85             : 
      86           0 : static void fwd_txfm_16x32(const int16_t *src_diff, tran_low_t *coeff,
      87             :                            int diff_stride, TX_TYPE tx_type,
      88             :                            FWD_TXFM_OPT fwd_txfm_opt) {
      89             :   (void)fwd_txfm_opt;
      90           0 :   av1_fht16x32(src_diff, coeff, diff_stride, tx_type);
      91           0 : }
      92             : 
      93           0 : static void fwd_txfm_32x16(const int16_t *src_diff, tran_low_t *coeff,
      94             :                            int diff_stride, TX_TYPE tx_type,
      95             :                            FWD_TXFM_OPT fwd_txfm_opt) {
      96             :   (void)fwd_txfm_opt;
      97           0 :   av1_fht32x16(src_diff, coeff, diff_stride, tx_type);
      98           0 : }
      99             : 
     100           0 : static void fwd_txfm_8x8(const int16_t *src_diff, tran_low_t *coeff,
     101             :                          int diff_stride, TX_TYPE tx_type,
     102             :                          FWD_TXFM_OPT fwd_txfm_opt) {
     103             :   (void)fwd_txfm_opt;
     104           0 :   av1_fht8x8(src_diff, coeff, diff_stride, tx_type);
     105           0 : }
     106             : 
     107           0 : static void fwd_txfm_16x16(const int16_t *src_diff, tran_low_t *coeff,
     108             :                            int diff_stride, TX_TYPE tx_type,
     109             :                            FWD_TXFM_OPT fwd_txfm_opt) {
     110             :   (void)fwd_txfm_opt;
     111           0 :   av1_fht16x16(src_diff, coeff, diff_stride, tx_type);
     112           0 : }
     113             : 
     114           0 : static void fwd_txfm_32x32(const int16_t *src_diff, tran_low_t *coeff,
     115             :                            int diff_stride, TX_TYPE tx_type,
     116             :                            FWD_TXFM_OPT fwd_txfm_opt) {
     117             :   (void)fwd_txfm_opt;
     118           0 :   av1_fht32x32(src_diff, coeff, diff_stride, tx_type);
     119           0 : }
     120             : 
     121             : #if CONFIG_TX64X64
     122             : static void fwd_txfm_64x64(const int16_t *src_diff, tran_low_t *coeff,
     123             :                            int diff_stride, TX_TYPE tx_type,
     124             :                            FWD_TXFM_OPT fwd_txfm_opt) {
     125             :   (void)fwd_txfm_opt;
     126             : #if CONFIG_EXT_TX
     127             :   if (tx_type == IDTX)
     128             :     av1_fwd_idtx_c(src_diff, coeff, diff_stride, 64, tx_type);
     129             :   else
     130             : #endif
     131             :     av1_fht64x64(src_diff, coeff, diff_stride, tx_type);
     132             : }
     133             : #endif  // CONFIG_TX64X64
     134             : 
     135             : #if CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
     136             : static void fwd_txfm_16x4(const int16_t *src_diff, tran_low_t *coeff,
     137             :                           int diff_stride, TX_TYPE tx_type,
     138             :                           FWD_TXFM_OPT fwd_txfm_opt) {
     139             :   (void)fwd_txfm_opt;
     140             :   av1_fht16x4(src_diff, coeff, diff_stride, tx_type);
     141             : }
     142             : 
     143             : static void fwd_txfm_4x16(const int16_t *src_diff, tran_low_t *coeff,
     144             :                           int diff_stride, TX_TYPE tx_type,
     145             :                           FWD_TXFM_OPT fwd_txfm_opt) {
     146             :   (void)fwd_txfm_opt;
     147             :   av1_fht4x16(src_diff, coeff, diff_stride, tx_type);
     148             : }
     149             : 
     150             : static void fwd_txfm_32x8(const int16_t *src_diff, tran_low_t *coeff,
     151             :                           int diff_stride, TX_TYPE tx_type,
     152             :                           FWD_TXFM_OPT fwd_txfm_opt) {
     153             :   (void)fwd_txfm_opt;
     154             :   av1_fht32x8(src_diff, coeff, diff_stride, tx_type);
     155             : }
     156             : 
     157             : static void fwd_txfm_8x32(const int16_t *src_diff, tran_low_t *coeff,
     158             :                           int diff_stride, TX_TYPE tx_type,
     159             :                           FWD_TXFM_OPT fwd_txfm_opt) {
     160             :   (void)fwd_txfm_opt;
     161             :   av1_fht8x32(src_diff, coeff, diff_stride, tx_type);
     162             : }
     163             : #endif  // CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
     164             : 
     165             : #if CONFIG_HIGHBITDEPTH
     166             : #if CONFIG_CHROMA_2X2
     167             : static void highbd_fwd_txfm_2x2(const int16_t *src_diff, tran_low_t *coeff,
     168             :                                 int diff_stride, TX_TYPE tx_type, int lossless,
     169             :                                 const int bd) {
     170             :   tran_high_t a1 = src_diff[0];
     171             :   tran_high_t b1 = src_diff[1];
     172             :   tran_high_t c1 = src_diff[diff_stride];
     173             :   tran_high_t d1 = src_diff[1 + diff_stride];
     174             : 
     175             :   tran_high_t a2 = a1 + c1;
     176             :   tran_high_t b2 = b1 + d1;
     177             :   tran_high_t c2 = a1 - c1;
     178             :   tran_high_t d2 = b1 - d1;
     179             : 
     180             :   a1 = a2 + b2;
     181             :   b1 = a2 - b2;
     182             :   c1 = c2 + d2;
     183             :   d1 = c2 - d2;
     184             : 
     185             :   coeff[0] = (tran_low_t)(4 * a1);
     186             :   coeff[1] = (tran_low_t)(4 * b1);
     187             :   coeff[2] = (tran_low_t)(4 * c1);
     188             :   coeff[3] = (tran_low_t)(4 * d1);
     189             : 
     190             :   (void)tx_type;
     191             :   (void)lossless;
     192             :   (void)bd;
     193             : }
     194             : #endif
     195             : 
     196           0 : static void highbd_fwd_txfm_4x4(const int16_t *src_diff, tran_low_t *coeff,
     197             :                                 int diff_stride, TX_TYPE tx_type, int lossless,
     198             :                                 const int bd) {
     199           0 :   if (lossless) {
     200           0 :     assert(tx_type == DCT_DCT);
     201           0 :     av1_highbd_fwht4x4(src_diff, coeff, diff_stride);
     202           0 :     return;
     203             :   }
     204             : 
     205           0 :   switch (tx_type) {
     206             :     case DCT_DCT:
     207             :     case ADST_DCT:
     208             :     case DCT_ADST:
     209             :     case ADST_ADST:
     210           0 :       av1_fwd_txfm2d_4x4(src_diff, coeff, diff_stride, tx_type, bd);
     211           0 :       break;
     212             : #if CONFIG_EXT_TX
     213             :     case FLIPADST_DCT:
     214             :     case DCT_FLIPADST:
     215             :     case FLIPADST_FLIPADST:
     216             :     case ADST_FLIPADST:
     217             :     case FLIPADST_ADST:
     218           0 :       av1_fwd_txfm2d_4x4(src_diff, coeff, diff_stride, tx_type, bd);
     219           0 :       break;
     220             :     case V_DCT:
     221             :     case H_DCT:
     222             :     case V_ADST:
     223             :     case H_ADST:
     224             :     case V_FLIPADST:
     225             :     case H_FLIPADST:
     226           0 :       av1_highbd_fht4x4_c(src_diff, coeff, diff_stride, tx_type);
     227           0 :       break;
     228           0 :     case IDTX: av1_fwd_idtx_c(src_diff, coeff, diff_stride, 4, tx_type); break;
     229             : #endif  // CONFIG_EXT_TX
     230           0 :     default: assert(0);
     231             :   }
     232             : }
     233             : 
     234           0 : static void highbd_fwd_txfm_4x8(const int16_t *src_diff, tran_low_t *coeff,
     235             :                                 int diff_stride, TX_TYPE tx_type,
     236             :                                 FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     237             :   (void)fwd_txfm_opt;
     238             :   (void)bd;
     239           0 :   av1_highbd_fht4x8(src_diff, coeff, diff_stride, tx_type);
     240           0 : }
     241             : 
     242           0 : static void highbd_fwd_txfm_8x4(const int16_t *src_diff, tran_low_t *coeff,
     243             :                                 int diff_stride, TX_TYPE tx_type,
     244             :                                 FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     245             :   (void)fwd_txfm_opt;
     246             :   (void)bd;
     247           0 :   av1_highbd_fht8x4(src_diff, coeff, diff_stride, tx_type);
     248           0 : }
     249             : 
     250           0 : static void highbd_fwd_txfm_8x16(const int16_t *src_diff, tran_low_t *coeff,
     251             :                                  int diff_stride, TX_TYPE tx_type,
     252             :                                  FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     253             :   (void)fwd_txfm_opt;
     254             :   (void)bd;
     255           0 :   av1_highbd_fht8x16(src_diff, coeff, diff_stride, tx_type);
     256           0 : }
     257             : 
     258           0 : static void highbd_fwd_txfm_16x8(const int16_t *src_diff, tran_low_t *coeff,
     259             :                                  int diff_stride, TX_TYPE tx_type,
     260             :                                  FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     261             :   (void)fwd_txfm_opt;
     262             :   (void)bd;
     263           0 :   av1_highbd_fht16x8(src_diff, coeff, diff_stride, tx_type);
     264           0 : }
     265             : 
     266           0 : static void highbd_fwd_txfm_16x32(const int16_t *src_diff, tran_low_t *coeff,
     267             :                                   int diff_stride, TX_TYPE tx_type,
     268             :                                   FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     269             :   (void)fwd_txfm_opt;
     270             :   (void)bd;
     271           0 :   av1_highbd_fht16x32(src_diff, coeff, diff_stride, tx_type);
     272           0 : }
     273             : 
     274           0 : static void highbd_fwd_txfm_32x16(const int16_t *src_diff, tran_low_t *coeff,
     275             :                                   int diff_stride, TX_TYPE tx_type,
     276             :                                   FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     277             :   (void)fwd_txfm_opt;
     278             :   (void)bd;
     279           0 :   av1_highbd_fht32x16(src_diff, coeff, diff_stride, tx_type);
     280           0 : }
     281             : 
     282           0 : static void highbd_fwd_txfm_8x8(const int16_t *src_diff, tran_low_t *coeff,
     283             :                                 int diff_stride, TX_TYPE tx_type,
     284             :                                 FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     285             :   (void)fwd_txfm_opt;
     286           0 :   switch (tx_type) {
     287             :     case DCT_DCT:
     288             :     case ADST_DCT:
     289             :     case DCT_ADST:
     290             :     case ADST_ADST:
     291           0 :       av1_fwd_txfm2d_8x8(src_diff, coeff, diff_stride, tx_type, bd);
     292           0 :       break;
     293             : #if CONFIG_EXT_TX
     294             :     case FLIPADST_DCT:
     295             :     case DCT_FLIPADST:
     296             :     case FLIPADST_FLIPADST:
     297             :     case ADST_FLIPADST:
     298             :     case FLIPADST_ADST:
     299           0 :       av1_fwd_txfm2d_8x8(src_diff, coeff, diff_stride, tx_type, bd);
     300           0 :       break;
     301             :     case V_DCT:
     302             :     case H_DCT:
     303             :     case V_ADST:
     304             :     case H_ADST:
     305             :     case V_FLIPADST:
     306             :     case H_FLIPADST:
     307             :       // Use C version since DST exists only in C
     308           0 :       av1_highbd_fht8x8_c(src_diff, coeff, diff_stride, tx_type);
     309           0 :       break;
     310           0 :     case IDTX: av1_fwd_idtx_c(src_diff, coeff, diff_stride, 8, tx_type); break;
     311             : #endif  // CONFIG_EXT_TX
     312           0 :     default: assert(0);
     313             :   }
     314           0 : }
     315             : 
     316           0 : static void highbd_fwd_txfm_16x16(const int16_t *src_diff, tran_low_t *coeff,
     317             :                                   int diff_stride, TX_TYPE tx_type,
     318             :                                   FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     319             :   (void)fwd_txfm_opt;
     320           0 :   switch (tx_type) {
     321             :     case DCT_DCT:
     322             :     case ADST_DCT:
     323             :     case DCT_ADST:
     324             :     case ADST_ADST:
     325           0 :       av1_fwd_txfm2d_16x16(src_diff, coeff, diff_stride, tx_type, bd);
     326           0 :       break;
     327             : #if CONFIG_EXT_TX
     328             :     case FLIPADST_DCT:
     329             :     case DCT_FLIPADST:
     330             :     case FLIPADST_FLIPADST:
     331             :     case ADST_FLIPADST:
     332             :     case FLIPADST_ADST:
     333           0 :       av1_fwd_txfm2d_16x16(src_diff, coeff, diff_stride, tx_type, bd);
     334           0 :       break;
     335             :     case V_DCT:
     336             :     case H_DCT:
     337             :     case V_ADST:
     338             :     case H_ADST:
     339             :     case V_FLIPADST:
     340             :     case H_FLIPADST:
     341             :       // Use C version since DST exists only in C
     342           0 :       av1_highbd_fht16x16_c(src_diff, coeff, diff_stride, tx_type);
     343           0 :       break;
     344           0 :     case IDTX: av1_fwd_idtx_c(src_diff, coeff, diff_stride, 16, tx_type); break;
     345             : #endif  // CONFIG_EXT_TX
     346           0 :     default: assert(0);
     347             :   }
     348           0 : }
     349             : 
     350           0 : static void highbd_fwd_txfm_32x32(const int16_t *src_diff, tran_low_t *coeff,
     351             :                                   int diff_stride, TX_TYPE tx_type,
     352             :                                   FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     353             :   (void)fwd_txfm_opt;
     354           0 :   switch (tx_type) {
     355             :     case DCT_DCT:
     356           0 :       av1_fwd_txfm2d_32x32(src_diff, coeff, diff_stride, tx_type, bd);
     357           0 :       break;
     358             : #if CONFIG_EXT_TX
     359             :     case ADST_DCT:
     360             :     case DCT_ADST:
     361             :     case ADST_ADST:
     362             :     case FLIPADST_DCT:
     363             :     case DCT_FLIPADST:
     364             :     case FLIPADST_FLIPADST:
     365             :     case ADST_FLIPADST:
     366             :     case FLIPADST_ADST:
     367             :     case V_DCT:
     368             :     case H_DCT:
     369             :     case V_ADST:
     370             :     case H_ADST:
     371             :     case V_FLIPADST:
     372             :     case H_FLIPADST:
     373           0 :       av1_highbd_fht32x32_c(src_diff, coeff, diff_stride, tx_type);
     374           0 :       break;
     375           0 :     case IDTX: av1_fwd_idtx_c(src_diff, coeff, diff_stride, 32, tx_type); break;
     376             : #endif  // CONFIG_EXT_TX
     377           0 :     default: assert(0); break;
     378             :   }
     379           0 : }
     380             : 
     381             : #if CONFIG_TX64X64
     382             : static void highbd_fwd_txfm_64x64(const int16_t *src_diff, tran_low_t *coeff,
     383             :                                   int diff_stride, TX_TYPE tx_type,
     384             :                                   FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
     385             :   (void)fwd_txfm_opt;
     386             :   (void)bd;
     387             :   switch (tx_type) {
     388             :     case DCT_DCT:
     389             :       av1_highbd_fht64x64(src_diff, coeff, diff_stride, tx_type);
     390             :       break;
     391             : #if CONFIG_EXT_TX
     392             :     case ADST_DCT:
     393             :     case DCT_ADST:
     394             :     case ADST_ADST:
     395             :     case FLIPADST_DCT:
     396             :     case DCT_FLIPADST:
     397             :     case FLIPADST_FLIPADST:
     398             :     case ADST_FLIPADST:
     399             :     case FLIPADST_ADST:
     400             :     case V_DCT:
     401             :     case H_DCT:
     402             :     case V_ADST:
     403             :     case H_ADST:
     404             :     case V_FLIPADST:
     405             :     case H_FLIPADST:
     406             :       av1_highbd_fht64x64(src_diff, coeff, diff_stride, tx_type);
     407             :       break;
     408             :     case IDTX: av1_fwd_idtx_c(src_diff, coeff, diff_stride, 64, tx_type); break;
     409             : #endif  // CONFIG_EXT_TX
     410             :     default: assert(0); break;
     411             :   }
     412             : }
     413             : #endif  // CONFIG_TX64X64
     414             : #endif  // CONFIG_HIGHBITDEPTH
     415             : 
     416           0 : void av1_fwd_txfm(const int16_t *src_diff, tran_low_t *coeff, int diff_stride,
     417             :                   FWD_TXFM_PARAM *fwd_txfm_param) {
     418           0 :   const int fwd_txfm_opt = FWD_TXFM_OPT_NORMAL;
     419           0 :   const TX_TYPE tx_type = fwd_txfm_param->tx_type;
     420           0 :   const TX_SIZE tx_size = fwd_txfm_param->tx_size;
     421           0 :   const int lossless = fwd_txfm_param->lossless;
     422           0 :   switch (tx_size) {
     423             : #if CONFIG_TX64X64
     424             :     case TX_64X64:
     425             :       fwd_txfm_64x64(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     426             :       break;
     427             : #endif  // CONFIG_TX64X64
     428             :     case TX_32X32:
     429           0 :       fwd_txfm_32x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     430           0 :       break;
     431             :     case TX_16X16:
     432           0 :       fwd_txfm_16x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     433           0 :       break;
     434             :     case TX_8X8:
     435           0 :       fwd_txfm_8x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     436           0 :       break;
     437             :     case TX_4X8:
     438           0 :       fwd_txfm_4x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     439           0 :       break;
     440             :     case TX_8X4:
     441           0 :       fwd_txfm_8x4(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     442           0 :       break;
     443             :     case TX_8X16:
     444           0 :       fwd_txfm_8x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     445           0 :       break;
     446             :     case TX_16X8:
     447           0 :       fwd_txfm_16x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     448           0 :       break;
     449             :     case TX_16X32:
     450           0 :       fwd_txfm_16x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     451           0 :       break;
     452             :     case TX_32X16:
     453           0 :       fwd_txfm_32x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     454           0 :       break;
     455             :     case TX_4X4:
     456           0 :       fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type, lossless);
     457           0 :       break;
     458             : #if CONFIG_CHROMA_2X2
     459             :     case TX_2X2:
     460             :       fwd_txfm_2x2(src_diff, coeff, diff_stride, tx_type, lossless);
     461             :       break;
     462             : #endif
     463             : #if CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
     464             :     case TX_4X16:
     465             :       fwd_txfm_4x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     466             :       break;
     467             :     case TX_16X4:
     468             :       fwd_txfm_16x4(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     469             :       break;
     470             :     case TX_8X32:
     471             :       fwd_txfm_8x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     472             :       break;
     473             :     case TX_32X8:
     474             :       fwd_txfm_32x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt);
     475             :       break;
     476             : #endif  // CONFIG_EXT_TX && CONFIG_RECT_TX && CONFIG_RECT_TX_EXT
     477           0 :     default: assert(0); break;
     478             :   }
     479           0 : }
     480             : 
     481             : #if CONFIG_HIGHBITDEPTH
     482           0 : void av1_highbd_fwd_txfm(const int16_t *src_diff, tran_low_t *coeff,
     483             :                          int diff_stride, FWD_TXFM_PARAM *fwd_txfm_param) {
     484           0 :   const int fwd_txfm_opt = FWD_TXFM_OPT_NORMAL;
     485           0 :   const TX_TYPE tx_type = fwd_txfm_param->tx_type;
     486           0 :   const TX_SIZE tx_size = fwd_txfm_param->tx_size;
     487           0 :   const int lossless = fwd_txfm_param->lossless;
     488           0 :   const int bd = fwd_txfm_param->bd;
     489           0 :   switch (tx_size) {
     490             : #if CONFIG_TX64X64
     491             :     case TX_64X64:
     492             :       highbd_fwd_txfm_64x64(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     493             :                             bd);
     494             :       break;
     495             : #endif  // CONFIG_TX64X64
     496             :     case TX_32X32:
     497           0 :       highbd_fwd_txfm_32x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     498             :                             bd);
     499           0 :       break;
     500             :     case TX_16X16:
     501           0 :       highbd_fwd_txfm_16x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     502             :                             bd);
     503           0 :       break;
     504             :     case TX_8X8:
     505           0 :       highbd_fwd_txfm_8x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     506             :                           bd);
     507           0 :       break;
     508             :     case TX_4X8:
     509           0 :       highbd_fwd_txfm_4x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     510             :                           bd);
     511           0 :       break;
     512             :     case TX_8X4:
     513           0 :       highbd_fwd_txfm_8x4(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     514             :                           bd);
     515           0 :       break;
     516             :     case TX_8X16:
     517           0 :       highbd_fwd_txfm_8x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     518             :                            bd);
     519           0 :       break;
     520             :     case TX_16X8:
     521           0 :       highbd_fwd_txfm_16x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     522             :                            bd);
     523           0 :       break;
     524             :     case TX_16X32:
     525           0 :       highbd_fwd_txfm_16x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     526             :                             bd);
     527           0 :       break;
     528             :     case TX_32X16:
     529           0 :       highbd_fwd_txfm_32x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
     530             :                             bd);
     531           0 :       break;
     532             :     case TX_4X4:
     533           0 :       highbd_fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type, lossless, bd);
     534           0 :       break;
     535             : #if CONFIG_CHROMA_2X2
     536             :     case TX_2X2:
     537             :       highbd_fwd_txfm_2x2(src_diff, coeff, diff_stride, tx_type, lossless, bd);
     538             :       break;
     539             : #endif
     540           0 :     default: assert(0); break;
     541             :   }
     542           0 : }
     543             : #endif  // CONFIG_HIGHBITDEPTH

Generated by: LCOV version 1.13