# gabilodeau/inf8770 architecture

> Architecture diagram of the GitHub repository gabilodeau/inf8770, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gabilodeau/inf8770
- Repository: https://github.com/gabilodeau/inf8770

## Overview

INF8770 is a collection of Jupyter notebook examples for a multimedia technologies course, rather than a single application pipeline. The principal workflow is a learner opening and running a notebook to explore a specific multimedia technique. The graph preserves the README’s notebook-based format and the major topic areas visible in the tree; source excerpts were limited, so it does not infer calls between notebooks or links from sample media files.

Main entry points: [`Caracteristiques acoustiques.ipynb`](https://github.com/gabilodeau/inf8770/blob/master/Caracteristiques%20acoustiques.ipynb) (Acoustic features), [`Calcul spectrogramme.ipynb`](https://github.com/gabilodeau/inf8770/blob/master/Calcul%20spectrogramme.ipynb) (Spectrograms), [`detect_peaks.py`](https://github.com/gabilodeau/inf8770/blob/master/detect_peaks.py) (Peak detection), [`Gradients et extraction d'aretes sur une image.ipynb`](https://github.com/gabilodeau/inf8770/blob/master/Gradients%20et%20extraction%20d'aretes%20sur%20une%20image.ipynb) (Image gradients)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_audio["Audio and signals"]
  node_acoustic["Acoustic features"]
  node_spectrogram["Spectrograms"]
  node_peaks["Peak detection<br/>[detect_peaks.py]"]
end

subgraph group_images["Image processing"]
  node_gradients["Image gradients"]
  node_matrix_gradients["Matrix gradients"]
  node_frequencies["Image frequencies"]
  node_surface["Image surface"]
  node_quality["Image quality"]
  node_dct["DCT and quantization"]
  node_kl["KL transform"]
  node_wavelets["Wavelet transform"]
  node_block_filter["Deblocking filter"]
  node_floyd_image["Floyd–Steinberg image"]
  node_floyd_matrix["Floyd–Steinberg matrix"]
end

subgraph group_compression["Coding and compression"]
  node_pcm["PCM coding<br/>[Codage PCM.ipynb]"]
  node_delta["Delta modulation"]
  node_huffman["Huffman coding"]
  node_golomb["Golomb–Rice coding"]
  node_arithmetic["Arithmetic coding"]
  node_lz77["LZ77 coding<br/>[Codage LZ77.ipynb]"]
  node_lzw["LZW coding<br/>[Codage LZW.ipynb]"]
  node_byte_pairs["Byte-pair coding"]
  node_run_length["Run-length coding"]
  node_predictive_image["Predictive image coding"]
  node_mu_law["Mu-law effect"]
end

subgraph group_vision["Vision and video"]
  node_sift["SIFT descriptors"]
  node_gaussians["Difference of Gaussians"]
  node_mean_shift["Mean-shift tracking"]
  node_cross_correlation["Cross-correlation"]
  node_mask_rcnn["Mask R-CNN<br/>[Mask_RCNN.ipynb]"]
  node_fade["Crossfade"]
  node_overlay["Image overlay<br/>[Incrustation.ipynb]"]
end

node_learner(("Learner"))

node_learner -->|"explores"| node_acoustic
node_learner -->|"explores"| node_spectrogram
node_learner -->|"explores"| node_peaks
node_learner -->|"explores"| node_gradients
node_learner -->|"explores"| node_matrix_gradients
node_learner -->|"explores"| node_frequencies
node_learner -->|"explores"| node_surface
node_learner -->|"explores"| node_quality
node_learner -->|"explores"| node_dct
node_learner -->|"explores"| node_kl
node_learner -->|"explores"| node_wavelets
node_learner -->|"explores"| node_block_filter
node_learner -->|"explores"| node_floyd_image
node_learner -->|"explores"| node_floyd_matrix
node_learner -->|"explores"| node_pcm
node_learner -->|"explores"| node_delta
node_learner -->|"explores"| node_huffman
node_learner -->|"explores"| node_golomb
node_learner -->|"explores"| node_arithmetic
node_learner -->|"explores"| node_lz77
node_learner -->|"explores"| node_lzw
node_learner -->|"explores"| node_byte_pairs
node_learner -->|"explores"| node_run_length
node_learner -->|"explores"| node_predictive_image
node_learner -->|"explores"| node_mu_law
node_learner -->|"explores"| node_sift
node_learner -->|"explores"| node_gaussians
node_learner -->|"explores"| node_mean_shift
node_learner -->|"explores"| node_cross_correlation
node_learner -->|"explores"| node_mask_rcnn
node_learner -->|"explores"| node_fade
node_learner -->|"explores"| node_overlay

click node_acoustic "https://github.com/gabilodeau/inf8770/blob/master/Caracteristiques%20acoustiques.ipynb"
click node_spectrogram "https://github.com/gabilodeau/inf8770/blob/master/Calcul%20spectrogramme.ipynb"
click node_peaks "https://github.com/gabilodeau/inf8770/blob/master/detect_peaks.py"
click node_gradients "https://github.com/gabilodeau/inf8770/blob/master/Gradients%20et%20extraction%20d'aretes%20sur%20une%20image.ipynb"
click node_matrix_gradients "https://github.com/gabilodeau/inf8770/blob/master/Gradients%20sur%20matrice.ipynb"
click node_frequencies "https://github.com/gabilodeau/inf8770/blob/master/Image%20et%20frequences.ipynb"
click node_surface "https://github.com/gabilodeau/inf8770/blob/master/ImageCommeSurface.ipynb"
click node_quality "https://github.com/gabilodeau/inf8770/blob/master/Evaluation%20de%20la%20qualite%20des%20images.ipynb"
click node_dct "https://github.com/gabilodeau/inf8770/blob/master/Transformee%20DCT%20et%20quantification.ipynb"
click node_kl "https://github.com/gabilodeau/inf8770/blob/master/Transformee%20KL%20sur%20image.ipynb"
click node_wavelets "https://github.com/gabilodeau/inf8770/blob/master/Transformee%20en%20ondelettes.ipynb"
click node_block_filter "https://github.com/gabilodeau/inf8770/blob/master/FiltreAntiBlocs.ipynb"
click node_floyd_image "https://github.com/gabilodeau/inf8770/blob/master/Floyd-Steinberg%20sur%20image.ipynb"
click node_floyd_matrix "https://github.com/gabilodeau/inf8770/blob/master/Floyd-Steinberg%20sur%20matrice.ipynb"
click node_pcm "https://github.com/gabilodeau/inf8770/blob/master/Codage%20PCM.ipynb"
click node_delta "https://github.com/gabilodeau/inf8770/blob/master/Codage%20modulation%20delta.ipynb"
click node_huffman "https://github.com/gabilodeau/inf8770/blob/master/Codage%20Huffman.ipynb"
click node_golomb "https://github.com/gabilodeau/inf8770/blob/master/Codage%20Golomb-Rice.ipynb"
click node_arithmetic "https://github.com/gabilodeau/inf8770/blob/master/Codage%20arithmetique.ipynb"
click node_lz77 "https://github.com/gabilodeau/inf8770/blob/master/Codage%20LZ77.ipynb"
click node_lzw "https://github.com/gabilodeau/inf8770/blob/master/Codage%20LZW.ipynb"
click node_byte_pairs "https://github.com/gabilodeau/inf8770/blob/master/Codage%20par%20paires%20d'octets.ipynb"
click node_run_length "https://github.com/gabilodeau/inf8770/blob/master/Codage%20par%20plage.ipynb"
click node_predictive_image "https://github.com/gabilodeau/inf8770/blob/master/Codage%20predictif%20sur%20image.ipynb"
click node_mu_law "https://github.com/gabilodeau/inf8770/blob/master/Effet%20de%20la%20loi%20mu.ipynb"
click node_sift "https://github.com/gabilodeau/inf8770/blob/master/Descripteurs%20SIFT.ipynb"
click node_gaussians "https://github.com/gabilodeau/inf8770/blob/master/Differences%20de%20Gaussiennes.ipynb"
click node_mean_shift "https://github.com/gabilodeau/inf8770/blob/master/Suivi%20mean-shift.ipynb"
click node_cross_correlation "https://github.com/gabilodeau/inf8770/blob/master/Utilisation%20de%20la%20correlation%20croisee.ipynb"
click node_mask_rcnn "https://github.com/gabilodeau/inf8770/blob/master/Mask_RCNN.ipynb"
click node_fade "https://github.com/gabilodeau/inf8770/blob/master/Fondu%20enchaine.ipynb"
click node_overlay "https://github.com/gabilodeau/inf8770/blob/master/Incrustation.ipynb"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_acoustic,node_spectrogram,node_peaks toneBlue
class node_gradients,node_matrix_gradients,node_frequencies,node_surface,node_quality,node_dct,node_kl,node_wavelets,node_block_filter,node_floyd_image,node_floyd_matrix toneAmber
class node_pcm,node_delta,node_huffman,node_golomb,node_arithmetic,node_lz77,node_lzw,node_byte_pairs,node_run_length,node_predictive_image,node_mu_law toneMint
class node_sift,node_gaussians,node_mean_shift,node_cross_correlation,node_mask_rcnn,node_fade,node_overlay toneRose
class node_learner toneIndigo
```

## Components

### Audio and signals

- [Acoustic features](https://github.com/gabilodeau/inf8770/blob/master/Caracteristiques%20acoustiques.ipynb): `Caracteristiques acoustiques.ipynb`
- [Spectrograms](https://github.com/gabilodeau/inf8770/blob/master/Calcul%20spectrogramme.ipynb): `Calcul spectrogramme.ipynb`
- [Peak detection](https://github.com/gabilodeau/inf8770/blob/master/detect_peaks.py): `detect_peaks.py`

### Image processing

- [Image gradients](https://github.com/gabilodeau/inf8770/blob/master/Gradients%20et%20extraction%20d'aretes%20sur%20une%20image.ipynb): `Gradients et extraction d'aretes sur une image.ipynb`
- [Matrix gradients](https://github.com/gabilodeau/inf8770/blob/master/Gradients%20sur%20matrice.ipynb): `Gradients sur matrice.ipynb`
- [Image frequencies](https://github.com/gabilodeau/inf8770/blob/master/Image%20et%20frequences.ipynb): `Image et frequences.ipynb`
- [Image surface](https://github.com/gabilodeau/inf8770/blob/master/ImageCommeSurface.ipynb): `ImageCommeSurface.ipynb`
- [Image quality](https://github.com/gabilodeau/inf8770/blob/master/Evaluation%20de%20la%20qualite%20des%20images.ipynb): `Evaluation de la qualite des images.ipynb`
- [DCT and quantization](https://github.com/gabilodeau/inf8770/blob/master/Transformee%20DCT%20et%20quantification.ipynb): `Transformee DCT et quantification.ipynb`
- [KL transform](https://github.com/gabilodeau/inf8770/blob/master/Transformee%20KL%20sur%20image.ipynb): `Transformee KL sur image.ipynb`
- [Wavelet transform](https://github.com/gabilodeau/inf8770/blob/master/Transformee%20en%20ondelettes.ipynb): `Transformee en ondelettes.ipynb`
- [Deblocking filter](https://github.com/gabilodeau/inf8770/blob/master/FiltreAntiBlocs.ipynb): `FiltreAntiBlocs.ipynb`
- [Floyd–Steinberg image](https://github.com/gabilodeau/inf8770/blob/master/Floyd-Steinberg%20sur%20image.ipynb): `Floyd-Steinberg sur image.ipynb`
- [Floyd–Steinberg matrix](https://github.com/gabilodeau/inf8770/blob/master/Floyd-Steinberg%20sur%20matrice.ipynb): `Floyd-Steinberg sur matrice.ipynb`

### Coding and compression

- [PCM coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20PCM.ipynb): `Codage PCM.ipynb`
- [Delta modulation](https://github.com/gabilodeau/inf8770/blob/master/Codage%20modulation%20delta.ipynb): `Codage modulation delta.ipynb`
- [Huffman coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20Huffman.ipynb): `Codage Huffman.ipynb`
- [Golomb–Rice coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20Golomb-Rice.ipynb): `Codage Golomb-Rice.ipynb`
- [Arithmetic coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20arithmetique.ipynb): `Codage arithmetique.ipynb`
- [LZ77 coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20LZ77.ipynb): `Codage LZ77.ipynb`
- [LZW coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20LZW.ipynb): `Codage LZW.ipynb`
- [Byte-pair coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20par%20paires%20d'octets.ipynb): `Codage par paires d'octets.ipynb`
- [Run-length coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20par%20plage.ipynb): `Codage par plage.ipynb`
- [Predictive image coding](https://github.com/gabilodeau/inf8770/blob/master/Codage%20predictif%20sur%20image.ipynb): `Codage predictif sur image.ipynb`
- [Mu-law effect](https://github.com/gabilodeau/inf8770/blob/master/Effet%20de%20la%20loi%20mu.ipynb): `Effet de la loi mu.ipynb`

### Vision and video

- [SIFT descriptors](https://github.com/gabilodeau/inf8770/blob/master/Descripteurs%20SIFT.ipynb): `Descripteurs SIFT.ipynb`
- [Difference of Gaussians](https://github.com/gabilodeau/inf8770/blob/master/Differences%20de%20Gaussiennes.ipynb): `Differences de Gaussiennes.ipynb`
- [Mean-shift tracking](https://github.com/gabilodeau/inf8770/blob/master/Suivi%20mean-shift.ipynb): `Suivi mean-shift.ipynb`
- [Cross-correlation](https://github.com/gabilodeau/inf8770/blob/master/Utilisation%20de%20la%20correlation%20croisee.ipynb): `Utilisation de la correlation croisee.ipynb`
- [Mask R-CNN](https://github.com/gabilodeau/inf8770/blob/master/Mask_RCNN.ipynb): `Mask_RCNN.ipynb`
- [Crossfade](https://github.com/gabilodeau/inf8770/blob/master/Fondu%20enchaine.ipynb): `Fondu enchaine.ipynb`
- [Image overlay](https://github.com/gabilodeau/inf8770/blob/master/Incrustation.ipynb): `Incrustation.ipynb`

### Other components

- **Learner**

## Connections

- Learner → Acoustic features: explores
- Learner → Spectrograms: explores
- Learner → Peak detection: explores
- Learner → Image gradients: explores
- Learner → Matrix gradients: explores
- Learner → Image frequencies: explores
- Learner → Image surface: explores
- Learner → Image quality: explores
- Learner → DCT and quantization: explores
- Learner → KL transform: explores
- Learner → Wavelet transform: explores
- Learner → Deblocking filter: explores
- Learner → Floyd–Steinberg image: explores
- Learner → Floyd–Steinberg matrix: explores
- Learner → PCM coding: explores
- Learner → Delta modulation: explores
- Learner → Huffman coding: explores
- Learner → Golomb–Rice coding: explores
- Learner → Arithmetic coding: explores
- Learner → LZ77 coding: explores
- Learner → LZW coding: explores
- Learner → Byte-pair coding: explores
- Learner → Run-length coding: explores
- Learner → Predictive image coding: explores
- Learner → Mu-law effect: explores
- Learner → SIFT descriptors: explores
- Learner → Difference of Gaussians: explores
- Learner → Mean-shift tracking: explores
- Learner → Cross-correlation: explores
- Learner → Mask R-CNN: explores
- Learner → Crossfade: explores
- Learner → Image overlay: explores
