[FFmpeg-user] LLossless (10 Bit RGB 444) and (10 Bit YUV 422) Compression

Jason Freets jasonslife at hotmail.com
Mon Dec 29 04:34:47 CET 2014

> Subject: Re: [FFmpeg-user] LLossless (10 Bit RGB 444) and (10 Bit YUV 422)	Compression
> Jason Freets <jasonslife <at> hotmail.com> writes:
> > > > So either on Linux or Windows, I still don't get a 
> > > > correct conversion that views correctly.
> > > 
> > > Don't you agree that it would be a problem if you get 
> > > different output on Widows and Linux?
> > 
> > I am getting the same output on Windows and Linux: the 
> > r10k to FFV1 both play incorrectly.
> Note that if you mention ffv1 like this, some (most/all) 
> readers will - as I did and Peter - assume that you 
> believe you found an issue with ffv1.
> I only realize now that you (believe you) found an issue 
> with r10k that has nothing to do with ffv1.

Sorry Carl, I was simply try to say that the resulting FFV1 file generated plays exactly the same in both Windows and Linux. Here we are converting the r10k file to FFV1, and when the FFV1 plays the video doesn't look correct. Agreed, has nothing to do with FFV1. It has more to do with how the r10k is being converted over to FFV1. So yes, I'm not at all saying that there is anything wrong with FFV1. 

> > In other words, I am not getting different outputs.... 
> > but the same output.
> As said, I am quite happy you get identical output on 
> Windows and Linux;-)

Me too! It's why I tried it on both environments....I wanted to be at least certain that I was getting identical output. =)

> > They both play just as bad as the screenshots provided.
> (Note that what you call "bad" is what I see when I 
> open the file you provided with hex editor...)
> > > Does the software that plays the colourbars correctly 
> > > also play the following files?
> > > http://samples.ffmpeg.org/V-codecs/R10g.mov
> > > http://samples.ffmpeg.org/V-codecs/R10k.mov
> > 
> > No, I've never been able to play R10K. I've not 
> > tried R10g either. 
> What software created the sample you uploaded and how 
> can I watch it (the way you see it)?

I'd have to see how they got installed on one of my systems. They came on a DVD with AJA hardware. I'll look into that. The result is I have AJA codec's in Windows. I have content that is my own as well as received from other studios for video work.

> > Apparently there are different formats:
> > 
> > R10k (Big Endian) 
> > R10g (Big Endian)
> > r10k (Little Endian)
> > r10g (Little Endian)
> How do you know?
> I am not saying you are wrong but I would like to 
> understand this better.

Moritz is correct, he said, "AJA _does_ seem to differentiate between R10g, R10k and r10k". If you look through the link Moritz provided, you'll see the different encoding options:

Look on Page 60 and under "Video Subtype" you'll see:
10-bit RGB 4:4:4 – ‘R10k’
10-bit RGB 4:4:4 – ‘r10k’ 

So there are two ways to encode. Why? I have no idea! I figure one was for MAC and the other for Windows? 

I've uploaded two new video's for you:



In the filename, BE stands for "Big Endian" and LE stands for "Little Endian". 


In "R10k" I consider the uppercase to imply Big Endian.
In "r10k" I consider the lowercase to imply Little Endian.

Am I sure about this "Big Endian" and "Little Endian" thing...No. I could be wrong. But, from looking into the two differ net format's that's what I have concluded. So, I'll stick to that for now. 

I also thought perhaps it has something to do with "Full Range" and "Video Range" video. But, when you look at both the r10k and R10k...the video looks identical. 

Going back to what Moritz said, there's not a lot of information from AJA as to what the difference is between r10k and R10k. So that sort of adds to the confusion. 

The best info I've seen on the format is the link that Mortiz also posted:

Perhaps you can analyze it for yourself and make sense of what SheerVideo pixel format spec means? But they do show two different layouts.

So back to the 2 files I uploaded. The 2 files are the same byte size. And, the frames in the video are aligned. But the intresting thing is that FFMpeg DOES play the R10k file (10BitRGB444_R10k_5sec_BE.avi) correctly using FFPlay. However, it does NOT play the r10k file (10BitRGB444_r10k_5sec_LE.avi) correclty using FFPlay.

When running both 2 files through FFMpeg, notice that FFMpeg reports:

"r10k (r10k / 0x6B303172)" for 10BitRGB444_r10k_5sec_LE.avi


"r10k (R10k / 0x6B303152)" for 10BitRGB444_R10k_5sec_BE.avi

Again, FFMpeg can convert and even play (through FFPlay) 10BitRGB444_R10k_5sec_BE.avi.

> > For example, I notice that the R10K 
> > (http://samples.ffmpeg.org/V-codecs/R10k.mov) is 
> > Big Endian whereas the r10k's I've been sharing 
> > with you are Little Endian. 
> How do you know that your sample is little-endian?
> > It's just to say, I notice the FFMpeg has no r10k samples! 
> Until now, I assumed we do have samples (and that there 
> is no difference between R10k and r10k).

I wish that were true, but it doesn't seem that way from what I can tell.



> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user

More information about the ffmpeg-user mailing list