[FFmpeg-user] Glossary: Nyquist

Rodney Baker rodney.baker at iinet.net.au
Sun Oct 4 10:52:49 EEST 2020


On Sunday, 4 October 2020 7:13:20 ACDT Mark Filipak (ffmpeg) wrote:
> On 10/03/2020 02:05 PM, Anatoly wrote:
> > On Sat, 3 Oct 2020 11:05:03 -0400
> 
> -snip-
> 
> > You should learn than what spectrum is.
> 
> Oh, please. Be easy with me. I'm just a simple electrical engineer.
> 
> > And how any complex waveform
> > (with it's "information density") may be represented as a sum of many
> > simple sinewaves.
> 
> Ah, now that would be a Taylor series, no? It's been about 4-1/2 decades but
> I think it's a Taylor series.
> 
[...]

Fourier, not Taylor. All images are made up of sine waves. A Fourier transform 
is used to break down complex waveforms into their component sine waves. The 
highest frequency sine wave present determines the Nyquist frequency (which 
sets the minimum sample rate requirement for being able to accurately 
reproduce the original signal. 

The higher the maximum frequency, the more detail is present in the image, the 
higher the data bandwidth needed to transmit the raw image (ignoring image 
compression for the moment), and the more data needed to store that image. A 
video is simply a stream of related images (that may be an 
oversimplification), encoded, transmitted and decoded according to a 
predefined set of rules (the protocols). Whether that be using analogue 
(continuously variable) or digital (sampled, packetised, distcrete value unit) 
signals, the goal is to reproduce as accurately as possible to the viewer 
(where- and whenever that may be) the original scene. 

Saving on bandwidth and storage along the way is obviously beneficial, if that 
can be done without reducing the quality of reproduction below acceptable 
levels (and what defines acceptable levels is very much use-case dependent, 
and somewhat subjective). 

What I've been seeing here is that terms that have been well known in the 
analogue field since the invention of television (frames, fields, lines, scan 
rate, interlacing etc.) are re-used in the digital domain but are not 
necessarily always (or ever) equivalent in meaning. 

Mark, there's an excellent YouTube video by Zach Star that may or may not be 
helpful or useful to you, but is worth watching nevertheless. I'm not sure if 
it's OK to post the link here, but you'll find it if you google "Zach Star 
image compression". He also has some others on Fourier, z-Transforms and 
Laplace, all of which may be relevant to what you're seeking to better 
understand. 

BTW, I for one do appreciate your efforts. I also come from a background 
undertanding primarly analogue video, and havne't really delved deeply into 
the digital video side, other than to understand (roughly) how H264 video 
works (from a network optimisation perspective), due mainly to work 
requirements dealing with CCTV cameras and needing to optimise their operation 
across sometimes bandwidth-limited network links. As is common among open-
source projects (and this is an observation, not a criticism - I'm a believer 
in the open-source ethos), ffmpeg sorely needs user-focussed documentation, 
alongside (not replacing) what seems to be largely developer-focussed 
documentation. 

Producing that, though, really requires a dedicated documentaiton team, who 
are primarily users (not developers), working alongside the developers to 
understand the technical detail but present it in a technically-accurate (but 
not obtuse) way that makes sense to users and helps them to apply the software 
and use it to its full potential (at least, for their specific use-cases). 
This is much easier in a paid, corporate environment where those resources can 
be funded as part of the project budget (I've previously worked in such a 
team); it is not so easy in an open-source project such as ffmpeg where all 
contributors are volunteers doing it on their own time (most if not all having 
paid jobs doing other work). 

Cheers,
Rodney.

-- 
==============================================================
Rodney Baker VK5ZTV
rodney.baker at iinet.net.au
CCNA #CSCO12880208
==============================================================




More information about the ffmpeg-user mailing list