home > Application > 자주묻는 질문&답변

FAQ Q. 모션 초보 작업시 메모리부족 문제
2012-05-11 16:50:51
부산대학교 첨단영상교육센터 <aistc@pusan.ac.kr> 조회수 2397
164.125.118.200

Q. 모션 초보 작업시 메모리부족 문제

파컷을만지다가 욕심에 모션을만지작만지작하다보니 결과물을 완성시 메모리가 10메가만 남아버려서 두시간정도 기다리라고 하는데 기다리다보면 걍다운되버립니다.. 초보라서 복잡하게만드는것도아니고 다른 무거운프로그램 같이돌리는것도아닌데 말이죠.. 전 맥북프로 13인치 램만 8기가로 업해서 쓰고있습니다.. 제 맥에서 해결할수 있는 방법이 있을까요?? 아님 다른 고사양의 맥을??ㅎㅎㅎㅎ ㅡㅡ 

http://cafe.naver.com/inmacbook/615974

 

A. 

 

Motion을 위한 시스템 요구사항

 

모든 시스템들이 동일하게 만들어져 있지 않습니다. 

하드웨어가 강력할수록 Motion에서 실시간으로 (렌더링 없이) 할 수 있는 것들이 더욱 많아집니다. 오늘은 작업자의 하드웨어가 Motion에 얼마나 영향을 미치는지에 대한 소개를 하고자 합니다. 만약 Motion을 원활하게 작동시키기 위해 시스템을 업그레이드할 구상중이고 어떤 하드웨어 구성이 최상의 결과를 제공할 것인지 결정해야 하는 분들에게 도움이 될것입니다.

 

 

1. 시스템 RAM

Motion은 프리뷰 범위 전체에 걸쳐 컴포지트를 이루는 모든 오브제를 캐시에 저장하기 위해 시스템 RAM을 사용합니다.

 

한 가지 예를 들어보면, 세 개의 QuickTime 무비를 Motion에서 결합하여 최종의 단일 이미지, 즉 컴포지트를 생성한 레이어는 3개로 구성되어있습니다.

 

8 비트 NTSC 비디오의 각 프레임은 가로로 720 픽셀과 세로로 486 픽셀 (DV에서는 480)을 가지고 있습니다. 당신이 컴퓨터의 메모리에 이 모든 픽셀들을 저장하기 위해 요구되는 메모리를 추가할 때, 약 1.3 MB (알파 채널을 포함하여)가 산출됩니다. Full raster 8 비트 1920 x 1080 HD 비디오는 각 프레임을 저장하기 위해 약 8.3 MB를 필요로 합니다.

 

그러므로 Motion이 120 프레임 (약 4초) 동안 지속되는 세 레이어의 컴포지트를 실시간으로 프리뷰 할 수 있도록 만들고자 한다면, 싱글 프레임을 위한 메모리 필요량과 화면 상에 동시에 있는 오브제의 수를 곱한 다음, 거기에 실시간으로 재생시키고자하는 프레임 수를 곱해야하는데, 즉, 1.3 x 3 x 120 = 468 MB가 됩니다. HD 비디오의 메모리 필요량은 약 3GB가 될 것입니다.

 

가정한 컴포지트 내의 세 클립을 실시간으로 조정하기 위해서는 적어도 468 MB 의 여유있는 RAM이 필요하고, HD를 위해서는 3GB가 필요합니다.

 

 

2. 비디오 카드 메모리 (VRAM)

시스템 RAM뿐만아니라, Macintosh는 그래픽 카드 상에도 메모리를 가지고 있는데, VRAM (video RAM)으로 알려져 있습니다. VRAM은 컴퓨터 모니터에 이미지를 그리기 위해 계산을 수행하면서 그래픽 카드에 의해 사용됩니다. 그래픽 카드는 또한 GPU (graphics processing unit)라 불리는 고유한 프로세서를 가지고 있는데, GPU는 이미지가 어떻게 그려져야 하는지를 계산하는 역활을 합니다.

 

Motion이 모니터 상에서 컴포지트의 한 프레임을 그릴 때마다, Motion은 그 컴포지트에서 각 오브제의 한 프레임을 그래픽 카드의 VRAM에 보내는데, 그래픽 카드 상의 프로세서가 각 이미지를 가지고 무엇을 하기로 되어있는지 그 프로세서에게 말해주는 명령어의 세트와 함께 보냅니다. 그 프로세서는 어쩌면 첫 번째 이미지의 스케일을 줄이고, 두 번째 이미지를 흐릿하게 만들라고 명령받았을 수도 있고, 혹은 한장의 싱글 이미지로 결합하기 전에 세 번째 이미지의 컬러를 보정하라고 명령받았을 수도 있습니다. 이곳이 바로 Motion의 실시간 측면이 콘트롤을 제어하는 장소입니다.

 

그래픽 카드의 프로세서가 VRAM 내에 저장되는 것만 렌더할 수 있기 때문에, 실시간으로 처리될 수 있는 레이어의 수는 그 그래픽 카드가 가지고 있는 VRAM이 얼마나 많은지에 의해 한정되어 있습니다.

 

NTSC의 예에서, 세 레이어를 가진 비디오의 각각의 레이어는 프레임 당 1.3 MB의 메모리를 차지합니다. 이론상으로는 한 프레임을 그리기 위해 3.9 MB의 VRAM만 필요로 하지만, 실제로는 그밖의 다른 처리들에 의한 부담이 생성되며, 그 비디오 레이어를 그리기 위해 사용되는 메모리 뿐만 아니라 다른 필터들과 이펙트들 또한 VRAM을 사용합니다.

 

한 프레임이 그려지고 나면, VRAM은 다음 프레임을 위해 그 오브제를 로딩하는데에 자유로워집니다. 그러므로 VRAM의 양은 얼마나 많은 레이어와 이펙트가 그 시퀀스의 한 프레임에 결합될 수 있는지에 영향을 끼칩니다. 다시 말해서, 당신이 얼마나 많은 VRAM을 보유하고 있는지는 프리뷰 되고 있는 프레임의 수에 영향을 주지 않습니다. VRAM의 양은 한장의 싱글 프레임에 합성될 수 있는 오브제의 수에만 영향을 끼칩니다. 

 

마지막으로, VRAM이 한계점에 닿을 때조차, Soloing기능을 활용해 Motion은 실시간 프리뷰를 렌더하고 실시간으로 개개의 오브제를 조종할 수 있도록 해주는 영리한 RAM 캐싱 기능을 가지고 있습니다.

 

 

 

3. CPU 속도

당신은 항상 더 빠른 CPU가 더 좋다고 들어왔을겁니다. 그 말도 Motion에서 맞는 말이긴 하지만, 여러분이 생각하고 있을 수도 있는 그런 방식은 아닙니다. 그래픽 카드에 있는 프로세서가 처리하기 힘든 모든 일을 하고 있기 때문에, CPU는 그 컴포지트의 실제 구성에 그리 많이 관여하지 않습니다. 단 몇가지 예외가 있습니다.  Motion이 Behavior, Particle trajectories, Motion Path &Curve 는 그래픽 카드로 보내기 전, 이것들을 계산하기 위해 CPU를 사용합니다. 그러므로 프로젝트에서 복잡한 Behavior를 많이 사용한다면, 더 빠른 프로세서의 덕을 확실히 볼 수 있을 것입니다. 

 

 

간략하게 다시 요약하자면....

 

? 시스템 RAM은 실시간으로 프리뷰할 수 있는 애니메니션의 프레임이 얼마나 많은지를 결정하고, 또한 RAM Preview 렌더를 수행하기 전, 실시간으로 볼 수 있는 컴포지트 내의 오브제가 얼마나 많은지  결정합니다. 

 

? VRAM (그래픽 카드 상의 video RAM)은 RAM Preview 렌더가 요구되기 전에 실시간으로 컴포지트 내의 오브제가 얼마나 많이 렌더될 수 있는지를 결정합니다. 더 많은 필터와 이펙트를 가진 더 많은 오브제를 스크린 상에 배치한다면, 더 많은 VRAM이 필요 할 것입니다.

 

? CPU 속도는 오브제를 합성하기 위해 얼마나 많은 복합적인 Behavior와 시뮬레이션들이 실시간으로 적용될 수 있는지를 결정하고 프로세서 속도는 스크린에 그려질 수 있는 레이어의 수에 영향을 덜 끼칩니다. 유효한 VRAM의 양이 레이어에 있어 더욱 중요하다는 점을 잊지마세요.

 

?어차피 시스템 RAM. VRAM, GPU, CPU 속도는 한계점이 있으므로, 실행 구간을 최소화 하며, Soloing기능을 적극 활용하는것이 운영의 묘미를 느낄수 있습니다.(비단 모션에만 해당되는 이야기는 아니고, 모든 모션 그래픽 툴에 해당됩니다)