큰 사이즈의 디스플레이 기기와  고해상도 동영상이 일반화된 지금, 동영상 디코딩을 CPU에만 의존하는 XBMC의 성능에 아쉬움을 느끼는 사용자들이 많은 듯 싶습니다. 아무래도 그래픽카드의 도움 없이 중급 이하의 CPU로 1080p의 동영상을 재생하기엔 버겁기 때문이겠지요. 
현재 XBMC에서 동영상 재생을 담당하는 재생기인 dvdplayer와 mplayer는 하드웨어 가속을 지원하지 않습니다.  성능이 낮은 CPU를 사용하는 사용자들은 원활한 고해상도 동영상 재생을 위해 하드웨어 가속을 지원하는 kmplayer 등의 외부 플레이어를 설정해서 사용하는 수 밖에 없습니다.
이런 불편을 해소하기 위해 XBMC Forum 에서 하드웨어 가속을 지원하기 위한 다양한 노력이 진행되고 있습니다.

하드웨어 가속을 지원하는 새로운 XBMC 내장 플레이어 개발.

윈도우용 XBMC에 한정된 얘기이기는 합니다만 DXVA를 지원하는 DSPlayer 가 개발되고 있습니다.
관련 글타래 -> http://xbmc.org/forum/showthread.php?t=61355
아래의 스크린샷은 기존의 XBMC 기본 플레이어인 dvdplayer로 재생한 것이고,

dvd.jpg 

아래는 dvxa를 지원하는 dsplayer로 재생한 것입니다.

ds.jpg 

XBMC 재생에 사용된 CPU는 인텔 듀얼코어 Wolfdale E6300입니다.  고해상도 동영상을 재생하는데 부족함이 없는 CPU이긴 합니다만, 보시는 것처럼 CPU 사용률이 확연하게 차이가 납니다. (8% vs 43%)
아쉬운 점은 아직 불안정한 부분이 있고, 하드웨어 가속이 모든 코덱에 적용되는 것 같지는 않습니다.
결정적으로 자막을 지원하지 않습니다.
하지만 꾸준히 개발중이니 이런 문제들은 머지않아 해결될 것으로 기대해 봅니다.

Broadcom Crystal HD Decoder 지원

Broadcom의 Crystal HD Decoder 지원을 위한 개발이 진행되고 있습니다.
http://xbmc.org/davilla/2009/12/29/broadcom-crystal-hd-its-magic/
브로드컴의 Crystal HD (BCM970012)는 Mini PCIE 슬롯에 장착할 수 있는 HD 디코더 카드로 mpeg2, h.264, VC1 코덱의 동영상(1080p까지)을 지원합니다.  일부 넷북에 기본 장착되어 있는 경우도 있고, 이베이에서 20~30불 선에 구할 수 있습니다.
이전 시대의 유물인 엠펙카드를 연상시키긴 하지만 가격이 저렴하고, 그래픽카드 확장이 불가능한 넷북, 넷탑, 맥미니와 AppleTV에도 장착이 가능합니다. CPU업그레이드보다 저렴한 비용으로 해결할 수 있다는 장점이 있습니다.  또한 오픈소스의 API가 제공되고 있으니 플랫폼 제한 없이 많은 플레이어들이 Crystal HD 를 지원할 것 같습니다.
브로드컴에서는 원칩으로 된 모델을 개발해서 컴퓨터메이커에 공급하고 있는 모양이니 이제 Crystal HD 디코더를 기본 장착한 넷북이나 넷탑들이 많이 나올 것 같기도 합니다.
어쨌든 Crystal HD는 저사양 PC의 동영상 재생능력을 획기적으로 개선시켜줄 수 있을 것 같습니다.  XBMC 사이트에서는 It's magic 이라고 표현할 정도입니다.  국내에서도 이미 넷북의 빈 슬롯에, 또는 무선랜 카드를 제거하고 Crystal HD 카드를 장착해 고해상도 동영상을 재생하는 사용자들의 글들이 보이고 있습니다.

VDPAU 지원
VDPAU가 지원되는 NVIDIA의 그래픽카드가 있거나, ION 기반의 HTPC를 운영하고 있다면 리눅스용 XBMC나 XBMC Live를 사용하는 것도 고려해볼 만 하겠습니다.  현재로서는 XBMC에서 하드웨어 가속이 가장 안정적으로 지원되는게 리눅스용 XBMC 이니까요.  문제는 사용자가 리눅스 환경에 얼마나 적응할 수 있느냐가 관건이겠지요.


컴퓨터 하드웨어나 프로그래밍에 대한 지식이 거의 전무한 상태에서 글을 쓰다보니 미흡하거나 틀린 부분이 있을지도 모르겠습니다.  관련된 정보와 지식이 있으신 분은 댓글로 올려주시면 감사하겠습니다.


profile
조회 수 :
542
등록일 :
2010.01.16
03:40:11
엮인글 :
http://xbmc-korea.com/xe/15062/fb1/trackback
게시글 주소 :
http://xbmc-korea.com/xe/15062

[레벨:3]edge

2010.01.16
08:44:23
2가지 구현 방법이 논의되고 있는거 같습니다.

1. DirectShow Filter 사용 (dsplayer)
윈도우에서는 가장 널리 사용되는 방법이고, dsfilterconfig.xml 파일에서 source/video/audio등의 사용필터 설정이 가능하기 때문에, CoreAVC / PowerDVD 같은 상용필터도 사용이 가능합니다.
너무 윈도우 종속적이기 때문에 정식빌드가 되기는 어렵고, 윈도우 버전 / 필터 조합에 따른 버그를 해결하기에는 개발자 한사람으로는 힘들어 보입니다. 아마 조만간 대대적인 변경이 있을거 같습니다.

2. DXVA2.dll 사용
DLL에 포함된 하드웨어 가속 루틴만 사용하고, 나머지는 내장 소프트웨어를 사용합니다. 현재 Boxee가 이 방법을 사용한다고 합니다 (h.264만 지원). 그렇지만 Vista/Win7에서만 동작하는 단점이 있습니다.

VDPAU의 문제는 아직 nVidia에 한정되어 있다는 겁니다. 그런면에서는 여러 backend가 개발되어 있는 VA-API가 더 낫다고 보고, 언젠가 지원되리라 봅니다. (ffmpeg이 VA-API 지원하기 시작했기 때문에)

생각건데 공식 하드웨어 가속 지원은 2번 방법으로 진행될거 같습니다(Boxee코드가 많이 넘어올 가능성이 있죠). 플랫폼에 따라서 DXVA2나 VA-API가 선택될거구요.

[레벨:3]edge

2010.01.24
23:56:38
Boxee에서 1080p 동영상을 돌려보니 하드웨어 가속이 되는지 끊김없이 플레이가 됩니다.
그리고 dsplayer에선 안나오던 자막도 나옵니다.
그렇지만 속도때문에 필터들을 생략했는지 기대했던 선명한 영상이 아니더군요.
XBMC에서 DXVA 지원할 때까지 정붙이고 써볼까했지만, 아무리 XBMC 기반이라도 기능을 너무 간략하되다 보니 필요한 기능도 빠져있어서 그냥 포기했습니다.
특히 scraper는 2종류를 쓰는 저에게는 무조건 imdb로 고정되어 있다는게 받아들이기 어렵더군요.

[레벨:3]edge

2010.01.25
00:05:22
10.05 에서 DXVA가 지원된다고 합니다.
http://xbmc.org/trac/roadmap
근데 4개월이나 남았네요.