- Notifications
You must be signed in to change notification settings - Fork2
Demonstrations for the interactive exploration of selected core concepts of audio, image and video processing as well as related topics
License
dustsigns/lecture-demos
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a collection of demonstrations byAndreas Unterweger originally designed for the lecturesMedia Technology andMedia Informatics at the Salzburg University of Applied Sciences. These demonstrations allow to interactively explore selected core concepts of audio, image and video processing as well as related topics.
The above image shows a screenshot of the2-D DCT decomposition demonstration. A fulllist of demonstrations is available.
Understanding the basics of multimedia signal processing can be challenging without multimedia-based aids. Thiscollection of demonstrations aims at assisting students in deepening their knowledge of selected core concepts by allowing them to interactively explore each concept individually.
Every demonstration (seefull list) comes with a description on how to use it as well as related background information. While additional information about configuration and customization options are provided, sample files (see below) are included and used by default. This way, the multimedia signal processing concepts can be explored without the need to find or craft adequate samples.
Note: All demonstrations are functional, but not all demonstrations are complete. Known issues and missing features are listed in the documentation (readme
files, see below) of the respective demonstration.
These demonstrations require
- A C++17 compiler, e.g., recent versions ofg++,
- OpenCV 4.8.0 withQT support and
pkg-config
support as well as thecontributed modulesviz
,stitching
andsfm
included (seerecommended build command), - libao 1.2.0 withALSA output for all audio-related demonstrations, and
- make,gdb andpkg-config.
- Xfce for correct window sizing and positioning due to limitations inOpenCV's andQT's APIs.
All demonstrations have been tested on a64-bitDebian 11.6.0 minimal system with a minimalXfce desktop environment and the following installed packages:build-essential
(forg++ 10.2.1 andmake),gdb
,pkg-config
,cmake
(only required for buildingOpenCV),qtbase5-dev
,qtchooser
,qt5-qmake
,qtbase5-dev-tools
(forQT 5.15.2),libvtk9-dev
(forVTK 9.0.1 which is required forOpenCV'sviz
module),libeigen3-dev
,libgflags-dev
,libgoogle-glog-dev
(all of which are required forOpenCV'ssfm
module) andlibasound2-dev
(forALSA).
Before building, make sure that all prerequisites (see above) are installed on your system. For build parameters, see below.
To build all demonstrations, callmake
from their root directory. To build all demonstrations in a particular folder, e.g.,video_compression
, callmake
from this directory. To build a single demonstration, e.g., theintra_prediction
demonstration from thevideo_compression
folder, callmake
with the name of the demonstration and the postfix.exe
from its directory, e.g.,make intra_prediction.exe
.
The following parameters allow changing advanced build options. They are optional and have reasonable defaults.
- Release mode: To disable debug builds (which are the default) and enable release builds (with optimizations enabled) instead, set the
DEBUG
flag to0
when invokingmake
, e.g.,make DEBUG=0
.Note: The build process does not track debug/release flags of individual files. It is not recommended to build different components with different values of theDEBUG
flag. Instead,make clean
should be called in the root folder to clean all intermediate files before switching from debug to release mode or vice versa. - Toolchain: The filecommon/tools.mak specifies variables for all build tools used to build the demonstrations. They can be changed either in this file (not recommended) or by setting the corresponding variables when invoking
make
, e.g.,make CXX=/usr/bin/g++-10
.
Note: Most of these demonstrations are designed for screen resolutions of 1680x1050 pixels or larger with standard font and window sizes. Make sure to increase your screen resolution, if necessary, to make all windows fully visible.
After building all or only selected demonstrations (see above), the generated.exe
files can be executed directly. Apart from basic usage information when called without (or the wrong number of) parameters,readme
files are available for all demonstrations, e.g.,video_compression/intra_prediction_readme.md contains a description of theintra_prediction
demonstration from thevideo_compression
folder. A fulllist of demonstrations is available.
For convenience, tailored default parameters and sample files (see below) are defined for each demonstration. They can be invoked via Makefile targets. Callmake
with the prefixtest_
and the name of the demonstration from its directory, e.g.,make test_intra_prediction
to execute theintra_prediction
demonstration in thevideo_compression
directory.
To show-case all demonstrations within a folder, i.e., to execute each of them with its respective tailored default parameters, callmake tests
from their directory. For convenience, thetests
target is also available in the demonstrations root directory. Callmake tests
there to show-case all demonstrations. Similarly, the targetordered_tests
is available which show-cases all demonstrations in the exact order in which they are used in the respective lecture. Callmake ordered_tests
to show-case all demonstrations in lecture order.
Notes: All demonstrations are based onOpenCV'shighgui
module and itsQT-specific extensions. This means that the demonstration windowsmust be closed by pressing a button on the keyboard. Trying to close the windows using theirx
(close) button willnot terminate the demonstration. Similarly, controls like buttons, check boxes and radio buttons are not visible in the windows by default, but can only be accessed through the configuration button (at the very right) in the top tool bar. The controls will be shown in a separate window which cannot be used to terminate the demonstration when pressing a button on the keyboard. These usability constraints are specific toOpenCV and not the demonstrations.
These demonstrations come with a set of sample files. They are located in thetestdata/ directory and grouped into subfolders by type. For each type, a file namedsources.txt
lists the source (URL) for all sample files and optional instructions on how to convert them to the format they are in. If there are no sample files in thetestdata/ directory, the instructions can be used to (re-)create them.Note: Some conversions require special software. For convenience, their Ubuntu package names are specified so that they can be installed before executing the commands.
These demonstrations and their documentation are provided under the3-Clause BSD License. If you use any part of them, please provide appropriate attribution. For details, see theLICENSE
file.Note: All data in thetestdata
folder is provided for convenience only and is licensed by third parties.
About
Demonstrations for the interactive exploration of selected core concepts of audio, image and video processing as well as related topics