SKYTV HD 마젠타 TV수신 카드는 아래의 링크에서도 나와 있듯이 HDTV 수신카드 입니다.
스카이디지탈 TV 전용 프로그램을 사용하지 않고 팟플레이어로 TV 시청을 하는데 다시 채널을 잡으니
4K UHD 방송채널인 UMAX 가 잡히는것 이었습니다.
HDTV 로 보여지는 것이 아니라 실제로 4K UHD 영상이었습니다. 비트레이트가 29000~33000kbps 네요
그래서 몇가지 실험을 해보았습니다.
[ 코덱/필터 ] 에서 ---> [ 비디오 코덱 ] 에서 Lav Video Decoder ---> Lav Video Decoder 옵션[...] 에서
[ Hardware Decoder to use ] ---> [ DXVA2(native) ] 또는 [ D3D11 ] 선택
D3D11 은 LAV 필터 0.70.3(?) 버전 또는 0.71(?) 버전을 받으면 선택할수 있습니다.
지금은 개발자 버전입니다.
팟플레이어 --> [ 보기 ] ---> [ 환경설정 ] ---> [ 영상 ] 에서 ---> [ 영상출력 장치 ] 에서
* EVR Custom Present
* 내장 Direct3D 9 Video Renderer
* 내장 Direct3D 11 Video Renderer
* 내장 Direct3D OpenGL Video Renderer
각 옵션들을 선택했을시 CPU, GPU, VPE ( 전용 디코더 ) 점유률을 알아보겠습니다.
< EVR Custom Present >
< 내장 Direct3D 9 Video Renderer >
< 내장 Direct3D 11 Video Renderer >
< 내장 Direct3D OpenGL Video Renderer >
결과를 보면 충격적 입니다. [ 내장 Direct3D 11 Video Renderer ] 가 가장 최신이라 성능이 좋을지 알았는데 최악의 성능을
보여주고 있습니다. 물론 코덱에서 [ DXVA2(native) ] 가 아니라 [ D3D11 ] 선택을 하면 GPU 점유률이 40~50% 대로 하락하지만 그래도 역시 영상이 60 프레임이 유지가 되지 않습니다.
그리고 [ EVR Custom Presents ] 방식에 비해서 [ 내장 Direct3D 11 Video Renderer ] 방식이 메모리도 거의 1.7배 정도 더
잡아 먹습니다.
[ 내장 Direct3D 11 Video Renderer ] 방식으로만 해야 리얼 10비트 영상을 볼수 있다고 하는데 [ EVR Custom Present ] 영상을 선택해도 10비트 선택을 할수 있습니다. 물론 제대로 적용이 되는지 모르겠으나 화질은 별차이가 없습니다.
설사 난다고 해도 [ 내장 Direct3D 11 Video Renderer ] 방식은 60프레임을 유지하지 못합니다.
지금 HDTV 카드로 제대로 4K UHD 영상을 제대로 볼려면 무조건 영상출력장치에서 [ EVR Custom Present ] 을 선택해야
CPU, GPU, VPE, 메모리 점유률이 낮은채 60프레임을 유지하면서 볼 수 있습니다.
이 영상들 테스트 한 카드는 엔비디아 GT1030 으로 현존 최강의 동영상 디코더 ( VPE ) 를 탑재하고 있습니다.
GT1030 보다 동영상 디코더 성능이 떨어지는 GPU는 GPGPU 방식이나 CPU로 처리할텐데 4K UHD 채널을 볼때
엄청나게 무리가 갈 듯 합니다.
ps. 2017년 10월 29일자 중대한 내용을 추가 합니다.
제가 잘못 안 내용이 있어서 수정된 내용을 추가합니다.
여기에서 킹팟 님이 테스트에 문제가 있다고 하셔서 다시 테스트 하게 되었습니다.
'일단 d3d11dxva는 d3d11 렌더러 조합 외에는 원래 제대로 동작하지 않습니다. 또한 연결도 안되야 정상이구요.
d3d11dxva가 d3d11이외의 렌더러와 동작하는 경우는 copyback 모드밖에 없습니다.'
' d3d11 dxva는 팟플 내장 코덱에도 구현이 되어 있습니다. d3d11 dxva가 d3d9 dxva보다 좋은 게 아니고 똑같습니다. '
' 세번째 스샷 중간에 format에 p010(d3d9 -> d3d11) 변환 부분이 나오는데 이거는 lav가 d3d11로 동작이 안되고 있는 듯? 싶습니다. '
' 내장 코덱에 대해서는 아래 글을 참고해 주시구요. lav는 예비용이라고 생각하시면 그게 가장 좋습니다. '
' vpe에 관한 것은 아래 글의 댓글을 참고해 주세요. '
< LAV ( DXVA2 ) + EVR Custom Present ( Direct3D 9 ) >
< 내장코덱 + EVR Custom Present ( Direct3D 9 ) >
< LAV 비디오 코덱 ( D3D11 ) + 내장 Direct3D 11 Video Renderer >
< 내장코덱 + 내장 Direct3D 11 Video Renderer >
테스트 결과는 충격적입니다.
기존 Lav(DVXA2) + EVR Custom Present (Direct3D9) 또는 내장필터 + EVR Custom Present (Direct3D9) 방식보다
Lav(D3D11) + D3D11 Renderer 또는 내장필터 + D3D11 Renderer 가 GPU, VPE 점유률은 비슷하지만 메모리를
휠씬 적게 소모하네요... 동영상을 볼때 D3D9 대비 D3D11 은 메모리 소모률이 55~70% 수준 같습니다.
4K 영상 테스트
D3D 9 : 611MB 메모리 소모
D3D 11 : 335MB 메모리 소모
내장 코덱과 + D3D11 Renderer 의 조합 또는 LAV(D3D11) + D3D11 Renderer 의 조합의 장점은 메모리를 적게 먹습니다.
EVR Custom Present (Direct3D9) 에서 4K UHD 채널인 UMAX 를 팟플레이어로 시청할때는 메모리 800MB 정도를 소모했는데
내장 Direct3D 11 Video Renderer 에서 UMAX 를 시청할때는 메모리 소모량이 500MB 로 감소하네요
하지만 FPS가 완전한 60(59.99) 프레임이 되지 않습니다. FPS : 59.57 이러네요
59.99 ( Direct3D9 ) ---> 59.91 ( Direct3D11 )
GPU나 CPU 성능을 봐서는 프레임이 약간 부족할 리가 없는데 일부러 이렇게 표기를 하는것인지 실제로 최적화 문제로
프레임을 약간 부족하게 보여주는 것인지 모르겠네요
HD ( MPG2 ) 채널 : GPU : 29~34%, VPE : 9~10%, GPU 클럭 : 835~860Mhz, 메모리 소모량 : 245MB,
FPS : 29.97 ---> 59.99
HD ( H264 ) 채널 : GPU : 29~37%, VPE : 9~10%, GPU 클럭 : 810~860Mhz, 메모리 소모량 : 246MB,
FPS : 29.97 ---> 59.99
< LAV ( DXVA2 ) + EVR Custom Present ( Direct3D9 ) 설정시 >
HD ( MPG2 ) 채널 : GPU : 20~35%, VPE : 8~10%, GPU 클럭 : 835~860Mhz, 메모리 소모량 : 137MB,
FPS : 29.97 -> 59.91
HD ( H264 ) 채널 : GPU : 29~42%, VPE : 9~10%, GPU 클럭 : 810~860Mhz, 메모리 소모량 : 137.4MB,
FPS : 29.97 ---> 59.91
< LAV ( D3D11 ) + 내장 Direct3D 11 Video Renderer 설정시 >
FPS : 59.99 ( Direct3D9 ) ---> FPS : 59.91 ( Direct3D11 ) 왜 이렇게 나오는지 모르겠으나 GPU나 CPU 성능을 봐서는
프레임이 약간 부족할 리가 없는데 일부러 이렇게 표기를 하는 것인지 실제로 최적화 문제로 프레임을 약간 부족하게 보여주는 것인지 모르겠네요...
자세히 보니 프레임이 약간씩 올라갑니다. 시간이 많이 지나면 FPS : 59.99 될지도 모르겠네요
내장 Direct3D 11 Video Renderer 사용시 메모리 감소률이 엄청납니다.
그리고 동영상 볼때 소모되는 메모리는 GPU의 전용 메모리 사용하는 것 같습니다. 크롬 20개 정도 실행시키거나
하나도 실행시키지 않았을때도 메모리 소모률은 변화가 없습니다. GPU, VPE 변화도 없는 것 같습니다.
Windows 10 Red Stone 3 의 기능에 사용하지 않는 크롬은 메모리 해제 시키는 기능이 포함이 되었던지
크롬 주소창에서 Chrome://flags 입력
Memory coordinator 기능을 활성화 시키셔 그런지 모르겠습니다.
관련자료
According to Google developers the memory coordinator is a new experimental feature in Chrome that gives the browser control of managing memory instead of the operating system
Google 개발자에 따르면 메모리 조정자는 브라우저에서 운영 체제 대신 메모리를 관리 할 수있게 해주는 Chrome 의 새로운 실험 기능입니다.
이제는 EVR Custom Present 같은 Direct3D9 를 벗어나 Direct3D11 로 넘어가야 할 것 같습니다.
4K UHD UMAX 채널 : 보보경심 려 방송 프로그램을 다시 테스트 해보았습니다.
[ 내장 Direct3D 9 Video Renderer ] ( LAV 코덱 : DXVA2 )
CPU 점유률 : 6~16%, GPU 점유률 : 46%, VPE : 54%, GPU Clock : 911Mhz, VRAM : 729MB
[ Video Mixing Renderer 9 (Renderless) ] (LAV 코덱 : DXVA2 )
CPU 점유률 77~80%, GPU 점유률 : 22~29%, VPE : 0%, GPU Clock : 810~1227Mhz, VRAM : 422.1MB
[ 내장 Direct3D 11 Video Renderer ] ( LAV 코덱 : D3D11 )
CPU 점유률 : 2~14%, GPU 점유률 : 23~36%, VPE : 54%, GPU Clock : 885Mhz, VRAM : 597MB
첫댓글 lav 말고 내장 디코더로 dxva를 테스트해야지요. 그게 정상적인 팟플의 로직이고 순서입니다.
그래야 상호 비교도 되고 그렇구요.
참고로 d3d11 렌더러만 10비트 출력된다는 건 잘못 알고 계신 겁니다. 그리고 한가지 더... d3d11 dxva는 팟플 내장 코덱에도 구현이 되어 있습니다. d3d11 dxva가 d3d9 dxva보다 좋은 게 아니고 똑같습니다.
lav의 d3d11은 원래 madVR 개발자와 손잡고 만든 커스텀 dxva모드입니다. (ms에서 제공하는 게 아닌) 즉 원래 이 두 조합 외에서는 동작이 안됩니다. 그런데 madVR나 lav 개발자와 연락이 되서
lav(d3d11) + 내장 d3d11 렌더러나
내장 d3d11 dxva + madVR 조합으로 사용이 가능하게 된 겁니다.
즉... 상호간 호환이 되도록 lav나 madVR쪽에서도 패치가 있었다는 애기죠.
다시 말하면 내장 디코더도 lav가 제공해 주는 기능을 빠짐없이 전부 제공해 줍니다. 그러니 커스텀 인터페이스인 d3d11 을 통해서도 madVR과 오류없이 연결이 되는 것입니다. 요약인즉 lav를 쓸 이유가 없다는 거죠.
lav + 내장 렌더러 조합에서 저런 퍼포먼스가 나오는 건 저것이 어떤 이유인지는
일단 방송과 같은 수준의 파일을 팟플로 재생하면서 테스트를 해봐야 하겠지만..
일단 d3d11dxva는 d3d11 렌더러 조합 외에는 원래 제대로 동작하지 않습니다.
또한 연결도 안되야 정상이구요. d3d11dxva가 d3d11이외의 렌더러와 동작하는 경우는
copyback 모드밖에 없습니다. 기존의 (내장) d3d9 dxva도 10비트 지원되니 착오 없으시기 바랍니다.
제가 볼 때 위 테스트 스샷 중에 유의미한 건 세번째 조합(d3d11 + d3d11 렌더러)뿐인데.. 스샷만 보면 뭔가 제대로 동작하고 있지 않고 있는 것 같습니다.
세번째 스샷 중간에 format에 p010(d3d9 -> d3d11) 변환 부분이 나오는데 이거는 lav가 d3d11로 동작이 안되고 있는 듯? 싶습니다.
1. 즉.. 최신 팟플 + 초기화 상태에서 dxva만 켜고 일단 다시 테스트해 보시고
2. 초기화 상태에서 dxva를 켜고 내장 렌더러만 d3d11로 바꿔서 테스트해 보세요~
제 생각에는 이 두가지 테스트가 선행되고 나서야 위 테스트는 의미가 있습니다.
[ 내장 코덱 사용(권장) ] 이 LAV 필터보다 더 좋나요? 해보니 내장 코덱 사용에서 D3D11 렌더러 해도 프레임이 엄청나게 떨어지지 않네요... 사람들이 Lav 필터가 좋다 좋다 해서 사용하는데 어째 이런일이...
D3D11 렌더러 사용할려면 반드시 [내장 코덱] 을 사용해야 겠네요... 이 D3D11 렌더러 장점이 뭔가요?
님이 추천하는 조합은 어느 것 인가요? 최고의 영상 본다고 가정하고 8비트 10비트 각 영상마다 세팅하신것좀
알려주시면 감사하겠습니다. 최신 GT1030에 어울리는 세팅이 있나요?
Lav 필터로 하니 p10 10비트 이런 표시도 되지 않네요 그럼 8비트로 되는지 궁금하네요
좋은 답변 감사합니다.
내장 코덱에 대해서는 아래 글을 참고해 주시구요. lav는 예비용이라고 생각하시면 그게 가장 좋습니다.
http://cafe.daum.net/pot-tool/AZHQ/378
추천하는 조합은.. 테스트해 보시고 잘 되는 걸 사용하시면 됩니다. 만약 품질에 차이가 느껴진다. 그러면 그 부분을 질문과 답변란에 자세히 적어주시면 왜 그런 차이가 나는지 상호 테스트를 하면서 원인을 찾을 수 있을 것으로 생각합니다. 제가 추천하는 조합은 일단은 위의 1번 (초기화 + dxva) 입니다. 이게 가장 안정적이고 잘 될 것으로 생각이 되네요.
d3d11 렌더러 기타 관련 내용은 차후에 시간이 나면 여기 게시판에 정리해서 적어보겠습니다.
@킹팟
제가 약간 테스트를 해보았습니다. 기존 Lav(DVXA2) + EVR(D3D9) 또는 내장필터 + EVR(D3D9) 방식보다
Lav(D3D11) + D3D11 Renderer 또는 내장필터 + D3D11 Renderer가 GPU 점유률을 줄이고
( 단순 GPU 점유률 비교가 아니라 GPU 클럭이 D3D11 에서 더 낮음 점유률이 높아보여도 GPU 클럭이
낮으면 GPU 부담이 가는것이 매우 적은것입니다. )
메모리를 더 적게 먹네요 D3D9 대비 D3D11 은 메모리 점유률이 55~70% 수준 같습니다.
4K 영상 테스트
D3D 9 611MB 메모리 소모
D3D 11 335MB 메모리 소모
나중에 캡쳐한거 다시 정리해서 올려봐야 겠습니다.
이제 D3D9 를 벗어나 D3D11 로 넘어가야 할 것 같습니다.
내장 코덱과 + D3D11 렌더러의 조합의 장점은 메모리를 적게 먹네요 UMAX 볼때 메모리 800MB대 소모했는데
500MB 로 감소하네요 하지만 프레임이 완전한 60(59.94) 프레임이 되지 않습니다. 59.57 이러네요
GPU 점유률도 30% 대에서 20% 대로 감소하고 VPE(전용 디코더) 를 더 많이 사용해서 50% 로 증가했네요
이게 좋게 변한건지 나쁘게 변한것인지 모르겠네요... 이상하게 60프레임 30프레임 약간 못 미치게
나오네요 일부러 이렇게 나오는것 같은데...
기존 HD (MPEG2) 보니 GPU 20~30% 대 VPE 8~10% 대 네요 메모리는 113MB 정도 사용하구요
역시 30 프레임 약간 못 미칩니다.
vpe에 관한 것은 아래 글의 댓글을 참고해 주세요.
http://cafe.daum.net/pot-tool/Hqfm/5661
댓글에 "더 좋은 그래픽 카드를 쓰면 VPE 부하가 떨어지느냐"에 관한 제 설명 중에
"좋은 그래픽 카드가 아니라.. 그 카드에 내장된 비디오 엔진에 따라 다르다"고 한 부분이 있는데
이게 로직과 설명은 맞는 말인데
해외 포럼에서 실제로 테스트해 본 사람의 말에 의하면 어느 정도 차이가 있다고 하는 것 같더군요.
물론 이 차이는 동시에 몇 개의 동영상(멀티스트림)를 가속으로 재생할 수 있느냐의 차이이며
아주 큰 격차가 나는 것은 아닙니다.
@킹팟 그 밖에 재생시 GPU 로드율은 대부분 쉐이더 유닛 연산입니다. GPU 사용률이 100%에 달해서
재생시 퍼포먼스에 문제가 생기지 않는한 VPE 로드율과 마찬가지로 재생에 미치는 영향은 거의
없습니다.
madVR이 사용하는 것이 기본적으로 이 GPU의 쉐이더 유닛이죠.
제 생각에 육안으로 어떤 품질 차이를 느낄 수 없다면 (gpu 부하 30%와 20%인 경우)
실제 의미 있는 것은 이 부하가 아니라 (외부 전력 측정기로 측정 평가 가능한) 소모 전력입니다.
그 밖에 10비트에 관련된 글은 아래를 참고해 주시구요.
http://cafe.daum.net/pot-tool/AZHQ/422
이게 쓴지가 좀 오래되서 수정할 부분이 있는데 읽다 보시면 중간에 제가 이런 저런 소리를 적은 게 있는데
(madVr이나 lav 개발자가 서로 다른 얘기를 해서 긴가민가 했던 것들이 몇 개 있었는데) 팟플 개발자님이 한 말이 맞는 말입니다. (예를 들어 최신 윈도우에서 창모드 10비트 지원하는 부분 등)
성능을 봐서는 프레임 약간 부족할리가 없는데 일부러 이렇게 표기를 하는것인지 실제로 프레임 약간 부족하게
보여주는것인지 모르겠네요
59.94(D3D9) ---> 59.86(D3D11) 왜 이렇게 나오는지 모르겠으나 성능부족이나 최적화 문제가 아니라
일부러 이렇게 표기하는 것 같습니다.
프레임이 약간 못미친다고 하시는데 누락된 프레임이 없다면 제가 볼 땐 정상 같습니다.
마지막으로 탭키 정보의 cpu/gpu 부하는 참고 사항이지 맹신하시면 안 됩니다. 이유는
http://cafe.daum.net/pot-tool/Hqfm/5748
의 개발자님 댓글을 참고하시면 됩니다.
http://cafe.daum.net/pot-tool/AZMV/15600
이것도 참고하시구요.
팟플 사용시 좀 더 정밀하게 cpu나 gpu 부하를 측정하려면 작업 관리자나 gpu-z 등을 이용하시는 게 낫습니다.
내장 D3D11 렌더러의 VRAM 사용량이 적은 것은 아래 게시물을 잘 읽어보시면 됩니다.
내장 렌더러는 사용하지 않는 버퍼를 끌 수 있게 되어 있습니다.
http://cafe.daum.net/pot-tool/AZHQ/420
"FPS가 완전한 60(59.99) 프레임이 되지 않습니다. FPS : 59.57 이러네요"
정상 범위로 보이구요. 이것보다.. 맨 아래 새로 추가하신 스샷 네장을 잘 보면
frame: xxx/y
로 표시된 부분의 Y값이 드랍된 프레임 수치를 나타나는 것인데 이 값이 계속 증가하면 뭔가 문제가 있는 겁니다.
그 밖에 Jitter 값은 낮을 수록 좋습니다. 이게 특정 수치 이상 올라가면 뚝뚝 끊깁니다.
Frame 부분의 y 부분 지금 살펴보니 0 입니다. 아무래도 캡쳐시 약간 변동이 생긴것 같습니다.
Jitter 값도 0ms 이네요
Output 부분의 FPS 부분이 증가하는것 입니다.
그리고 다시 한번 테스트 해보았습니다. 확실히 내장 D3D11 렌더러가 가장 좋습니다.
4K UHD UMAX 채널 : 보보경심 려
[ 내장 Direct3D 9 Video Renderer ] ( LAV 코덱 : DXVA2 )
CPU 점유률 : 6~16%, GPU 점유률 : 46%, VPE : 54%, GPU Clock : 911Mhz, VRAM : 729MB
[ Video Mixing Renderer 9 (Renderless) ] (LAV 코덱 : DXVA2 )
CPU 점유률 77~80%, GPU 점유률 : 22~29%, VPE : 0%, GPU Clock : 810~1227Mhz, VRAM : 422.1MB
[ 내장 Direct3D 11 Video Renderer ] ( LAV 코덱 : D3D11 )
CPU 점유률 : 2~14%, GPU 점유률 : 23~36%, VPE : 54%, GPU Clock : 885Mhz, VRAM : 597MB
보시면 확실히 Video Mixing Renderer 9 (Renderless) 가 가장 메모리 소모률이 적으나 VPE 디코더 가속기능을
사용못해서 CPU 점유률이 무지막지하게 올라갑니다. 제 CPU는 스카이레이크 6600K 입니다.
기본 하드웨어가 uhd 신호를 받을 수 있나보네요 외장형 카드나 타사껀 거의 안되는 것 같던데.. 괜찮은 제품이군요