Brevet FR3100412A1 — publié le 20210305

Description Titre de l'invention : Procédé de décodage d'un flux d'entrée audio/ vidéo [0001] L'invention concerne le domaine des boîtiers décodeurs et du décodage des flux d'entrée audio/vidéo. [0002] ARRIERE PLAN DE L'INVENTION [0003] Un boîtier décodeur (ou set-top box, en anglais) qui fonctionne selon la norme ISO/ IEC 13818-1 reçoit un flux d'entrée audio/vidéo, décode le flux d'entrée audio/vidéo, et le synchronise avant sa diffusion. [0004] Lc flux d'entrée audio/vidéo peut être transmis au boîtier décodeur par câble, par satellite, mais aussi via unc liaison W (par exemple DASH-TS ou HLS-TS), c'est-à-dire via une liaison qui utilise un protocole internet. [0005] Lc flux d'entrée audio/vidéo comprend des échantillons audio et des échantillons vidéo qui sont multiplexés. Chaque échantillon est horodaté grâce à un marqueur temporel de présentation (ou PTS, pour Presentation Time Stamp). Lc marqueur temporel de présentation définit la date à laquelle l'échantillon doit être rendu (joué pour l'audio, affiché pour la vidéo). [0006] Lc flux d'entrée audio/vidéo transporte un signal d'horloge de référence (ou PCR, pour Program Clock Reference). Lc boîtier décodeur utilise le signal d'horloge de référence pour asservir son horloge interne (ou STC, pour System Time Clock) et cadencer correctement l'affichage des échantillons. [0007] L'affichage vidéo se fait alors généralement sur une télévision. [0008] L'audio, quant à lui, peut âtre joué soit par la télévision, soit par un amplificateur audio/vidéo (connecté par exemple à un port HDMI ou à un port SPDI/F du boîtier décodeur), soit par un autre équipement de diffusion audio connecté directement au boîtier décodeur via le port HDMI ou le port SPD/lF ou bien à travers une diffusion sans fil de type Wi-Fi ou Muetooth. L'équipement de diffusion audio est par exemple une barre de son ou unc enceinte connectée. [0009] Chacun de ces équipements introduit unc latence qui résulte notamment du temps de traitement interne de ces équipements. L'évaluation de cette latence peut être réalisée de différentes manières. La latence peut par exemple être directement fournie par l'équipement lui-même, par la transmission des données EDID (pour Extended Display Identification Data) via le port HDMI. La latence peut aussi par exemple être évaluée par la mesure d'un décalage entre l'émission et la réception d'un signal sonore. [0010] Si l'audio et la vidéo ne sont pas rendus par le même équipement, la latence audio du chemin audio et la latence vidéo du chemin vidéo doivent être égales pour ne pas in- 2 troduire de décalage entre le son et l'image, qui serait perçu par l'utilisateur. Un tel décalage peut générer par exemple un problème de synchronisation labiale. [0011] En référence à la figure 1, on illustre ce qui vient d'être dit avec un boîtier décodeur 1 qui est relié à une enceinte 2 et à une télévision 3. [0012] Le boîtier décodeur 1 comprend un module de décodage audio 4 et un module de capture audio 5. Le chemin audio comprend le module de décodage audio 4, le module de capture audio 5 et renceinte 2. [0013] Le boîtier décodeur 1 comprend aussi un module de décodage vidéo 6. Le chemin vidéo comprend le module de décodage vidéo 6 et la télévision 3. [0014] Le boîtier décodeur 1 comprend aussi un mécanisme de synchronisation 7 des échantillons audio et des échantillons vidéo par rapport au signal d'horloge de référence. [0015] Dans l'exemple de la figure 1, on considère que l'enceinte 2 introduit dans le chemin audio une latence de 90ms. Le module de capture audio 5 introduit dans le chemin audio une latence de 80ms. La latence audio totale est donc de 170ms. [0016] La télévision 3 introduit quant à elle dans le chemin vidéo une latence de 70ms. La latence vidéo totale est donc de 70ms. [0017] La latence audio est donc supérieure de 100ms à la latence vidéo : un délai sur le chemin vidéo est donc nécessaire. [0018] En référence à la figure 2, à nouveau, l'enceinte 2 introduit dans le chemin audio une latence de 90ms. Le module de capture audio 5 introduit dans le chemin audio une latence de 80ms. La latence audio totale est donc de 170ms. [0019] La télévision 3, cette fois, introduit dans le chemin vidéo une latence de 190ms. La latence vidéo totale est donc de 190ms. [0020] La latence vidéo est donc supérieure de 20ms à la latence audio : un délai sur le chemin audio est donc nécessaire. [0021] Dans les deux cas, ce délai est introduit dans les chemins par l'application, par le mécanisme de synchronisation 7, d'un « délai de décodage » qui retarde le décodage du son ou des images. Le délai de décodage est positif et correspond à un offset introduit dans le chemin audio ou dans le chemin vidéo. [0022] Le délai de décodage vidéo est égal à 100ms dans le cas de la figure 1, et le délai de décodage audio est égal à 20ms dans le cas de la figure 2. [0023] L'introduction d'un délai de décodage dans le chemin audio ou dans le chemin vidéo impacte négativement l'expérience de l'utilisateur. [0024] Le délai de décodage s'applique en effet à chaque action de l'utilisateur sur le flux d'entrée audio/vidéo. Ainsi, par exemple, le temps de « zapping » (temps nécessaire pour changer de chaîne de télévision) sera augmenté de ce délai de décodage. Le temps de zapping peut donc être augmenté typiquement de 100 à 200ms suivant l'équipement 3 de diffusion audio utilisé, pour un temps de zapping total qui est de l'ordre de 800ms dans le meilleur des cas. L'effet du délai de décodage est donc loin d'être négligeable. [0025] OBJET DE L'INVENTION [0026] L'invention a pour objet d'améliorer de manière simple et peu coûteuse l'expérience d'un utilisateur d'un boîtier décodeur. Résumé de l'invention [0027] En vue de la réalisation de ce but, on propose un procédé de décodage d'un flux d'entrée audio/vidéo reçu par un boîtier décodeur qui est relié à un équipement de diffusion audio et à un équipement de diffusion vidéo, le flux (l'entrée audio/vidéo transportant un signal d'horloge de référence et comportant des échantillons audio et des échantillons vidéo comprenant chacun un marqueur temporel dc présentation, le procédé de décodage comportant les étapes de : [0028] - évaluer une latence audio introduite par un chemin audio et une latence vidéo in- troduite par un chemin vidéo ; [0029] - si la latence audio (respectivement vidéo) est supérieure à la latence vidéo (rcsp. audio), vérifier une première condition pour assurer qu'une différence temporelle entre le marqueur temporel de présentation des échantillons audio (resp. vidéo) et le signal d'horloge dc référence est suffisante pour assurer un décodage correct des échantillons audio (rcsp. vidéo), et si la première condition est remplie, diminuer au moment d'un décodage audio (resp. vidéo) le marqueur temporel de présentation des échantillons audio (rcsp. vidéo) pour avancer une diffusion des échantillons audio (resp. vidéo) et compenser ainsi au moins partiellement une différence dc latences entre la latence audio (rcsp. vidéo) et la latence vidéo (resp. audio). [0030] Ainsi, dans le procédé dc décodage selon l'invention, la différence de latences est compensée non pas en ajoutant systématiquement un offset dans le chemin audio ou dans le chemin vidéo, mais en exploitant la différence temporelle entre le PTS et le PCR (si elle est suffisante) pour avancer la diffusion des échantillons (audio ou vidéo) pertinents. L'utilisateur ne subit donc pas l'effet d'un offset systématique, et son expérience s'en trouve nettement améliorée. [0031] L'invention sera mieux comprise à la lumière dc la description qui suit d'un mode de mise en oeuvre particulier non limitatif de l'invention. Brève description des dessins 100321 Il sera fait référence aux dessins annexés, parmi lesquels : 100331 I fie.11 la figure I représente un boîtier décodeur de l'art antérieur, une enceinte et une télévision, la latence audio du chemin audio étant supérieure à la latence vidéo du chemin vidéo ; 100341 I fie.21 la figure 2 est une figure similaire à la figure I, la latence vidéo étant su- périeure à la latence audio ; [0035] [fig.3] la figure 3 représente un boîtier décodeur dans lequel est mis en oeuvre le procédé de décodage selon l'invention, une enceinte et une télévision, la latence audio étant supérieure à la latence vidéo ; [0036] [fig.4] la figure 4 représente des étapes du procédé de décodage selon l'invention, mis en oeuvre dans la configuration dc la figure 3 ; [0037] [fig.5] la figure 5 est une figure similaire à la figure 3, la latence vidéo étant su- périeure à la latence audio ; [0038] [fig.6] la figure 6 représente des étapes du procédé de décodage selon l'invention, mis en oeuvre dans la configuration de la figure 5. Description des modes de réalisation [0039] En référence à la figure 3, le procédé dc décodage selon l'invention est mis en oeuvre dans un boîtier décodeur 11 qui est relié à un équipement de diffusion audio, en l'occurrence à une enceinte 12, et à un équipement dc diffusion vidéo, en l'occurrence à une télévision 13. [0040] Lc boîtier décodeur 11 reçoit un flux d'entrée audio/vidéo transportant un signal d'horloge dc référence et comportant des échantillons audio et des échantillons vidéo, qui comprennent chacun un marqueur temporel de présentation. [0041] Lc boîtier décodeur 11 comprend un module dc décodage audio 14 et un module dc capture audio 15. Le chemin audio comprend le module dc décodage audio 14, le module dc capture audio 15 et l'enceinte 12. [0042] Lc boîtier décodeur 11 comprend aussi un module de décodage vidéo 16. Le chemin vidéo comprend le module de décodage vidéo 16 et la télévision 13. [0043] Lc boîtier décodeur 11 comprend aussi un mécanisme de synchronisation 17 des échantillons audio et des échantillons vidéo par rapport au signal d'horloge de référence. [0044] Dans l'exemple de la figure 3, on considère que l'enceinte 12 introduit dans le chemin audio une latence de 90ms. Lc module de capture audio 15 introduit dans le chemin audio une latence de 80ms. La latence audio totale est donc de 170ms. [0045] La télévision 13 introduit quant à elle dans le chemin vidéo une latence dc 70ms. La latence vidéo totale est donc de 70ms. [0046] La latence audio est donc supérieure à la latence vidéo. [0047] Dans le flux d'entrée audio/vidéo, les échantillons audio et les échantillons vidéo sont reçus en avarice pour être décodés. Cette avance est définie par la différence temporelle entre le marqueur temporel de présentation des échantillons et le signal d'horloge de référence. En pratique, dans le cas de l'audio, cette avance peut varier de 100ms à ls. Dans le cas de la vidéo, cette avance est moins importante en raison de la hufferisation nécessaire. [0048] Dans l'exemple de la figure 3, la différence temporelle At a pour l'échantillon audio est de 200ms, et la différence temporelle At _v pour l'échantillon vidéo est de 50ms. [0049] Plutôt que d'introduire systématiquement dans le chemin vidéo un délai de décodage vidéo positif pour compenser la différence dc latences entre le chemin audio et le chemin vidéo, on exploite cette avance en forçant les échantillons audio à sortir plus tôt du mécanisme de synchronisation pour les rendre disponibles plus vite pour leur diffusion. [0050] Le procédé de décodage selon l'invention comporte donc tout d'abord l'étape d'évaluer la latence audio introduite par le chemin audio (ici égale à 170ms) et la latence vidéo introduite par le chemin vidéo (ici égale à 70ms). [0051] Puis, en référence à la figure 4, le procédé dc décodage comprend l'étape de vérifier une première condition pour assurer qu'une différence temporelle entre le marqueur temporel de présentation des échantillons audio et le signal d'horloge dc référence est suffisante pour assurer un décodage correct des échantillons audio (étape El ). [0052] La première condition est : [0053] At a> Amin a, [0054] où At a est la différence temporelle et Amin a est une durée minimale pour assurer que le décodage audio est correct. [0055] La valeur de Amin a est une constante à déterminer selon le type de codec, le débit, etc. La détermination est faite par mesure sur un ensemble de flux : on réduit la durée jusqu'à ce que l'audio ne puisse plus être joué correctement par le boîtier décodeur 11. [0056] Si la première condition n'est pas remplie, la différence de latences est compensée entièrement en ajoutant un délai de décodage vidéo positif au moment du décodage vidéo réalisé par le module de décodage vidéo 16 (étape E2). [0057] On a donc : [0058] Délai_v = Alat_a, [0059] Décal_a = 0 ; [0060] où Délai_v est le délai de décodage vidéo positif introduit au moment du décodage vidéo réalisé par le module de décodage vidéo 16, et où Alat_a est la différence de latences (ici égale à 100ms). [0061] Décal_a = 0 signifie qu'aucun décalage audio n'est appliqué et que le marqueur temporel de présentation des échantillons audio n'est pas diminué. [0062] Cette situation correspond au cas classique, sans mise en oeuvre de l'invention. [0063] Si la première condition est remplie, ce qui est le cas dans notre exemple, le procédé de décodage comprend l'étape de vérifier une deuxième condition pour évaluer si la différence de latences peut être compensée entièrement ou non par la diminution du marqueur temporel de présentation des échantillons audio (étape E3). 6 [0064] La deuxième condition est : [0065] At a - Amin a > Alat a. [0066] Si la deuxième condition n'est pas remplie, la différence de latences est compensée à la fois : [0067] - en introduisant au moment du décodage audio un décalage audio négatif Décala pour diminuer le marqueur temporel de présentation des échantillons audio, tel que : [0068] Décala = Amin _a - At a ; [0069] - en ajoutant un délai de décodage vidéo positif Délai v au moment du décodage vidéo, tel que : [0070] Délai v = Alat a + Décal a (étape E4). [0071] Par contre, si la deuxième condition est remplie, ce qui est le cas dans notre exemple, la différence de latences est entièrement compensée en introduisant au moment du décodage audio un décalage audio négatif Décala pour diminuer le marqueur temporel de présentation des échantillons audio, tel que : [0072] Décala = - Alat a (étape E5). [0073] Cette situation correspond à l'exemple de la figure 3 où la différence de latences est compensée entièrement par un décalage audio négatif Décala égal à -100ms. [0074] On a aussi : [0075] Délai v = 0, cc qui signifie qu'aucun délai de décodage vidéo n'est introduit dans le chemin vidéo. [0076] Ainsi, plutôt que d'introduire systématiquement un délai de décodage vidéo positif, le procédé de décodage selon l'invention tire profit, lorsqu'elle est suffisante, de la différence temporelle PTS - PCR pour diminuer le marqueur temporel de présentation des échantillons audio et compenser la latence en avançant leur diffusion. L'utilisateur ne subit plus les conséquences de l'offset et son expérience est améliorée. Dans l'invention, le mécanisme de synchronisation 17 est utilisé pour décaler l'envoi des échantillons. [0077] La solution mise en oeuvre consiste donc à exploiter le flux d'entrée audio/vidéo pour accélérer le transfert plutôt qu' à introduire un offset de manière systématique, comme cela est fait dans l'art antérieur. [0078] Cette solution est particulièrement adaptée à un système comprenant un chemin audio et un chemin vidéo distincts. Elle est permise par le fait que le procédé de décodage est mis en oeuvre dans le boîtier décodeur 11 qui reçoit à la fois le flux audio et le flux vidéo pour les redispatcher vers l'enceinte 12 et la télévision 13, et qui par conséquent maîtrise et peut agir sur le flux d'entrée audio/vidéo. [0079] En référence à la figure 5, le procédé de décodage selon l'invention est à nouveau mis en oeuvre dans le boîtier décodeur 11 qui est relié à l'enceinte 12 et à la télévision 13. 7 [0080] Dans l'exemple de la figure 5, on considère que l'enceinte 12 introduit dans le chemin audio une latence de 90ms. Le module de capture audio 15 introduit dans le chemin audio une latence de 80ms. La latence audio totale est donc de 170ms. [0081] La télévision 13 introduit quant à elle dans le chemin vidéo une latence de 190ms. La latence vidéo totale est donc de 190ms. [0082] La latence vidéo est donc supérieure à la latence audio. [0083] Dans le flux d'entrée audio/vidéo, les échantillons audio et les échantillons vidéo sont reçus en avance pour être décodés. Cette avance est définie par la différence temporelle entre le marqueur temporel de présentation des échantillons et le signal d'horloge de référence. [0084] Dans l'exemple de la figure 5, la différence temporelle At _a pour l'échantillon audio est de -F200ms, et la différence temporelle At v pour l'échantillon vidéo est de -F50ms. [0085] Plutôt que d'introduire systématiquement dans le chemin audio un délai de décodage audio positif pour compenser la différence de latences entre le chemin audio et le chemin vidéo, on exploite cette avance en forçant les échantillons vidéo à sortir plus tôt du mécanisme de synchronisation pour les rendre disponibles plus vite pour leur diffusion. [0086] Le procédé de décodage selon l'invention comporte donc tout d'abord l'étape d'évaluer la latence audio introduite par le chemin audio (ici égale à 170ms) et la latence vidéo introduite par le chemin vidéo (ici égale à 190ms). [0087] Puis, en référence à la figure 6, le procédé de décodage comprend l'étape, de vérifier une première condition pour assurer qu'une différence temporelle entre le marqueur temporel de présentation des échantillons vidéo et le signal d'horloge de référence est suffisante pour assurer un décodage correct de des échantillons vidéo (étape Ell). [0088] La première condition est : [0089] At_v> Amin_v, [0090] où At_v est la différence temporelle et Amin_v est une durée minimale pour assurer que le décodage vidéo est correct. [0091] La valeur de Amin_v est une constante à déterminer selon le type de codec, le débit, etc. La détermination est faite par mesure sur un ensemble de flux : on réduit la durée jusqu'à ce que la vidéo ne puisse plus être jouée correctement par le boîtier décodeur 11. [0092] Si la première condition n'est pas remplie, la différence de latences est compensée entièrement en ajoutant un délai de décodage audio positif au moment du décodage audio réalisé par le module de décodage audio 14 (étape E12). [0093] On a donc : [0094] Délai_a = Alat_v, [0095] Décal_v = 0 ; 8 [0096] où Délai a est le délai de décodage audio positif introduit au moment du décodage audio réalisé par le module de décodage audio 14, et où Alat v est la différence de latences (ici égale à 20ms). [0097] Décal_v = 0 signifie qu'aucun décalage vidéo n'est appliqué et que le marqueur temporel de présentation des échantillons vidéo n'est pas diminué. [0098] Cette situation correspond au cas classique, sans mise en oeuvre de [0099] Si la première condition est remplie, ce qui est le cas dans notre exemple, le procédé de décodage comprend l'étape de vérifier une deuxième condition pour évaluer si la différence de latences peut être compensée entièrement ou non par la diminution du marqueur temporel de présentation des échantillons vidéo (étape El 3). [0100] La deuxième condition est : [0101] At v - Amin v > Alat v. [0102] Si la deuxième condition n'est pas remplie, la différence de latences est compensée à la fois : [0103] - en introduisant au moment du décodage vidéo un décalage vidéo négatif Décal_v pour diminuer le marqueur temporel de présentation des échantillons vidéo, tel que : [0104] Décal_v = Amin v - At _v ; [0105] - en ajoutant un délai de décodage audio positif Délai a au moment du décodage audio, tel que : [0106] Délai a = Alat_v + Décal_v (étape E14). [0107] Par contre, si la deuxième condition est remplie, ce qui est le cas dans notre exemple, la différence de latences est entièrement compensée en introduisant au moment du décodage vidéo un décalage vidéo négatif Décal_v pour diminuer le marqueur temporel de présentation des échantillons vidéo, tel que [0108] Décal_v = - Alat_v (étape E15). [0109] Cette situation correspond à l'exemple de la figure 5 où la différence de latences est compensée entièrement par un décalage vidéo négatif Décal_v de -20ms. [0110] On a aussi [0111] Délai_a = 0, ce qui signifie qu'aucun délai de décodage audio n'est introduit dans le chemin audio. [0112] Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications. [0113] En particulier, les équipements de diffusion reliés au boîtier décodeur ne sont pas né- cessairement une enceinte et une télévision. 9 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] REVENDICATIONSProcédé de décodage d'un flux d'entrée audio/vidéo reçu par un boîtier décodeur (11) qui est relié à un équipement de diffusion audio (12) et à un équipement de diffusion vidéo (13), le flux d'entrée audio/vidéo transportant un signal d'horloge de référence et comportant des échantillons audio et des échantillons vidéo comprenant chacun un marqueur temporel de présentation, le procédé de décodage comportant les étapes de : - évaluer une latence audio introduite par un chemin audio et une latence vidéo introduite par un chemin vidéo ; - si la latence audio (respectivement vidéo) est supérieure à la latence vidéo (resp. audio), vérifier une première condition pour assurer qu'une différence temporelle (At_a, At_b) entre le marqueur temporel de présentation des échantillons audio (resp. vidéo) et le signal d'horloge de référence est suffisante pour assurer un décodage correct des échantillons audio (resp. vidéo), et si la première condition est remplie, diminuer au moment d'un décodage audio (resp. vidéo) le marqueur temporel de présentation des échantillons audio (resp. vidéo) pour avancer une diffusion des échantillons audio (resp. vidéo) et compenser ainsi au moins partiellement une différence de latences (Alat_a, Alat_b) entre la latence audio (resp. vidéo) et la latence vidéo (resp. audio). Procédé de décodage selon la revendication 1, dans lequel la première condition est : At > Amin, où At est la différence temporelle et Amin est une durée minimale pour assurer que le décodage audio (resp. vidéo) est correct. Procédé de décodage selon la revendication 2, dans lequel, si la première condition n'est pas remplie, la différence de latences est compensée entièrement en ajoutant un délai de décodage vidéo (resp. audio) positif au moment du décodage vidéo (resp.audio). Procédé de décodage selon la revendication 2, dans lequel, si la première condition est remplie, le procédé de décodage comprend l'étape de vérifier une deuxième condition pour évaluer si la différence de latences peut être compensée entièrement ou non par la diminution du marqueur temporel de présentation des échantillons audio (resp. vidéo). Procédé de décodage selon la revendication 4, dans lequel la deuxième 10 condition est : At-Amin > Alat, où Mat est la différence de latences. [Revendication 6] Procédé de décodage selon la revendication 4, dans lequel, si la deuxième condition n'est pas remplie, la différence de latences est compensée : - en introduisant au moment du décodage audio (resp. vidéo) un décalage audio (resp. vidéo) négatif pour diminuer le marqueur temporel de présentation des échantillons audio (resp. vidéo), tel que : Décal = Amin - At ; - en ajoutant un délai de décodage vidéo (resp. audio) positif au moment du décodage vidéo (resp.audio), tel que : Délai = Alat + Décal. [Revendication 7] Procédé de décodage selon la revendication 4, dans lequel, si la deuxième condition est remplie, la différence de latences est entièrement compensée en introduisant au moment du décodage audio (resp. vidéo) un décalage audio (resp. vidéo) négatif pour diminuer le marqueur temporel de présentation des échantillons audio (resp. vidéo), tel que : Décal Mat. [Revendication 8] Boîtier décodeur comportant un module de décodage audio et un module de décodage vidéo, le procédé de décodage selon l'une des revendications précédentes étant mis en oeuvre dans le boîtier décodeur. [Revendication 9] Programme d'ordinateur comprenant des instructions qui conduisent le boîtier décodeur selon la revendication 8 à exécuter les étapes du procédé de décodage selon l'une des revendications 1 à 7. [Revendication 10] Support d'enregistrement lisible pat- ordinateur, sur lequel est enregistré le programme d'ordinateur selon la revendication 9.