z
2008-06-12, 07:19 PM
ftp에 vc1_ts.rar하고 MPCVideoDec.rar 올려두었습니다.
VC1_ts.rar 이 샘플로 테스트한 겁니다.
KMP 초기화 상태에서
vc-1 디코더는 아래 것을 사용하고 비디오 필터를 떼고 DxVA로 사용했습니다.
MPCVideoDec.rar
위 VC1_ts 샘플을 상기 디코더로 VMR9 renderless로 재생하면 DxVA로 재생이 되는데 VMR mixing 모드(+yuv모드전환)를 enable하지 않으면 화면비율이 어긋나고 영상하단의 8픽셀에 노이즈가 끼더군요.
이 샘플은 원본 블루레이에서 ts container에 mux된 vc1 샘플입니다.
이상하게 이 vc1동영상을 evr + ms의 vc-1 디코더로 재생해도 DxVA가 안되더군요.
참고로 kmp 디코더 설정의 vc-1 디코더 초기값이 "시스템 기본"으로 되어 있는지 확인 한번 해보시기 바랍니다. 제가 테스트를 할 때 이상하다 싶으면 두번째 스샷에서처럼 환경설정을 하나 만들어서 테스트합니다. 두번째 스샷에서 해당 버튼을 누르면 kmp초기값으로 환경설정을 만들어주는데 vc-1디코더 부분이 설정이 안되어 있는 것 같더군요. 제 생각에 세번째 스샷처럼 "시스템 기본값"에 맞추는게 좋을 것 같습니다. 안 그러면 low merit로 libavcodec으로 연결이 됩니다.
ms사의 vc-1 디코더 dxva가 evr에서도 안되는 것이 무슨 다른 조건이 특별히 있는지 왜 ts에 mux된 vc-1에 적용이 안되는지 모르겠네요. 혹시 이유를 아는 분 있으면 댓글 좀 부탁합니다. 그러다가 이 동영상을 mpc로 우연히 돌려봤는데 DxVA가 되서 확인해 보고 별개로 컴파일된 mpcvideo 디코더를 구해서 kmp에 연결해봤더니 EVR뿐 아니라 VMR9 renderless상태에서도 DxVA가 적용이 되더군요.
(vmr 믹싱기능을 enable해야 문제가 없습니다. 최근 버전의 mpc를 보면 vmr 믹싱 모드에 kmp처럼 여분의 yuv모드전환 옵션이 사라진 걸로 봐서 기본적으로 yuv모드로 세팅하고 있는 것 같습니다. 제가 생각하기에 vmr믹싱 모드를 켜면 항상 yuv모드를 사용하는 것이 좋다고 여겨지기 때문에 추후에 확인해 보시고 옵션을 통합하면 좋젰습니다.)
제 생각에 kmp 자체에 vc1의 dxva1,2모듈을 가지는 것이 더 낫겠다 싶은 생각이 듭니다.
그런데 이 mpcvideo 디코더를 kmp에 연결하고 재생하면 첫번째 스크린샷처럼 메모리 누수가 생깁니다. kmp 자체 vc1의 dxva모듈을 가지지 않아도 외부 dxva 디코더를 연결해서 사용할 수 있는 방법이 있으니 괜찮기는 한데 이렇게 메모리 누수가 생기니 좀 난감했습니다. 혹시 디코더 버그인가 싶어서 다른 재생기에 연결해서 재생해 보니 괜찮은 것 같더군요.
한번 확인해 보시고 이 부분을 조정해 주실 수 있으면 좋겠습니다.
[Primary Filtergraph]
0) - vc1.ts
1) - KMP MPEG2(TS) Splitter
2) - KMP AVI<->AC3/DTS Transform
3) - CyberLink Audio Decoder (PDVD7)
4) - MPC - Video decoder
5) - KMP Audio Transform(Copy)
6) - Video Mixing Renderer9(Renderless)
7) - Default DirectSound Device
[Video Info]
Decoder - (WVC1) MPC - Video decoder
Format - Major Type: Video - Sub Type: UnKnown
VideoInfo2: dxva 1920X1088, 12 bits
VC1_ts.rar 이 샘플로 테스트한 겁니다.
KMP 초기화 상태에서
vc-1 디코더는 아래 것을 사용하고 비디오 필터를 떼고 DxVA로 사용했습니다.
MPCVideoDec.rar
위 VC1_ts 샘플을 상기 디코더로 VMR9 renderless로 재생하면 DxVA로 재생이 되는데 VMR mixing 모드(+yuv모드전환)를 enable하지 않으면 화면비율이 어긋나고 영상하단의 8픽셀에 노이즈가 끼더군요.
이 샘플은 원본 블루레이에서 ts container에 mux된 vc1 샘플입니다.
이상하게 이 vc1동영상을 evr + ms의 vc-1 디코더로 재생해도 DxVA가 안되더군요.
참고로 kmp 디코더 설정의 vc-1 디코더 초기값이 "시스템 기본"으로 되어 있는지 확인 한번 해보시기 바랍니다. 제가 테스트를 할 때 이상하다 싶으면 두번째 스샷에서처럼 환경설정을 하나 만들어서 테스트합니다. 두번째 스샷에서 해당 버튼을 누르면 kmp초기값으로 환경설정을 만들어주는데 vc-1디코더 부분이 설정이 안되어 있는 것 같더군요. 제 생각에 세번째 스샷처럼 "시스템 기본값"에 맞추는게 좋을 것 같습니다. 안 그러면 low merit로 libavcodec으로 연결이 됩니다.
ms사의 vc-1 디코더 dxva가 evr에서도 안되는 것이 무슨 다른 조건이 특별히 있는지 왜 ts에 mux된 vc-1에 적용이 안되는지 모르겠네요. 혹시 이유를 아는 분 있으면 댓글 좀 부탁합니다. 그러다가 이 동영상을 mpc로 우연히 돌려봤는데 DxVA가 되서 확인해 보고 별개로 컴파일된 mpcvideo 디코더를 구해서 kmp에 연결해봤더니 EVR뿐 아니라 VMR9 renderless상태에서도 DxVA가 적용이 되더군요.
(vmr 믹싱기능을 enable해야 문제가 없습니다. 최근 버전의 mpc를 보면 vmr 믹싱 모드에 kmp처럼 여분의 yuv모드전환 옵션이 사라진 걸로 봐서 기본적으로 yuv모드로 세팅하고 있는 것 같습니다. 제가 생각하기에 vmr믹싱 모드를 켜면 항상 yuv모드를 사용하는 것이 좋다고 여겨지기 때문에 추후에 확인해 보시고 옵션을 통합하면 좋젰습니다.)
제 생각에 kmp 자체에 vc1의 dxva1,2모듈을 가지는 것이 더 낫겠다 싶은 생각이 듭니다.
그런데 이 mpcvideo 디코더를 kmp에 연결하고 재생하면 첫번째 스크린샷처럼 메모리 누수가 생깁니다. kmp 자체 vc1의 dxva모듈을 가지지 않아도 외부 dxva 디코더를 연결해서 사용할 수 있는 방법이 있으니 괜찮기는 한데 이렇게 메모리 누수가 생기니 좀 난감했습니다. 혹시 디코더 버그인가 싶어서 다른 재생기에 연결해서 재생해 보니 괜찮은 것 같더군요.
한번 확인해 보시고 이 부분을 조정해 주실 수 있으면 좋겠습니다.
[Primary Filtergraph]
0) - vc1.ts
1) - KMP MPEG2(TS) Splitter
2) - KMP AVI<->AC3/DTS Transform
3) - CyberLink Audio Decoder (PDVD7)
4) - MPC - Video decoder
5) - KMP Audio Transform(Copy)
6) - Video Mixing Renderer9(Renderless)
7) - Default DirectSound Device
[Video Info]
Decoder - (WVC1) MPC - Video decoder
Format - Major Type: Video - Sub Type: UnKnown
VideoInfo2: dxva 1920X1088, 12 bits