• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**************************************************************************
2  *
3  * Copyright 2021 Advanced Micro Devices, Inc.
4  *
5  * SPDX-License-Identifier: MIT
6  *
7  **************************************************************************/
8 
9 #ifndef _RADEON_TEMPORAL_H
10 #define _RADEON_TEMPORAL_H
11 
12 #include "radeon_video.h"
13 #include "radeon_vcn_enc.h"
14 
15 #define RENCODE_MAX_TEMPORAL_LAYER_PATTERN_SIZE                                     9
16 
17 typedef struct rvcn_temporal_layer_pattern_entry_s
18 {
19    unsigned    temporal_id;
20    unsigned    reference_index_in_table;
21    bool        reference_modification;
22    unsigned    frame_num_offset;
23    unsigned    poc_offset;
24    bool        mark_as_reference;
25 } rvcn_temporal_layer_pattern_entry_t;
26 
27 typedef struct rvcn_temporal_layer_pattern_table_s
28 {
29    unsigned    pattern_size;
30    rvcn_temporal_layer_pattern_entry_t  pattern_table[RENCODE_MAX_TEMPORAL_LAYER_PATTERN_SIZE];
31 } rvcn_temporal_layer_pattern_table_t;
32 
33 static const rvcn_temporal_layer_pattern_table_t  rvcn_temporal_layer_pattern_tables[RENCODE_MAX_NUM_TEMPORAL_LAYERS] =
34 {
35    /* 1 temporal layer */
36    {
37       2,      /* temporal layer pattern size */
38       {
39          {
40             0,
41             0,
42             false,
43             0,
44             0,
45             true,
46          },
47          {
48             0,
49             0,
50             false,
51             1,
52             2,
53             true,
54          }
55       }
56    },
57    /* 2 temporal layers */
58    {
59       3,      /* temporal layer pattern size */
60       {
61          {
62             0,
63             0,
64             false,
65             0,
66             0,
67             true,
68          },
69          {
70             1,
71             0,
72             false,
73             1,
74             2,
75             false,
76          },
77          {
78             0,
79             0,
80             false,
81             1,
82             4,
83             true,
84          }
85       }
86    },
87    /* 3 temporal layers */
88    {
89       5,      /* temporal layer pattern size */
90       {
91          {
92             0,
93             0,
94             false,
95             0,
96             0,
97             true,
98          },
99          {
100             2,
101             0,
102             false,
103             1,
104             2,
105             false,
106          },
107          {
108             1,
109             0,
110             false,
111             1,
112             4,
113             true,
114          },
115          {
116             2,
117             2,
118             false,
119             2,
120             6,
121             false,
122          },
123          {
124             0,
125             0,
126             true,
127             2,
128             8,
129             true,
130          }
131       }
132    },
133    /* 4 temporal layers */
134    {
135       9,      /* temporal layer pattern size */
136       {
137          {
138             0,
139             0,
140             false,
141             0,
142             0,
143             true,
144          },
145          {
146             3,
147             0,
148             false,
149             1,
150             2,
151             false,
152          },
153          {
154             2,
155             0,
156             false,
157             1,
158             4,
159             true,
160          },
161          {
162             3,
163             2,
164             false,
165             2,
166             6,
167             false,
168          },
169          {
170             1,
171             0,
172             true,
173             2,
174             8,
175             true,
176          },
177          {
178             3,
179             4,
180             false,
181             3,
182             10,
183             false,
184          },
185          {
186             2,
187             4,
188             false,
189             3,
190             12,
191             true,
192          },
193          {
194             3,
195             6,
196             false,
197             4,
198             14,
199             false,
200          },
201          {
202             0,
203             0,
204             true,
205             4,
206             16,
207             true,
208          }
209       }
210    }
211 };
212 
213 #endif // _RADEON_TEMPORAL_H