xref: /aosp_15_r20/external/libaom/test/best_encode.sh (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1*77c1e3ccSAndroid Build Coastguard Worker#!/bin/bash
2*77c1e3ccSAndroid Build Coastguard Worker#
3*77c1e3ccSAndroid Build Coastguard Worker# Copyright (c) 2016, Alliance for Open Media. All rights reserved.
4*77c1e3ccSAndroid Build Coastguard Worker#
5*77c1e3ccSAndroid Build Coastguard Worker# This source code is subject to the terms of the BSD 2 Clause License and
6*77c1e3ccSAndroid Build Coastguard Worker# the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
7*77c1e3ccSAndroid Build Coastguard Worker# was not distributed with this source code in the LICENSE file, you can
8*77c1e3ccSAndroid Build Coastguard Worker# obtain it at www.aomedia.org/license/software. If the Alliance for Open
9*77c1e3ccSAndroid Build Coastguard Worker# Media Patent License 1.0 was not distributed with this source code in the
10*77c1e3ccSAndroid Build Coastguard Worker# PATENTS file, you can obtain it at www.aomedia.org/license/patent.
11*77c1e3ccSAndroid Build Coastguard Worker#
12*77c1e3ccSAndroid Build Coastguard Worker# Author: [email protected] (Jim Bankoski)
13*77c1e3ccSAndroid Build Coastguard Worker
14*77c1e3ccSAndroid Build Coastguard Workerif [[ $# -ne 2 ]]; then
15*77c1e3ccSAndroid Build Coastguard Worker  echo "Encodes a file using best known settings (slow!)"
16*77c1e3ccSAndroid Build Coastguard Worker  echo "  Usage:    be [FILE] [BITRATE]"
17*77c1e3ccSAndroid Build Coastguard Worker  echo "  Example:  be akiyo_cif.y4m 200"
18*77c1e3ccSAndroid Build Coastguard Worker  exit
19*77c1e3ccSAndroid Build Coastguard Workerfi
20*77c1e3ccSAndroid Build Coastguard Worker
21*77c1e3ccSAndroid Build Coastguard Workerf=$1  # file is first parameter
22*77c1e3ccSAndroid Build Coastguard Workerb=$2  # bitrate is second parameter
23*77c1e3ccSAndroid Build Coastguard Worker
24*77c1e3ccSAndroid Build Coastguard Workerif [[ -e $f.fpf ]]; then
25*77c1e3ccSAndroid Build Coastguard Worker  # First-pass file found, do second pass only
26*77c1e3ccSAndroid Build Coastguard Worker  aomenc \
27*77c1e3ccSAndroid Build Coastguard Worker    $f \
28*77c1e3ccSAndroid Build Coastguard Worker    -o $f-$b.av1.webm \
29*77c1e3ccSAndroid Build Coastguard Worker    -p 2 \
30*77c1e3ccSAndroid Build Coastguard Worker    --pass=2 \
31*77c1e3ccSAndroid Build Coastguard Worker    --fpf=$f.fpf \
32*77c1e3ccSAndroid Build Coastguard Worker    --good \
33*77c1e3ccSAndroid Build Coastguard Worker    --cpu-used=0 \
34*77c1e3ccSAndroid Build Coastguard Worker    --target-bitrate=$b \
35*77c1e3ccSAndroid Build Coastguard Worker    --auto-alt-ref=1 \
36*77c1e3ccSAndroid Build Coastguard Worker    -v \
37*77c1e3ccSAndroid Build Coastguard Worker    --minsection-pct=0 \
38*77c1e3ccSAndroid Build Coastguard Worker    --maxsection-pct=800 \
39*77c1e3ccSAndroid Build Coastguard Worker    --lag-in-frames=25 \
40*77c1e3ccSAndroid Build Coastguard Worker    --kf-min-dist=0 \
41*77c1e3ccSAndroid Build Coastguard Worker    --kf-max-dist=99999 \
42*77c1e3ccSAndroid Build Coastguard Worker    --static-thresh=0 \
43*77c1e3ccSAndroid Build Coastguard Worker    --min-q=0 \
44*77c1e3ccSAndroid Build Coastguard Worker    --max-q=63 \
45*77c1e3ccSAndroid Build Coastguard Worker    --drop-frame=0 \
46*77c1e3ccSAndroid Build Coastguard Worker    --bias-pct=50 \
47*77c1e3ccSAndroid Build Coastguard Worker    --minsection-pct=0 \
48*77c1e3ccSAndroid Build Coastguard Worker    --maxsection-pct=800 \
49*77c1e3ccSAndroid Build Coastguard Worker    --psnr \
50*77c1e3ccSAndroid Build Coastguard Worker    --arnr-maxframes=7 \
51*77c1e3ccSAndroid Build Coastguard Worker    --arnr-strength=3
52*77c1e3ccSAndroid Build Coastguard Workerelse
53*77c1e3ccSAndroid Build Coastguard Worker  # No first-pass file found, do 2-pass encode
54*77c1e3ccSAndroid Build Coastguard Worker  aomenc \
55*77c1e3ccSAndroid Build Coastguard Worker    $f \
56*77c1e3ccSAndroid Build Coastguard Worker    -o $f-$b.av1.webm \
57*77c1e3ccSAndroid Build Coastguard Worker    -p 2 \
58*77c1e3ccSAndroid Build Coastguard Worker    --pass=1 \
59*77c1e3ccSAndroid Build Coastguard Worker    --fpf=$f.fpf \
60*77c1e3ccSAndroid Build Coastguard Worker    --good \
61*77c1e3ccSAndroid Build Coastguard Worker    --cpu-used=0 \
62*77c1e3ccSAndroid Build Coastguard Worker    --target-bitrate=$b \
63*77c1e3ccSAndroid Build Coastguard Worker    --auto-alt-ref=1 \
64*77c1e3ccSAndroid Build Coastguard Worker    -v \
65*77c1e3ccSAndroid Build Coastguard Worker    --minsection-pct=0 \
66*77c1e3ccSAndroid Build Coastguard Worker    --maxsection-pct=800 \
67*77c1e3ccSAndroid Build Coastguard Worker    --lag-in-frames=25 \
68*77c1e3ccSAndroid Build Coastguard Worker    --kf-min-dist=0 \
69*77c1e3ccSAndroid Build Coastguard Worker    --kf-max-dist=99999 \
70*77c1e3ccSAndroid Build Coastguard Worker    --static-thresh=0 \
71*77c1e3ccSAndroid Build Coastguard Worker    --min-q=0 \
72*77c1e3ccSAndroid Build Coastguard Worker    --max-q=63 \
73*77c1e3ccSAndroid Build Coastguard Worker    --drop-frame=0
74*77c1e3ccSAndroid Build Coastguard Worker
75*77c1e3ccSAndroid Build Coastguard Worker  aomenc \
76*77c1e3ccSAndroid Build Coastguard Worker    $f \
77*77c1e3ccSAndroid Build Coastguard Worker    -o $f-$b.av1.webm \
78*77c1e3ccSAndroid Build Coastguard Worker    -p 2 \
79*77c1e3ccSAndroid Build Coastguard Worker    --pass=2 \
80*77c1e3ccSAndroid Build Coastguard Worker    --fpf=$f.fpf \
81*77c1e3ccSAndroid Build Coastguard Worker    --good \
82*77c1e3ccSAndroid Build Coastguard Worker    --cpu-used=0 \
83*77c1e3ccSAndroid Build Coastguard Worker    --target-bitrate=$b \
84*77c1e3ccSAndroid Build Coastguard Worker    --auto-alt-ref=1 \
85*77c1e3ccSAndroid Build Coastguard Worker    -v \
86*77c1e3ccSAndroid Build Coastguard Worker    --minsection-pct=0 \
87*77c1e3ccSAndroid Build Coastguard Worker    --maxsection-pct=800 \
88*77c1e3ccSAndroid Build Coastguard Worker    --lag-in-frames=25 \
89*77c1e3ccSAndroid Build Coastguard Worker    --kf-min-dist=0 \
90*77c1e3ccSAndroid Build Coastguard Worker    --kf-max-dist=99999 \
91*77c1e3ccSAndroid Build Coastguard Worker    --static-thresh=0 \
92*77c1e3ccSAndroid Build Coastguard Worker    --min-q=0 \
93*77c1e3ccSAndroid Build Coastguard Worker    --max-q=63 \
94*77c1e3ccSAndroid Build Coastguard Worker    --drop-frame=0 \
95*77c1e3ccSAndroid Build Coastguard Worker    --bias-pct=50 \
96*77c1e3ccSAndroid Build Coastguard Worker    --minsection-pct=0 \
97*77c1e3ccSAndroid Build Coastguard Worker    --maxsection-pct=800 \
98*77c1e3ccSAndroid Build Coastguard Worker    --psnr \
99*77c1e3ccSAndroid Build Coastguard Worker    --arnr-maxframes=7 \
100*77c1e3ccSAndroid Build Coastguard Worker    --arnr-strength=3
101*77c1e3ccSAndroid Build Coastguard Workerfi
102