주의!!

이 패치는 무비스트의 비공식 패치입니다.

무비스트 개발진은 이 패치에 대한 궁금한 점이나 패치로 인해 발생한 문제에 대해서 답변해야 할 어떠한 의무도 없습니다. 이 패치로 인해 발생하는 어떠한 문제에 대해서 패치 제작자는 어떠한 책임도 지지 않습니다.


Downloads

movist_patch_for_block_noise.patch

Movist unofficial release INTEL ONLY binary


개요

이 패치는 무비스트에서 Vorbis 형식의 사운드 트랙을 포함한 동영상을 재생할 때 임의의 위치에서 재생하는 Seek를 사용하는 경우 0.5에서 2-3초간 블럭 노이즈가 발생하는 것을 수정하기 위한 패치입니다.

이 문제는 Mac OS X 및 Windows 버전의 VLC에서도 발생하는 문제이므로 이 문제로 동영상 재생에 어려움을 겪고 있는 분들은 이 패치를 적용한 공식 버전의 무비스트를 사용하실 것을 권장합니다.


기술적인 내용

이 장은 패치 및 관련 문제에 대한 기술적인 내용으로 무비스트 및 FFmpeg의 개발에 관심있는 분들을 위해 공개하는 정보입니다.


Seek 후 발생하는 블럭 노이즈의 특성으로부터 유추해 보면 이 문제는 프레임의 특성 때문에 발생한 문제임을 알 수 있습니다.

mpeg 계열의 압축 방식에서 프레임은 이미지와 같이 프레임의 모든 정보를 포함하고 있는 I 프레임, 이전 프레임으로부터의 움직임을 감지하여 그 변화를 기록한 P 프레임, 이전 프레임과 다음 프레임으로부터 유추한 B 프레임으로 구성되어 있습니다. 따라서, I 프레임없이 B나 P 프레임만으로는 완전한 프레임을 구성할 수 없습니다.


무비스트의 경우 필요한 모든 작업을 제대로 처리 하고 있으며, 무비스트 뿐만 아니라 Mac OS X 및 Windows용 VLC에서도 동일한 문제가 발생하기 때문에 이는 FFmpeg의 사용 오류이거나 FFmpeg의 av_read_frame의 버그로 추측해 볼 수 있습니다.

그러나, 문제가 발견되는 동영상에서 Vorbis 사운드 트랙을 물리적으로 제거한 경우 블럭 노이즈는 발생하지 않기 때문에 FFmpeg 사용 상의 오류이기보다는 FFmpeg 자체의 오류일 확률이 높습니다.


문제가 발생하는 정확한 지점을 파악하기 위해 Seek를 실행한 순간부터 블럭 노이즈가 제거될때까지 프레임의 타입(B,I,P) 및 PTS, DTS 정보를 추적하였으나 블럭 노이즈가 제거되는 시점의 특성을 정확하게 파악할 수 없었습니다. 또한, 블럭 노이즈의 발생 원인을 I 프레임의 부재로 예상하였으나, Seek 후 B 프레임과 P 프레임만을 재생하는 동안에도 블럭 노이즈가 제거되는 것을 관찰할 수 있기 때문에 Seek 후에 I 프레임이 빠져서 발생하는 문제라고 단정지을 수는 없습니다.


어쨌든, 제 능력으로는 FFmpeg 내부를 추적하여 문제의 원인을 파악할 수 없었기 때문에 Seek 처리 중에는 I 프레임이나 Key 프레임이 아닌 모든 프레임은 강제로 스킵하도록 수정했습니다. 이 방법은 블럭 노이즈에서 복구된 이후의 프레임도 스킵하는 문제가 있을 수 있지만, 테스트를 결과 간혹 지연 현상이 발생할 수 있지만 전체적으로 블럭 노이즈가 발생하는 경우보다 빠르게 처리합니다.


이 방법은 I,B,P 등의 프레임을 갖는 mpeg 압축 방식을 갖는 코덱이라는 가정에서 시작였기 때문에 완전한 코드를 작성하기 위해서는 비 mpeg 계열의 코덱의 경우 검사 및 프레임 스킵 루틴을 제거할 필요가 있습니다.


패치 적용시 주의할 점

이 패치는 무비스트의 최신 안정 버전인 v.0.5의 소스 코드를 기반으로 작성되었습니다.

/opt/sw/include 및 /opt/sw/lib에 FFmpeg 및 A52 라이브러리가 설치되어있어야 합니다. 다른 환경에서 빌드하고자 하는 경우 패치를 적용한 뒤 프로젝트 파일을 수정해야 합니다.


무비스트 안내

무비스트 공식 홈 페이지

2008년 6월 28일 토요일

무비스트 블럭 노이즈 제거 패치

Mac &  PC Life

Encore Subtitle

Tokyo & Kansai

Forge

 
 
Mac에서 생성
다음 >../../../%EC%A0%80%EC%9E%A5%ED%95%A8.htmlshapeimage_2_link_0
< 이전../5/28_TextEditor_Plugin_0.2.htmlshapeimage_3_link_0