Portál AbcLinuxu, 30. dubna 2025 16:48
Kódování a dekódování videa jsou často kladené jako příjklady toho, že 64bit aplikace mohou být pomalejší než jejich 32bit protějšky. Důvodem není to, že by se 64bit režim pro tyto aplikace vyloženě nehodil. Problém je v optimalizaci existujících kodeků. Léty optimalizované algoritmy napsané v 32bit assembleru nelze snadno použít ani přepsat. Změnila se v tomto směru již situace nebo tento problém stále přetrvává?
Hardware
Core 2 Q6600@3.2GHz
64bit
MPlayer 1.0rc1-4.1.1 (C) 2000-2007 MPlayer Team CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Přeloženo pro CPU x86 s rozšířeními: MMX MMX2 SSE SSE2Kodeky přeloženy konzervativnimi CFLAGS a s -march nocona. GCC 4.2 march pro Core2 nemá, march nocona alespoň pozapíná sse a mmx a není to třeba dělat ručně.
32bit
MPlayer 1.0rc1-4.1.1 (C) 2000-2006 MPlayer Team CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2Kodeky přeloženy pro p4. mplayer má k dispozici wincodecs a poměrně často jich využívá (rozhodnutí v této záležitosti byly ponechány zcela na přehrávači).
Způsob měření
mplayer -nosound -benchmark -quiet -frames 10000 -vo null
Pozn.: ne každé testované video mělo 10000 snámků
time mencoder
Disclaimer: Nejsem žádným odborníkem přes kodeky a kompresi videa. Je možné, že v mém měření nebo v textu budou kvůli tomu nejaké nepřesnosti.
32bit [s] | 64bit [s] | ||
The Simpsons Movie, trailer (1080p) | 18.2 | 16.3 | 11.7% |
Dinosaurs 3D (1080p) | 30.2 | 27.2 | 11% |
Elephants Dream (720p) | 38.1 | 33.2 | 14.7% |
Animusic (720p) | 41.0 | 36.5 | 12.3% |
Apple Leopard Tour (480) | 15.4 | 13.6 | 13% |
32bit [s] | 64bit [s] | ||
Elephants Dream (1080p, 10000kbps) | 53.5 | 49.0 | 9% |
Garfield (720x384, 2400kbps) | 10.9 | 9.3 | 16% |
Kulhanek, Temna hmota (768 x 576) | 10.8 | 9.0 | 22% |
32bit [s] | 64bit [s] | ||
other.ogg (1600x1200, nizka komprese) | 28.6 | 23.5 | 21.7% |
kanturek_diskuze-hq.ogg (768x576) | 31.6 | 23.6 | 33.9% |
32bit [s] | 64bit [s] | ||
Streaming pomoci VLC (720x576) | 14.6 | 18.4 | -20.7% |
CZJUG (480x384) | 9.8 | 11.9 | -17.6% |
32bit [s] | 64bit [s] | ||
film (720x480, 700kbps) | 10.1 | 25.1 | -59.8% |
film (480x360, 512kbps) | 5.3 | 12.9 | -58.9% |
32bit [s] | 64bit [s] | ||
film (512x410) | 10.1 | 9.8 | 3% |
32bit [s] | 64bit [s] | ||
DVD | 2.4 | 2.0 | 20% |
32bit [s] | 64bit [s] | ||
videoklip | 34.2 | 30.4 | 12.5% |
-vo null 49.0s -vo xv 66.5s -vo x11 113.9s -vo gl2 175.5s
Sekvenčně: 54.4s Paraelně: 16.6sParaelně je tedy úloha zpracována 3.28x rychleji.
Snažil jsem se otestovat širokou škálu kodeků, se kterými uživatel běžně přijde do styku. Kde to šlo jsem použil volně stažitelné zdroje a uvedl zdroj aby si to každý mohl vyzkoušet u sebe.
Z výsledků lze usoudit, že dekódování/dekomprese už není na x86_64 platformě výkonnostním problémem. Výjimku tvoří různé varianty WMV, při přehrávání kterých se použijí perfektně odladěné kodeky z windows ale pouze při použití 32bit binárky.
Tento díl byl jen úvodem pro zjištění zda je o tuto problematiku zájem. Pokud ano, tak bych v příštím dílu provedl podobnou analýzu zaměřenou na mnohem zajímavější téma, tedy na kódování/kompresi.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.