Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Echter, ik weet dat IrfanView een lossless JPEG rotation functie heeft... En aangezien MPEG deels gebaseerd is op JPEG, is er wellicht een mogelijkheid om dat te doen...
Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD
Als je een plaatje roteert verandert er natuurlijk weinig aan die parameters, je zult (even simpel gezegd) de parameters voor de x- en y-richting alleen even om moeten wisselen, en waar nodig negatief maken.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Maar is het niet zo dat de MPEG niet uit allemaal losse frames opgebouwd is? Dat zou het werk mijns inziens wel flink vergemakkelijken
[ Voor 37% gewijzigd door riezebosch op 24-02-2004 16:28 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
@MSalters: ik zal nog ff op de termen die je gebruikt verder zoeken, heb namelijk nog niet van fourier transformatie, inverse fft en quantisatie gehoord...
[ Voor 38% gewijzigd door riezebosch op 24-02-2004 19:51 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Lees net in de specs dat het MPEG1 is
[ Voor 15% gewijzigd door riezebosch op 25-02-2004 23:25 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Verwijderd
En je kan blocks niet draaien omdat blocks ook een x en y richting hebben. Om die te draaien moet je elk blok alsnog decoden, en... Juist ja.
Nope DVD is echt MPEG2 hoor, VCD = MPEG1 en SVCD is ook MPEG2 (alleen heeft een lagere resolutie en max bitrate dan DVD). Kijk eens rond op dvdrhelp.com voor wat meer formaten kennis.riezebosch schreef op 25 februari 2004 @ 23:05:
Heb het gelezen ja, van I, B en P frames. Intra, Predicted en Bidirectional frames. Weet dus ook niet welke MPEG er uit m'n camera komen rollen. Zal wel MPEG2 zijn toch? MPEG4 is toch DVD?
edit:
Lees net in de specs dat het MPEG1 is
Allerlei JPEGs achter elkaar waar jij het over had is MJPEG (hetzelfde als animated GIF), wat vooral voor het capturen van tv output van consoles (Xbox/PS2 enz) wordt gebruikt, dit omdat de interlacing een MPEG compressie compleet in de soep zou laten lopen.
MPEG1 is redelijk simpele compressie, ik denk dat je mbv deze site wel genoeg te weten kan komen: http://www.chiariglione.org/mpeg/standards/mpeg-1/mpeg-1.htm
Klopt het dat er in DirectX (DirectShow) wel een MPEG decoder maar geen encoder zit? Anders zou ik misschien mooi hiermee alles kunnen doen...
Uit MSDN maak ik idd op dat er alleen een decoder in zit, en DirectX schijnt ook met zulk soort dingen supertraag te zijn...
Maar als je het formaat goed doorhebt, moet het toch ook mogelijk zijn gewoon die motion richting te kantelen? (Heb me er nog niet zover in verdiept dat ik hier iets zinnigs over kan zeggen...)Verwijderd schreef op 26 februari 2004 @ 02:14:
...En je kan blocks niet draaien omdat blocks ook een x en y richting hebben. Om die te draaien moet je elk blok alsnog decoden, en... Juist ja.. Ook de motion estimation routines moet je dan opnieuw doen omdat de x/y richting van je block verandert is en de motion richting (en dus de index uit je table) dus ook...
[ Voor 59% gewijzigd door riezebosch op 26-02-2004 11:40 ]
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Het probleem waar je tegenaan loopt is dat decoden nog wel goedkoop is, maar encoden, inclusief eventuele motion estimation e.d. nogal duur is.Verwijderd schreef op 26 februari 2004 @ 02:14:
En je kan blocks niet draaien omdat blocks ook een x en y richting hebben. Om die te draaien moet je elk blok alsnog decoden, en... Juist ja.. Ook de motion estimation routines moet je dan opnieuw doen omdat de x/y richting van je block verandert is en de motion richting (en dus de index uit je table) dus ook. Misschien valt er een minieme winst te pakken, maar ik zie niet in waarom je daar moeite in zou steken, want het kwaliteitsverlies heb je inmiddels toch al vanwege de block decoding.
Een rotatie over 90 graden daarentegen is de transformatie (x,y)->(y,-x) danwel (x,y)->(-y, x). Dat is numeriek triviaal; je 8x8 blokken bijven 8x8 enzo.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Nou, wat er gebeurt is dat de encoder een bepaalde bitrate moet halen, deze kan variabel zijn of constant.riezebosch schreef op 26 februari 2004 @ 10:40:
Nu is mijn vraag: waarom is er kwaliteitsverlies bij decoden en opnieuw encoden? Het hoeft toch niet zo te zijn dat er wanneer je algoritme er opnieuw overheen haalt weer meer informatie weggegooid wordt?
Bij een constante bitrate gaat de encoder kijken hoe hij de beeldinformatie zo kan rangschikken en onderverdelen in B, I en P frames om zich aan die bitrate te houden, met zo min mogelijk kwaliteit verlies. Bij een variabele bitrate moet de encoder steeds weer een filtertje toepassen (meestal gebaseerd op hoe een mens details bekijkt) om zuinig met de bitrate om te gaan, of juist een wat hogere bitrate te gebruiken om de kijker het verschil niet te laten zien.
Welnu, als jij een film hebt naar MPEG hebt omgezet, is daarbij kwaliteit verloren gegaan, doordat er JPEG compressie op een frame is toegepast, en dat kan ook op de vervolgframes nog zijn gebeurd (als de bitrate nog te hoog was). Ga jij dat nu opnieuw encoderen, dan moeten al die artifacts (meestal te zien als wazige hagelslag rond dingen die bewegen) óók worden geencodeerd.
Dit wordt een probleem, want de encoder is niet zo intelligent om het verschil te zien tussen een artifact en een origineel detail. Op die manier worden er dus bij de hercompressie details die bij de 1e keer niet zijn vervaagd, alsnog vervaagd. Weliswaar is het minder ingrijpend dan in theorie (de encoder heeft namelijk soms wel door dat een artifact een artifact is doordat het een egaal blokje is), maar het is wel degelijk zichtbaar.
Je kan het zelf testen met JPEG, zoek een foto in png/bmp, zet die om naar JPEG, weer terug naar BMP en nog een keer naar JPEG.
Daarnaast heeft het niet echt hoge prioriteit voor me, en is het ook meer een vorm van bezigheidstherapie
@MSalters: wat in je/uw laatste post staat was eigenlijk ook precies wat ik bedoelde, bij een 90 graden rotatie veranderd de film in principe niet. Alleen moeten de 8x8 blokken gekanteld en op andere positie geplaatst worden (en natuurlijk de motion-richting gewijzigd). Maar voor zover ik zie is dit wiskundig niet een hoogstaand algoritme...
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack