1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * Chinese AVS video (AVS1-P2, JiZhun profile) decoder.
3cabdff1aSopenharmony_ci * Copyright (c) 2006  Stefan Gehrer <stefan.gehrer@gmx.de>
4cabdff1aSopenharmony_ci *
5cabdff1aSopenharmony_ci * This file is part of FFmpeg.
6cabdff1aSopenharmony_ci *
7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
11cabdff1aSopenharmony_ci *
12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15cabdff1aSopenharmony_ci * Lesser General Public License for more details.
16cabdff1aSopenharmony_ci *
17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20cabdff1aSopenharmony_ci */
21cabdff1aSopenharmony_ci
22cabdff1aSopenharmony_ci#include "cavs.h"
23cabdff1aSopenharmony_ci
24cabdff1aSopenharmony_ciconst uint8_t ff_cavs_partition_flags[30] = {
25cabdff1aSopenharmony_ci  0,                                 //I_8X8
26cabdff1aSopenharmony_ci  0,                                 //P_SKIP
27cabdff1aSopenharmony_ci  0,                                 //P_16X16
28cabdff1aSopenharmony_ci                      SPLITH,        //P_16X8
29cabdff1aSopenharmony_ci                             SPLITV, //P_8X16
30cabdff1aSopenharmony_ci                      SPLITH|SPLITV, //P_8X8
31cabdff1aSopenharmony_ci                      SPLITH|SPLITV, //B_SKIP
32cabdff1aSopenharmony_ci                      SPLITH|SPLITV, //B_DIRECT
33cabdff1aSopenharmony_ci  0,                                 //B_FWD_16X16
34cabdff1aSopenharmony_ci  0,                                 //B_BWD_16X16
35cabdff1aSopenharmony_ci  0,                                 //B_SYM_16X16
36cabdff1aSopenharmony_ci  FWD0|FWD1          |SPLITH,
37cabdff1aSopenharmony_ci  FWD0|FWD1                 |SPLITV,
38cabdff1aSopenharmony_ci  BWD0|BWD1          |SPLITH,
39cabdff1aSopenharmony_ci  BWD0|BWD1                 |SPLITV,
40cabdff1aSopenharmony_ci  FWD0|BWD1          |SPLITH,
41cabdff1aSopenharmony_ci  FWD0|BWD1                 |SPLITV,
42cabdff1aSopenharmony_ci  BWD0|FWD1          |SPLITH,
43cabdff1aSopenharmony_ci  BWD0|FWD1                 |SPLITV,
44cabdff1aSopenharmony_ci  FWD0|FWD1     |SYM1|SPLITH,
45cabdff1aSopenharmony_ci  FWD0|FWD1     |SYM1       |SPLITV,
46cabdff1aSopenharmony_ci  BWD0|FWD1     |SYM1|SPLITH,
47cabdff1aSopenharmony_ci  BWD0|FWD1     |SYM1       |SPLITV,
48cabdff1aSopenharmony_ci  FWD0|FWD1|SYM0     |SPLITH,
49cabdff1aSopenharmony_ci  FWD0|FWD1|SYM0            |SPLITV,
50cabdff1aSopenharmony_ci  FWD0|BWD1|SYM0     |SPLITH,
51cabdff1aSopenharmony_ci  FWD0|BWD1|SYM0            |SPLITV,
52cabdff1aSopenharmony_ci  FWD0|FWD1|SYM0|SYM1|SPLITH,
53cabdff1aSopenharmony_ci  FWD0|FWD1|SYM0|SYM1       |SPLITV,
54cabdff1aSopenharmony_ci                      SPLITH|SPLITV, //B_8X8 = 29
55cabdff1aSopenharmony_ci};
56cabdff1aSopenharmony_ci
57cabdff1aSopenharmony_ciconst uint8_t ff_cavs_chroma_qp[64] = {
58cabdff1aSopenharmony_ci   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
59cabdff1aSopenharmony_ci  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
60cabdff1aSopenharmony_ci  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 42, 43, 43, 44, 44,
61cabdff1aSopenharmony_ci  45, 45, 46, 46, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51
62cabdff1aSopenharmony_ci};
63cabdff1aSopenharmony_ci
64cabdff1aSopenharmony_ci/** mark block as "no prediction from this direction"
65cabdff1aSopenharmony_ci    e.g. forward motion vector in BWD partition */
66cabdff1aSopenharmony_ciconst cavs_vector ff_cavs_dir_mv   = {0,0,1,REF_DIR};
67cabdff1aSopenharmony_ci
68cabdff1aSopenharmony_ci/** mark block as using intra prediction */
69cabdff1aSopenharmony_ciconst cavs_vector ff_cavs_intra_mv = {0,0,1,REF_INTRA};
70