[mythtv] Filter documentation?
Andrew Mahone
andrewmahone at eml.cc
Sun Jan 25 23:32:18 EST 2004
On Sunday 25 January 2004 17:32, Bruce Markey wrote:
> I guess I meant to imply that if you could
> posts some notes or raw information about the current filters
> and how to use them, I'd be willing to help flesh them out to
> go into the HOWTO (if Robert doesn't beat me to it =).
Heh, well, if you're volunteering to turn some rough info into decent docs, I
may as well take advantage ;-) I actually looked at the HOWTO docs, but I'm
not sure whether they're all generated from the SGML, or if I'm supposed to
edit each version.
Just a thought, and it'd be a bit of an ugly stopgap measure until there's
"real" filter support in the GUI, but what about listing the filter info from
FilterManager::GetAllFilterInfo in the GUI somewhere (probably in the TV
playback options, the only place in the GUI where you can edit filters right
now).
> I look forward to seeing the explanation and trying it out
> as a newbie filter user.
Ok, here's what I've got so far.
3 ways to enter filter strings:
edit DB yourself
record only, set per-channel filter in mythweb, settings->channels
playback only, set custom playback filter in mythfrontend, setup->tv->playback
A "filter string" is a group of filters separated by commas. Each filter may
have parameters appended, and parameters are prefixed by "=".
Example filter strings:
linearblend,quickdnr
kerneldeint,denoise3d
kerneldeint=10:1,denoise3d=12
currently available filters:
invert
Invert ignores any parameters, and inverts the pixel values of video frames.
linearblend
A simple deinterlacing filter that ignores parameters, and works by blending
adjacent lines. It replaces combing in interlaced video with a less
distracting "ghost" image.
kerneldeint
Kerneldeint is a more complex deinterlacing filter, which applies a filter
kernel using input from several line. It generally removes combing without a
"ghost" image, sometimes leaving a faint outline of the the image from the
other field. I find it much easier to watch than linearblend or no filter at
all. It accepts up to 2 integer parameters, separated by a colon. The first
parameter is the filter threshold, and defaults to 12. Adjacent lines
differing by more than the threshold value are filtered. The second option
defaults to 0. If set to a non-zero value, it will cause the filter to skip
chroma, and filter only the luminance. It may be useful on some capture
cards which do not capture the chroma fields of interlaced video correctly.
quickdnr
A fast temporal denoiser. It uses 2 thresholds to apply 2 different levels of
blending with the previous frame. It takes 4 integer parameters:
1: luma threshold 1
2: luma threshold 2
3: chroma threshold 1
4: chroma threshold 2
D Banerjee may be able to clarify these parameters, I didn't write this
filter. It appears to try to select reasonable defaults for omitted
parameters.
denoise3d
A slower denoiser that applies a spatial and temporal low-pass filter. The
spatial filter can remove some noise that quickdnr can't, but a more powerful
processor is needed. It accepts 3 float parameters:
1: luma spatial filter strength
2: chroma spatial filter strength
3: luma temporal filter strength
Reasonable defaults will be selected for omitted parameters. The chroma
temporal filter strength is calculated from the other filter strengths.
NOTE: there is a minor bug in denoise3d, which causes some high-valued
(usually bright white) pixels to wrap around to low values. Very
distracting, but fairly rare in things that I've been recording. I'm still
trying to get some good test video for this bug, I will try to have it fixed
ASAP.
crop
Covers edges of video with black bars. This helps to improve video quality
when the edges of the frame are distorted. It takes 4 paremeters which
appear to be mandatory. I need clarification from D Banerjee as to which
side each parameter crops from, and what unit the crop sizes are in (src
looks like pixels to me, description says macroblocks).
forceyv12
forceyuv422p
forcergb24
forceargb32
Forces the filter manager to use the given format. You can use one at the
head of a filter chain to change the capture format. The two RGB formats
should not be used, because there is no conversion filter for them yet. Most
likely use would be forceyuv422p to use YUV422P capture on cards w/ broken
chroma interlacing in YV12.
Filters you can't/shouldn't use:
convert
It exists, don't use it. The filter manager uses this filter automatically,
when it is unable to match the input/output formats of two adjacent filters.
postprocess
I believe this is currently disabled in the build, as it was not functioning
properly. It should be fixed, post-processing can make MPEG-4 video quality
acceptable at much lower bitrates.
I use "kerneldeint,denoise3d" for all channels. I have analog cable that's
mildly noisy, and very noisy on higher channels. For Cartoon Network, w/ bad
noise, I use "kerneldeint,denoise3d=12". These filters plus MPEG-4 encoding
on 480x480 video and 44KHz mp3 encoding, run around 50% CPU on my Athlon XP
2500+.
--
Andrew Mahone
andrewmahone AT eml DOT cc
More information about the mythtv-dev
mailing list