L'algorithme MPEG-2 a été dessiné pour avoir une qualité pas inférieure à celle de NTSC/PAL et plus grande que celle du CCIR 60.
À la base, l'algorithme de MPEG-2 est identique à celui de MPEG-1 et il est donc compatible avec lui. Chaque décodeur MPEG-2 doit être capable de décoder un flux vidéo MPEG-1 valide. Plusieurs algorithmes ont été ajoutés pour s'adapter aux nouveaux besoins. MPEG-2 permet de traiter des images entrelacées.
MPEG-2 introduit le concept de « profils » et de « niveaux » pour être compatible avec les systèmes qui n'implémentent pas toutes ces fonctionnalités.
Chaque niveau spécifie la plage des différents paramètres utiles pour le codage.
Le niveau principal supporte au maximum une densité de 720 pixels en horizontal et 576 pixels en vertical, un débit d'images par seconde de 30 trames/sec et un débit de bit par seconde de 15 Mbit/s.
La combinaison des techniques de prédiction compensée de mouvement et de la transformation DCT peuvent être définies comme les éléments clé de la compression vidéo de type MPEG. Un troisième élément caractéristique est que ces techniques sont utilisées pour des petits blocs d'image (souvent 16x16 pixels pour la compensation de mouvement et 8x8 pixels pour le codage DCT).
Pour ces raisons le codage MPEG est référé aux algorithmes hybrides DPCM/DCT.
La technique de compression de base de MPEG-1 (et de MPEG-2) est basée sur une structure de macro-blocs. L'algorithme code la première trame d'une séquence avec un codage Intra-frame (trame I). Chaque trame successive est codée en utilisant la prédiction Inter-frame (trames P); seulement les données de la trame codée juste précédemment (trames I ou P) seront utilisées pour la prédiction. Chaque couleur d'une trame est partitionné en macro-blocs.
Chaque macro-bloc contient les données sur la luminosité et de la chrominance: 4 blocs de luminosité (Y1,Y2,Y3,Y4) et deux pour la chrominance (U,V), chacun de 8x8 pixels; ce qui donne un rapport entre luminosité et chrominance de 4 : 1 : 1
La première trame d'une séquence vidéo (trame I) est encodé avec le mode Intra-frames sans aucune référence sur des trames passées ou futures. À l'encodeur la DCT est appliquée sur chaque bloc 8x8 de luminosité et de chrominance, chacun des 64 coefficients DCT sont quantifiés uniformément (Q). Après quantification, le coefficient plus petit (coefficient DC) est traité différemment par rapport aux autres (coefficients AC). Le coefficient DC corresponde a l'intensité moyenne du bloc et il est encodé avec une méthode de prédiction différentielle DC. Le reste des coefficients non nuls sont ensuite codés en zigzag comme dans le codage JPEG.
Le décodeur effectue l'opération inverse. Il commence par extraire et décoder les données des différents coefficients DCT pour chaque bloc. Avec la reconstruction (Q*) des coefficients non nuls il fait la DCT inverse (DCT-1) et les valeurs de quantification des pixels des blocs sont reconstituées. Toutes les blocs de chaque image sont décodés et reconstitués.
Pour coder les trames P, les trames précédents N-1(trames I ou P) sont mémorisées temporairement dans FS (frame store). La compensation de mouvement (MC) est effectué sur la base des macro-blocs. Un buffer vidéo (VB) est nécessaire pour assurer un débit constant de flux vidéo.
Conditions de remplissement
Une caractéristique apporté par l'algorithme MPEG-1 est la possibilité de mettre à jour les informations des macro-blocs au décodeur seulement si nécessaire (si le contenu d'un bloc est changé par rapport au contenu du même bloc de l'image précédente). La clé pour un codage efficient des séquences vidéo avec un faible débit de bits par seconde est le bon choix de l'algorithme de prédiction. Le MPEG standard distingue principalement trois différents méthodes (types MB):
Pour accéder à un support média, l'algorithme MPEG-1 fut pensé pour supporter différentes fonctionnalités comme l'accès aléatoire, la recherche en vitesse avant (FF-fast forward) et arrière (FR-fast reverse) dans le flux vidéo, etc.
Pour incorporer ces fonctionnalités et pour tirer plus d'avantage de la compensation de mouvement et de l'interpolation de mouvement, l'algorithme MPEG-1 introduit le concept d'images prédictées et interpolées bidirectionnellement (trames B).
Trois types de trames sont considérées :
L'utilisateur peut arranger la séquence des différents types de trame selon le besoins de l'application. Généralement une séquence vidéo codée en utilisant seulement des trames I (I I I I I . . .) donne un haut degré d'accès aléatoire, de FF/FR et d’édition, mais un taux très bas de compression. Une séquence vidéo codée seulement avec des trames P ( I P P P P P P I P P P P . . .) permet un degré moyen d'accès aléatoire et de FF/FR.
Si on utilise les trois types de trames (I B B P B B P B B I B B P . . .) on arrive à un grand taux de compression et un raisonnable degré d'accès aléatoire et de FF/FR, mais on augmente beaucoup le temps de codage. Pour des applications comme la vidéotéléphonie ou la vidéoconférence ce temps peut devenir intolérable.