Newer
Older
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
\Option{QuadtreeTULog2MaxSize} &
%\ShortOption{\None} &
\Default{6 \\ ($= \mathrm{log}_2(64)$)} &
Defines the Maximum TU size in logarithm base 2.
\\
\Option{QuadtreeTULog2MinSize} &
%\ShortOption{\None} &
\Default{2 \\ ($= \mathrm{log}_2(4)$)} &
Defines the Minimum TU size in logarithm base 2.
\\
\Option{QuadtreeTUMaxDepthIntra} &
%\ShortOption{\None} &
\Default{1} &
Defines the depth of the TU tree for intra CUs.
\\
\Option{QuadtreeTUMaxDepthInter} &
%\ShortOption{\None} &
\Default{2} &
Defines the depth of the TU tree for inter CUs.
\\
\end{OptionTableNoShorthand}
%%
%% Coding structure parameters
%%
\begin{OptionTableNoShorthand}{Coding structure parameters}{tab:coding-structure}
\Option{IntraPeriod (-ip)} &
%\ShortOption{-ip} &
\Default{$-1$} &
Specifies the intra frame period.
A value of $-1$ implies an infinite period.
\\
\Option{DecodingRefreshType (-dr)} &
%\ShortOption{-dr} &
\Default{0} &
Specifies the type of decoding refresh to apply at the intra frame period
picture.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Applies an I picture (not a intra random access point). \\
1 & Applies a CRA intra random access point (open GOP). \\
2 & Applies an IDR intra random access point (closed GOP). \\
3 & Use recovery point SEI messages to indicate random access. \\
\end{tabular}
\\
\Option{GOPSize (-g)} &
%\ShortOption{-g} &
\Default{1} &
Specifies the size of the cyclic GOP structure.
\\
\Option{Frame\emph{N}} &
%\ShortOption{\None} &
\Default{\NotSet} &
Multiple options that define the cyclic GOP structure that will be used
repeatedly throughout the sequence. The table should contain GOPSize
elements.
\par
See section~\ref{sec:gop-structure} for further details.
\\
\Option{ReWriteParamSets} &
%\ShortOption{-ip} &
\Default{$0$} &
Enable writing of parameter sets (SPS, PPS, etc.) before every (intra) random access point to enable true random access.
\\
\end{OptionTableNoShorthand}
%%
%% Motion estimation parameters
%%
\begin{OptionTableNoShorthand}{Motion estimation parameters}{tab:motion-estimation}
\Option{FastSearch} &
%\ShortOption{\None} &
\Default{1} &
Enables or disables the use of a fast motion search.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Full search method \\
1 & Fast search method - TZSearch\\
2 & Predictive motion vector fast search method \\
3 & Extended TZSearch method \\
\end{tabular}
\\
\Option{SearchRange (-sr)} &
%\ShortOption{-sr} &
\Default{96} &
Specifies the search range used for motion estimation.
Note: the search range is defined around a predictor. Motion vectors
derived by the motion estimation may thus have values larger than the
search range.
\\
\Option{BipredSearchRange} &
%\ShortOption{\None} &
\Default{4} &
Specifies the search range used for bi-prediction refinement in motion
estimation.
\\
\Option{ClipForBiPredMEEnabled} &
%\ShortOption{\None} &
\Default{0} &
Enables clipping in the Bi-Pred ME, which prevents values over- or under-flowing. It is usually disabled to reduce encoder run-time.
\\
\Option{FastMEAssumingSmootherMVEnabled} &
%\ShortOption{\None} &
\Default{0} &
Enables fast ME assuming a smoother MV.
\\
\Option{HadamardME} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of the Hadamard transform in fractional-pel motion
estimation.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & SAD for cost estimation \\
1 & Hadamard for cost estimation \\
\end{tabular}
\\
\Option{ASR} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of adaptive search ranges, where the motion
search range is dynamically adjusted according to the POC difference
between the current and the reference pictures.
\begin{displaymath}
\resizebox{\hsize}{!}{$
\mathrm{SearchRange}’ = \mathrm{Round}\left(
\mathrm{SearchRange}
* \mathrm{ADAPT\_SR\_SCALE}
* \frac{\mathrm{abs}(
\mathrm{POCcur} - \mathrm{POCref} )}{
\mathrm{RateGOPSize}}\right)
$}
\end{displaymath}
\\
\Option{MaxNumMergeCand} &
%\ShortOption{\None} &
\Default{5} &
Specifies the maximum number of merge candidates to use.
\\
\Option{MaxNumTriangleCand} &
%\ShortOption{\None} &
\Default{5} &
Specifies the maximum number of triangle merge candidates to use.
\\
\Option{MaxNumIBCMergeCand} &
%\ShortOption{\None} &
\Default{6} &
Specifies the maximum number of IBC merge candidates to use.
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
\\
\Option{DisableIntraInInter} &
%\ShortOption{\None} &
\Default{0} &
Flag to disable intra PUs in inter slices.
\\
\Option{MMVD} &
%\ShortOption{\None} &
\Default{1} &
Enables or disables the merge mode with motion vector difference (MMVD).
\\
\Option{MmvdDisNum} &
%\ShortOption{\None} &
\Default{6} &
Specifies the number of MMVD distance entries used from the distance table at encoder.
\\
\end{OptionTableNoShorthand}
%%
%% Mode decision parameters
%%
\begin{OptionTableNoShorthand}{Mode decision parameters}{tab:mode-decision}
\Option{LambdaModifier$N$ (-LM$N$)} &
%\ShortOption{-LM$N$} &
\Default{1.0} &
Specifies a value that is multiplied with the Lagrange multiplier
$\lambda$, for use in the rate-distortion optimised cost calculation
when encoding temporal layer~$N$.
If LambdaModifierI is specified, then LambdaModifierI will be used for intra pictures.
\par
$N$ may be in the range 0 (inclusive) to 7 (exclusive).
\\
\Option{LambdaModifierI (-LMI)} &
%\ShortOption{-LMI} &
\Default{} &
Specifies one or more of the LambdaModifiers to use intra pictures at each of the temporal layers.
If not present, then the LambdaModifier$N$ settings are used instead. If the list of values
(comma or space separated) does not include enough values for each of the temporal layers,
the last value is repeated as required.
\\
\Option{IQPFactor (-IQF)} &
%\ShortOption{-IQF} &
\Default{-1} &
Specifies the QP factor to be used for intra pictures during the lambda computation.
(The values specified in the GOP structure are only used for inter pictures).
If negative (default), the following equation is used to derive the value:
\par
$IQP_{factor}=0.57*(1.0-Max(0.5, Min(0.0, 0.05*s)))$
\par
where $s = Int(isField ? (GS-1)/2 : GS-1)$ and
$GS$ is the gop size.
\\
\Option{ECU} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of early CU determination. When enabled, skipped CUs will not be split further.
\\
\Option{CFM} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of Cbf-based fast encoder mode. When enabled, once a 2Nx2N CU has been evaluated, if the RootCbf is 0, further PU splits will not be evaluated.
\\
\Option{ESD} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of early skip detection. When enabled, the skip mode will be tested before any other.
\\
\Option{FEN} &
%\ShortOption{\None} &
\Default{0} &
Controls the use of different fast encoder coding tools. The following
tools are supported in different combinations:
\par
\begin{tabular}{cp{0.45\textwidth}}
a & In the SAD computation for blocks having size larger than 8, only
the lines of even rows in the block are considered. \\
b & The number of iterations used in the bi-directional motion vector
refinement in the motion estimation process is reduced from 4 to 1. \\
\end{tabular}
Depending on the value of the parameter, the following combinations are
supported:
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Disable all modes \\
1 & Use both a \& b tools\\
2 & Use only tool b \\
3 & Use only tool a \\
\end{tabular}
\\
\Option{FDM} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of fast encoder decisions for 2Nx2N merge
mode. When enabled, the RD cost for the merge mode of the current
candidate is not evaluated if the merge skip mode was the best merge
mode for one of the previous candidates.
\\
\Option{RDpenalty} &
%\ShortOption{\None} &
\Default{0} &
RD-penalty for 32x32 TU for intra in non-intra slices.
Enabling this parameter can reduce the visibility of CU boundaries in the coded picture.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & No RD-penalty \\
1 & RD-penalty \\
2 & Maximum RD-penalty (no 32x32 TU)\\
\end{tabular}
\\
\Option{FastLocalDualTreeMode} &
%\ShortOption{\None} &
\Default{0} &
Controls intra coding speedup introducted with local dual tree mode.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Disabled\\
1 & Stop testing intra modes in inter slices, if best cost is more that 1.5 times inter cost.\\
2 & Test only one intra mode in inter slices\\
\end{tabular}
\\
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
\end{OptionTableNoShorthand}
%%
%% Quantization parameters
%%
\begin{OptionTableNoShorthand}{Quantization parameters}{tab:quantization}
\Option{QP (-q)} &
%\ShortOption{-q} &
\Default{30.0} &
Specifies the base value of the quantization parameter. If it is non-integer, the QP is switched once during encoding.
\\
\Option{IntraQPOffset} &
%\ShortOption{\None} &
\Default{0} &
Specifies a QP offset from the base QP value to be used for intra frames.
\\
\Option{LambdaFromQpEnable} &
%\ShortOption{\None} &
\Default{false} &
When enabled, the $\lambda$, which is used to convert a cost in bits to a cost in distortion terms, is calculated as:
$\lambda=qpFactor \times 2^{qp+6*(bitDepthLuma-8)-12}$,
where $qp$ is the slice QP and $qpFactor$ is calculated as follows:
\begin{tabular}{lp{0.45\textwidth}}
$= IQF$ & if $IQF >= 0$ and slice is a periodic intra slice \\
$= 0.57 \times \lambda_{scale}$ & if slice is a non-periodic intra slice \\
$=$ value from GOP table & otherwise \\
\end{tabular}
where $IQF$ is the value specified using the IntraQPFactor option, and where $\lambda_{scale}$ is:
\begin{tabular}{lp{0.45\textwidth}}
$1$ & if LambdaFromQpEnable=true \\
$1.0 - max(0,min(0.5,0.05*B))$ & if LambdaFromQpEnable=false \\
\end{tabular}
where $B$ is the number of B frames.
If LambdaFromQpEnable=false, then the $\lambda$ is also subsequently scaled for non-top-level hiearchical depths, as follows:
$\lambda = \lambda_{base} \times max(2, min(4, (sliceQP-12)/6))$
In addition, independent on the IntraQPFactor, if HadamardME=false, then for an inter slice the final $\lambda$ is scaled by a factor of $0.95$.
\\
\Option{UseIdentityTableForNon420Chroma}&
\Default{1}&
Adarsh Krishnan Ramasubramonian
committed
Specifies whether identity chroma QP mapping tables are used for 4:2:2 and 4:4:4 content. When set to 1, the identity chroma QP mapping table is used for all the three chroma components for 4:2:2 or 4:4:4 content. When set to 0, chroma QP
mapping table may be specified by other parameters in the configuration.
\\
\Option{SameCQPTablesForAllChroma}&
\Default{1}&
Adarsh Krishnan Ramasubramonian
committed
Specifies that the Cb, Cr and joint Cb-Cr components all use the same
chroma mapping table. When set to 1, the values of QpInValCr,
QpOutValCr, QpInValCbCr and QpOutValCbCr are ignored. When set to 0, all
Cb, Cr and joint Cb-Cr components may have different chroma QP mapping tables specified in the configuration file. Note that
Adarsh Krishnan Ramasubramonian
committed
SameCQPTablesForAllChroma is ignored when UseIdentityTableForNon420Chroma is set to 1 for 4:2:2 and 4:4:4 content.
\\
\Option{QpInValCb}%
\Option{QpOutValCb}&
Adarsh Krishnan Ramasubramonian
committed
Specifies the input and coordinates of the pivot points used to specify the chroma QP mapping tables for the Cb component. Default values are as follows:
Adarsh Krishnan Ramasubramonian
committed
\begin{tabular}{cp{0.45\textwidth}}
QpInValCb & 25, 33, 43 \\
QpOutValCb & 25, 32, 37 \\
Adarsh Krishnan Ramasubramonian
committed
\end{tabular}
The values specify the pivot points for the chroma QP mapping table, the unspecified QP values are interpolated from the remaining values. E.g., the default values above specify that the pivot points for the chroma QP mapping table for the Cb component are (25, 25), (33, 32), (43, 37).
Note that that QpInValCr and QpOutValCr are ignored when UseIdentityTableForNon420Chroma is set to 1 for 4:2:2 and 4:4:4 content.
Adarsh Krishnan Ramasubramonian
committed
\\
\Option{QpInValCr}%
\Option{QpOutValCr}&
Adarsh Krishnan Ramasubramonian
committed
Specifies the input and coordinates of the pivot points used to specify the chroma QP mapping tables for the Cr component. Default values are as follows:
Adarsh Krishnan Ramasubramonian
committed
\begin{tabular}{cp{0.45\textwidth}}
QpInValCr & 0 \\
QpOutValCr & 0 \\
Adarsh Krishnan Ramasubramonian
committed
\end{tabular}
The default values specify a pivot point of (0,0) which corresponds to an identity chroma QP mapping table. Note that that QpInValCr and QpOutValCr are ignored
Adarsh Krishnan Ramasubramonian
committed
when SameCQPTablesForAllChroma is set to 1 or when UseIdentityTableForNon420Chroma is set to 1 for 4:2:2 and 4:4:4 content.
\\
\Option{QpInValCbCr}%
\Option{QpOutValCbCr}&
Adarsh Krishnan Ramasubramonian
committed
Specifies the input and coordinates of the pivot points used to specify the chroma QP mapping tables for the joint Cb-Cr component. Default values are as follows:
Adarsh Krishnan Ramasubramonian
committed
\begin{tabular}{cp{0.45\textwidth}}
QpInValrCr & 0 \\
QpOutValCbCr & 0 \\
Adarsh Krishnan Ramasubramonian
committed
\end{tabular}
Adarsh Krishnan Ramasubramonian
committed
The default values specify a pivot point of (0,0) which corresponds to a identity chroma QP mapping table. Note that that QpInValCbCr and QpOutVaCblCr are ignored
when SameCQPTablesForAllChroma is set to 1 or when UseIdentityTableForNon420Chroma is set to 1 for 4:2:2 and 4:4:4 content.
\\
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
\Option{CbQpOffset (-cbqpofs)}%
\Option{CrQpOffset (-crqpofs)} &
%\ShortOption{-cbqpofs}%
%\ShortOption{-crqpofs} &
\Default{0}%
\Default{0} &
Global offset to apply to the luma QP to derive the QP of Cb and Cr
respectively. These options correspond to the values of cb_qp_offset
and cr_qp_offset, that are transmitted in the PPS. Valid values are in
the range $[-12, 12]$.
\\
\Option{CbCrQpOffset (-cbcrqpofs)} &
\Default{-1} &
Global offset to apply to the luma QP to derive the QP for joint Cb-Cr
residual coding mode. This option corresponds to the value of cb_cr_qp_offset
transmitted in the PPS. Valid values are in the range $[-12, 12]$.
\\
\Option{CbCrQpOffsetDualTree} &
\Default{0} &
Tile group QP offset for joint Cb-Cr residual coding mode when separate luma and
chroma trees are used. This option corresponds to the value of tile_group_cb_cr_qp_offset
transmitted in the tile group header. Valid values are in the range $[-12, 12]$.
\\
\Option{LumaLevelToDeltaQPMode} &
\Default{0} &
Luma-level based Delta QP modulation.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & not used \\
1 & Based on CTU average \\
2 & Based on Max luma in CTU\\
\end{tabular}
\\
\Option{LumaLevelToDeltaQPMaxValWeight} &
\Default{1.0} &
Weight of per block maximum luma value when LumaLevelToDeltaQPMode=2.
\\
\Option{LumaLevelToDeltaQPMappingLuma} &
\Default{\NotSet} &
Specify luma values to use for the luma to delta QP mapping instead of using default values. Default values are: 0, 301, 367, 434, 501, 567, 634, 701, 767, 834.
\\
\Option{LumaLevelToDeltaQPMappingDQP} &
\Default{\NotSet} &
Specify DQP values to use for the luma to delta QP mapping instead of using default values. Default values are: -3, -2, -1, 0, 1, 2, 3, 4, 5, 6.
\\
\Option{WCGPPSEnable} &
\Default{0} &
Enable the WCG PPS modulation of the chroma QP, rather than the slice,
which, unlike slice-level modulation, allows the deblocking process
to consider the adjustment.
To use, specify a fractional QP:
the first part of the sequence will use $qpc=floor(QP)$ in the following
calculation and PPS-0; the second part of the sequence will use $qpc=ceil(QP)$
and PPS-1. The $chromaQp$ that is then stored in the PPS is given as:
$clip(round(WCGPPSXXQpScale*baseCQp)+XXQpOffset)$ where $baseCQp=(WCGPPSChromaQpScale*qpc+WCGPPSChromaQpOffset)$.
Note that the slices will continue to have a delta QP applied.
\\
\Option{WCGPPSChromaQpScale} &
\Default{0.0} &
Scale parameter for the linear chroma QP offset mapping used for WCG content.
\\
\Option{WCGPPSChromaQpOffset} &
\Default{0.0} &
Offset parameter for the linear chroma QP offset mapping used for WCG content.
\\
\Option{WCGPPSCbQpScale}%
\Option{WCGPPSCrQpScale} &
\Default{1.0} &
Per chroma component QP scale factor depending on capture and representation color space.
For Cb component with BT.2020 container use 1.14; for BT.709 material and 1.04 for P3 material.
For Cr component with BT.2020 container use 1.79; for BT.709 material and 1.39 for P3 material.
\\
\Option{SliceChromaQPOffsetPeriodicity} &
\Default{0} &
Defines the periodicity for inter slices that use the slice-level chroma QP offsets, as defined by SliceCbQpOffsetIntraOrPeriodic and SliceCrQpOffsetIntraOrPeriodic. A value of 0 disables the periodicity. It is intended to be used in low-delay configurations where an regular intra period is not defined.
\\
\Option{SliceCbQpOffsetIntraOrPeriodic}%
\Option{SliceCrQpOffsetIntraOrPeriodic} &
\Default{0} &
Defines the slice-level QP offset to be used for intra slices, or once every 'SliceChromaQPOffsetPeriodicity' pictures.
\\
\Option{MaxCuDQPDepth (-dqd)} &
%\ShortOption{\None} &
\Default{0} &
Defines maximum depth of a minimum CuDQP for sub-LCU-level delta QP.
MaxCuDQPDepth shall be greater than or equal to SliceGranularity.
\\
\Option{RDOQ} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables rate-distortion-optimized quantization for transformed TUs.
\\
\Option{RDOQTS} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables rate-distortion-optimized quantization for transform-skipped TUs.
\\
\Option{SelectiveRDOQ} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables selective rate-distortion-optimized quantization.
A simple quantization is use to pre-analyze, whether to bypass the RDOQ process or not.
If all the coefficients are quantized to 0, the RDOQ process is bypassed.
Otherwise, the RDOQ process is performed as usual.
\\
\Option{DeltaQpRD (-dqr)} &
%\ShortOption{-dqr} &
\Default{0} &
Specifies the maximum QP offset at slice level for multi-pass slice
encoding. When encoding, each slice is tested multiple times by using
slice QP values in the range $[-\mathrm{DeltaQpRD}, \mathrm{DeptaQpRD}]$,
and the best QP value is chosen as the slice QP.
\\
\Option{MaxDeltaQP (-d)} &
%\ShortOption{-d} &
\Default{0} &
Specifies the maximum QP offset at the largest coding unit level for
the block-level adaptive QP assignment scheme. In the encoder, each
largest coding unit is tested multiple times by using the QP values in
the range $[-\mathrm{MaxDeltaQP}, \mathrm{MaxDeltaQP}]$, and the best QP
value is chosen as the QP value of the largest coding unit.
\\
\Option{dQPFile (-m)} &
%\ShortOption{-m} &
\Default{\NotSet} &
Specifies a file containing a list of QP deltas. The $n$-th line
(where $n$ is 0 for the first line) of this file corresponds to the QP
value delta for the picture with POC value $n$.
\\
\Option{AdaptiveQp (-aq)} &
%\ShortOption{-aq} &
\Default{false} &
Enable or disable QP adaptation based upon a psycho-visual model.
\\
\Option{MaxQPAdaptationRange (-aqr)} &
%\ShortOption{-aqps} &
\Default{6} &
Specifies the maximum QP adaptation range.
\\
\Option{AdaptiveQpSelection (-aqps)} &
%\ShortOption{-aqps} &
\Default{false} &
Specifies whether QP values for non-I frames will be calculated on the
fly based on statistics of previously coded frames.
\\
\Option{RecalculateQP...} \Option{AccordingToLambda} &
%\ShortOption{\None} &
\Default{false} &
Recalculate QP values according to lambda values. Do not suggest to be enabled in all intra case.
\\
\Option{ScalingList} &
%\ShortOption{\None} &
\Default{0} &
Controls the specification of scaling lists:
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Scaling lists are disabled \\
1 & Use default scaling lists \\
2 & Scaling lists are specified in the file indicated by ScalingListFile \\
\end{tabular}
\\
\Option{ScalingListFile} &
%\ShortOption{\None} &
\Default{\NotSet} &
When ScalingList is set to 2, this parameter indicates the name of the file, which contains the defined scaling lists.
If ScalingList is set to 2 and this parameter is an empty string, information on the format of the scaling list file
is output and the encoder stops.
\\
\Option{MaxCUChromaQpAdjustmentDepth} &
%\ShortOption{\None} &
\Default{-1} &
Specifies the maximum depth for CU chroma QP adjustment; if negative, CU chroma QP adjustment is disabled.
\\
\end{OptionTableNoShorthand}
%%
%% Slice/Tile/Brick coding parameters
%%
\begin{OptionTableNoShorthand}{Slice, tile and brick coding parameters}{tab:slice-coding}
%\Option{SliceGranularity} &
%\ShortOption{\None} &
%\Default{0} &
%Determines the depth in an LCU at which slices may begin and end.
%\par
%\begin{tabular}{cp{0.45\textwidth}}
% 0 & Slice addresses are LCU aligned \\
% $1 \leq n \leq 3$
% & Slice start addresses are aligned to CUs at depth $n$ \\
%\end{tabular}
%
%Note: The smallest permissible alignment is 16x16 CUs.
%Values of $n$ must satisfy this constraint, for example, with a 64x64
%LCU, $n$ must be less than or equal to 2.
%\\
\Option{SliceMode} &
%\ShortOption{\None} &
\Default{0} &
Controls the slice partitioning method in conjunction with
SliceArgument.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Single slice \\
1 & (deprecated) Maximum number of CTUs per slice \\
2 & (deprecated) Maximum number of bytes per slice \\
3 & Maximum number of tiles per slice \\
4 & One slice per brick
\end{tabular}
\\
\Option{SliceArgument} &
%\ShortOption{\None} &
\Default{\NotSet} &
(deprecated)
Specifies the maximum number of CTUs, bytes or tiles in a slice depending on the
SliceMode setting.
\\
\Option{RectSliceFlag} &
%\ShortOption{\None} &
\Default{1} &
Controls the slice shape method in conjunction with SliceMode,
SliceArgument, and Tile/Brick configurations.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Raster scan slice. Bricks within slice are in raster scan order \\
1 & Rectangular slice. Bricks within slice form rectangular shape \\
NOTE: When SliceMode is equal to 3, RectSliceFlag is equal to 1,
and there is more than one tiles/bricks in the pic,
NumRecSliceInPicMinus1 must be greater than 0
\end{tabular}
\\
\Option{NumRecSlicesInPicMinus1} &
%\ShortOption{\None} &
\Default{0} &
Specifies the number of rectangular slices in the picture.
\\
\Option{RectSlicesBoundaryArray} &
%\ShortOption{\None} &
\Default{\NotSet} &
Specifies a space or comma separated list of top-left brick index and
bottom-right brick index of rectangular slices.
The top-left brick index and bottom-right brick index corresponds to the top left
rectangular slice in the picture. The rest of indices corresponds to the each rectangular slices
in the picture in the rectangular slice raster scan in the picture, respectively.
For example, when the picture is partitioned into 16 tiles (4 tile columns and 4 tile rows),
each tile is not further partitioned into bricks, SliceMode is equal to 3, SliceArgument is equal to 4,
and NumRecSlicesInPicMinus1 is equal to 3, the values of RectSlicesBoundaryArray shall be as followss:
0 5 2 7 8 13 10 15.
\par
\begin{tabular}{cp{0.45\textwidth}}
First slice has top-left brick index 0 and bottom-right brick index 5 \\
Second slice has top-left brick index 2 and bottom-right brick index 7 \\
Third slice has top-left brick index 8 and bottom-right brick index 13 \\
Fourth slice has top-left brick index 10 and bottom-right brick index 15
\end{tabular}
\\
\Option{IDRRefParamList} &
%\ShortOption{\None} &
\Default{false} &
Enables the signalling of reference picture list syntax elements in slice headers of IDR pictures
\\
\Option{WaveFrontSynchro} &
%\ShortOption{\None} &
\Default{false} &
Enables the use of specific CABAC probabilities synchronization at the
beginning of each line of CTBs in order to produce a bitstream that can
be encoded or decoded using one or more cores.
\\
\Option{TileUniformSpacing} &
%\ShortOption{\None} &
\Default{false} &
Controls the mode used to determine per row and column tile sizes.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Each tile column width and tile row height is explicitly set
by TileColumnWidthArray and TileRowHeightArray respectively \\
1 & Tile columns and tile rows are uniformly spaced. \\
\end{tabular}
\\
\Option{NumTileColumnsMinus1}%
\Option{NumTileRowsMinus1} &
%\ShortOption{\None} &
\Default{0} &
Specifies the tile based picture partitioning geometry as
$\mathrm{NumTileColumnsMinus1} + 1 \times \mathrm{NumTileRowsMinus1} + 1$
columns and rows.
\\
\Option{TileColumnWidthArray}%
\Option{TileRowHeightArray} &
%\ShortOption{\None} &
\Default{\NotSet} &
Specifies a space or comma separated list of widths and heights,
respectively, of each tile column or tile row. The first value in the
list corresponds to the leftmost tile column or topmost tile row.
\\
\Option{BrickSplit1}%
\Option{BrickSplit2} %
\Option{BrickSplitN} &
%\ShortOption{\None} &
\Default{\NotSet} &
Specifies the splitting of tiles into bricks, N can be in the range of 1 to 128 and has no further meaning except to distinguish different splitting parameters.
The following options are supported:
BrickSplitN tileIdx uniform (numsplits) heights
\begin{tabular}{cp{0.45\textwidth}}
tileIdx & the index of the tile to be split in raster scan order starting with zero \\
uniform & specifies whether uniform splitting shall be used (1 for uniform, 0 non-uniform) \\
numsplits & specifies the number of splits, if uniform is not used \\
heights & specifies the height of the uniform splits or a list of heights for non-uniform splits \\
\end{tabular}
\\
\Option{TileRowHeightArray} &
%\ShortOption{\None} &
\Default{\NotSet} &
Specifies a space or comma separated list of widths and heights,
respectively, of each tile column or tile row. The first value in the
list corresponds to the leftmost tile column or topmost tile row.
\\
\end{OptionTableNoShorthand}
%%
%% In-loop filtering parameters
%%
\begin{OptionTableNoShorthand}{In-loop filtering parameters}{tab:inloop-filter}
\Option{LoopFilterDisable} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the in-loop deblocking filter.
\\
\Option{LFCrossSliceBoundaryFlag} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of in-loop filtering across slice
boundaries.
\\
\Option{LoopFilterOffsetInPPS}&
%\ShortOption{\None}&
\Default{false}&
If enabled, the in-loop deblocking filter control parameters are sent in PPS.
Otherwise, the in-loop deblocking filter control parameters are sent in the slice segment header.
If deblocking filter parameters are sent in PPS, the same values of deblocking filter parameters
are used for all pictures in the sequence (i.e. deblocking parameter = base parameter value).
If deblocking filter parameters are sent in the slice segment header, varying deblocking filter
parameters can be specified by setting parameters tcOffsetDiv2 and betaOffsetDiv2 in the GOP structure table.
In this case, the final value of the deblocking filter parameter sent for a certain GOP picture is equal to
(base parameter + GOP parameter for this picture). Intra-pictures use the base parameters values.
\\
\Option{LoopFilterTcOffset_div2}&
%\ShortOption{\None}&
\Default{0}&
Specifies the base value for the in-loop deblocking filter parameter tc_offset_div2. The final value of tc_offset_div2
shall be an integer number in the range $-6..6$.
\\
\Option{LoopFilterBetaOffset_div2}&
%\ShortOption{\None}&
\Default{0}&
Specifies the base value for the in-loop deblocking filter parameter beta_offset_div2. The final value of beta_offset_div2
shall be an integer number in the range $-6..6$.
\\
\Option{DeblockingFilterMetric}&
%\ShortOption{\None}&
\Default{0}&
Specifies the use of a deblocking filter metric to evaluate the suitability of deblocking. If non-zero then
LoopFilterOffsetInPPS and LoopFilterDisable must be 0. Currently excepted values are 0, 1 and 2.
\\
\Option{LFCrossSliceBoundaryFlag}&
%\ShortOption{\None}&
\Default{true}&
Enables or disables the use of a deblocking across tile boundaries.
\\
\Option{LoopFilterAcrossVirtualBoundariesDisabledFlag}&
%\ShortOption{\None}&
\Default{false}&
Disables in-loop filtering operations across the virtual boundaries.
\\
\Option{NumVerVirtualBoundaries}&
%\ShortOption{\None}&
\Default{0}&
Specifies the number of vertical virtual boundaries.The value of NumVerVirtualBoundaries shall be in the range of 0 to 3, inclusive.
\\
\Option{NumHorVirtualBoundaries}&
%\ShortOption{\None}&
\Default{0}&
Specifies the number of horizontal virtual boundaries. The value of NumHorVirtualBoundaries shall be in the range of 0 to 3, inclusive.
\\
\Option{VirtualBoundariesPosX}&
%\ShortOption{\None}&
\Default{\NotSet}&
Specifies the locations of the vertical virtual boundaries in units of luma samples
\\
\Option{VirtualBoundariesPosY}&
%\ShortOption{\None}&
\Default{\NotSet}&
Specifies the locations of the horizontal virtual boundaries in units of luma samples
\\
\end{OptionTableNoShorthand}
%%
%% Coding tools parameters
%%
\begin{OptionTableNoShorthand}{Coding tools parameters}{tab:coding-tools}
\Option{MIP} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of matrix-based intra prediction (MIP).
\\
\Option{AMP} &
%\ShortOption{\None} &
\Default{true} &
Enables or disables the use of asymmetric motion partitions.
\\
\Option{ISP} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the Intra Sub-Partitions coding mode.
\\
\Option{ISPFast} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables reduced testing of non-DCT-II transforms if ISP is likely to become the best mode for a given CU.
\par
This option has no effect if either ISP or MTS are disabled.
\\
Enables or disables the joint coding of chroma residuals.
%\ShortOption{\None} &
\Default{true} &
Enables or disables the sample adaptive offset (SAO) filter.
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
\Option{TestSAODisableAtPictureLevel} &
%\ShortOption{\None} &
\Default{false} &
Enables the testing of disabling SAO at the picture level after having analysed all blocks.
\\
\Option{SaoEncodingRate} &
%\ShortOption{\None} &
\Default{0.75} &
When >0 SAO early picture termination is enabled for luma and chroma.
\\
\Option{SaoEncodingRateChroma} &
%\ShortOption{\None} &
\Default{0.5} &
The SAO early picture termination rate to use for chroma (when m_SaoEncodingRate is >0). If <=0, use results for luma.
\\
\Option{SAOLcuBoundary} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables SAO parameter estimation using non-deblocked pixels
for LCU bottom and right boundary areas.
\\
\Option{SAOResetEncoderStateAfterIRAP} &
%\ShortOption{\None} &
\Default{false} &
When true, resets the encoder's SAO state after an IRAP (POC order).
\\
\Option{ConstrainedIntraPred} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables constrained intra prediction. Constrained intra
prediction only permits samples from intra blocks in the same slice as the
current block to be used for intra prediction.
\\
\Option{FastUDIUseMPMEnabled} &
%\ShortOption{\None} &
\Default{true} &
If enabled, adapt intra direction search, accounting for MPM
\\
\Option{FastMEForGenBLowDelayEnabled} &
%\ShortOption{\None} &
\Default{true} &
If enabled use a fast ME for generalised B Low Delay slices
\\
\Option{UseBLambdaForNonKeyLowDelayPictures} &
%\ShortOption{\None} &
\Default{true} &
Enables use of B-Lambda for non-key low-delay pictures
\\
\Option{TransquantBypassEnable} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the ability to bypass the transform,
quantization and filtering stages at CU level.
This option corresponds to the value of
transquant_bypass_enabled_flag that is transmitted in the PPS.
See CUTransquantBypassFlagForce for further details.
\\
\Option{CUTransquantBypassFlagForce} &
%\ShortOption{\None} &
\Default{0} &
Controls the per CU transformation, quantization and filtering
mode decision.
This option controls the value of the per CU cu_transquant_bypass_flag.
\par
\begin{tabular}{cp{0.45\textwidth}}
0 & Bypass is searched on a CU-by-CU basis and will be used if the cost is lower than not bypassing. \\
1 & Bypass is forced for all CUs. \\
\end{tabular}
This option has no effect if TransquantBypassEnable is disabled.
\\
\Option{PCMEnabledFlag} &
%\ShortOption{\None} &
\Default{false} &
Enables or disables the use of PCM. The encoder will use cost measures on a CU-by-CU basis to determine if PCM mode is to be applied.
\\
\Option{PCMLog2MaxSize} &