Är H.264 AVC ”bättre” än H265 HEVC? Under vilka förhållanden kan H.264 prestera bättre än H.265?
Under vilka förhållanden kan H.264 prestera bättre än H.265?
Nyare videokomprimeringsstandarder kommer i allmänhet att erbjuda prestandafördelar jämfört med befintliga standarder. H.265 HEVC är till exempel känd för att vara 40 % effektivare än H.264 till priset av 10 gånger högre komplexitet.
En NETINT-kund observerade att H.264 AVC under vissa omständigheter kan prestera bättre än H.265 HEVC. Följande PSNR-test som använder de öppna källkodarna libx265 och libx264 för att koda identiska testvideor illustrerar detta.
Figur 1 PSNR-jämförelse mellan x265 och x264
Med kvantiseringsparameter (QP)=27 kan bitraten för H.265 och H.264 är liknande (9,66 Mbps mot 9,96 Mbps), men PSNR för den H.265-kodade videon är lägre (40,19 mot 41,8). Varför är detta fallet?
När man jämför med originalbilden saknar H.265-bilden små detaljer.
Figur 2 – Användning av WinMerge för att jämföra den första bilden för H.264 (vänster), H.265 (höger), H.265 (vänster) och H.265 (höger).Center), original(höger)
Den följande jämförelsen illustrerar skillnaderna i hur x264 och x265 kodar video.
Figur 3 – Originalbilden – Notera närvaron av den svarta pixeln som är markerad i den vita rutan
Figur 4 – Komprimerad med x264, notera att pixeln fortfarande finns kvar
Figur 5 – Komprimerad med x265, pixeln saknas.
Med en fast QP=27 tog x265-kodningen bort enskilda pixlar som inte påverkade den subjektiva visuella prestandan, men skapade en betydande minskning av PSNR-prestanda jämfört med originalbilden.
H.265 använder 16×16, 32×32 eller 64×64 block. H264 använder 4×4 eller 8×8 block. H.264-kodning har vissa fördelar när det gäller att bevara små detaljer som kanske inte är visuellt upptäckbara men som kan mätas i PSNR-tester.
Alla videokomprimeringsalgoritmer är utformade för att bevara meningsfulla detaljer som det mänskliga ögat är känsligt för (komprimeringsalgoritmer för maskininlärning är på väg!). När det gäller onaturliga bilder med visuella artefakter eller brus som införts under inspelning eller bearbetning kan H.265 kanske inte bevara de visuella detaljerna i dessa bilder bättre än H.264.
Ett extremt exempel på den relativa prestandan hos H.265 och H.264 på onaturliga bilder är en bild med rent vitt brus.
Figur 6 – En video med vitt brus 512×512
Testat med dessa kommandon för x264 respektive x265 och med force all i-frames:
ffmpeg -i .\images\noise-%03d.png -c:v libx264 -x264-params frame-threads=4:keyint=1:ref=1:no-open-gop=1:weightp=0:weightb=0:cutree=0:rc-lookahead=0:bframes=0:scenecut=0:b-adapt=0:repeat-headers=1:qp=27 -pix_fmt yuv420p noise264alli.264
ffmpeg -i .\images\noise-%03d.png -c:v libx265 -x265-params frame-threads=4:keyint=1:ref=1:no-open-gop=1:weightp=0:weightb=0:cutree=0:rc-lookahead=0:bframes=0:scenecut=0:b-adapt=0:repeat-headers=1:qp=27 -pix_fmt yuv420p noise265alli.265
Figur 7 – Video med vitt brus kodad med x264 och x265, jämförelse av PSNR och filstorlek
Med fast QP=27 är x264 PSNR 35.87dB och x265 PSNR är 23,02dB. x264 har 12 dB bättre PSNR-prestanda jämfört med x265 för denna bild med slumpmässigt brus! kan vara bättre på att bevara fler detaljer än den större matrisen (16×16 eller större) i H265.
För bilder med mer högfrekventa detaljer som innehåller spridningsbrus eller komprimeringsartefakter (t.ex. myggbrus) kommer H.264 att uppvisa högre SNR än H.265 med samma QP.
Från det här experimentet kan vi också förstå begränsningarna med PSNR-testet som ett objektivt kvalitetstest som inte alltid stämmer överens med den faktiska visuella kvalitet som uppfattas. Nyare metoder för utvärdering av visuell kvalitet som SSIM, MS-SSIM och VMAF stämmer bättre överens med det mänskliga visuella systemet och utgör en mer korrekt bedömning av visuell kvalitet.
För att ta itu med kundens ursprungliga observationer, kom de överens om att den ingående videon var kraftigt komprimerad och inte lämplig att användas i en sådan utvärdering.
Vänligen se NETINT:s webbplats för mer subjektiva testjämförelser: Subjektiv HEVC-omkodningskvalitet
Leave a Reply