Mercurial > mplayer.hg
changeset 9688:e60c24aa2b43
Merged into the man page and libmpcodecs.txt.
author | diego |
---|---|
date | Wed, 26 Mar 2003 00:56:22 +0000 |
parents | 2e1bd9192ce2 |
children | 70bba63f7e46 |
files | DOCS/tech/vop.txt |
diffstat | 1 files changed, 0 insertions(+), 241 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/tech/vop.txt Wed Mar 26 00:53:15 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -Video Filters -============= - -Video filters are plugin-like code modules implementing the interface -defined in vf.h. - -Basically it means video output manipulation, i.e. these plugins can -modify the image and the image properties (size, colorspace etc) between -the video decoders (vd.h) and the output layer (libvo or video encoders). - -The actual API is a mixture of the video decoder (vd.h) and libvo -(video_out.h) APIs. - -main differences: -- vf plugins may be "loaded" multiple times, with different parameters - and context - it's new in MPlayer, old APIs weren't reentrant. -- vf plugins don't have to implement all functions - all functions have a - 'fallback' version, so the plugins only override these if wanted. -- Each vf plugin has its own get_image context, and they can interchange - images/buffers using these get_image/put_image calls. - -API details: --- TO DO -- (see vf.h for API and vf_*.c for examples) - -Current plugins: -================ - --vf crop[=w:h:x:y] - Simple cropping plugin. - w,h (cropped width,height) defaults to original width,height - x,y (position of cropped subimage on the original image) defaults to center - MPI: EXPORT only, using stride manipulation - --vf expand[=w:h:x:y:o] - Expanding _and_ (optional) OSD rendering plugin. - w,h (expanded width,height) defaults (-1) to original width,height - x,y (position of original image on the expanded image) defaults (-1) to center - o (0=disable/1=enable SUB/OSD rendering) defaults (0) to disabled - MPI: DR (if possible) or copy - Special: mpcodecs core uses it to solve stride restrictions between filters - MEncoder uses (autoload) it to render SUB/OSD - --vf flip - Flips image upside-down (vertical mirroring) - No parameters. - MPI: DR (if possible) or EXPORT, using stride manipulation - Special: dec_video autoloads it when flipping is required and libvo can't do - --vf mirror - Horizontal mirroring - No parameters. - MPI: TEMP - --vf rectangle[=w:h:x:y] - Draw a rectangle. Useful for testing crop plugin parameters. - w,h (rectangle's width and height) defaults (-1) to maximum - possible width while keeping the boundaries visible. - x,y (rectangle's top left corner position) defaults (-1) to upper - left most position. - The plugin responds to the input.conf directive "change_rectangle" - that takes two parameters. The first parameter can be 0 for w, 1 - for h, 2 for x or 3 for y. The second parameter is the amount to - change the designated rectangle boundary. - MPI: TEMP, accepts stride - --vf rotate[=x] - Rotate image +/- 90 degrees - Optional 'x' parameter (0..3) controls horizontal and vertical mirroring - MPI: TEMP - --vf scale[=w:h[:c[:p]]] - Software scaling (zoom) _and_ yuv<->rgb colorspace conversion - w,h (new width/height after scaling) defaults to original width,height - Note: If -zoom is used, and underlying filters (including libvo) are - incapable of scaling, then it defaults to d_width/d_height! - note 2: w/h values -1 means original width/height, 0 means scaled - d_width/d_height. -2/-3 means calculating w or h using the other - dimension and the original (-3) or prescaled (-2) aspect ratio. - c chroma skipping - 0 -> use all available input lines for chroma - 1 -> use only every 2. input line for chroma - 2 -> use only every 4. input line for chroma - 3 -> use only every 8. input line for chroma - p scaling parameter (depends upon the scaling method used) - for -sws 2 (bicubic) it is sharpness (0 (soft) - 100 (sharp)) - for -sws 7 (gaussian) it is sharpness (0 (soft) - 100 (sharp)) - for -sws 9 (lanczos) it is filter length (1 - 10) - MPI: TEMP, accepts stride - Special: dec_video and mpcodecs core autoloads it for colorspace conv. - --vf yuy2 - Forced software YV12/I420 -> YUY2 conversion - (useful for video cards/drivers with slow YV12 but fast YUY2 support) - MPI: TEMP, accepts stride - --vf rgb2bgr[=swap] - RGB 24/32 <-> BGR 24/32 colorspace conversion (default) or - RGB 24/32 <-> RGB 24/32 conversion with R<->B swapping ('swap' option) - MPI: TEMP, accepts stride - --vf palette - RGB/BGR 8 -> RGB/BGR 15/16/24/32 colorspace conversion using palette - MPI: TEMP, accepts stride - --vf format[=fourcc] - _restrict_ the list of supported colorspaces (query-format()) to a single, - given fourcc. The 'fourcc' option defaults to 'yuy2', but may be any - format name, like rgb15, bgr24, yv12 etc... - Note again that it does NOT do any conversion, it just limits the format - list for the _next_ plugin. - MPI: passthru - --vf pp=[<filterName>[:<option>[:<option>...]][/[-]<filterName>[:<option>...]]...] - postprocessing filter. (useful for codecs without built-in - postprocessing, like libmpeg12 or libavcodec) - see `mplayer -vf pp=help` - MPI: DR (if possible) or TEMP - Special: dec_video autoloads it if -pp option is used but codec can't do pp. - --vf lavc[=quality:fps] - Fast software YV12->MPEG1 conversion, useful for DXR3/DVB drivers - It uses libavcodec. Currently faster and better quality than -vf fame! - Param quality: fixed qscale (1<=quality<32) or bitrate (32<=quality KBits) - Param fps: force output fps (float value). If not give, or 0, it's - autodetected based on height (240,480->29.97fps, others -> 25fps) - MPI: EXPORT special - --vf fame - Fast software YV12->MPEG1 conversion, useful for DXR3/DVB drivers - It uses libfame. - MPI: EXPORT special - --vf dvbscale[=aspect] - Setup scaling to the optimal values for the DVB card. - (use HW for X-scaling, calc sw Y scaling to keep aspect) - The 'aspect' parameter controls aspect ratio, it should be calculated - as aspect=DVB_HEIGHT*ASPECTRATIO, default is 576*(4/3)=768 - (for 16:9 TV set it to 576*(16/9)=1024) - It's only useful together with expand+scale: - -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc - MPI: passthru - --vf cropdetect[=limit] - It's a special filter, it doesn't alter the image itself, but detects - (using some kind of heuristics) the black borders/bands of the image, - and prints the optimal -vf crop= parameters to the stdout/console. - It calculates the average value of pixel luminances for a line, and - depending on the result it's either black band (result<=limit) or - picture (result>limit). Optional parameter 'limit' defaults to 24. - MPI: EXPORT - --vf test[=first frame number] - generate various test patterns - MPI: TEMP, accepts stride - --vf noise[=lumaNoise[u][t|a][h]:chromaNoise[u][t|a][h] - add noise - 0<= lumaNoise, chromaNoise <=100 - u uniform noise (gaussian otherwise) - t temporal noise (noise pattern changes between frames) - a averaged temporal (smoother, but a lot slower) - h high quality (slightly better looking, slightly slower) - p mix random noise with a (semi)regular pattern - MPI: DR (if possible) or TEMP, accepts stride - --vf eq[=brightness:contrast] - software equalizer, for use with cards that don't support - brightness and contrast controls in hardware. It might also be - useful with MEncoder, either for fixing poorly captured movies, or - for slightly reducing contrast to mask artifacts and get by with - lower bitrates. Initial values in the range -100..100 may be - given on the command line, and the eq filter is controllable - interactively just like with normal hardware equalizer controls. - --vf eq2[=gamma:contrast:brightness:saturation:r_gamma:g_gamma:b_gamma] - advanced software equalizer, for use with cards that don't support - brightness/contrast/saturation and channel gamma controls in hardware. - Initial values in the range -2.0 .. 2.0 may be given on the command line, - and the eq2 filter is controllable interactively just like with normal - hardware equalizer controls or -vf eq. Defaults: 1:1:0:1:1:1:1 - This filter uses MMX only if available and all gamma == 1.0, otherwise - LUT (look-up table) is being used. - --vf unsharp=l|cWxH:amount[:l|cWxH:amount] - unsharp mask / gaussian blur. - l apply effect on luma component - c apply effect on chroma components - WxH width and height of the matrix, odd sized in both directions - min = 3x3, max = 13x11 or 11x13 - usually you will use something between 3x3 and 7x7 - amount relative amount of sharpness / blur to add to the image - amount < 0 = blur, amount > 0 = sharpen - usually you will use something between -1.5 and 1.5 - MPI: DR (if possible) or TEMP, accepts stride - --vf swapuv - swap U & V plane - MPI: EXPORT - --vf il=[d|i][s][:[d|i][s]] - (de)interleaves lines - d deinterleave - i interleave - s swap fields (exchange even & odd lines) - The goal of this filter is to add the ability to process interlaced images - pre-field without deinterlacing them. You can filter your interlaced DVD - and play it on a TV without breaking the interlacing. - While deinterlacing (with the postprocessing filter) removes interlacing - permanently (by smoothing, averaging, etc) deinterleaving splits the - frame into 2 fields (so called half pictures), so you can process (filter) - them independently and then re-interleave them. - MPI: TEMP, accepts stride - --vf boxblur=radius:power[:radius:power] - radius size of the filter - power how often the filter should be applied - MPI: TEMP, accepts stride - --vf sab=radius:prefilter:colorDiff[:radius:prefilter:colorDiff] - radius blur filter strength (~0.1-4.0) (slower if larger) - prefilter prefilter strength (~0.1-2.0) - colorDiff how different the pixels are allowed to be considered (~0.1-100.0) - --vf smartblur=radius:stregth:threshold[:radius:stregth:threshold] - radius blur filter strength (~0.1-5.0) (slower if larger) - strength (0.0-1.0) -> blur, (-1.0-0.0) -> sharpen - threshold 0 -> filter all, (0-30) -> filter flat areas, (-30-0) -> filter edges - --vf perspective=x0:y0:x1:y1:x2:y2:x3:y3:t - x0,y0,... coordinates of the top left, top right, bottom left, bottom right corners - t 0-> linear, 1->cubic resampling - --vf denoise3d=[luma:chroma:time] - luma spatial luma strength (default = 4) - chroma spatial chroma strength (default = 3) - time temporal strength (default = 6) - This filter aims to reduce image noise producing smooth images and - making still images really still. (it should enhance compressibility) - Can be given from 0 to 3 parameters. Parameters not given will be - inferred from the given ones. (i.e. providing only one of them acts as a - "scale factor")