xref: /aosp_15_r20/external/libgav1/src/dsp/obmc.inc (revision 095378508e87ed692bf8dfeb34008b65b3735891)
1*09537850SAkhilesh Sanikop// Copyright 2019 The libgav1 Authors
2*09537850SAkhilesh Sanikop//
3*09537850SAkhilesh Sanikop// Licensed under the Apache License, Version 2.0 (the "License");
4*09537850SAkhilesh Sanikop// you may not use this file except in compliance with the License.
5*09537850SAkhilesh Sanikop// You may obtain a copy of the License at
6*09537850SAkhilesh Sanikop//
7*09537850SAkhilesh Sanikop//      http://www.apache.org/licenses/LICENSE-2.0
8*09537850SAkhilesh Sanikop//
9*09537850SAkhilesh Sanikop// Unless required by applicable law or agreed to in writing, software
10*09537850SAkhilesh Sanikop// distributed under the License is distributed on an "AS IS" BASIS,
11*09537850SAkhilesh Sanikop// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*09537850SAkhilesh Sanikop// See the License for the specific language governing permissions and
13*09537850SAkhilesh Sanikop// limitations under the License.
14*09537850SAkhilesh Sanikop
15*09537850SAkhilesh Sanikop// Constants and utility functions used for overlap blend implementations.
16*09537850SAkhilesh Sanikop// This will be included inside an anonymous namespace on files where these are
17*09537850SAkhilesh Sanikop// necessary.
18*09537850SAkhilesh Sanikop
19*09537850SAkhilesh Sanikop// This is a flat array of masks for each block dimension from 2 to 32. The
20*09537850SAkhilesh Sanikop// starting index for each length is length-2.
21*09537850SAkhilesh Sanikopconstexpr uint8_t kObmcMask[62] = {
22*09537850SAkhilesh Sanikop    // Obmc Mask 2
23*09537850SAkhilesh Sanikop    45, 64,
24*09537850SAkhilesh Sanikop    // Obmc Mask 4
25*09537850SAkhilesh Sanikop    39, 50, 59, 64,
26*09537850SAkhilesh Sanikop    // Obmc Mask 8
27*09537850SAkhilesh Sanikop    36, 42, 48, 53, 57, 61, 64, 64,
28*09537850SAkhilesh Sanikop    // Obmc Mask 16
29*09537850SAkhilesh Sanikop    34, 37, 40, 43, 46, 49, 52, 54, 56, 58, 60, 61, 64, 64, 64, 64,
30*09537850SAkhilesh Sanikop    // Obmc Mask 32
31*09537850SAkhilesh Sanikop    33, 35, 36, 38, 40, 41, 43, 44, 45, 47, 48, 50, 51, 52, 53, 55, 56, 57, 58,
32*09537850SAkhilesh Sanikop    59, 60, 60, 61, 62, 64, 64, 64, 64, 64, 64, 64, 64};
33