blackmickey
发表于 2017-4-15 23:52:10
shikkoku 发表于 2017-4-15 21:46
默认值的垂直总像素和你的不一样,不过也能设定到。
啊!抱歉
如果您常看的影片是24.000fps的話,
會比較建議用60hz,
會建議59.94hz是針對23.976丶29.97丶59.94fps
或者您可以這樣設定
http://i.imgur.com/zUgKgrH.png
24.000fps的日系手繪動畫片,好像不太正確?
shikkoku
发表于 2017-4-16 00:01:32
本帖最后由 shikkoku 于 2017-4-16 00:08 编辑
blackmickey 发表于 2017-4-15 23:52
啊!抱歉
如果您常看的影片是24.000fps的話,
會比較建議用60hz,
Re-CREATORS好像是24的说,我也有看23的。这个功能我也有用过。话说我自定义了50hz,但是MPC-HC选择列表中只有60和59表示。
Decoherence
发表于 2017-4-16 06:19:13
blackmickey 发表于 2017-4-15 17:37
另外一提,
如果是常看23.976丶29.970丶59.940的影片,
會建議螢幕更新率(刷新率)改至影片的整數倍,
我一直以来是开smooth motion来避免judder的
今天看了你的回复心血来潮试了下把显示器设置到71.928hz 然后关了smooth motion对比感受了一下
感觉smooth motion的效果有点类似于游戏里的模拟动态模糊,它也确实是通过合成相邻两帧的画面实现的
相比于原生整数倍刷新率 开启smooth motion感觉还要更流畅一些 尤其在动画上更是如此 但相应的在高速变化的画面上清晰度会受影响
boday
发表于 2017-4-16 06:33:55
blackmickey 发表于 2017-4-15 02:02
我那篇的意思是上傳的影片畫質渣別介意,
不是指補幀比畫質更重要的意思
opengl-backend 在 windows 上我记得前阵子已经默认为 angle 了,所以不需要手动指定。
boday
发表于 2017-4-16 06:38:59
shikkoku 发表于 2017-4-15 11:15
那么不是整倍数的还是应该用oversample来获得更好的效果?
所有的 interpolation 想解决的就是非整倍数导致的 judder。至于具体用哪个 interpolation 算法就是个人偏好了。
大致上,以下从左到右,越来越模糊,同时也视觉上越来越顺滑:
oversample <-> linear <-> catmull_rom <-> mitchell <-> gaussian <-> bicubic
其中 oversample 因为只在需要时 blend 相邻两帧,所以仍然会保留原始帧率观感;mitchell 是 mpv 目前的默认。
boday
发表于 2017-4-16 06:57:31
本帖最后由 boday 于 2017-4-16 07:03 编辑
blackmickey 发表于 2017-4-15 20:07
改頻率的風險是螢幕。
先假設影片是24fps,螢幕是60hz
由於撥放器要避免撕裂,所以每次顯示的畫面均為完整 ...
>但又不可能輸出"0.5個前畫面+0.5個後畫面",這樣會有Blend(重影)的問題
不,这种情况下实际上应该会产生画面撕裂(tearing),输出的图像上半部分和下半部分分别来自片源不同的帧;而不是重影。一般情况下正常工作的播放器应该永远不会有撕裂,因为大家都会使用类似 3:2 pull down 的方式来处理这个问题。
>不過madvr的smooth motion就是利用類似技巧來抑制Judder,缺點是會有Blend的問題
smooth motion 的工作原理就是 frame blending,这是一种实现方式,不是一个问题。
>AMD的Fluid Motion也有類似問題,上圖就是AMD Fluid Motion的截圖。
这个不是所谓 blend 的问题。这是插补算法的不足产生的 artifact。
svp、amd fluid motion 以及电视自带的这些,原理和 smooth motion 以及 mpv 的 interpolation 有个本质区别,就是这些算法是用了复杂的算法来识别帧间形成的动态,然后试图填补动态的过程,所以这些算法被称为 motion-biased interpolation;smooth motion 和 mpv 自带的 interpolation 则是单单把相邻帧用简单算法进行 blend。前者好处是输出的每一帧都是清晰的,但因为算法不完美会出现你这里举例的“烂帧”;后者好处是不会有烂帧问题,但简单 blend 势必造成锐度的损失。
>當畫面剛好在移動時,多1重複幀的影響就是畫面會突然停頓一下,這就被稱為Judder,
judder 这个词有可能不同人用法不同,不过多数情况下,judder 其实特指的是你前面说的 3:2 pull down 产生的 23232323 这种不平滑感,而不是 fps*1000/1001 导致需要填补重复帧这个情况。
>透過微幅加減速影片來達到其效果,(25fps->24fps丶59.940fps->60fps)
缺點是聲音也被加減速了,
音高會有些變化 或者 音高不變化但變成聲音有Judder。
你这里可能想说的是 23.976fps->24fps 吧。
这时音频会全部进行重采样。mpv 的 video-sync=display-resample 也包含了这个同样的功能。
ps. 以下两个文章可供参考:
https://github.com/mpv-player/mpv/wiki/Display-synchronization
https://github.com/mpv-player/mpv/wiki/Interpolation
以上有误之处也请指正。
cylx
发表于 2017-4-16 12:02:12
boday 发表于 2017-4-16 06:57
>但又不可能輸出"0.5個前畫面+0.5個後畫面",這樣會有Blend(重影)的問題
不,这种情况下实际上应该会 ...
按wiki的说法,mpv做的是convolution-based interpolation吧,比madVR的效果更好,性能消耗也更大。
KC猫
发表于 2017-4-16 14:19:46
boday 发表于 2017-4-16 06:33
opengl-backend 在 windows 上我记得前阵子已经默认为 angle 了,所以不需要手动指定。 ...
在使用了nvidia optimus技术的双显卡机器上指定使用独显来运行mpv,并使用opengl-backend=angle的话,反复2次 全屏->窗口化->全屏 就会出现画面卡死报错,就算不触发报错,运行效率也没有opengl-backend=win高
(Paused) AV: 00:00:00 / 00:24:00 (0%) A-V:0.000 DS: 2.000/0
Couldn't present: GPU �豸ʵ���Ѿ�����ʹ�� GetDeviceRemovedReason ��ȷ���
�Ӧ�Ĵ�ʩ�� (0x887a0005)
(Paused) AV: 00:00:00 / 00:24:00 (0%) A-V:0.000 DS: 2.000/0
Couldn't resize swapchain: Ӧ�ó����������Ч�ĵ��á����õIJ�����ij�����״̬��
��ȷ��
���� D3D ���Բ��Ա�ͨ��������Ϣ�鿴��ϸ��Ϣ�� (0x887a0001)
Couldn't create EGL pbuffer
Couldn't get back buffer after resize
不知道两者,特性上是不是有什么不同。
blackmickey
发表于 2017-4-16 15:03:00
本帖最后由 blackmickey 于 2017-4-16 15:37 编辑
boday 发表于 2017-4-16 06:57
>但又不可能輸出"0.5個前畫面+0.5個後畫面",這樣會有Blend(重影)的問題
不,这种情况下实际上应该会 ...
>不,这种情况下实际上应该会产生画面撕裂(tearing),输出的图像上半部分和下半部分分别来自片源不同的帧;而不是重影。一般情况下正常工作的播放器应该永远不会有撕裂,因为大家都会使用类似 3:2 pull down 的方式来处理这个问题。
對,撥放器正常情況下不會出現撕裂,所以在先前回復中並沒有提到這部分,
當時的說法是想表達24->60(2.5x)其中的0.5x,必須要解決,
最簡單就是上半部分和下半部分採用不同幀,但這有明顯撕裂,
因此換個想法,那採用兩幀重疊來處理,這有重影問題,
再換個想法,3:2 pull down,不過這有每幀不等時的問題,
目前撥放器大多以3:2 pull down來處理。
>>不過madvr的smooth motion就是利用類似技巧來抑制Judder,缺點是會有Blend的問題
>smooth motion 的工作原理就是 frame blending,这是一种实现方式,不是一个问题。
>>AMD的Fluid Motion也有類似問題,上圖就是AMD Fluid Motion的截圖。
>这个不是所谓 blend 的问题。这是插补算法的不足产生的 artifact。
>svp、amd fluid motion 以及电视自带的这些,原理和 smooth motion 以及 mpv 的 interpolation 有个本质区别,就是这些算法是用了复杂的算法来识别帧间形成的动态,然后试图填补动态的过程,所以这些算法被称为 motion-biased interpolation;smooth motion 和 mpv 自带的 interpolation 则是单单把相邻帧用简单算法进行 blend。前者好处是输出的每一帧都是清晰的,但因为算法不完美会出现你这里举例的“烂帧”;后者好处是不会有烂帧问题,但简单 blend 势必造成锐度的损失。
之前的回覆主要是想簡單說明一下重影是怎樣的畫面
可能表達方式不同,smooth motion運用了這方式實作,那就必然會有重影的現象,或許稱為問題並不是非常恰當。
有試過逐幀比較AFM的效果,據觀察發現大致上補出來的有3種狀態,
1. 幾乎正確算出中間幀(畫面穩定低速平移)
2. 算出錯誤的部分,部分畫面有artifacts(常見於畫面部分移動速度與他處不同之處,例如手指丶髮尾等...)
http://i.imgur.com/P2Y3nTK.png
3. 受限於演算法(?),畫面利用相鄰幀重疊來過度,結果就是有重影的畫面(常見於整體畫面變動大時)
http://i.imgur.com/nkVgKNr.png
>>當畫面剛好在移動時,多1重複幀的影響就是畫面會突然停頓一下,這就被稱為Judder,
>judder 这个词有可能不同人用法不同,不过多数情况下,judder 其实特指的是你前面说的 3:2 pull down 产生的 23232323 这种不平滑感,而不是 fps*1000/1001 导致需要填补重复帧这个情况。
對,這真的是我錯了,這是drop/repeat frame,
我把drop/repeat frame和Judder搞混了。
>>透過微幅加減速影片來達到其效果,(25fps->24fps丶59.940fps->60fps)
缺點是聲音也被加減速了,
音高會有些變化 或者 音高不變化但變成聲音有Judder。
>你这里可能想说的是 23.976fps->24fps 吧。
这时音频会全部进行重采样。mpv 的 video-sync=display-resample 也包含了这个同样的功能。
mpv沒什麼使用,所以這塊就不是很清楚,Sorry
Reclock會對影片加減速,包含25fps -> 23.976fps,讓drop/repeat frame不會出現。
但25fps -> 24fps的變化超過4%,(25fps --[-4.17%]-> 24fps ---> 60fps)
若不重新採樣,音高會變很多,
重新採樣的話則有BitPerfact的疑慮。(Judder這段我用錯了,抱歉)
*Reclock是個DirectShow Filter
>ps. 以下两个文章可供参考:
https://github.com/mpv-player/mpv/wiki/Display-synchronization
https://github.com/mpv-player/mpv/wiki/Interpolation
以上有误之处也请指正。
我會好好閱讀這兩篇文章的,謝謝。
感謝您的回復,糾正我的一些錯誤。
{:12_853:}
shikkoku
发表于 2017-4-16 18:20:54
boday 发表于 2017-4-16 06:57
>但又不可能輸出"0.5個前畫面+0.5個後畫面",這樣會有Blend(重影)的問題
不,这种情况下实际上应该会 ...
话说新版mpv的opengl-shaders应该怎么用和写配置,要不要删掉原来的各种scale参数。感觉就是用到ewa_lanczossharp看720p>1080p画质也不太好的感觉。
页:
1
2
3
4
5
6
7
8
9
[10]
11
12
13
14