搜索 社区服务 统计排行 帮助
  • 11165阅读
  • 162回复

[请教]x264压制出来画面发白怎么办?

楼层直达
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 90楼 发表于: 2008-06-08
是RGB的



另外 XBOX360输出究竟是?TV SCALE + BT 709 ?
捕捉卡采集并且得到的AVI源呢?

级别: 侠客
注册时间:
2005-12-16
在线时间:
5小时
发帖:
676
只看该作者 91楼 发表于: 2008-06-08
怎么看出是RGB的?
上面不是说MJPEG是422的YUY2么?

爱看看不看滚
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 92楼 发表于: 2008-06-08
引用
最初由 kzhou 发布
怎么看出是RGB的?
上面不是说MJPEG是422的YUY2么?

但是转RGB32的时候 不管是601/709/PC/TV都是出一样的色彩
而转YV12/YUV2的时候就有变化了
难道不能说明问题么

级别: 侠客
注册时间:
2005-02-09
在线时间:
0小时
发帖:
512
只看该作者 93楼 发表于: 2008-06-08
MJPEG输出的native格式是RGB32

这里存在一种误解,以为JPG是YUV压缩
其实JPG是RGB->YCbCr(储存)->RGB(解码)
(也存在CMYK的JPG,但这种情况往往会被很多软件误解成RGB导致颜色失真,只有PS等较为专业的软件才能正确识别,这是题外话)

YCbCr和YUV可不是同义词
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 94楼 发表于: 2008-06-08
引用
YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。

怎么不是同意词呢?

级别: 侠客
注册时间:
2005-02-09
在线时间:
0小时
发帖:
512
只看该作者 95楼 发表于: 2008-06-08
Confusion with Y'CBCR
Y'UV is often and mistakenly used as the term for Y'CBCR. However, they are different formats. Y'UV is an analog system with scale factors different than the digital Y'CBCR system.

The Y'PbPr color model used in analog component video and its digital version Y'CBCR used in digital video are more or less derived from it (CB/PB and CR/PR are deviations from grey on blue-yellow and red-cyan axes, whereas U and V are blue-luminance and red-luminance differences),
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 96楼 发表于: 2008-06-08
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")

为什么不是ConvertToYV12(matrix="PC.709")呢?

而且2个出来的差异很大 前者红色部分最亮 后者红色部分最暗
而ConvertToYV12(matrix="PC.601")处在中间 这是不是你判断为正确色彩的依据呢?

级别: 侠客
注册时间:
2005-12-16
在线时间:
5小时
发帖:
676
只看该作者 97楼 发表于: 2008-06-08
引用
最初由 qyqgpower 发布
MJPEG输出的native格式是RGB32

这里存在一种误解,以为JPG是YUV压缩
其实JPG是RGB->YCbCr(储存)->RGB(解码)
(也存在CMYK的JPG,但这种情况往往会被很多软件误解成RGB导致颜色失真,只有PS等较为专业的软件才能正确识别,这是题外话)

YCbCr和YUV可不是同义词

多谢,终于知道关键了。
原来 RGB->YCbCr(储存)->RGB(解码) 是一一对应的
那我所说的那一套都有错,按你说的
DirectShowSource("D:\ng1.grf",audio=false)
ConvertToYV12(matrix="PC.709")
来压264才是对的。

ps:能说下哪些视频是用YUV存,哪些是用YCbCr存吗?

爱看看不看滚
级别: 侠客
注册时间:
2005-02-09
在线时间:
0小时
发帖:
512
只看该作者 98楼 发表于: 2008-06-08
引用
最初由 superkidx 发布
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")

为什么不是ConvertToYV12(matrix="PC.709")呢?

而且2个出来的差异很大 前者红色部分最亮 后者红色部分最暗
而ConvertToYV12(matrix="PC.601")处在中间 这是不是你判断为正确色彩的依据呢?

你还在糊涂

首先
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")
不是我说的

这个输出的是PC Scale的RGB32,不管用任何渲染器得到的都是同一种错误的色彩

而ConvertToYV12(matrix="PC.709")输出的是变换为709的YV12,那么只有在渲染器以709方式变换(伸张不伸张又是另外一回事了)才能得到原始RGB
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 99楼 发表于: 2008-06-08
引用
最初由 qyqgpower 发布

你还在糊涂

首先
ConvertToYV12(matrix="PC.601")
ConvertToRGB32(matrix="rec709")
不是我说的

这个输出的是PC Scale的RGB32,不管用任何渲染器得到的都是同一种错误的色彩

而ConvertToYV12(matrix="PC.709")输出的是变换为709的YV12,那么只有在渲染器以709方式变换(伸张不伸张又是另外一回事了)才能得到原始RGB


哦 那么问题解决了 多谢了 今天弄清楚了不少东西

级别: 侠客
注册时间:
2005-12-16
在线时间:
5小时
发帖:
676
只看该作者 100楼 发表于: 2008-06-08
嗯,ConvertToYV12(matrix="PC.601")是我说的,
是我误导了。。。前一页的东东已修改。。。orz

话说我那个版本的ffdshow解码MJPEG有问题,AVS的DS下看,RGB输出和YV12输出是几乎一样的,是superkidx贴的上面那张有YC伸张的颜色效果,。。。但没有交错。。。囧

爱看看不看滚
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 101楼 发表于: 2008-06-08
引用
最初由 kzhou 发布
话说我那个版本的ffdshow解码MJPEG有问题,AVS的DS下看,RGB输出和YV12输出是几乎一样的,是superkidx贴的上面那张有YC伸张的颜色效果,。。。但没有交错。。。囧


没交错? 你什么版本?07年那个?

级别: 新手上路
注册时间:
2007-11-22
在线时间:
0小时
发帖:
117
只看该作者 102楼 发表于: 2008-06-08
嗯,下载了楼主的ng1.avi,是mjpg格式的。

打开ffdshow vfw的mjpg解码,关闭ffdshow directshow的mjpg解码(反之不行)。



AviSource("ng1.avi")

载入avs,就这一句。

megui直接可以吃以上avs压缩,默认就是yv12的,不需要ConvertToYV12()
,楼主为什么要转的?

我的avisynth 2.58



顺便转一段话,看不懂:

http://avisynth.org/mediawiki/WavSource

http://avisynth.org/AviSource

引用


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
级别: 新手上路
注册时间:
2007-11-22
在线时间:
0小时
发帖:
117
只看该作者 103楼 发表于: 2008-06-08
可能一切答案就在上面这段话里
级别: 风云使者
注册时间:
2006-03-12
在线时间:
54小时
发帖:
6604
只看该作者 104楼 发表于: 2008-06-08
引用
从v2.06 开始 pixel_type 参数(默认为 YUY2)允许你选择输出的解压缩格式。合法的值为"YUY2", "RGB32" 和 "RGB24"。如果省略, AviSynth将会首先使用解压缩程序支持的格式输出(按照下面的顺序: YUY2,RGB32,RGB24)。这个参数对于未压缩格式的视频没有作用 (YUY2, RGB32 或 RGB24),因为未压缩格式将会使用它本来的格式

也就是说MJPG是未压缩格式视频咯




另外 pixel_type 和 ConvertTo 有什么区别呢?

快速回复

限150 字节
上一个 下一个