tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

enc_enums.h (5758B)


      1 /*
      2 * Copyright (c) 2019, 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 #ifndef AOM_AV1_ENCODER_ENC_ENUMS_H_
     13 #define AOM_AV1_ENCODER_ENC_ENUMS_H_
     14 
     15 #include "aom_ports/mem.h"
     16 
     17 #ifdef __cplusplus
     18 extern "C" {
     19 #endif
     20 
     21 #define MAX_NUM_THREADS 64
     22 
     23 // This enumerator type needs to be kept aligned with the mode order in
     24 // const MODE_DEFINITION av1_mode_defs[MAX_MODES] used in the rd code.
     25 enum {
     26  THR_NEARESTMV,
     27  THR_NEARESTL2,
     28  THR_NEARESTL3,
     29  THR_NEARESTB,
     30  THR_NEARESTA2,
     31  THR_NEARESTA,
     32  THR_NEARESTG,
     33 
     34  THR_NEWMV,
     35  THR_NEWL2,
     36  THR_NEWL3,
     37  THR_NEWB,
     38  THR_NEWA2,
     39  THR_NEWA,
     40  THR_NEWG,
     41 
     42  THR_NEARMV,
     43  THR_NEARL2,
     44  THR_NEARL3,
     45  THR_NEARB,
     46  THR_NEARA2,
     47  THR_NEARA,
     48  THR_NEARG,
     49 
     50  THR_GLOBALMV,
     51  THR_GLOBALL2,
     52  THR_GLOBALL3,
     53  THR_GLOBALB,
     54  THR_GLOBALA2,
     55  THR_GLOBALA,
     56  THR_GLOBALG,
     57 
     58  THR_COMP_NEAREST_NEARESTLA,
     59  THR_COMP_NEAREST_NEARESTL2A,
     60  THR_COMP_NEAREST_NEARESTL3A,
     61  THR_COMP_NEAREST_NEARESTGA,
     62  THR_COMP_NEAREST_NEARESTLB,
     63  THR_COMP_NEAREST_NEARESTL2B,
     64  THR_COMP_NEAREST_NEARESTL3B,
     65  THR_COMP_NEAREST_NEARESTGB,
     66  THR_COMP_NEAREST_NEARESTLA2,
     67  THR_COMP_NEAREST_NEARESTL2A2,
     68  THR_COMP_NEAREST_NEARESTL3A2,
     69  THR_COMP_NEAREST_NEARESTGA2,
     70  THR_COMP_NEAREST_NEARESTLL2,
     71  THR_COMP_NEAREST_NEARESTLL3,
     72  THR_COMP_NEAREST_NEARESTLG,
     73  THR_COMP_NEAREST_NEARESTBA,
     74 
     75  THR_COMP_NEAR_NEARLB,
     76  THR_COMP_NEW_NEWLB,
     77  THR_COMP_NEW_NEARESTLB,
     78  THR_COMP_NEAREST_NEWLB,
     79  THR_COMP_NEW_NEARLB,
     80  THR_COMP_NEAR_NEWLB,
     81  THR_COMP_GLOBAL_GLOBALLB,
     82 
     83  THR_COMP_NEAR_NEARLA,
     84  THR_COMP_NEW_NEWLA,
     85  THR_COMP_NEW_NEARESTLA,
     86  THR_COMP_NEAREST_NEWLA,
     87  THR_COMP_NEW_NEARLA,
     88  THR_COMP_NEAR_NEWLA,
     89  THR_COMP_GLOBAL_GLOBALLA,
     90 
     91  THR_COMP_NEAR_NEARL2A,
     92  THR_COMP_NEW_NEWL2A,
     93  THR_COMP_NEW_NEARESTL2A,
     94  THR_COMP_NEAREST_NEWL2A,
     95  THR_COMP_NEW_NEARL2A,
     96  THR_COMP_NEAR_NEWL2A,
     97  THR_COMP_GLOBAL_GLOBALL2A,
     98 
     99  THR_COMP_NEAR_NEARL3A,
    100  THR_COMP_NEW_NEWL3A,
    101  THR_COMP_NEW_NEARESTL3A,
    102  THR_COMP_NEAREST_NEWL3A,
    103  THR_COMP_NEW_NEARL3A,
    104  THR_COMP_NEAR_NEWL3A,
    105  THR_COMP_GLOBAL_GLOBALL3A,
    106 
    107  THR_COMP_NEAR_NEARGA,
    108  THR_COMP_NEW_NEWGA,
    109  THR_COMP_NEW_NEARESTGA,
    110  THR_COMP_NEAREST_NEWGA,
    111  THR_COMP_NEW_NEARGA,
    112  THR_COMP_NEAR_NEWGA,
    113  THR_COMP_GLOBAL_GLOBALGA,
    114 
    115  THR_COMP_NEAR_NEARL2B,
    116  THR_COMP_NEW_NEWL2B,
    117  THR_COMP_NEW_NEARESTL2B,
    118  THR_COMP_NEAREST_NEWL2B,
    119  THR_COMP_NEW_NEARL2B,
    120  THR_COMP_NEAR_NEWL2B,
    121  THR_COMP_GLOBAL_GLOBALL2B,
    122 
    123  THR_COMP_NEAR_NEARL3B,
    124  THR_COMP_NEW_NEWL3B,
    125  THR_COMP_NEW_NEARESTL3B,
    126  THR_COMP_NEAREST_NEWL3B,
    127  THR_COMP_NEW_NEARL3B,
    128  THR_COMP_NEAR_NEWL3B,
    129  THR_COMP_GLOBAL_GLOBALL3B,
    130 
    131  THR_COMP_NEAR_NEARGB,
    132  THR_COMP_NEW_NEWGB,
    133  THR_COMP_NEW_NEARESTGB,
    134  THR_COMP_NEAREST_NEWGB,
    135  THR_COMP_NEW_NEARGB,
    136  THR_COMP_NEAR_NEWGB,
    137  THR_COMP_GLOBAL_GLOBALGB,
    138 
    139  THR_COMP_NEAR_NEARLA2,
    140  THR_COMP_NEW_NEWLA2,
    141  THR_COMP_NEW_NEARESTLA2,
    142  THR_COMP_NEAREST_NEWLA2,
    143  THR_COMP_NEW_NEARLA2,
    144  THR_COMP_NEAR_NEWLA2,
    145  THR_COMP_GLOBAL_GLOBALLA2,
    146 
    147  THR_COMP_NEAR_NEARL2A2,
    148  THR_COMP_NEW_NEWL2A2,
    149  THR_COMP_NEW_NEARESTL2A2,
    150  THR_COMP_NEAREST_NEWL2A2,
    151  THR_COMP_NEW_NEARL2A2,
    152  THR_COMP_NEAR_NEWL2A2,
    153  THR_COMP_GLOBAL_GLOBALL2A2,
    154 
    155  THR_COMP_NEAR_NEARL3A2,
    156  THR_COMP_NEW_NEWL3A2,
    157  THR_COMP_NEW_NEARESTL3A2,
    158  THR_COMP_NEAREST_NEWL3A2,
    159  THR_COMP_NEW_NEARL3A2,
    160  THR_COMP_NEAR_NEWL3A2,
    161  THR_COMP_GLOBAL_GLOBALL3A2,
    162 
    163  THR_COMP_NEAR_NEARGA2,
    164  THR_COMP_NEW_NEWGA2,
    165  THR_COMP_NEW_NEARESTGA2,
    166  THR_COMP_NEAREST_NEWGA2,
    167  THR_COMP_NEW_NEARGA2,
    168  THR_COMP_NEAR_NEWGA2,
    169  THR_COMP_GLOBAL_GLOBALGA2,
    170 
    171  THR_COMP_NEAR_NEARLL2,
    172  THR_COMP_NEW_NEWLL2,
    173  THR_COMP_NEW_NEARESTLL2,
    174  THR_COMP_NEAREST_NEWLL2,
    175  THR_COMP_NEW_NEARLL2,
    176  THR_COMP_NEAR_NEWLL2,
    177  THR_COMP_GLOBAL_GLOBALLL2,
    178 
    179  THR_COMP_NEAR_NEARLL3,
    180  THR_COMP_NEW_NEWLL3,
    181  THR_COMP_NEW_NEARESTLL3,
    182  THR_COMP_NEAREST_NEWLL3,
    183  THR_COMP_NEW_NEARLL3,
    184  THR_COMP_NEAR_NEWLL3,
    185  THR_COMP_GLOBAL_GLOBALLL3,
    186 
    187  THR_COMP_NEAR_NEARLG,
    188  THR_COMP_NEW_NEWLG,
    189  THR_COMP_NEW_NEARESTLG,
    190  THR_COMP_NEAREST_NEWLG,
    191  THR_COMP_NEW_NEARLG,
    192  THR_COMP_NEAR_NEWLG,
    193  THR_COMP_GLOBAL_GLOBALLG,
    194 
    195  THR_COMP_NEAR_NEARBA,
    196  THR_COMP_NEW_NEWBA,
    197  THR_COMP_NEW_NEARESTBA,
    198  THR_COMP_NEAREST_NEWBA,
    199  THR_COMP_NEW_NEARBA,
    200  THR_COMP_NEAR_NEWBA,
    201  THR_COMP_GLOBAL_GLOBALBA,
    202 
    203  THR_DC,
    204  THR_PAETH,
    205  THR_SMOOTH,
    206  THR_SMOOTH_V,
    207  THR_SMOOTH_H,
    208  THR_H_PRED,
    209  THR_V_PRED,
    210  THR_D135_PRED,
    211  THR_D203_PRED,
    212  THR_D157_PRED,
    213  THR_D67_PRED,
    214  THR_D113_PRED,
    215  THR_D45_PRED,
    216 
    217  MAX_MODES,
    218  SINGLE_REF_MODE_START = THR_NEARESTMV,
    219  SINGLE_REF_MODE_END = THR_COMP_NEAREST_NEARESTLA,
    220  NUM_SINGLE_REF_MODES = SINGLE_REF_MODE_END - SINGLE_REF_MODE_START,
    221  THR_MODE_START = THR_NEARESTMV,
    222  THR_MODE_END = MAX_MODES,
    223  THR_INTER_MODE_START = THR_MODE_START,
    224  THR_INTER_MODE_END = THR_DC,
    225  THR_INVALID = 255
    226 } UENUM1BYTE(THR_MODES);
    227 
    228 enum {
    229  THR_LAST,
    230  THR_LAST2,
    231  THR_LAST3,
    232  THR_BWDR,
    233  THR_ALTR2,
    234  THR_GOLD,
    235  THR_ALTR,
    236 
    237  THR_COMP_LA,
    238  THR_COMP_L2A,
    239  THR_COMP_L3A,
    240  THR_COMP_GA,
    241 
    242  THR_COMP_LB,
    243  THR_COMP_L2B,
    244  THR_COMP_L3B,
    245  THR_COMP_GB,
    246 
    247  THR_COMP_LA2,
    248  THR_COMP_L2A2,
    249  THR_COMP_L3A2,
    250  THR_COMP_GA2,
    251 
    252  THR_INTRA,
    253 
    254  MAX_REFS
    255 } UENUM1BYTE(THR_MODES_SUB8X8);
    256 
    257 enum {
    258  FULL_TXFM_RD,
    259  LOW_TXFM_RD,
    260 } UENUM1BYTE(TXFM_RD_MODEL);
    261 
    262 enum {
    263  USE_FULL_RD = 0,
    264  USE_FAST_RD,
    265  USE_LARGESTALL,
    266 } UENUM1BYTE(TX_SIZE_SEARCH_METHOD);
    267 
    268 #ifdef __cplusplus
    269 }  // extern "C"
    270 #endif
    271 
    272 #endif  // AOM_AV1_ENCODER_ENC_ENUMS_H_