Skip to content

Commit

Permalink
Fixes broken links and formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
Darakuu committed Jan 11, 2024
1 parent 8b3369e commit 3b7304e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions content/05-Compressione Video.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Nel tempo sono emersi vari formati di compressione video, associati a diversi st
Tratteremo brevemente MPEG-1, 2 e 4, per poi approfondire più in dettaglio H.264.


> [!note] MP3 $\neq$ MPEG-3
> [!note] MP3 != MPEG-3
> Nota Bene: il popolare formato MP3 <ins>non è</ins> MPEG-3, che non è mai arrivato ad esistere ed è successivamente stato inglobato in MPEG-4, ma bensì **MPEG-1 Audio Layer III**
# Classificazione dei Frame
Expand All @@ -28,8 +28,11 @@ Per la compressione video, sfruttiamo la ridondanza temporale innata dei video.
## I-Frame

Intra, Indipendent Frames (alias: Key-Frames). 

I fotogrammi sono codificati senza alcun riferimento ad altri fotogrammi. Rappresentano perciò uno "snapshot" della scena in un determinato istante. 

Un I-Frame può essere generato da un encoder per creare un punto di accesso casuale: Ossia permettono ad un decodificatore di avviare il processo di decodifica in maniera corretta, partendo da zero in quella posizione del video. 

Gli encoder inseriscono periodicamente I-Frame in un flusso video proprio per avere dei punti di ancoraggio nel video.

> [!example] Accesso Casuale Video
Expand All @@ -54,11 +57,13 @@ In un flusso video, i P-Frames sono tipicamente posizionati in mezzo ad I-Frames
## B-Frame

Bidirectional Predicted, Bidirectional-dependent frames. 

Possono dipendere anche da frame successivi rispetto alla loro posizione, o in altre parole, dipendono da un intorno di frames.  

Hanno il miglior rapporto di compressione. 

Un B-Frame richiede la precedente decodifica di altri frames prima di essere decodificato. 

Può contenere gli stessi dati di un P-Frame.

Inserire in un fotogramma informazioni che si riferiscono ad un fotogramma successivo è possibile solo **alterando l'ordine** in cui i fotogrammi vengono archiviati all'interno del file video compresso.
Expand All @@ -77,29 +82,33 @@ Consideriamo la sequenza di frame (f) con relativi macroblocchi (ma):

![[05-Compressione Video-20240111183614933.webp|512]]

> [!example]- Esempio Memorizzazione (possibile domanda esame)
> i $\text{ma}$ del f1 sono tutti codificati come Intra-Frame
> i $\text{ma}$ del f2 cercheranno i blocchi simili nel f1 (I) e nel f4 (P)
> i $\text{ma}$ del f3 cercheranno i blocchi simili nel f1 (I) e nel f4 (P)
> i $\text{ma}$ del f4 cercheranno i blocchi simili nel f1 (I)
> i $\text{ma}$ del f5 cercheranno i blocchi simili nel f4 (P) e nel f7 (P)
> i $\text{ma}$ del f6 cercheranno i blocchi simili nel f4 (P) e nel f7 (P)
> i $\text{ma}$ del f7 cercheranno i blocchi simili nel f4 (P)
> i $\text{ma}$ del f8 cercheranno i blocchi simili nel f7 (P) e nel f10 (P)
> i $\text{ma}$ del f9 cercheranno i blocchi simili nel f7 (P) e nel f10 (P)
> i $\text{ma}$ del f10 cercheranno i blocchi simili nel f7
> i $\text{ma}$ del f11 cercheranno i blocchi simili nel f10 (P) e nel f13 (I)
> i $\text{ma}$ del f12 cercheranno i blocchi simili nel f10 (P) e nel f13 (I)
> i $\text{ma}$ del f13 sono tutti codificati come Intra-Frame.
> [!example]- Esempio Memorizzazione (possibile domanda esame):
> - i $\text{ma}$ del f1 sono tutti codificati come Intra-Frame
> - i $\text{ma}$ del f2 cercheranno i blocchi simili nel f1 (I) e nel f4 (P)
> - i $\text{ma}$ del f3 cercheranno i blocchi simili nel f1 (I) e nel f4 (P)
> - i $\text{ma}$ del f4 cercheranno i blocchi simili nel f1 (I)
> - i $\text{ma}$ del f5 cercheranno i blocchi simili nel f4 (P) e nel f7 (P)
> - i $\text{ma}$ del f6 cercheranno i blocchi simili nel f4 (P) e nel f7 (P)
> - i $\text{ma}$ del f7 cercheranno i blocchi simili nel f4 (P)
> - i $\text{ma}$ del f8 cercheranno i blocchi simili nel f7 (P) e nel f10 (P)
> - i $\text{ma}$ del f9 cercheranno i blocchi simili nel f7 (P) e nel f10 (P)
> - i $\text{ma}$ del f10 cercheranno i blocchi simili nel f7
> - i $\text{ma}$ del f11 cercheranno i blocchi simili nel f10 (P) e nel f13 (I)
> - i $\text{ma}$ del f12 cercheranno i blocchi simili nel f10 (P) e nel f13 (I)
> - i $\text{ma}$ del f13 sono tutti codificati come Intra-Frame. 
>
>
> La sequenza è conclusa.
Ma come fanno i frame B a riferirsi a frame che "devono ancora arrivare" nel flusso video? 

L'Encoder e il decoder processano i frame in ordine diverso da quello iniziale. I frame vengono riordinati per evitare di eseguire "salti" quando incontro B-Frame nel flusso video. 

La sequenza precedente viene infatti così riordinata:
![[05-Compressione Video-20240111184921379.webp|512]]

Come regola generale 'euristica', assolutamente non ufficiale e non verificata: I B-Frame vanno sempre dopo i frame da cui dipendono nel "futuro" nella sequenza iniziale. 
Come regola generale 'euristica', assolutamente non ufficiale e non verificata: I B-Frame vanno sempre dopo i frame da cui dipendono nel "futuro" nella sequenza iniziale.

In altre parole, sposto "di dietro" ai B-Frames i P-Frames e gli I-Frames.

# MPEG-1
Expand Down
Binary file not shown.
Binary file not shown.

0 comments on commit 3b7304e

Please sign in to comment.