Log in

View Full Version : Processing only Mpeg1 I-Frames?


pandv
1st May 2004, 01:21
I discovered a old Mpeg file encoded with a crapy encoder, with the I frames very blocky (but not the P and B frames -there are blurred-).

Is there a script to filter only I frames?

pandv

esby
1st May 2004, 22:34
it only depends what you are calling filtering IFrames...

if it's applying some Spatial Filtering on these and not on the others...
that's possible, supposing you determine a list of frames to be processed and use:
any programing language // application to generate an applyfilter list from the list of frames.
applyConditionnal() stuff with the list obtained.


for temporal processing, i'm not sure it would work the best...
since frames before & after are not IFrames ;)

esby


PS: Of course the option only depend of your knowledgeable background.
I'll tend to go by the first possibility, but others might use the second.

pandv
2nd May 2004, 02:28
Thank's for your response.

About the filtering I don't know if it's spatial or temporal. I wan't to experiment. Hard deblocking combined with a little temporal soften (radius 1) seems to help, but hurts the others frames.

So, what I need is:

a) A program to create a list of I-frames (the number) in the Mpeg file. If this program doesn't exists maybe I can modify VirtualDub to do the job.

b) A Avisynth filter (InRange for example) returning true if the frame is in the file, for use with conditional filtering.

Do you know if a program for point a or b exists, or I need to schedule this project for my hollidays.

pandv

esby
2nd May 2004, 06:32
I think you'll need to modify some vdub/vdubmod source to get the result you need.

So far i checked various combinaison,
and i haven't found a way to extract a list of iframes from an mpeg1 file.

I tried so far:

vdub, vdubmod (both same cause, no direct stream with mpeg source)

aviutl, loading a tpmgEnc project
-> extracting a kf list does not work apparently with this kind of file
-> trying to recompress and playing with options of aviutil : no success too.

i tried various other methods (mainly using external application i know or use)
no much success...
so I guess you'll have to code it.

Unless anybody has an idea that works.

esby