-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path16-echantillonner.Rmd
242 lines (150 loc) · 7.37 KB
/
16-echantillonner.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# Échantillonner {#echantillonner}
## Compression du signal
```{r echo=F, fig.align="center", fig.cap ="Qualificatif de compression vidéo" }
DiagrammeR::mermaid("
graph TB
A[Signal vidéo]-->B[Non compressé]
A-->C[Compressé]
C-->D[Sans-perte]
C-->E[Destructivement]
D-->F[Intra Frame]
D-.->G[Inter Frame]
E-->F
E-->G
"
)
```
### Signal vidéo compressé vs non-compressé
#### Non compressé
##### Propriétés du signal non Compressé
* Sans perte
* Rapide pour effectuer des opérations graphique
* Utilise beaucoup de mémoire
$$
data rate = color depth * pixHorizontal * pixVertical * refresh frequency
$$
Se traduit vers :
$$
Débit = profondeur(bits) * résolutionHorizontale * résolutionVerticale * cadence
$$
Un signal **fullhd 60p** non compressé corresponds au calcul suivant :
$$
24 * 1920 * 1080 * 60 = 2.98 Gbit/s.
$$
L'exemple ci-haut correspond à un échantillonnage de 24 bits, une résolution de 1920 pixels horizontaux par 1080 pixels verticaux et une cadence de 60 image progressive par secondes.
##### Usages de la vidéo non-compressée
* https://en.wikipedia.org/wiki/Uncompressed_video
#### Compressé
Quand il y a compression, des instructions sont exécutées par le lecteur pour restituer l'image à temps.
La configuration de la compression vidéo est déterminée par différents facteurs
* L'usage
* La mémoire disponible
* La bande passante disponible
* La présence de circuit dédié (encodage/décodage matériel)
### Compression sans pertes vs destructive (lossless/lossy)
#### [Encodage vidéo sans perte - **lossless** ](https://en.wikipedia.org/wiki/List_of_codecs#Lossless_video_compression){target="_blank"}
La compression vise à réduire le poids.
Il est lourd d'écrire en détail chaque information.
```
[0xFFFFFF]
[0xFFFFFF]
[0xFFFFFF]
[0xFFFFFF]
[0xAA66EE]
```
On peut compresser sans perte en opérationnalisant la redondance d'informations adjacente.
```
4*[0xFFFFFF]
1*[0xAA66EE]
```
##### Caractéristiques:
* Volumineux
* Privilégié entre les opérations de rendu où l'intégrité de l'information est critique
* Généralement plus facile à mettre en mémoire graphique (GPU)
##### Usages
* Au sein d'un processus de production/post-production
##### Type de médias lossless
* Apple Animation (QuickTime RLE)
* CinemaDNG Raw (Adobe, Blackmagic)
* séquence d'images (tiff, openexr)
#### [Encodage vidéo destructif **lossy** ](https://en.wikipedia.org/wiki/List_of_codecs#Lossy_compression_2){target="_blank"}
L'idée ici est de soustraire/compresser de la manière la plus transparente possible l'information la moins pertinente.
Des méthodes soustractives oeuvrant sur notre incapacité de percevoir certains détails sont employées (psycho cognitive).
* Ex.: le MP3
* https://ledgernote.com/blog/q-and-a/how-does-mp3-compression-work/
La compression peut s'opérer au sein d'une image (**intraframe**) ou au sein d'une séquence d'image (**interframe**).
Méthode de compressions applicables;
##### [intraframe](http://users.cs.cf.ac.uk/Dave.Marshall/Multimedia/node248.html){target="_blank"}
* Toute l'image individuellement compressée dans chaque image.
* prores, dnxHD, photoJpeg, Apple intermediate codec (aic), cineform, Hap
* Utile quand la tête de lecture fait des accès aléatoires dans le temps
* Ex. Montage vidéo
* Généralement volumineux (chaque image du fichier vidéo existe )
##### [interframe](http://users.cs.cf.ac.uk/Dave.Marshall/Multimedia/node249.htmlhttps://en.wikipedia.org/wiki/Inter_frame){target="_blank"}
* image temporellement compressée, [ce qui change](http://dvd-hq.info/data_compression_3.php){target="_blank"}
* [images: I (clef), P (<-) et B(<->)](https://en.wikipedia.org/wiki/Video_compression_picture_types){target="_blank"}
* [GOP : group of picture](https://en.wikipedia.org/wiki/Inter_frame#/media/File:IPB_images_sequence.png){target="_blank"}
* Utile en lecture linéaire, du début vers la fin
* usage créatif de la compression
* [1](https://www.youtube.com/watch?v=rMSsw4CZvKg){target="_blank"}
* [2](https://www.youtube.com/watch?v=rSmEOk5AiN0){target="_blank"}
* [3](https://www.youtube.com/watch?v=dNa0-xrKi3Q){target="_blank"}
##### Type de compression destructive
* proRes, dnxHD, cineform [^1]
* H.264&VP8
* HEVC&VP9
* HAP & HAPQ
[^1]: Ces codecs sont généralement utilisés en postproduction et sont souvent confondus avec des **codecs lossless **.
Ces codecs ont différentes moutures capables de combler différents besoins, du proxy (très compressé) vers le très peu compressé avec canal alpha (4:4:4:4).
## Lexique de l'encodage {#lexique_encodage}
### Vocabulaire
#### Débit
Associé à la bande passante du signal, généralement exprimé en nombre de bits par seconde.
* 1 bit[b] = 1xbit
* 1 octet[byte][B] = 8xbits
* Mbit/s -> mégabit par seconde
* MBit/s -> mégaoctets (megabyte) par seconde
* [Débit (bitrate)](https://en.wikipedia.org/wiki/Bit_rate#Video){target="_blank"}
* http://what-when-how.com/introduction-to-video-and-image-processing/bits-bytes-and-binary-numbers-introduction-to-video-and-image-processing/
##### Calculer le poids (bitrate)
* [calcul de grosseur de fichier](https://toolstud.io/video/filesize.php?imagewidth=1920&imageheight=1080&framerate=29.97&timeduration=60&timeunit=seconds){target="_blank"}
* [calcul de bitrate](https://toolstud.io/video/bitrate.php?imagewidth=1&imageheight=1&colordepth=24&framerate=29.97){target="_blank"}
#### Canal alpha *Alpha channel*
Canal dédié à la transparence.
Sa présence permet de composer des images en préservant les attributs de transparence.
#### Profondeur d'échantillonnage
* Profondeur de l'échantillonnage couleur
* [bit/canal](https://en.wikipedia.org/wiki/Color_depth){target="_blank"}
* [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling#Sampling_systems_and_ratios){target="_blank"}
* [4:4:4 vs 4:2:2 vs 4:2:0](https://upload.wikimedia.org/wikipedia/commons/0/06/Colorcomp.jpg){target="_blank"}
* [4:4:4 vs 4:4:4:4](https://en.wikipedia.org/wiki/Alpha_compositing){target="_blank"}
## Encodage/décodage de fichiers {#lexique_fichiers}
L'encodage permet la lecture de fichiers et de flux vidéo.
L'encodage est déterminé par la configuration d'un codec dans un conteneur.
### Format d'encodage (Codecs)
|Codec | compression | usage |
| - | - | - |
| H.264&VP8 | intra & inter | lecture<1080p |
| HEVC&VP9 | intra & inter | lecture<4k |
| proRes | intra | montage |
| dnxHD | intra | montage |
| HAP | intra | GPU&SSD |
### Contenant (Containers)
| nom | extension |
| - | -|
| QuickTime | .mov |
| Matroska | .mkv |
| Mpeg4 | .mp4 |
| Windows Media Video | .wmv |
| Audio Video Interleaved | .avi |
| Theora | .ogv |
[wiki:Comparison_of_video_container_formats](https://en.wikipedia.org/wiki/Comparison_of_video_container_formats){target="_blank"}
### Formats de sauvegarde et archivage des médias
#### Présentations des codecs TIM
https://cmontmorency365.sharepoint.com/:p:/s/TIM-TTP/EZJO9E0y6idAql7kKqGyKFQB--xsTpIiWADt1-m3hnbBgg?e=UQXaWB
#### Pour aller plus loin
* pour des usages réguliers, voir :
* FFmpeg Cookbook for Archivists [@kromer_FFmpegCookbookArchivists_2020]
* FFmpeg Cookbook par Greg Wessels [@wessels_FFmpegCookbook_2017]
* pour usages artistiques :
* FFmpeg artschool [@associationofmovingimagearchivists_FFmpegArtschool_2020]