Skip to content

Commit 9ccd65d

Browse files
committed
vpXfamily: grammar and format fixes
1 parent b2988cf commit 9ccd65d

File tree

1 file changed

+67
-68
lines changed

1 file changed

+67
-68
lines changed

src/encoding/codecs/vpXfamily.md

Lines changed: 67 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
# Encoding for vp9/av1
22

3-
the vpX/aom family of codecs (vp8,vp9 and av1) are the standard for
3+
The vpX/aom family of codecs (vp8, vp9, and av1) are the standard for
44
royalty-free video encoding and have been for the past 10 years.
5-
the vpX/aom family of codecs is widely supported for playback
5+
The vpX/aom family of codecs is widely supported for playback
66
in all modern browsers (excluding safari, but with apple's entry
7-
into the alliance for open media this is expected to change)
7+
into the alliance for open media, this is expected to change)
88
and many hardware devices such as gaming consoles and phones.
9-
The second generation and third generation of vpX/aom family codecs
9+
The second and third generation of vpX/aom family codecs
1010
(vp9 and av1) provide better video quality at smaller file sizes
11-
compared to h.264 however av1's encoders have yet to reach the
12-
same maturity as x264 or x265 and so a comparison cannot
13-
yet be drawn between av1 and it's competitor h.265 on detail
14-
retention.
11+
than h.264. However, av1's encoders have yet to reach the
12+
same maturity as x264 or x265,
13+
so we cannot yet draw a comparison between av1 and its competitor h.265
14+
on detail retention.
1515

1616
libvpx is a mature, feature-complete, free, open-source encoder
17-
for the vp8/vp9 video formats which provides maximum
17+
for the vp8/vp9 video formats, providing maximum
1818
compression for vp9.
1919

2020
SVT-VP9 is a non-feature-complete, speed-optimized, free,
21-
open-source encoder for the vp9 video format which provides
22-
high-speed highly parallel encoding.
21+
open-source encoder for the vp9 video format, which provides
22+
high-speed, highly parallel encoding.
2323

2424
libaom is a feature-complete, free, open-source encoder
25-
for the av1 format and future formats in the family
26-
such as the currently in early development av2 format.
27-
On average libaom provides 20% better compression than h.265
28-
but due to lack of maturity can struggle at times with loss
29-
of detail.
25+
for the av1 format and future formats in the family,
26+
such as the av2 format (currently in early development).
27+
On average, libaom provides 20% better compression than h.265
28+
but can sometimes struggle with a loss of detail
29+
due to lack of maturity.
3030

3131
SVT-AV1 is a non-feature-complete, speed-optimized, free,
32-
open-source encoder for the av1 video format which provides
33-
high-speed highly parallel encoding. By aiming to provide
34-
lower levels of compression at a higher speed it has been able
35-
to reach a higher level of maturity quicker than libaom.
32+
open-source encoder for the av1 video format, which provides
33+
high-speed, highly parallel encoding.
34+
By aiming to provide lower levels of compression at a higher speed
35+
it has reached a higher level of maturity quicker than libaom.
3636

3737

3838
## Prerequisites
@@ -42,7 +42,7 @@ To get started, you'll need a few things:
4242
- A video to encode—for the examples,
4343
use a yuv file generated by VapourSynth,
4444
which you should be able to do
45-
if you've been following the previous sections of this guide
45+
if you've been following the previous sections of this guide.
4646
- Either libvpx and libaom or SVT-VP9 and SVT-AV1
4747

4848
Here's how we get a copy of these encoders:
@@ -54,7 +54,7 @@ libaom (git) may be built from source by downloading the sources using git-bash
5454
```
5555
git clone https://aomedia.googlesource.com/aom
5656
mkdir build
57-
cd build
57+
cd build
5858
cmake ../aom
5959
make
6060
```
@@ -88,35 +88,35 @@ Here are a few examples:
8888
## Getting Started
8989

9090
All four encoders are highly configurable,
91-
and the options will overwhelm you at first.
91+
and the options might overwhelm you at first.
9292
But we will provide you with some basic
9393
parameters and guidance to start with for your
9494
first encodes. The encoders in this family have
95-
most of their options named similarly to each other
96-
so for simplicity's sake we will use libvpx and
95+
most of their options named similarly to each other,
96+
so for simplicity's sake, we will use libvpx and
9797
libaom for these examples.
9898

9999
### On the topic of patent and copyright.
100100

101-
the vpX/aom family of codecs are royalty-free codecs,
101+
The vpX/aom family of codecs are royalty-free,
102102
meaning you do not have to pay to use technologies
103103
required to design, distribute or use a vpX/aom encoder
104-
or decoder. This differs from h.264 and h.265 which
105-
require payment for use of technologies required to
106-
design a h.264 or h.265 encoder or decoder.
104+
or decoder. This differs from h.264 and h.265,
105+
which require payment for the use of the technologies needed to
106+
design an h.264 or h.265 encoder or decoder.
107107

108-
Unfortunately because of this vpX/aom family codecs
109-
are best used in 2-pass mode (due to some technologies
108+
Unfortunately, because of this, vpX/aom family codecs
109+
are best used in two-pass mode due to some technologies
110110
required to provide a satisfactory single pass encoder
111-
being subject to patent royalties imposed by the mpeg
112-
group (the creators of h.264 and h.265)). As such all
113-
examples in this guide are 2-pass encodes.
111+
being subject to patent royalties imposed by the MPEG
112+
alliance (the creators of h.264 and h.265). As such,
113+
all examples in this guide are two-pass encodes.
114114

115115
### Example 1: General-Purpose Encoding with VP9
116116

117117
Open up a terminal window,
118118
and navigate to the folder
119-
where your VapourSynth script lives (for a 1080p or larger 16:9 video)
119+
where your VapourSynth script lives (for a 1080p or larger 16:9 video).
120120
Let's run the following commands:
121121

122122
```
@@ -132,7 +132,7 @@ Let's run through what each of these options means:
132132
##### `vspipe --y4m myvideo.vpy temp.y4m`
133133

134134
This portion loads your VapourSynth script
135-
and saves to temp.y4m
135+
and saves it to temp.y4m.
136136

137137
##### `--codec=vp9`
138138

@@ -142,12 +142,12 @@ be encoding using the vp9 codec.
142142

143143
##### `--passes=2`
144144

145-
This tells vpxenc that we're doing 2 pass encoding.
145+
This tells vpxenc that we're doing two-pass encoding.
146146

147147

148148
##### `--pass=X`
149149

150-
this tells vpxenc which pass we are performing.
150+
This tells vpxenc which pass we are performing.
151151

152152

153153
##### `--fpf=passdata.bin`
@@ -157,16 +157,16 @@ This tells vpxenc where to store the statistics used for the second pass.
157157

158158
##### `--row-mt=1`
159159

160-
This tells vpxenc to multithread on tile-rows, not just tile columns.
160+
This tells vpxenc to multithread on tile rows, not just tile columns.
161161
This is an important parameter because it greatly reduces encode time.
162162

163163

164164
##### `--cpu-used=X`
165165

166166
This is like x264's presets.
167-
It allows you to switch between faster encoding,
167+
It allows you to switch between faster encoding
168168
or higher quality.
169-
The full list of presets, mapped to their h.264 equivalents is
169+
The full list of presets mapped to their h.264 equivalents is
170170

171171
0. placebo
172172
1. veryslow
@@ -179,30 +179,29 @@ The full list of presets, mapped to their h.264 equivalents is
179179
8. superfast
180180
9. ultrafast
181181

182-
Unlike h.264 0 and 9 are reasonably useful if you want to get
183-
maximum compression (and don't care about encoding time) or
184-
maximum encoding speed (and don't care about getting good quality
185-
(realtime video for example)) respectively.
182+
Unlike with h.264, 0 and 9 are reasonably useful if you want to get
183+
maximum compression (and don't care about encoding time) or
184+
maximum encoding speed (and don't care about getting good quality
185+
(real-time video, for example)), respectively.
186186

187187
##### `--deadline best`
188188

189-
this instructs the encoder to be more strict about the quality of
190-
the encoding and not to move on until it is 100% satisfied with
191-
that frame.
189+
This instructs the encoder to be more strict about the encoding quality
190+
and to not move on until it is 100% satisfied with that frame.
192191

193192

194193
##### `--auto-alt-ref=2`
195194

196-
This is a option that determines how keyframes are chosen. If you
197-
are tuning for maximum playback compatability choose 1, if you are
198-
tuning for maximum quality choose 2.
195+
This is an option that determines how keyframes are chosen. If you
196+
are tuning for maximum playback compatibility, choose 1; if you are
197+
tuning for maximum quality, choose 2.
199198

200199

201200
##### `--lag-in-frames=25`
202201

203202
This option allows keyframes to be moved forward or back by this
204-
number of frames which allows for better keyframe placement.
205-
larger numbers like 25 are better suited for anime.
203+
number of frames, allowing for better keyframe placement.
204+
Larger numbers like 25 are better suited for anime.
206205

207206

208207
##### `--arnr-strength=0`
@@ -213,31 +212,31 @@ video with vapoursynth.
213212

214213
##### `--aq-mode=2`
215214

216-
This option tells the encoder to rely on how complex the motion
217-
of each frame is to determine the adaptive quantization. In
218-
other words, more motion in more directions equals more bits
215+
This option tells the encoder to rely on how complex
216+
each frame's motion is to determine the adaptive quantization.
217+
In other words, more motion in more directions equals more bits
219218
devoted to that frame.
220219

221220

222221
##### `--frame-parallel=0`
223222

224-
This option allows for parallel decoding of the video, it reduces
225-
quality so we disable it.
223+
This option allows for parallel video decoding, reducing quality,
224+
so we disable it.
226225

227226

228227
##### `--tile-columns=2` and `--tile-rows=1`
229228

230229
These options determine how the encoder breaks up the frame into
231-
chunks for encoding. The more chunks the more threads can be used
230+
chunks for encoding. The more chunks, the more threads can be used
232231
for encoding. One important note here is that the values of this
233-
parameter are in the form of $$2^{x}$$ meaning that the number of
234-
columns and rows with these values is actually 4 and 2
232+
parameter are in the form of \\(2^{x}\\), meaning that the number of
233+
columns and rows with these values is actually 4 and 2,
235234
respectively. Tiles cannot be smaller than 65536 pixels in area.
236235

237236

238237
##### `--threads=8`
239238

240-
Self explanitory. Set this to the number of threads your cpu has.
239+
Self-explanatory. Set this to the number of threads your CPU has.
241240

242241

243242
##### `--end-usage=vbr`
@@ -254,14 +253,14 @@ Set the average quantizer level.
254253

255254
This last portion tells which files to use for the input and output.
256255
We use `-o` to tell which filename to write the encoded file to.
257-
In the first case, vpxenc will write a file at `/dev/null` which is
258-
the null device on posix systems (meaning no file will be written
259-
for the first pass (if you're on windows simply use the filename nul
260-
instead)). In the second pass we write an ivf to `myvideo.ivf` in the
256+
In the first case, vpxenc will write a file at `/dev/null`,
257+
the null device on POSIX systems (meaning no file will be written
258+
for the first pass (if you're on windows, use the filename nul
259+
instead)). In the second pass, we write an ivf to `myvideo.ivf` in the
261260
current working directory.
262261

263262
The last argument we are passing to vpxenc is the input file.
264-
As we are doing a two pass encode it is more efficient to save the
263+
As we are doing a two-pass encode, it is more efficient to save the
265264
output of vapoursynth then run the encode on that instead of running
266265
vapoursynth twice.
267266

@@ -275,7 +274,7 @@ TODO
275274
We covered the basics of how to encode using the vpX/aom family of
276275
codecs, including speed presets.
277276

278-
Here is a summary of when to use vp9 vs AV1 (please note these are
277+
Here is a summary of when to use vp9 vs. AV1 (please note these are
279278
recommendations, you do not have to follow them):
280279

281280
- Is your source larger than Full HD?

0 commit comments

Comments
 (0)