Freezone S'inscrire

FAQ FAQ Rechercher Rechercher Liste des Membres Liste des Membres Groupes d'utilisateurs Groupes d'utilisateurs S'enregistrer S'enregistrer
Freebox, lecture HD, et H264 : fini les SACCADES
 

Poster un nouveau sujet    Répondre au sujet
   Univers Freebox Index du Forum -> Télévision, Radios et toutes les fonctions « audio / vidéo »



 Auteur   Message 
ld3driver
(Auteur du topic)

Hobbit de L'Univers


Inscrit le: 16 Mai 2010
Messages: 1
 
35 points

ld3driver
(Auteur du topic), Posté le: Dim 16 Mai 2010, 23:36    Sujet du message: Freebox, lecture HD, et H264 : fini les SACCADES Freebox, lecture HD, et H264 : fini les SACCADES 44497 39960
Répondre en citant

Bonjour à tous,

Depuis le firmware 1.6.5 de la Freebox HD, la lecture des MKV encodés avec une piste vidéo au format H.264, et une ou plusieurs pistes audio au format AC3 ne pose plus aucun problème (c'était même le cas avant, mais je ne sais pas à partir de quel firmware exactement).
Ces MKV peuvent aussi contenir un ou plusieurs flux de sous-titres, que la Freebox HD sait lire également (une bonne nouvelle pour les fans de VO sous-titrées !).
Et pour accéder à tous ces flux, la touche "?" de la télécommande affiche un petit menu en surimpression, simple et efficace...

Mais j'ai lu trop souvent que la Freebox HD était incapable de décoder du 1080p et qu'il fallait se résigner au 720p : c'est faux, elle est capable de décoder du 1080p sans problème, et c'est d'ailleurs le nombre de lignes utilisées pour la diffusion des chaînes HD du service Freebox TV...


Ce post s'adresse donc plus particulièrement à tous ceux qui font de l'encodage au format H.264, et qui voudraient rendre leurs vidéos HD parfaitement compatibles avec la Freebox, ou d'ailleurs avec n'importe quel Player HD.

Préambule
Avant d'aller plus loin, je précise simplement que je n'aborderai pas les questions concernant les pistes audio, en particulier le problème du choix entre DTS et AC3 (la Freebox HD n'étant apparemment pas compatible avec le DTS...)
En revanche, pour le flux vidéo, j'exposerai quelques concepts de base qui vous aideront à mieux comprendre le H264, en particulier sur le contrôle du débit, et le moyen d'éviter définitivement les saccades, ralentissements ou même les freezes de l'image dans les cas extrêmes...

Formats supportés par la Freebox HD
En mai 2006, un communiqué de presse de Free (https://www.freenews.fr/spip.php?article3453) annonçait l'utilisation d'une puce Sigma Designs "SMP8634" à l'intérieur de la Freebox HD. (il subsiste d'ailleurs un léger doute, car l'article parle aussi de la puce "SMP8635").
C'est cette puce qui décode les flux audio et vidéo. Et en cherchant sur le site de Sigma Designs (https://www.sigmadesigns.com/products.php?id=59), on peut ainsi retrouver les formats que cette puce peut décoder :

- pour l'audio, pas beaucoup de précision, on a juste droit à "Two audio DSPs support a wide variety of audio codecs", autrement dit, "2 processeurs audio supportent une grande variété de codecs audio"... Néanmoins, lorsqu'on recherche les disques durs multimédias qui utilisent la même puce, ils semblent tous compatibles avec le DTS et l'AC3, donc la Freebox HD devraient aussi pouvoir décoder le DTS (avec un nouveau firmware ?)

- pour la vidéo, c'est plus précis :
# MPEG-4.10 (H.264) BP@L3, MP@L4.0*, HP@L4.0*
# SMPTE 421M (VC-1) MP@HL and AP@L3
# WMV9 MP@HL
# MPEG-2 MP@HL
# MPEG-4.2 ASP@L5 (720p, 1-point GMC)
* L4.1 for Blu-ray applications

Important : pour chaque format vidéo supporté, il est précisé quels sont les profils supportés et le niveau correspondant : pour le H.264 par exemple, les profils supportés sont :
Baseline Profile (BP) => niveau "3" (L3)
Main Profile (MP) => niveau "4.0" (L4.0)
High Profile (HP) => niveau "4.0" (L4.0)
Il est même précisé "niveau 4.1" pour les applications Blu-ray, sur les profils Main et High, ce qui voudrait peut-être dire que, dans un container "blu-ray" (.m2ts), un flux vidéo encodé en H.264 pourrait être décodé sans problème en niveau "4.1".
On verra plus loin à quoi correspondent ces niveaux et quelles sont les conséquences sur la lecture d'une vidéo HD.

Les saccades lors de la lecture d'une vidéo
Avant de parler saccades, il faut parler du FRAMERATE, c'est-à-dire le nombre d'images par seconde d'une vidéo.
Extrait de Wikipedia :
Citation:
Au Cinéma, le nombre d'images par seconde, qui était au début de 16 ou 18 images par seconde, fut normalisé à 24. À la télévision, le système européen PAL (ou SÉCAM en France) est de 25 images par seconde. Aux États-Unis et au Japon, la norme NTSC est de 30 images par seconde.

En réalité, c'est un peu plus complexe que cela, comme on peut le lire (en ANGLAIS ...) ici : https://en.wikipedia.org/wiki/24p

Ce qu'il faut retenir :
1. si un film a un FRAMERATE de 25 images par seconde, par exemple, alors la Freebox HD, ou n'importe quel lecteur d'ailleurs, va essayer d'afficher les images au même rythme de 25 images par seconde.
2. lorsque le lecteur n'est pas capable d'atteindre ces 25 images par seconde, alors 2 cas peuvent se produire :
- 1er cas : le lecteur affiche quand même toutes les images, mais moins rapidement que prévu : par exemple 10 images par seconde => c'est là qu'apparaissent les SACCADES !
- 2ème cas : le lecteur saute les images qui ne sont pas décodées à temps (paramétrage présent sur certains Players comme VLC ou MediaPlayerClassic) : dans ce cas, la dernière image décodée reste affichée à l'écran et reste fixe, et plusieurs secondes plus tard, quand le lecteur arrive enfin à décoder une image à temps, il reprend la lecture normalement => attention, car il est possible que le lecteur ne puisse se resynchroniser que plusieurs minutes plus tard, ou même qu'il n'arrive plus à se resynchroniser jusqu'à la fin du film => on a alors l'impression d'un plantage, alors que le décodage continue mais sans pouvoir produire d'image en sortie (toutes les images décodées sont en retard !)

A noter que, dans les 2 cas, le traitement de la piste AUDIO peut se faire normalement ou non :
- son haché pendant les saccades
- son interrompu lorsque le framerate est inférieur à celui attendu
- son correctement décodé alors que l'image est figée
=> tout dépend de la façon dont le Player gère la synchro entre audio et vidéo : pour la Freebox HD, lorsque la vidéo saccade, le son saccade en même temps ou bien il est interrompu... mais je n'ai pas bien compris dans quel cas cela se produit

Comment se débarasser des saccades ?
Sans entrer dans le détail (mais quand même un peu !), il faut comprendre comment se fait le décodage des images :
1. les données de la piste vidéo sont lues à partir de la source (par exemple le disque dur interne de la Freebox HD), et sont chargées dans un premier BUFFER (= une zone mémoire dédiée).
2. le circuit de décodage (= le décodeur ) lit les données dans ce buffer, décode les images, et les stocke dans un second BUFFER appelé le "Decoded Pictures Buffer"
3. les images décodées sont lues dans le "Decoded Pictures Buffer" et sont envoyées vers la sortie vidéo (la sortie HDMI par exemple)

=> ce qui nous intéresse ici, c'est le premier BUFFER, celui contenant les images à décoder. Ce buffer a une taille fixe (exprimée en kilobits par exemple), il se remplit et se vide au fur et à mesure que les données sont lues et décodées. Mais dans une vidéo au format H264, comme pour les autres formats d'ailleurs, le "bitrate" est variable : l'encodeur alloue plus de kilobits aux scènes rapides et comportant beaucoup de détails qu'aux scènes lentes. Quand cela se produit, la quantité de données lues dans le buffer est momentanément plus importante, et celui-ci risque de se vider plus vite qu'il ne se remplit : s'il se vide complètement, le décodeur n'a temporairement plus de données à décoder, et l'image se fige, créant une micro-saccade ... (lorsque le buffer est vide, le terme utilisé est "VBV BUFFER UNDERFLOW")...
=> pour éviter que le BUFFER se vide lors de la lecture, et donc pour éviter les saccades, il faut paramétrer 2 valeurs lors de l'encodage :
    le VBV-MAXRATE et le VBV-BUFSIZE


les valeurs maxi autorisées pour ces paramètres dépendent du profil et du niveau d'encodage : pour la Freebox HD, on a vu qu'on pouvait utiliser un High Profile (HP) et un niveau "4.0".
Pour ce profil et ce niveau, un certain nombre de paramètres sont autorisés et en particulier :
VBV-MAXRATE = 20 000 kilobits par seconde
VBV-BUFSIZE = 25 000 kilobits
(pour plus de détail : https://rob.opendot.cl/index.php/useful-stuff/h264-profiles-and-levels/)

quelques remarques :
- les valeurs indiqués ci-dessus sont des valeurs MAXI à ne pas dépasser pour un niveau "4.0". Si une vidéo est encodée avec les valeurs du niveau "4.1", alors il est possible que la vidéo atteigne un débit trop rapide dans une scène d'action, et provoque ainsi des saccades.
- certaines vidéos sont aussi encodées sans les paramètres VBV : encore une fois, on peut ainsi atteindre un débit trop rapide pour notre pauvre Freebox HD, qui va saccader lors de la lecture. Mais si la vidéo ne comporte aucune scène rapide (un documentaire animalier sur les paresseux par exemple !), il se peut aussi que le débit reste toujours dans des valeurs raisonnables que la Freebox HD pourra décoder sans saccade !
- notez également que le VBV-MAXRATE doit impérativement être supérieur au BITRATE MOYEN ("average bitrate") choisi pour la vidéo
- enfin, le VBV-BUFSIZE a aussi une limite inférieure : il doit pouvoir contenir au moins 3 frames : si on a un débit moyen de 2500 kbps, et un framerate de 25 fps (soit 100 kilobits par frame en moyenne), alors le buffer doit pouvoir contenir : 3 * 100 = 300 kilobits minimum
Ceci dit, je ne vois pas l'intérêt de paramétrer un BUFFER-SIZE plus petit que la valeur maxi autorisée, car cela diminuerait le débit des scènes rapides et donc la qualité de l'image !

Lecture à partir d'une autre source que le disque dur interne de la Freebox
On va aborder ici un dernier point qui peut aussi poser problème lors de la lecture et provoquer des saccades.
On a vu que, si le buffer se vidait dans des scènes d'action, cela provoquait des saccades ...
Supposons que vous ayez ré-encodé une vidéo avec les bons paramètres et que, lorsque le fichier est sur le disque dur interne de la Freebox HD, la lecture est fluide et sans aucune saccade.
Maintenant, on transfère le fichier sur un PC connecté au réseau domestique en Wifi, et grâce à la fonction UPnP, on essaie de lire ce fichier depuis la Freebox HD : les saccades ré-apparaissent !
L'explication est simple : le débit du réseau est insuffisant et provoque le même problème que tout à l'heure => le BUFFER se vide et provoque des saccades, mais cette fois-ci, c'est parce qu'on le remplit trop lentement....
Pour autant, il ne faut pas baisser les bras : on va voir, selon la source et le débit disponible, quels paramètres utiliser lors de l'encodage pour conserver une lecture sans saccade...

Lecture à partir d'un disque dur externe branché sur le port USB :
Wikipedia :
Citation:
La version 1.x du bus peut communiquer dans deux modes : lent (1,5 Mbit/s) ou rapide (12 Mbit/s, soit 1,5 Mo/s) :
...
USB 2.0 introduit un troisième mode permettant de communiquer à 480 Mbit/s (soit 60 Mo/s).
...
La dernière version, l?USB 3.0, comporte un quatrième mode (« Super Speed ») permettant de communiquer à 4,8 Gbits/s (soit 600 Mo/s). Les premiers appareils commercialisés sont prévus pour 2010.

Les films HD sont, en général, encodés dans un bitrate moyen entre 5000 kbps et 10000 kbps, c'est-à-dire entre 5Mbit/s et 10Mbit/s. Il faut aussi penser au flux audio (640 kbps en AC3 par exemple) => en principe, la lecture devrait être OK même avec une connexion USB 1.1, mais il vaut mieux de l'USB 2.0 (avec 480 Mbit/s, la marge est énorme sur le débit disponible !)
=> pour la Freebox HD, on dispose d'un port USB 2.0 donc pas de problème...

Lecture à partir du réseau :
ça devient un peu plus délicat :
- pour éviter les saccades, le réseau doit pouvoir acheminer les données jusqu'à la Freebox HD avec un bitrate supérieur ou égal au bitrate maxi utilisé pour l'encodage (VBV-MAXRATE)
- ce paramètre, si on se limite bien au niveau 4.0, est plafonné à 20 000 kilobits par seconde (on peut choisir une valeur plus faible si on le souhaite pour l'encodage)
- il suffit donc d'étudier les différents composants du réseau domestique

=> liaison entre la Freebox HD et la Freebox ADSL :
si on utilise les Freeplugs (les boitiers CPL made in Free), le débit théorique est de 200 Mbps, soit 200 000 kbps (https://fr.wikipedia.org/wiki/Freeplug)
Malheureusement, le débit réel dépend de la qualité de votre installation électrique, d'après les témoignages, entre 30 Mbps et 50 Mbps, ce qui reste suffisant pour un film HD, même en comptant 2 pistes audio à 640 kbps chacune.

=> reste du réseau : en Wifi 802.11n, on peut espérer un débit réel de 100 Mbps, soit 100 000 kbps, ce qui devrait aussi être suffisant. En revanche, en 802.11G, le débit théorique est de 54 Mbps, mais le débit réel est de l'ordre de 15 à 20 Mbps, ce qui risque d'être un peu juste. Quand au Wifi 802.11b, le débit théorique est de 11Mbps, et la moitié en débit réel, donc à oublier pour la HD...
Sans compter que le Wifi est sensible aux obstacles, aux parasites, etc... et peut présenter un débit instable...

=> reste du réseau en Ethernet : en principe, on a du 100 Mbps en débit théorique (pas encore de gigabit Ethernet sur nos box), soit 80 Mbps en débit réel (mais là encore tout dépend de vos différents appareils connectés), donc cela devrait être suffisant pour des films HD...
Par contre, si vous n'avez que du 10 Mbps, c'est insuffisant....

Vous trouverez plus d'info en cherchant un peu, mais vous avez maintenant les clés pour comprendre tous ces pbs de débits et de saccades... et vous pourrez enfin profiter de vos films HD !

Merci de me faire part de vos remarques, ou de m'indiquer si vous avez trouvé ce post utile...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé
mul
Hobbit de L'Univers


Inscrit le: 03 Aoû 2010
Messages: 1
 
1 points

mul, Posté le: Mar 03 Aoû 2010, 2:20    Sujet du message: 47113 42418 Répondre en citant

Salut, ton article est intéressant mais je me demande si le bitrate n'est vraiment que la source de lags sur la Freebox HD.

Voici 2 vidéos MKV, la première est lue sans problème, la seconde avec des coupures audios régulières

celui là passe sans problème depuis le HDD de la Freebox ou en Ethernet UPnP:

Format : Matroska
File size : 11.8 GiB
Duration : 2h 41mn
Overall bit rate : 10.4 Mbps
Encoded date : UTC 2010-04-24 06:09:23
Writing application : mkvmerge v3.2.0 ('Beginnings') built on Feb 12 2010 11:41:37
Writing library : libebml v0.7.7 + libmatroska v0.8.1

vidéo
ID : 1
Format : AVC
Format/Info : Advanced vidéo Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Muxing mode : Container profile=Unknown@4.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 41mn
Bit rate : 7 971 Kbps
Nominal bit rate : 8 171 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.160
Stream size : 8.99 GiB (76%)
Writing library : x264 core 93 r1542 5b86182
Encoding settings : cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / wpredp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=30 / rc=2pass / mbtree=1 / bitrate=8171 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Language : English



celle ci saute régulièrement (5-10 min) au niveau du son quelque soit le support de lecture HDD ou Ethernet:


Format : Matroska
Taille du fichier : 6,56 Gio
Durée : 2h 7mn
Débit global moyen : 7 335 Kbps
Date d'encodage : UTC 2010-07-29 20:07:06
Application utilisée : mkvmerge v4.1.1 ('Bouncin' Back') built on Jul 3 2010 22:54:08
Bibliothèque utilisée : libebml v1.0.0 + libmatroska v1.0.0

Vidéo
ID : 1
Format : AVC
Format/Info : Advanced vidéo Codec
Profil du format : High@L4.1
Paramètres du format, CABAC : Oui
Paramètres du format, RefFrames : 5 images
Paramètres du format, GOP : M=4, N=32
Type de muxing : Container profile=Unknown@4.1
Identifiant du codec : V_MPEG4/ISO/AVC
Durée : 2h 7mn
Débit : 5 827 Kbps
Largeur : 1 280 pixels
Hauteur : 544 pixels
Format à l'écran : 2,35:1
Images par seconde : 23,976 Im/s
Espace de couleurs : YUV
Sous-échantillonnage de la chrom : 4:2:0
Profondeur des couleurs : 8 bits
Type d'image : Progressif
Bits/(Pixel*Image) : 0.349
Taille du flux : 5,08 Gio (77%)
Bibliothèque utilisée : x264 core 104 r1688 0b36c6d
Paramètres d'encodage : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=5827 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Langue : Français

Dans les 2 cas la bande son est en AC3 640 Kbps 6 Channels


Donc là je ne comprend plus rien, le 1er cas a pourtant un bitrate supérieur et ne lag pas.

Une petite amélioration par contre si je convertit (tsMuxer) le 2ème cas en .TS (moins de coupures audio)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé

Poster un nouveau sujet     Répondre au sujet

Univers Freebox Index du Forum -> Télévision, Radios et toutes les fonctions « audio / vidéo »
Page 1 sur 1
Toutes les heures sont au format GMT + 2 Heures
 

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum





CoolVista Thème phpbb
- Site adapté par Vincent Barrier
 © 2005 - 2009 Univers Freebox