'트랜스폼필터'에 해당하는 글 1건

초보자 분들에게 윈도우즈 환경에서 동영상 재생과 관련해 문제가 발생했을 때 이해를 돕기 위한 내용들을 정리해 봅니다. 부족한 부분에 대한 지적해주시면 고맙겠지만, 간단한 댓글보다는 충분한 설명이 포함된 포스팅을 하신 후, 트랙백으로 알려주시면 매우 감사하겠습니다. 짧은 내용의 지적은 지식이 얕은 사람들에겐 죽음입니다. ^^;;

윈도우즈 운영체제 환경이므로 MSDN(MicroSoft Developer Network - 마이크로소프트사에서 제공하는 개발자 지원 관련 문서 사이트) 에 있는 다이렉트쇼(DirectShow) 관련 페이지들과 온라인 백과사전 위키의 내용을 중심으로 정리해 보려 합니다. 고수분들이나 영어에 자신있으신 분들은 링크를 직접 확인해 주시면 고맙겠습니다. 




코덱 ( Codec ) 

http://en.wikipedia.org/wiki/Codec 

코덱 ( CODEC ) 이 COder/DECoder 의 약자라는 웬만큼 아시리라 봅니다. 멀티미디어와 관련된 정보 ( 동영상 파일로 간주하시면 됩니다. ^^;; ) 를 압축하고 다시 풀어서 재생할 수 있도록 해주는 역할을 합니다. 하드웨어 형태의 코덱도 있고, PC 환경에서 동작하는 소프트웨어 형태의 코덱도 있습니다. 지금 작성하는 내용은 그 중에서도 윈도우즈 환경의 PC 에서 동영상 재생시 필요한 코덱들에 대한 내용입니다.

윈도우즈 환경에서는 코덱과 관련한 많은 문제가 발생하지만, 코덱이 하는 역할은 동영상 데이타의 압축과 해제만을 전담하는 작은 소프트웨어일 뿐입니다. 윈도우즈 운영체제 하에서 실제로 동영상 관련 응용프로그램이 동작하는 데는 다양한 필터라는 것이 필요하며, 코덱은 그 필터라는 소프트웨어들 중 하나입니다. 

http://en.wikipedia.org/wiki/Filter_(software
A filter is a computer program to process a data stream.
위의 설명을 대강 보자면 소프트웨어 쪽에서 필터란 말은 데이타 스트림을 처리하는 컴퓨터 프로그램이라고 합니다. 여기서 " 데이타 스트림 ( 데이타 스트림 ) " 은 동영상 파일을 실행시켰을 때 하드에서 읽어오는 과정이 시냇가(stream)에 물이 흐르는 듯 하다는 뜻에서 이렇게 표현하고 있습니다. 그냥 동영상 파일이 하드에 저장된 상태에서 컴퓨터가 이제 사람들 눈에 보이도록 하려면 단계별로 처리해 줘야 하는데 그게 가능하도록 읽어온 상태로 알고 계시면 될 것 같습니다.

잠시 정리하겠습니다. 말이 자꾸 길어져서.. ^^;;

윈도우즈 운영체제 환경에서 " 코덱 " 은 동영상 파일의 압축과 해제를 전담하는 필터들 중 하나입니다. 필터는 데이타 스트림 ( 동영상 파일을 하드에서 읽어들인 상태 ) 에 어떤 처리를 해주는 역할을 하는 소프트웨어들입니다. 




다이렉트쇼(DirectShow)

윈도우즈 운영체제 환경에서의 " 필터 " 와 " 코덱 " 이란 말에 대강 감을 잡으셨다면 이 용어들이 자주 사용하는 다이렉트쇼에 대해 살펴보겠습니다.

마이크로소프트 사에서는 게임, 멀티미디어 응용프로그램을 전담하는 " 다이렉트X ( DirectX ) " 라는 소프트웨어 묶음을 따로 관리하고 있습니다. 개발환경이니 응용프로그램 지원 API니 하는 어려운 말이 등장하지만, 프로그래머 개발자가 아닌 이상은 별 필요없는 얘기라고 봅니다. ^^;;; 그냥 윈도우즈 운영체제에서 전담하는 소프트웨어들이 있다 정도면 될 것 같습니다. 

http://en.wikipedia.org/wiki/Directx

이 다이렉트X 중에서도 멀티미디어 정보를 전담하는 부분만 따로 묶어 " 다이렉트쇼 ( DirectShow ) " 라고 부릅니다. 단지 다이렉트X 에 속한 소프트웨어 묶음입니다.   

http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx ( 다이렉트쇼, MSDN )

http://en.wikipedia.org/wiki/DirectShow

따라서, 윈도우즈 환경에서 동영상이 잘 재생되려면 당연히 이 다이렉트쇼를 항상 최신버전으로 유지해야 하며, 다이렉트X 를 최신버전으로 유지하면 다이렉트쇼도 최신버전으로 유지됩니다. 비스타 등의 운영체제 버전에 따라 " 다이렉트X 10 " 같이 다른 종류의 최신 버전이 필요하기도 합니다. 그냥 윈도우즈의 자동 업데이트 기능만 꾸준히 확인하셔도 유지된다고 보시면 됩니다. ^^;;

그럼 다이렉트쇼와 코덱, 필터의 관계가 무엇인지 정리해 보겠습니다.




다이렉트쇼, 필터, 그리고 코덱

다이렉트쇼 시스템 구성 ( DirectShow System Overview ) - 기본적인 역할들

그림이 어렵지요? ^^;; 이 중에서 가운데 위치한 필터부분만 잘 보시면 됩니다.



 
소스 필터 ( Source Filters ), 트랜스폼 필터 ( Transform Filters ), 렌더링 필터 ( Rendering Filters ) 등이 동영상 재생과 관련한 필터입니다. 앞서 말한 필터가 데이타 스트림 ( 동영상 데이타 ) 에 어떤 처리를 가하는 역할을 하고, 그 역할에 따라 이런 종류의 필터들이 사용되고 있습니다. 이 중 트랜스폼 필터 ( 변환 필터? ) 부분에 속하는 게 코덱입니다. 그렇다고 무조건 이렇게 3 개의 필터만 있으면 되는 건 아닙니다. 그냥 크게 구분해서 표시했을 뿐입니다. ( 다 Filters 라고 써 있죠? ^^;; ) 추가되는 내용은 기회가 되는대로 다시 포스팅하겠습니다. ^^;; 




소스 필터 ( Source Filters )

그림은 어려워 보이지만, 역할은 단순합니다. 처리하려는 데이타 스트림 ( 동영상 파일 ) 이 어디에서든 읽어와서 다음 필터가 자신의 역할을 할 수 있도록 처리해주는 역할입니다. 컴퓨터 하드인지, 인터넷인지, 아니면 기타 다른 장치인지 처리하려는 쪽에서 알아야 할 필요성이 있습니다. 각 장치마다 규격도 다르고, 순간순간 오는 데이타의 양도 다르고, 동영상 포맷도 다르므로 이 부분만 전담하는 게 소스 필터입니다.


변환 필터 ( Transform Filters )

그림에서 보시듯 아래 쪽에 " Hardware MPEG2 Decodes " 라는 게 연결되어 있습니다. 변환이라는 말 그대로 압축된 형태의 데이타를 사람눈으로 볼 수 있는 형태의 데이타가 되도록 풀어주는 등의 역할을 합니다.


렌더링 필터 ( Rendering Filter, 혹은 렌더 필터 )

" 렌더링 " 이란 말은 그래픽 분야에서 많이 쓰입니다. ( 참조 : 다음 백과사전 - Rendering ) 그냥 사람 눈에 보이고, 귀에 들릴 수 있도록 하기 위해 해당 장치들 ( 비디오카드, 사운드카드 등) 에게 정보를 보내주는 역할을 합니다. 그리고나서 비디오카드는 모니터나 TV로 다시 전송해서 출력해주고, 사운드카드는 스피커를 통해 소리를 전달합니다.

화살표를 보면 " 파일 시스템 ( File System, 컴퓨터 하드 드라이브 ) " 으로도 연결되어 있는데, 이건 아마도 인코딩 과정도 포함된 것 같습니다. ^^;;




정리하자면...

윈도우즈 환경에서 동영상을 재생할 때는 여러 가지 역할을 하는 필터들이 있는데, 크게 소스필터, 변환필터, 렌더필터 등으로 구분할 수 있습니다. 읽어와서 분석하고 ( 소스필터 ) , 압축을 해제하거나 효과를 주는 등의 변환처리를 해주고 ( 변환필터 ) , 각종 출력장치로 정리된 데이타를 보내주어 ( 렌더필터 ) 사람이 보고 들으며 즐길 수 있도록 해줍니다. 코덱은 그 중 변환필터 쪽에 속하며 동영상 데이터의 압축과 해제를 전담합니다.

동영상 재생시 자주 발생하는 문제들의 대부분은 이런 필터들과 관련한 것들입니다. 설치되지 않았거나, 잘못 사용됐거나, 충돌을 일으켜 동작하지 못하거나 하는 등으로 인한 것입니다. 그외에도 다양한 원인이 있는데, 차츰차츰 기본원리와 관련해 정리하다 보면 답답함을 좀 줄일 수 있지 않을까 생각합니다. ^^;;




뱀발
예전 KMPlayer 게시판에서 개발자 분은 5 단계 ( 소스필터, 스플리터, 코덱, 후처리필터, 렌더필터 ) 로 구분하셔서 잘 설명해 두셨는데, 지금은 찾기가 힘드네요. ^^;; 이 부분은 동영상 포맷과 관련해서 다시 포스팅하겠습니다.  


WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,