最初由 kzhou 发布
怎么看出是RGB的?
上面不是说MJPEG是422的YUY2么?
superkidx@2008-06-08 20:17
是RGB的kzhou@2008-06-08 20:29
怎么看出是RGB的?superkidx@2008-06-08 20:36
引用最初由 kzhou 发布
怎么看出是RGB的?
上面不是说MJPEG是422的YUY2么?
qyqgpower@2008-06-08 21:14
MJPEG输出的native格式是RGB32superkidx@2008-06-08 21:21
引用YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。
qyqgpower@2008-06-08 21:30
Confusion with Y'CBCRsuperkidx@2008-06-08 21:42
ConvertToYV12(matrix="PC.601")kzhou@2008-06-08 21:43
引用最初由 qyqgpower 发布
MJPEG输出的native格式是RGB32
这里存在一种误解,以为JPG是YUV压缩
其实JPG是RGB->YCbCr(储存)->RGB(解码)
(也存在CMYK的JPG,但这种情况往往会被很多软件误解成RGB导致颜色失真,只有PS等较为专业的软件才能正确识别,这是题外话)
YCbCr和YUV可不是同义词
qyqgpower@2008-06-08 21:51
引用最初由 superkidx 发布
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")
为什么不是ConvertToYV12(matrix="PC.709")呢?
而且2个出来的差异很大 前者红色部分最亮 后者红色部分最暗
而ConvertToYV12(matrix="PC.601")处在中间 这是不是你判断为正确色彩的依据呢?
superkidx@2008-06-08 21:56
引用最初由 qyqgpower 发布
你还在糊涂
首先
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")
不是我说的
这个输出的是PC Scale的RGB32,不管用任何渲染器得到的都是同一种错误的色彩
而ConvertToYV12(matrix="PC.709")输出的是变换为709的YV12,那么只有在渲染器以709方式变换(伸张不伸张又是另外一回事了)才能得到原始RGB
kzhou@2008-06-08 21:59
嗯,ConvertToYV12(matrix="PC.601")是我说的,superkidx@2008-06-08 22:27
引用最初由 kzhou 发布
话说我那个版本的ffdshow解码MJPEG有问题,AVS的DS下看,RGB输出和YV12输出是几乎一样的,是superkidx贴的上面那张有YC伸张的颜色效果,。。。但没有交错。。。囧
littlemouse@2008-06-08 23:06
嗯,下载了楼主的ng1.avi,是mjpg格式的。引用
Some MJPEG/DV codecs do not give correct CCIR 601 compliant output when using AVISource. The problem could arise if the input and output colorformat of the codec are different. For example if the input colorformat is YUY2, while the output colorformat is RGB, or vice versa. There are two ways to resolve it:
1) Force the same output as the input colorformat. Thus for example (if the input is RGB):
AviSource("file.avi", pixel_type="RGB32")2) Correct it with the filter ColorYUV:
AviSource("file.avi").ColorYUV(levels="PC->TV")Some reference threads:
MJPEG codecs
DV codecs
littlemouse@2008-06-08 23:12
可能一切答案就在上面这段话里superkidx@2008-06-08 23:28
引用从v2.06 开始 pixel_type 参数(默认为 YUY2)允许你选择输出的解压缩格式。合法的值为"YUY2", "RGB32" 和 "RGB24"。如果省略, AviSynth将会首先使用解压缩程序支持的格式输出(按照下面的顺序: YUY2,RGB32,RGB24)。这个参数对于未压缩格式的视频没有作用 (YUY2, RGB32 或 RGB24),因为未压缩格式将会使用它本来的格式