Just nu i M3-nätverket
Gå till innehåll

Förslag. Spela upp HD-Video, x.264 komprimerad film på slö dator.


Gäst

Rekommendera Poster

Antar många sitter i samma sits som jag med en aningen för slö dator för att spela upp HD material på sin nya HD-Ready TV. Därför skulle jag uppskatta om någon gör något av en idé jag fick.

 

Idén är mycket enkel. Genom att mäta processoranvändningen under hela filmen registrera dom delar som kräver för mycket av cpu'n. För dessa delar som förhoppningsvis inte är allt för många i en 720p film så skulle man då kunna lagra uträknad information i en separat fil.

 

Det handlar alltså om en hjälp-fil med information som drar ner topparna i cpu-användningen som programmet bygger upp efter ett pass. Givetvis blir totala filsumman större men lagringsutrymme är billigt.

 

Jag vill inte reencoda till något lossy format som mpeg2 eller hela i lossless vilket dels skulle ge mycket sämre kvalitet, mycket längre tid (mpeg2) eller ta mycket större utrymme totalt sett.

 

Meningen är att kvaliteten förblir exakt densamma men med lite extra arbete i form av att räkna ut metadatan.

 

Synpunkter? OBS det tekniska i H.264 decodern kan jag inte.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Vet inte om det skulle vara möjligt faktiskt. Det KAN ju faktiskt hända att resultatet av de uträkningar som tar tid är väldigt stora, kanske t o m större än motsvarande film i MPEG2. Jag kan inte heller hur H264-dekodern arbetar, men jag har kollat lite hur ljudcodecs funkar. Är ganska säker på att även om det är möjligt är det inte enkelt.

 

Det största hindret är troligen också det att det inte finns ett behov för det. Hårdvaruutveckligen går fort och bärbara mediaspelare har specialkretsar för att avkoda video, vilket gör att det blir mycket effektivt. Detsamma gäller troligen många grafikkort, kolla här:

http://www.tomshardware.com/2007/10/26/avivo_hd_vs_purevideo/

Förresten, det verkar som Avivo även kan koda h264, vilket är lite coolt. Det var nytt för mig, får ta och undersöka det närmare :) Synd att man har nVidia.

 

Mitt tips till dig och andra i din situation är således: Byt grafikkort till ett som klarar att avkoda 720p i H.264. Det borde inte kosta mycket alls.

 

EDIT: Läste precis att purevideo i WMP endast funkar i Vista. Men det finns andra spelare som är "PureVideo enabled". Nero och PowerDVD är två som ska funka, bl a.

[inlägget ändrat 2007-10-30 23:38:28 av r1ck]

Länk till kommentar
Dela på andra webbplatser

Glömde att skriva att "uträkningen" egentligen är det samma som att spela upp filmen utan ljud i högsta möjliga hastighet, dvs det skulle gå mycket snabbare än att titta på filmen. Beroende på dekoder givetvis. Detta är för dom som har processorer som ligger på gränsen. En P4 2GHz är nog lite för långsam ändå så.

 

Även om utvecklingen går snabbt så har inte alla råd med det senaste iaf. Det vore mycket bättre om man kunde använda existerande utrustning för uppspelandet. Det vore perfekt om man kunde ersätta htpc'n (som är dyr) med familjens nyinskaffade Laptop.

 

Enklaste lösningen är att man ersätter strömmen i de korta sekvenser som börjar hacka med mpeg2 (kanske även snällare komprimerad x.264 alt. lossless) komprimerade snuttar.

 

Jag och många andra vill inte ha en stor dator som snurrar i TV-rummet eller har råd med dyra media-spelare. Men tack för tipset.

 

Länk till kommentar
Dela på andra webbplatser

Enklaste lösningen är att man ersätter strömmen i de korta sekvenser som

Okej, jag missförstod dig då, trodde du menade någon slags 2-pass-dekodning. Det vore ju möjligt att göra som du säger men kräver då 2 dekodrar och att man byter mellan dem utan frame drop. vilket antagligen kräver integrering på codec-nivå.

Vilket leder tillbaks till mitt första påstående, ingen kommer göra detta, eftersom det inte är ett reellt problem. Visst är det bekvämt när man kan lösa problem mjukvarumässigt, men ett Radeon X1300 kostar mindre än 600 spänn. Har man råd med en Hd-ready tv (visst måste de ändå kosta 5000?) så har man väl råd med det? Såna klena grafikkort är i regel fläktlösa också.

I slutändan vill man ju inte sitta och vänta i ytterligare en timme på filmen för att den måste "anpassas till datorns hårdvara".

 

Länk till kommentar
Dela på andra webbplatser

Hmm, hur tänker du nu? Ett nytt grafikkort hjälper ju föga,även om det är ett relativt billigt ( ingen vill ha en stationär dator till TV'n ).

 

Sen var det inte X1300 som dom jämförde i testet. Lägg märke till CPU usage graferna en del är inte så smickrande ändå och det är ändå resultatet som räknas.

 

Man behöver inte integrera mpeg2 i h.264 dekodern, om det var detta du trodde. Gäller bara hålla reda på vilken frame man är på. Framebuffer ?

 

Det man behöver fixa är en player som kan hantera detta bara.

 

Anledning jag vill ha detta nu är bara för att vara lite förutseende då bärbara som du ser kommer bli julens inköp men jag tror hd-ready TV kommer starkt också.

 

Om man gör ett sådant här program för Linux kommer nog viljan att installera t ex ubuntu på sin bärbara öka enormt.

 

Länk till kommentar
Dela på andra webbplatser

Hmm, hur tänker du nu? Ett nytt grafikkort hjälper ju föga,även om det är ett relativt billigt ( ingen vill ha en stationär dator till TV'n ).

..

förutseende då bärbara som du ser kommer bli julens inköp

 

Jo jag tänkte stationär dator, för du skrev inget om att datorn var bärbar. Och nya bärbara klarar med största säkerhet H.264, även de för runt 5000.

 

Lägg märke till CPU usage graferna en del är inte så smickrande

Tittar vi på samma graf? CPU usage gick ju ner från 75% till 25% på testmaskinen. Du pratade ju om maskiner som låg "på gränsen", eller?

 

Sen var det inte X1300

Sorry fel av mig, fast jag tror det går med det också. Men de nämner nvidia 8400 GS. Hittar ett för 419 kronor på prisjakt. Dock verkar nvidia ta betalt för sin codec om man vill använda WMP.

 

Man behöver inte integrera mpeg2 i h.264 dekodern, om det var detta du trodde. Gäller bara hålla reda på vilken frame man är på. Framebuffer ?

Menade mer om man ville köra Windows media center eller liknande, då man troligen skulle behöva ett filter som tar hand om båda. Det går säkert bra att modifiera t ex mplayer så att man gör som du säger.

 

Men det fina med opensource-världen är att alla kan bidraga med kod, så om du kan programmera så... Min poäng kvarstår dock: jag TROR inte intresset är stort nog för någon (annan) att lägga ner timmar och åter timmar för att göra det. De flesta datorer i världen klarar antingen hd-upplöst material, eller så är de "beyond all rescue".

 

EDIT: Kolla CPU-graferna förresten, som du ser är de ganska jämna ändå. Om du vill ta bort varje "mikro-topp" blir det ganska stor andel av filmen som måste omkodas.

 

[inlägget ändrat 2007-10-31 10:42:11 av r1ck]

Länk till kommentar
Dela på andra webbplatser

Jag har nu gjort några mätningar på min stationära. Den bärbara har tyvärr fortfarande windows.

 

Testsystem:

ubuntu 7.10

x2 3800+ @ 2GHz (orginal)

2 GB minne

VLC

x.264 komprimerad film runt 8000 sekunder 720p.

 

Loggade båda kärnorna och tog ut max CPU usage utav dom båda (ej medel).

 

Resultat:

 

Grupp (Max(CPU),Frekvens (antal samplingar inom gruppen)

95 ,1

96 ,3

97 ,2

98 ,2

99 ,3

100 ,6

 

Antal Samplingar 8351 (en sample per sekund)

 

Som du ser ligger min CPU på gränsen då den bottnar runt 10-20 sekunder fördelat på 8351 sekunder.

 

10-20 sekunder är inte så mycket. Det skulle visst kunna lagras färdigdekodat utan att ta för mycket plats.

 

 

[bild bifogad 2007-11-01 18:18:38 av perrabyte]

995947_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Jag testade den för länge sedan men vad jag kommer ihåg så fuskade den med kvaliten. Tyvärr så är den inte gratis heller och jag kör Linux. Även om det går att installera CoreAVC i linux är det för krångligt för gemene man.

 

Appropå användning av flera cores så tycker jag det är skamligt att det inte är bättre. Codecen måste vara feldesignad, totalt obegripligt.

 

Ska testa dela upp en dvd-mpeg2 på mitten ( bildmässigt ) och komprimera var för sig med x.264. Detta skulle iaf tvinga systemet använda fler än en core. Skulle gissa att storleksökningen är liten i jämförelse. En film i 720p tar ju ändå mer än 4.3GB.

 

Nej det behövs en ny codec. Ett tips är att utveckla den direkt för multicores samt för att skaffa sig en edge så kan man anpassa den för subpixlar som höjer effektiva upplösningen på en LCD-skärm ( typ som ClearType fast bättre. =)

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...