Hopefully what I am asking and saying makes sense and isn't too much to ask for.
Original Source:

DGIndex (IEEE-1180 Reference):

Comparison: (Gray means no differences between the frames, red means differences between the frames)

That is not possible. The frame is coded in MPEG2 on the DVD and to get a frame for display you must decode the MPEG2. Decoding includes application of the iDCT.No, the frame labeled "source" came directly from the DVD VOB itself with no modifications and or alterations.
I used MakeMKV to create a decrypted ISO backup of the film. Then directly opened the decrypted ISO with 7-Zip, grabbed the first VOB for the film, tossed that VOB into VirtualDub2, then went straight for the frame in question and exported that frame as a PNG. No idea what it uses internally for that because there is no mention of iDCT algorithms in the software whatsoever, that I could see anyways. Seems to respect the algorithm choices that are set in the D2V indexes though, unless that's AviSynth handling everything and VirtualDub2 is just the viewer still in that instance.Rocky wrote: ↑Thu Dec 19, 2024 5:08 amThat is not possible. The frame is coded in MPEG2 on the DVD and to get a frame for display you must decode the MPEG2. Decoding includes application of the iDCT.No, the frame labeled "source" came directly from the DVD VOB itself with no modifications and or alterations.
Just tell me exactly how you made the Source frame that you posted.
No, the virtualdub2 MPEG2 plugin is doing the decoding.Seems to respect the algorithm choices that are set in the D2V indexes though, unless that's AviSynth handling everything and VirtualDub2 is just the viewer still in that instance.
Code: Select all
int dct_algo;
#define FF_DCT_AUTO 0
#define FF_DCT_FASTINT 1
#define FF_DCT_INT 2
#define FF_DCT_MMX 3
#define FF_DCT_ALTIVEC 5
#define FF_DCT_FAAN 6
#define FF_DCT_NEON 7
/**
* IDCT algorithm, see FF_IDCT_* below.
* - encoding: Set by user.
* - decoding: Set by user.
*/
int idct_algo;
#define FF_IDCT_AUTO 0
#define FF_IDCT_INT 1
#define FF_IDCT_SIMPLE 2
#define FF_IDCT_SIMPLEMMX 3
#define FF_IDCT_ARM 7
#define FF_IDCT_ALTIVEC 8
#define FF_IDCT_SIMPLEARM 10
#define FF_IDCT_XVID 14
#define FF_IDCT_SIMPLEARMV5TE 16
#define FF_IDCT_SIMPLEARMV6 17
#define FF_IDCT_FAAN 20
#define FF_IDCT_SIMPLENEON 22
#define FF_IDCT_SIMPLEAUTO 128
Now you're making sense.At a glance, I'm thinking the reason why what I pulled from VirtualDub2 and from the FFmpeg encoded version of the same video yielded the same result is due to both solutions using the XVID iDCT algorithm for decoding...
OK.So I guess what I do know so far is minuscule.
With your minuscule knowledge you have no problem ranting about things! The standards must be very precisely defined. They are far from vague! The MPEG2 iDCT is an exception in that it was left undefined. This mistake was recognized and later formats fully define the iDCT.I really don't understand why these standards are posted around in convoluted form with very vague and or very little information about them, such a sub-optimal and very impractical way to push standards around in my opinion.