Concept for a very noob friendly half-automated filtering+encoding GUI:
Ok, what’s the main difference between a noob and a experienced user?
Imo, ripping a DVD, creating a d2v project or resizing the video via AviSynth is relative easy to learn... But knowing about all the flaws n quirks a source can have n how to fix them needs some experience, same with the setup of codecs. So, my idea is basically to guide the user visually (sample images) n textually (questions the user has to answer) through the filter n encoder setup.
How would it work? The user opens his source with the program which will open up 2 windows... One window where the user can see his source (plus slider n buttons to jump through it n maybe a function to zoom in/out) and another window that will ask the user questions to collect information about the source and what the user want to do with it n which tradeoffs he’s willing to make... With this info the program can setup all needed filters + the encoder to get nearly optimal results without that the user needs much knowledge about the countless filters, their effects and their settings!
How would this work in detail? First it will ask the user what kind of content he has (Anime/Toon, CGI, Film, etc; each option with small sample image), then the user selects one of the options and has to answer more detailed question... Like, when he selected "film" the program asks the user if it’s black&white content, if it’s mainly dark, if it’s a fast paced action movie, whatever... Together with the info it can attain automatically (length, resolution, framerate etc.) and input it gets later (desired size etc.) the program already has most info it needs to configure the encoder... This leaves the filtering: Here the program will show the user images of common flaws n properties a source can have (interlacing, noise, halos, blurriness etc...) step by step, n tell him to check his source for occurrence and finally offer a solution (or multiple ones) for each problem/situation.
A random example? Ok... At some point the program will show you 4 small crop-outs of a image (none, mild, medium and strong noise) and tells you to check your source for such noise n to click the sample-image that comes closest to your situation (could look like this). Then it will ask you if you prefer keeping the noise or if you want to remove it. Depending on your answer it will apply weak, medium, strong or none denosing n also tweak the encoder settings to match your preference... This way the program will lead you through all possible filter steps n source characteristics that could have influence on the encoder settings and collect enough information to pick a close to optimal composition of filters n settings.
What’s with lazy people? Not everyone is willing to answer 20, 30 or more questions! Well, some sort of "expertise/complexity level" could be added that the user can choose before he starts answering the questions... From low (3-5 most important questions) up to high (all questions).
Why did nobody write something like this yet? Maybe because pre-defining the right filters n settings for each situation needs hell a lot testing... Maybe because no one got this idea yet... Maybe it already exists but we don't know about it... Dunno... But imo it’s a good n innovative concept, much better than the usual "Denoise: Yes/No" checkboxes we have in current GUIs, and that’s why I wrote this stuff down!
Why I don’t write this program? Well, I’m willing to do a big part of the necessary testing for the filtering etc. But as I can’t code, and even the testing alone will consume a lot time, I can’t do it alone... If you want to participate, you are welcome! :]
[2007]
Better visual results for video compression via pre-quantization:
What do I mean by pre-quantization? Quantization (removing image information) before encoding instead of just the quantization inside the encoder! Why this? To gain compressibility... Most people already pre-quantize their video before encoding it, its called denoising! Why they do it? To gain compressibility? Yes, but why? Because otherwise the quantization in the codec would handle it, and in most cases this would lead to results that are visually inferior (more artefacts) to the denoised feed. So, to summarize it: People use denoisers to pre-quantize their videos as a good denoiser does a better job in removing detail/noise than the codec's quantization... This means by improving this process you could get a huge visual improvement for ya encodes! But how can this process be improved?
1st: Making a difference between high-motion and low-motion
As you won't notice fine details in high-motion scenes, you could gain some compressibility by quantizing them stronger than the rest (more motion -> more denoising). Simple frame-based motion detection is already possible (have a look at this script). Better but slower would be to make a difference between scenes that are "motion-blurred" (no real detail but noise/grain = should be smoothed) and scenes with "track-able-objects" motion that are detailed (shouldn't be smoothed). Making the motion detection block-based instead of frame-based (split the image up in 8x8 or 16x16 blocks -> do motion detection for each block -> count the number of blocks with high-motion -> if the number exceeds a certain level do smoothing, if its below the level do no smoothing) should solve this problem...
2nd: Denoising strength that matches the amount of noise
Often the amount of noise changes from one scene to another, so it would be good to make the denoiser aware of this situation! Normal filtering would remove approximately the same amount of noise from each frame, so using a denoiser at low strength would clean up a scene with a low level of noise while a scene with a high noise level will still be noisy... Using a denoiser at high strength on the other hand would mean that the scene with the high noise level comes out good while the scene with the low noise level could end up over-smoothed [loss of visible detail instead of just loosing barely visible detail or noise]. This sucks! Ideally you want that each frame ends up with the same amount of noise/detail left in it, no? Well, there are ways to do this... Just have a look at this script!
3rd: Embadding stuff like this into the encoder
This way you could make the pre-quantization strength self-adjusting to the compression goal you want to reach [1CD or 1DVD...]. This could be achieved by doing more than the usual 2 passes [Checking compressibility of pre-quantization with fixed values -> Checking compressibility without pre-quantization -> Calculating the optimal pre-quantization strength from this info -> Doing the usual 2pass encoding to reach exact filesize]. This is not necessary needed but would save n00bs from all the manual work n tweaking...
[2006]
GFX accelerated subtitle renderer
Softsubs via Shader: Same effect-level as hardsubs but still realtime (i hope)
The Good, the Bad and the Ugly
- Saving Private Ryan
- The Fast and the Furious
- Matrix
- Matrix Reloaded
- A Beautiful Mind
- Alien 1/2/3/4
- Terminator 1/2/3
- Little Big Man
- Titanic
- Die Hard 1/3
- 12 Monkeys
- Rocky 1/2/3/4
- Dogma
- Gladiator
- Fight Club
- Brother
- Good Fellas
- Scarface
- Casino
- Equilibrium
- Donnie Brasco
- Carlitos Way
- Fulltime Killer
- The Deer Hunter
- Predator
- Pulp Fiction
- From Dusk Till Dawn
- Final Fantasy VII Advent Children
- Once Upon A Time In America
- Cube
- Bad Boys 2
- The Fifth Element
- Cruel Intentions
- Forrest Gump
- Jurassic Park
- Leon the Professional
- Braveheart
- Star Wars 4/5/6
- Dawn of the Dead
- 28 Days later
- Conan the Barbarian
- Army of Darknes
- Dobermann
- The Boondock Saints
- Gangs of New York
- Hero
- Serenity
- The 13th Warrior
- Face Off
- Butterfly Effect
- Pirates of the Caribbean
- 25th Hour
- Old Boy
- The Machinist
- Ong Bak
- Indianer Jones 1/2/3
- Snatch
- Shining
- 300
- Pitch Black
- Braindead
- Natural Born Killers
- Texas Chainsaw Massacre
- A lot old easterns I cant remember the name of...
"Its just like the story of the grasshopper and the octopus. All year long the grasshopper kept burying acorns for winter while the octopus mooched off his girlfriend and watched TV. Then the winter came, and the grasshopper died, and the octopus ate all his acorns and also he got a racecar. Is any of this getting through to you?"
- Fry in Futurama
"Computer games don't affect kids! I mean, if Pacman affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."
- Unknown
"I believe if you took all the porn sites off the Internet, there would be one site left, and it would be called "Bring Back the Porn!""
- Dr. Perry Cox on Scrubs
"Honey, your 0000FF eyes are overwhelming and ya skin is even smoother than Deen("a3d",4,20,20,50)"
- Soulhunter
"The bible says "you earn what you seed" ...but my bittorrent stats proof it wrong!"
- Soulhunter
"I bet guys that can play guitar with their tongue get all the chicks..."
- Soulhunter about Jimi Hendrix
"The most powerful weapon on earth is the human soul on fire!"
- Ferdinand Foch
"What is steel compared to the hand that wields it!?"
- Thulsa Doom in Conan
"Beauty is when the face of a girl is nuff to fap..."
- Soulhunter
"ICQ is like a chatversion of Realplayer..."
- Soulhunter
"He sure has a healthy ego considering most of his favorite quotes are his own."
- Zach @ Doom9`s about me, lol
Most DVDs are high quality, no? No, most DVDs are far away from what
you could achieve via software processing/encoding... Grab some HDTV
flick, filter it properly via AviSynth, downscale to D1, encode it to
MPEG2 via CCE, author it to a DVD and compare it to the retail
version... I bet you will be surprised how bad some of the retail versions
look compared to a self-authored version! Considering that using the
master as source and not "just" a HDTV version would probably give even
better results makes me wonder why the big companys not simply encode
their stuff on PCs, should be also cheaper... But HD stuff is high
quality, right? No, its the same as with DVDs! Most of the current HD
content doesn't contain as much details as it could/should (wrong
processing, low bitrates and codecs which tend to smooth). Just compare
a 8Mbps 720p WMV trailer to a downsized to D1 -> upsized to 720p version...
Hard to spot a difference, huh? But if you take a HQ source (5MPix or
above, which should be close enough to the quality of a master), downsize it to 720p and compare it to a downsized to D1 -> upsized to 720p version there is a noticeable difference! Amazing how much current content sucks quality-wise, huh!?
[2006]
Situation changed...
Current HD content (thanks to the introduction of BluRay) looks much better compared to what we had 2006! :]
[2008]
Analog TV and DVBT
DVBT beats analog TV, right? No! At least not quality-wise... DVBS maybe, but DVBT definitely not! Why? Ok, lets summarize what you get with DVBT... Time-shifting, 1:1 recording, EPG, less noise and a slightly sharper picture (which means more edge detail, not necessarily more texture detail, but ok...) Well, nice features heh!? Yes, but you also get compression artefacts, stream corruptions, and on top of this probably less channels than via analog TV! Compression artefacts? Yes, blocks and ringing -> Samples: 1, 2, 3, 4 <- No wonder, the average bitrate of DVBT is ~2000-3000kbps which is 2-3 times lower than the bitrate of a DVD (keep in mind that a DVD uses the same framesize, the same framerate and the same compression technique as DVBT). And whats with this stream corruptions? Its the counterpart to the noise of analog TV, just more annoying... Blocks (sometimes pink or green) and audio disruptions (loud "sqeek" sounds which make you fear you'd get a tinnitus) and this even with a signal quality close to 100%! So, why the change to DVBT? Its cheaper for the broadcasters! A DVBT channel eats 3-4 times less bandwidth than a analog channel... and bandwidth costs money!
What is film grain? Basically film grain is nothing more than a lot
silver particle clusters... Most motion-picture film material is made of 3 layers (one for
each color -> RGB) and they contain dye + silver salts. In the dark
parts of the image the salts get transformed into metallic silver
(which blocks the light) when the film gets exposed, this is also the
reason grain is usually much rougher in dark areas than in bright ones!
Why are some flicks more grainy than others? Well, you can get
celluloid in different granularity grades! Why? Celluloid with low
granularity has a lower photo-sensitivity (lower ISO speed) and
celluloid with high granularity has a higher photo-sensitivity (higher
ISO speed) Means: For celluloid with low granularity you need much more
illumination than youd need for celluloid with a high granularity! The
film format makes a difference as well, Super8 film for example looks
usually more grainy than 35mm film (8mm = smaller than 35mm = needs
more upsizing = grain becomes more visible). And, last but not least
there is also postprocessing/filtering which can be used to remove or
enhance the grain! And what is noise? Noise could be anything, depends
on the context... Its basically everything that distorts the
signal and mostly a unwanted by-product (analog interferences,
compression artefacts etc.)
<Scarface> i don't have a gf
<Scarface> i suck too much :\
<Soulhunter> yeah, stop sucking...
<Soulhunter> and learn how to lick!
<Scarface> how do i fap?
<Scarface> grab him and squeeze?
<Soulhunter> random idea: a girly shirt with *sucks*
<Soulhunter> or even better... *sucks like no other*
<Soulhunter> hmm, i should patent this idea asap >.>
<mf> why am i stuck in a channel filled with eunuchs!?
mf: Squirting.101.DVDRip-SMuT
mf: teaches you all about how to get a woman to cum XD
KD: you think there is a anti-universe where girls download pr0n
KD: like "BJ 101 - How to do it right" to bring more pleasure to mans?
So, what's this comparison about? I tested denoisers for their raw denoising efficiency! How? By comparing a clean source vs. the clean source + noise + denoising! Compare? Via PSNR! PSNR? Because it's a good way to test the image reconstruction capabilities of the denoisers! SSIM? SSIM wouldn't really change the results, it's mainly advantageous for exotic noise like blocks, but as I added simple gaussian noise, PSNR was enough! Compressibility? No, it tells you nothing about the denoising efficiency! Proof? BlankClip() gives superb compressibility but dull visual results, eh!?
The process
So, what have I done? I took a clean source, loaded it via avisynth and compressed it to a lossless YV12 format, call this CleanClip. Then I took the same source, loaded it via avisynth again, added in artificial noise and compressed it to the same lossless YV12 format, call this NoisyClip. Finally I did PSNR comparison between CleanClip and the filtered output of various denoisers with their respective settings on NoisyClip. What was the source? Actually I used two sources, a movie source and an anime one! The movie source was a 720p Serenity trailer which I downsized to D1. The anime source was a 720p RAW of The Snow Queen, also downsized to D1! How I added in the noise? I simply applied a mixture of AddGrain() and GNoise() to simulate the kind of noise you find on an average DVD!
- UberSmooth2()
- Spellchecking this mess
- Image-artifacts overview
- Learn how to make a proper website
- Replacing the outdated PC pictures with new ones
- AVS function suite for digicam picture processing
- Adding something about my selfmade LED ring to the site