Partager via


Méthodes d’encodage (Microsoft Media Foundation)

La plupart des codecs Audio et Vidéo Windows Media prennent en charge plusieurs méthodes d’encodage. Savoir comment et quand utiliser chaque méthode peut vous aider à créer du contenu compressé de haute qualité.

Les méthodes d’encodage se concentrent toutes sur la mémoire tampon utilisée par le décodeur pour gérer les données d’entrée compressées. Cette mémoire tampon est définie par la vitesse de transmission du flux, en bits par seconde, et par la fenêtre de mémoire tampon, en millisecondes. Lors de l’encodage, le codec respecte les contraintes de la mémoire tampon. Pour plus d’informations sur la mémoire tampon, consultez The Leaky Bucket Buffer Model.

Encodage à débit binaire constant

La vitesse de transmission de tout flux encodé par l’un des codecs Audio et Vidéo Windows Media n’est pas constante. L’encodage à débit binaire constant (CBR) est donc un terme quelque peu trompeur. La caractéristique distinctive d’un flux encodé en CBR est une petite fenêtre de mémoire tampon, qui limite la variation des tailles d’échantillons. L’encodage CBR est principalement utilisé pour le contenu diffusé sur un réseau vers sa destination. Dans un tel scénario, il est important de pouvoir compter sur une utilisation cohérente de la bande passante.

Du point de vue de la configuration, l’encodage CBR diffère des autres modes en ce sens qu’avant de commencer à encoder, vous définissez à la fois le débit binaire moyen du contenu de sortie et la fenêtre de mémoire tampon qui s’applique à ce débit. Dans d’autres modes, l’une de ces valeurs ou les deux sont inconnues lorsque vous configurez l’encodeur et sont calculées par le codec pendant l’encodage. CBR est le mode d’encodage standard utilisé par les DMO d’encodeur Windows Media.

Two-Pass codage à débit binaire constant

La CBR standard n’utilise qu’une seule passe d’encodage. Vous fournissez votre contenu en tant qu’exemples d’entrée, et le codec compresse le contenu et retourne des exemples de sortie. Il est également possible de traiter des échantillons d’entrée deux fois. Lors de la première passe, le codec effectue des calculs pour optimiser l’encodage de votre contenu. Lors de la deuxième passe, le codec utilise les données collectées lors de la première passe pour encoder le contenu.

L’encodage CBR à deux passes présente de nombreux avantages. Il génère souvent des gains de qualité significatifs par rapport à l’encodage CBR standard sans modifier les exigences de mise en mémoire tampon. Cela rend ce mode d’encodage idéal pour le contenu diffusé sur un réseau. La seule situation où le CBR à deux passes n’est pas possible est lorsque vous encodez du contenu à partir d’une source en direct et que vous ne pouvez pas utiliser une deuxième passe.

Le type de média de sortie d’un flux CBR à deux passes est identique à celui d’un flux CBR standard ; vous spécifiez toujours le débit binaire et la fenêtre de mémoire tampon à utiliser. Lors de la configuration du DMO, vous devez le définir pour effectuer deux passes. Et vous devez avertir le DMO lorsque vous avez terminé d’envoyer des échantillons pour la première passe.

Quality-Based Codage à débit variable

Étant donné que l’encodage CBR ne conserve pas réellement un débit binaire constant, la distinction entre celui-ci et l’encodage à débit variable (VBR) peut sembler un peu flou. La principale différence entre CBR et VBR est la taille de la fenêtre de mémoire tampon utilisée. Les flux encodés en VBR ont généralement de grandes fenêtres de mémoire tampon par rapport aux flux encodés en CBR. VBR basé sur la qualité ne fait pas exception, car vous ne définissez ni débit binaire ni fenêtre de mémoire tampon pour celui-ci. Au lieu de cela, vous définissez une valeur de qualité. Le codec tente ensuite de compresser les données afin que la qualité du média encodé soit cohérente tout au long de sa durée, quelles que soient les exigences de mémoire tampon du flux résultant.

VBR basé sur la qualité utilise une seule passe d’encodage et tend à créer des flux compressés volumineux. Une fois l’encodage terminé, le codec définit les exigences de mémoire tampon afin que le décodeur puisse décompresser les données. Le flux VBR encodé n’étant pas adapté à la diffusion en continu sur un réseau, le VBR basé sur la qualité doit être utilisé uniquement pour les scénarios de lecture locale (ou de téléchargement et de lecture).

Encodage à débit variable sans contrainte

Contrairement au VBR basé sur la qualité, le VBR sans contrainte n’encode pas à un niveau de qualité spécifique. Au lieu de cela, il encode le contenu avec la qualité la plus élevée possible tout en conservant un débit binaire spécifié. VBR sans contrainte utilise deux passes d’encodage et est similaire à la CBR à deux passes, sauf que vous ne spécifiez pas de paramètre de fenêtre de mémoire tampon pour le flux. Cela signifie qu’il n’existe aucune limite à la taille des échantillons individuels dans le flux, tant que le débit binaire moyen est inférieur ou égal à la valeur que vous avez définie.

Le VBR sans contrainte est d’une utilisation limitée, car il existe peu de scénarios de lecture qui ont des exigences conformes à ses exigences de mémoire tampon. Le codec peut définir la fenêtre de mémoire tampon sur la valeur requise après l’encodage, ce qui ne vous donne aucun contrôle sur la taille de la mémoire tampon. Dans la plupart des cas, si vous n’êtes pas préoccupé par la taille de la mémoire tampon ou la cohérence de l’utilisation de la bande passante, vous devez utiliser VBR basé sur la qualité.

Peak-Constrained Codage à débit variable

Le mode d’encodage final est VBR à contrainte maximale. Comme VBR sans contrainte, ce mode utilise deux passes d’encodage et encode sur un débit spécifié. Toutefois, avec le VBR à contrainte maximale, vous configurez également la valeur de pointe pour l’encodage. Les valeurs de pointe sont similaires aux valeurs de configuration de mémoire tampon normales : il existe un débit maximal et une fenêtre de mémoire tampon de pointe. Le fichier est encodé pour être conforme à une mémoire tampon décrite par les valeurs de pointe, à condition que le débit binaire moyen global du flux soit égal ou inférieur à la valeur de débit moyenne que vous spécifiez.

Un VBR limité peut être difficile à conceptualiser. Voici le moyen le plus simple de penser au modèle de mise en mémoire tampon utilisé. Supposons que le flux est un flux CBR avec la vitesse de transmission maximale et la fenêtre de mémoire tampon de pointe utilisées pour définir la mémoire tampon. En règle générale, le débit maximal est assez élevé. L’encodeur garantit que la valeur de débit binaire moyenne attendue que vous indiquez est conservée sur la durée du flux. À un point particulier du flux, la vitesse de transmission moyenne est garantie supérieure à la taille totale du flux en bits divisée par la durée du flux en secondes.

Prenons l’exemple suivant : vous configurez un flux avec un débit moyen de 16 000 bits par seconde, un débit maximal de 48 000 bits par seconde et une fenêtre de mémoire tampon maximale de 3 000 (3 secondes). La taille de la mémoire tampon utilisée pour le flux est de 144 000 bits (48 000 bits par seconde x 3 secondes), comme déterminé par les valeurs maximales. L’encodeur compresse les données pour qu’elles soient conformes à cette mémoire tampon. En outre, le débit binaire moyen du flux doit être inférieur ou égal à 16 000. Si l’encodeur doit effectuer des exemples très volumineux pour gérer un segment complexe de contenu, il peut tirer parti de la grande taille de la mémoire tampon. Toutefois, d’autres parties du flux doivent être encodées à un débit inférieur pour ramener la moyenne au niveau spécifié.

L’encodage VBR avec contrainte de pic est utile pour les appareils de lecture avec une capacité de mémoire tampon limitée et certaines contraintes de débit de données. L’encodage utilisé pour les DVD est un exemple courant.

Utilisation de l’encodage VBR

Codecs Windows Media