gary wrote:That seems to have both syncs (albeit not negative going but that makes no difference) and the ringing bars:
Did you give me the right file?
Or maybe it just isn't very obvious when viewed via a disk.
It's the right file. Let's agree on some definitions - I do not consider the black horizontal line a "synch" - its an arbitrary inter-frame gap that can be filled with any data at all. It's there because the software I use to convert video puts synch pulses and that gap in that area. In my file format, this gap is not blacker than black; it's just black, the same black as black in the "picture" area. There are no negative values - which is what I call "synch pulses". My conversion process consists of determining the "height" or "depth" of synch pulses from black, then DC-shifting so that the "shelf" is at 0. Then I remove all negative values - effectively converting the synch pulses to just plain old black. Then I determine the maximum value in the signal and DC-shift by half of that (subtract). Then I amplify by the maximum amount possible without clipping. This tends to put the "black" right down around 0 and the brightest around 255. I might DC-adjust the black to exactly zero if I'm so inclined, but not really necessary.
I agree, there are visible ringing lines in the Doctor Who video - so it's just not obvious when seen on a disc. Me bad. In my defence, I have no viewer and no way to show a single-frame except by capturing with a camera watching my televisor play the file
However, not going to let the general issue go without understanding it. Let's say I took a 2D frame of arbitrary size, but let's say 480 high by 320 wide. If I resample that frame with a paint program and convert to 8-bit greyscale, I am *not* going to see any ringing. Let's say I use bicubic resampling - it really doesn't matter; there are a number of choices. Now I have a 48 high by 32 wide image, with no ringing or artefacting like we are discussing. Then if I take those 1536 pixels and put them in the right order (bottom right scanning upwards and leftwards) then I have the data suitable for displaying on my televisor. Put a few thousand of those blocks together and I have a movie. I think the transition from the black horizontal "frame divider" might be blurry, perhaps - arguable - but we won't have the ringing effects. I don't understand how it can be any other way. What I'm trying to say is that I think it's perfectly possible to have a good looking picture without the ringing effects. I could, for example, take a data stream WITH the ringing, and manually adjust the pixel values so that the visible stripes weren't there and the pixels were the "correct" values. It seems straightforward to me that this is possible.
The discussion to date has been interesting to me, and I think/hope I understand a lot of what's been discussed. I do understand that there are tradeoffs with various filters, but I am still stuck in the following "rut"...
That it's not valid to use 2D image-processing techniques to get an optimal picture with no ringing. Optimal being a personal choice, but essentially "the best looking picture". Or, more to the point that there isn't a difference between processing a stream of data as audio (1D) and as video frames (2d). I think I can/would get a better picture with the latter. If I could replace an arbitrary "bad looking" pixel manually and have it look good (i.e., no ringing) then it must be possible to do it algorithmically with an appropriate filter. I'm still stuck on this sum of infinite sine waves. Yes I understand that a picture is essentially represented by a sum of sine waves, with each pixel being the sum at that point in space/time. However, once you get past that and consider a picture JUST an array of pixel values, then you can have whatever you WANT as those pixel values. And that can be the best resampled/dithered image you care to make. It will not have ringing.
To prove to myself, I may very well have to write a converter to take a video frame, process it with (say) bicubic or similar, convert to a 48 x32 and then to a NBTV8 stream. Kind of a pain, but I need a tool to do this anyway.