라즈베리파이 XBMC idle일 때 CPU 사용률 높은 현상

XBMC를 사용하지 않을 때 화면이 dim 되면서 대기 상태에 들어감에도 불구하고 CPU 사용율이 여전히 높다. ssh 접속하여 top 커맨드로 확인해보면 20% ~ 30%를 왔다갔다 하고 있다. XBMC 상에서 CPU usage를 보려고 시스템 > 시스템 정보에 들어가면 동적으로 CPU 사용률과 FPS를 보여주는데, 여기에선 항상 100%다.

라즈베리파이 XBMC에서 CPU 사용량 확인 화면
라즈베리파이 XBMC에서 CPU 사용량 확인 화면

이유는 다음과 같다. http://thepcspy.com/read/how-fix-idle-100-cpu-issue-xbmc/

XBMC was originally written for the XBox game console, which is a single-threaded system (not a multi-tasking OS like Windows). As such, it was written in a game loop, rather than being event-driven. This means that the screen refreshes as fast as possible in order to “feel” responsive to the user. What this boils down to is that while sitting on the idle screen, XBMC is still repainting the screen at 60-90 frames per second (as can be seen by the FPS number if debug mode is enabled). This takes up a lot of processor power, because the “game” is still running, even though you may not be doing anything with it.

XBMC 자체가 게임 콘솔용으로 만들어졌고, 항상 최선의 경험을 제공하기 위해서 화면을 최선을 다해서 갱신한다는 것인데…

과연 idle 상에서도 그럴 필요가 있을까? TV 화면을 꺼 놨는데도? 이건 XBMC가 개선되어야 할 부분이라 생각한다. 가뜩이나 CPU 파워가 모자른데, XBMC가 화면이 없는 상태에서도 CPU를 갉아먹고 있으니.. 화면 보호기를 dimming이 아니라 black screen을 선택해도 마찬가지다.

advancedsettings.xml에 dirty regions 값을 바꿔보면 CPU 사용률은 확실히 줄지만, 화면이 제대로 안 나온다. 1로 하든 2로 하든 마찬가지. 3번을 선택해서 fullscreen update를 해야 화면이 제대로 나온다. http://wiki.xbmc.org/index.php?title=Dirty_regions

Video refresh rate를 30으로 변경해보면 CPU 사용이 줄어든다. 그런데 TV에서 제대로 인식하지 못해 적당한 해결책은 아닌것 같다.

결국 해결 방법이 현재로선 없는 것 같다. 언제쯤 고쳐주려나… 🙁

XBMC에서 3D 영상 보기

인터넷에서 3D 영상을 다운로드하여 PC에서 돌려보면 화면이 분할된 상태로 재생이 된다. 이런 영상들은 3D TV에서 재생하는 경우 3D로 볼 수 있다.

스크린샷 2014-01-12 오후 9.54.58
3D 영상을 플레이한 모습. TV에서 3D 설정을 켜면 두 개의 화면이 합쳐져 3D 화면으로 재생됨.

사실 XBMC가 아니라 어떤 재생기로 재생해도 상관이 없다. 이유는 TV에서 반 쪼개진 영상을 하나로 합쳐서 보여주기 때문이다.

문제는 이렇게 하는 경우 자막은 따로 처리가 안된다. 자막을 양쪽 화면으로 분리하여 보여주는 재생기가 아니라면 자막이 이상하게 보일 것이다. TV가 자막을 따로 인지하지 못하기 때문이다.

TV에 보면 3D 전환 기능이 있다. 이 기능 선택 후 가지고있는 3D 영상에 맞는 화면 분할을 선택해주면 된다. 좌우로 분할되어있는지, 상하로 분할되어있는지, 색깔로 구분되어있는지 등, TV에 따라 선택할 수 있는 옵션이 있을 것이다.

이제 안경을 쓰고 시청하면 된다. 🙂