Qualcuno può spiegare in modo semplice e chiaro come funziona MPEG4 per comprimere i dati. Sono principalmente interessato al video. So che ci sono diversi standard o parti. Sto solo cercando il metodo di compressione generale predominante, se ce n'è uno con MPEG4.Come funziona la compressione MPEG4?
risposta
MPEG-4 è un enorme standard e impiega molte tecniche per ottenere le alte percentuali di compressione di cui è capace.
In generale, la compressione video si occupa di eliminare quante più informazioni possibili, pur avendo un impatto minimo sull'esperienza di visualizzazione per un utente finale. Ad esempio, utilizzando YUV sottocampionato anziché RGB, le dimensioni del video vengono tagliate a metà immediatamente. Ciò è possibile in quanto l'occhio umano è meno sensibile al colore rispetto alla luminosità. In YUV, il valore Y è luminosità, mentre i valori U e V rappresentano il colore. Pertanto, è possibile eliminare alcune informazioni sul colore che riducono le dimensioni del file, senza che l'osservatore possa notare alcuna differenza.
Successivamente, la maggior parte delle tecniche di compressione sfrutta in particolare 2 ridondanze. Il primo è la ridondanza temporale e il secondo è la ridondanza spaziale.
Note di ridondanza temporale che i fotogrammi successivi in una sequenza video sono molto simili. In genere un video dovrebbe essere nell'ordine di 20-30 fotogrammi al secondo e non cambia molto in 1/30 di secondo. Prendere qualsiasi DVD e metterlo in pausa, quindi spostarlo su un fotogramma e notare quanto siano simili le 2 immagini. Quindi, invece di codificare ogni frame in modo indipendente, MPEG-4 (e altri standard di compressione) codifica solo la differenza tra frame successivi (usando motion estimation per trovare la differenza tra i frame)
La ridondanza spaziale trae vantaggio dal fatto che in generale il il colore diffuso tra le immagini tende ad essere piuttosto basso. Con questo intendo che i pixel vicini tendono ad avere colori simili. Ad esempio, in un'immagine di te che indossa un ponticello rosso, tutti i pixel che rappresentano il tuo ponticello avranno colori molto simili. È possibile utilizzare il DCT per trasformare i valori dei pixel nello spazio di frequenza, dove alcune informazioni ad alta frequenza possono essere gettate via. Quindi, quando viene eseguito il DCT inverso (durante la decodifica), l'immagine è ora senza le informazioni ad alta frequenza gettate via.
Per visualizzare gli effetti del lancio di informazioni ad alta frequenza, aprire la pittura MS e tracciare una serie di linee nere orizzontali e verticali sovrapposte. Salva l'immagine come JPEG (che usa anche DCT per la compressione). Ora ingrandisci lo schema, nota come i bordi delle linee non sono più nitidi e sono piuttosto sfocati. Questo perché alcune informazioni ad alta frequenza (la transizione dal nero al bianco) sono state gettate via durante la compressione.Read this for an explanation with nice pictures
Per ulteriori informazioni, this book è abbastanza buono, anche se un po 'pesante sulla matematica.
MPEG4 utilizza una varietà di tecniche per comprimere il video.
Se non hai già guardato wikipedia, questo sarebbe un buon starting point.
C'è anche questo articolo dal IEEE che spiega queste tecniche in modo più dettagliato.
Come qualsiasi altro codec video popolare, MPEG4 utilizza una variazione di discrete cosine transform e una varietà di tecniche di compensazione del movimento (a cui si può pensare come previsione del movimento se ciò aiuta) che riducono la quantità di dati necessari per i fotogrammi successivi. This page ha una panoramica di ciò che viene fatto da semplice MPEG4.
Non è del tutto diverso dalle tecniche utilizzate da JPEG.
I bordi affilati certamente DO contengono alte frequenze. Ridurre o eliminare le alte frequenze riduce la nitidezza dei bordi. I dettagli precisi, compresi gli spigoli vivi, vengono rimossi con la rimozione ad alta frequenza - la possibilità di risolvere 2 piccoli oggetti viene rimossa con le alte frequenze - quindi ne vedi una sola.
- 1. Come funziona la compressione del file Zip?
- 2. La compressione dinamica non funziona IIS 7.5
- 3. Perché la compressione gzip con Internet Explorer non funziona?
- 4. La compressione della risposta di avvio di primavera non funziona
- 5. CollapsingToolbarLayout non funziona (compressione) durante lo scorrimento
- 6. Come implementare la compressione GZip in ASP.NET?
- 7. Come abiliti la compressione gzip per favicon.ico?
- 8. bund di Asp.net mvc. La combinazione funziona bene. Ma la compressione e la minimizzazione non funzionano
- 9. iOS supporta la compressione TLS?
- 10. Rileva MPEG4/H264 I-Frame (IDR) nel flusso RTP
- 11. Perché Safari non accetta la compressione GZIP?
- 12. Vuoi abilitare la compressione GZip in Weblogic
- 13. Compressione IIS
- 14. resistenza di compressione e compressione nelle viste nidificate
- 15. mantenendo orientamento dell'immagine dopo la compressione
- 16. Opzioni per la compressione di YAML durante la visualizzazione?
- 17. Problemi con la compressione in javascript
- 18. la compressione e decompressione stringa con Sgonfiare
- 19. Algoritmi per la compressione dei tentativi impostati
- 20. La compressione bitmap non modifica la dimensione byte bitmap
- 21. Come disabilitare la compressione sul lato git del server?
- 22. Come attivare la compressione gzip per il sito symfony2?
- 23. Come specificare il bitrate per la compressione JPEG?
- 24. Come rilevare la compressione JPEG senza perdita di dati?
- 25. Come abilitare la compressione sui canali di Phoenix?
- 26. Come posso disabilitare la compressione jar in sbt usando sbtassembly?
- 27. compressione componente
- 28. Cercare la libreria che implementa la compressione/decompressione LZW
- 29. Come funziona la sessione?
- 30. Come funziona l'algoritmo GZip?
Gli spigoli vivi non sono ad alta frequenza, perché non si ripetono. Sono in realtà una somma di ogni frequenza in una volta, motivo per cui la compressione DCT e alcuni resizer dell'immagine aggiungono rumore attorno alle linee anziché sfocarle. –
Va aggiunto che DCT (Discrete Cosine Transform) non viene eseguito sull'intera immagine. L'immagine è suddivisa in blocchi 8x8 o 16x16 pixel e il DCT viene eseguito su ciascun blocco. Questo perché le prestazioni DCT diminuiscono rapidamente per immagini più grandi. Poiché MPEG deve essere trasmesso in streaming, la decodifica deve essere molto veloce. – rcz