사용자 도구

사이트 도구


용어:sofdec

Sofdec (소프덱)

개요

Sofdec 로고

Sofdec은 세가새턴(Sega Saturn, セガサターン)에서 하드웨어 디코딩이 지원되는 동영상 포맷이 없는 문제 때문에 경쟁 기종에 비해서 동영상의 화질과 퀄리티가 떨어지는 문제를 해결해 게임 개발에 필요한 추가적인 인력 및 시간 소모를 해결하기 위해서 CRI세가 (SEGA)가 협력해서 제작한 동영상 압축 코덱이다. 첫 버전은 1997년 개발되었으며, 그란디아에 첫 도입된 이래로 여러 게임에 사용되어 왔다.

현재도 판매되는 코덱으로, 상용코덱이기 때문에 기술이나 인코더, 디코더 소스는 공개되어있지 않다. 기본적으로 MPEG 기반의 디코더로, 처음에는 ‘새턴에서 돌아가는 MPEG 디코더다’라는 형태로 소개했으며, 이름인 ‘Sofdec’도 ‘Software’ + ‘Decoder’의 형태이다. 이 때문에 당초에는 ‘MPEG Sofdec’이라고 널리 불리워졌다.

처음 개발 당시에는 MPEG1 기반으로 개발된 소프트웨어 디코더 정도로 만들어진 것이었으며, 저스펙이었던 세가새턴에서 동영상과 음성을 모두 압축해서 수록한 후, 2배속 CD-ROM에서 읽어들여 디코딩을 원활히 하기 위해서 별의 별 병렬적 연산 기법을 도입해서 만들어진 코덱이다. 음성 압축에 사용되는 ADX (코덱)과 더불어서 함께 개발된 것으로, Sofdec은 동영상 압축 인코딩, 디코딩만 담당하고 나머지 컨테이너나 스트리밍 등의 기능은 ADX (코덱) 쪽에서 담당하게 되어있다. 때문에 MPEG 비디오 규격인 비디오CD 및 후속 포맷인 DVD에서 지원하는 멀티스트리밍, 심리스(Seamless) 재생 등을 이용한 제어계 기능은 ADX (코덱) 쪽에 구현해 이용한다. 이는 MPEG 등의 미디어에서 사용하는 제어 기능을 게임에서는 사운드 쪽에서 더 활용성이 높다는 점에 착안했기 때문이다. (때문에 기능적인 부분은 ADX (코덱) 항목을 참고하자)

그란디아에 첫 적용되어 선보였으나, MPEG 코덱의 특성상 압축된 데이터의 화질이나 기능적 면은 나쁘지 않았으나 용량이 동시기에 새턴에서 사용되던 트루모션이나 시네팩에 비해서 라이센스 비용이나 용량 등의 문제도 있고, 또한 거의 스펙의 한계까지 쥐어짠 특성 때문에 재생에 문제가 생기거나 하는 경우가 발생하기도 해서 게임에서의 활용은 함께 만들어진 음성용 ADX (코덱)과 달리 새턴 시절에는 널리 사용되지 못했다.

정작 Sofdec이 빛을 보기 시작한 것은 드림캐스트(Dreamcast)의 발표 이후 MPEG2의 압축 방식과 24비트 컬러 지원, 고해상도 지원과 게임 라이브러리와의 연동 기능이 포함되면서 및 기타 다양한 기능들이 추가되면서 드림캐스트에서는 기본 동영상 포맷으로 이용되었으며, 드림캐스트 사업 철수 후 CRI에서 미들웨어로 타 기종에 이식, 판매하면서 플레이스테이션2엑스박스 (XBOX) 등의 기종에서도 사용되기에 이르렀다. 이 세대부터는 어차피 하드웨어 디코더가 없었기 때문에 CPU점유율이 낮으며 게임 속에서 활용할 수 있는 다수의 기능이 갖춰진 Sofdec을 채용하는 게임이 많이 늘어났다.

이후 계속해서 버전업을 하면서 최신 코덱에서 사용되는 각종 압축 효율화 기법과 안정화 기법이 도입되면서 7세대 게임기에서도 사용할 수 있는 수준으로 기술적인 업그레이드가 되었으나, 영상 압축 알고리즘 변경과 신규 코덱인 H264 코덱 지원을 비롯한 상위 기술의 도입과 함께 2010년 Sofdec2 (소프덱2)가 발표되었다.

사용하는 게임 소프트웨어는 게임 기동시 Sofdec 로고를 표시해야 하는 의무사항이 있었으나, 2006년 11월 1일을 기준으로 로고 표시 의무가 사라지고 엔딩 스탭롤에만 표시해도 되도록 의무가 완화되었다.

특성

멀티 플랫폼

세가새턴을 시작으로 다양한 기종으로 이식이 되면서 한 번 작성한 파일을 다양한 플랫폼으로 이식할 때 거의 대부분 그대로 사용할 수 있다는 점이 큰 장점이다. 특히 현용기가 아닌 세가새턴을 제외하고는 모든 기기가 Sofdec을 지원하는데 큰 무리가 없기 때문에 멀티 플랫폼을 지원할 경우 번거로운 작업을 최소화 할 수 있다는 장점을 가지고 있다.

멀티스트림 재생

심리스 재생과 멀티스트림, 순서를 바꿔재생하거나 분기를 만들어 원하는 순서로 재생하는 등의 기능이 가능

Sofdec은 ADX (코덱)에서 지원하는 심리스 로드 방식을 이용해서 멀티스트림 재생을 지원한다. 여러 동영상 스트림을 병행적 및 독립적, 비동기적으로 재생할 수 있다.

하나의 파일에 여러 스트림을 묶어서 동시 로딩한 후 원하는 스트림만을 재생하거나 복합 스트림을 재생함으로서 원하는 영상을 조합하거나 동영상 텍스쳐로 활용하기 위한 실시간 버퍼링을 운용하는 것이 가능하다.

Seamless 재생

잘게 썰어놓은 여러 파일을 원하는 순서로 로드해서 재생을 시킬 수 있다. 분기별로 다른 영상을 재생한다거나 하는 것이 가능해진다. 예를 들면 Dancing Blade 제멋대로 모모텐시 (Dancing Blade かってに桃天使)같은 게임에서 루트 분기에서 선택기에 따라 약간씩 다른 영상을 불러와야 할 때 이전에는 플래그에 따른 분기에 따라 맞는 동영상을 로드함에 따라 끊김이 발생하게 되지만 Sofdec에서는 별도의 프로그래밍을 통한 버퍼링 제어 없이 끊김없이 분기나 변화 사항을 적용해 재생시킬 수 있다.

이러한 면을 보면 Sofdec과 ADX가 걸게에서 많이 사용되는 것은 결코 신기한 일이 아니다.

이미지 추출

동영상 내의 프레임 번호를 지정해서 JPEG 형식으로 이미지를 추출해낼 수 있다.

예를 들어서 지나간 영상을 회상하는 씬을 만든다고 생각하면 일부러 이미지를 저장해둘 필요없이 해당 프레임을 확인해서 로드시키면 JPEG 형식으로 압축된 데이터를 로드할 수 있다. 이것을 통해 단순 이미지를 불러들인다거나 텍스쳐맵핑 데이터를 저장했다가 불러들이는 등의 활용이 가능하다.

낮은 CPU 점유율

지금 글로 읽으면 잘 감흥이 일어나지 않을 코덱이지만, 스펙상 MP3 디코딩 조차 어렵던 20MHz에 불과한 세가새턴의 CPU와 보조프로세서를 말그대로 쥐어짜고 쥐어짜서 소프트웨어MPEG 디코더를 만들어낸 것이다. 당시에는 MPEG디코딩을 위해서 하드웨어 디코더 보드를 판매하던 시기였고(심지어 PC조차), 펜티엄 급이나 되어야 XING 등의 소프트웨어 디코더를 돌리던 시기이니 새턴에서 소프트웨어 MPEG디코딩이 가능했다는 것은 거의 사기에 가까운 기술이라고 할 수 있다.

이후 후속 기종인 드림캐스트의 SH-4에서 MPEG-2 비디오 코덱을 소프트웨어로 디코딩할 수 있게 버전업 되었는데, 이는 당시에도 PC에서는 DVD 재생을 위한 전용 보드가 판매되거나, 그래픽카드가 MPEG-2 가속을 지원하는 경우(ATi레이지 시리즈 등), 혹은 MMX가 지원되는 프로세서가 있어야 원활한 상태였기 때문에 이러한 지원은 상당한 것이었다. 특히 이 때 스펙의 향상과 함께 텍스쳐 맵핑 등에 동영상이나 동영상에 사용되는 스트림 데이터를 이용하는 기술이 사용되기 시작하면서 3D그래픽스에서 동영상 데이터를 사용할 때는 CPU 점유율이 낮은 Sofdec의 활용이 가능한 것 등이 매우 유용하게 받아들여졌다.

화질 및 코덱

Sofdec은 위에서 설명한대로 MPEG-1 규격과 MPEG-2 규격의 비디오 압축 방식을 지원한다. 하드웨어 가속방식의 디코딩 방식이 지원 해상도에 제약이 심한데 반해서 Sofdec은 소프트웨어 디코더이기 때문에 16*16 사이즈 단위로 자유롭게 사이즈 변경이 가능하다. 즉 16의 배수로 증가하는 해상도면 특별한 규격없이 전부 디코딩이 가능하다. 컬러는 기본적으로는 24비트 컬러까지 지원한다. 8비트 및 16비트 컬러 프로필도 지원한다.

비트레이트는 표준으로는 6Mbps를 추천하고 있으며 CBR, ABR, VBR 방식으로 압축하는 것이 가능하다. 최소 및 최대 제한 비트레이트는 없지만 MPEG-1, 2 규격의 압축을 하기 때문에 MPEG-4나 H264등의 최신 코덱에 비하면 비트레이트 대비 화질면에서 불리한 면은 분명히 가지고 있다.

프레임은 기본적으로는 24프레임, 30프레임, 60프레임을 지원하지만 그외에도 MPEG비디오가 지원하는 표준 규격을 거의 모두 지원한다.

영상 스트림 Sofdec 비디오, MPEG-1/MPEG-2 비디오
프레임 속도 60fps, 30fps, 24 fps 등
(이미지 크기, 비트레이트에 따라 다름)
이미지 크기 16×16 픽셀 단위로 임의적(표준 640×480 픽셀)
비트레이트 일정 범위에서 임의적(표준 약 6Mbps)
출력 이미지 24비트 컬러(1600만색, YCC4:2:0 형식)
지원 오디오 ADX1, ADX2(특정 기종 한정)

Sofdec FX

Sofdec FX는 Sofdec에서 지원하는 확장기능을 지칭하는 명칭이다. 동영상 텍스쳐나 스프라이트 대용으로 사용하는 등의 다양한 활용이 가능하다. 파이널 판타지7의 동영상을 배경으로 움직이는 놀이 공원 스테이지 등을 표현하기 위해서 구현된 기능들이 많다. 기본적으로 코덱 내에서 지원하는 아래의 기능들을 API를 통해서 게임 내에서 간단히 호출해서 운용할 수 있게 지원하는 기능들이다.

동영상 텍스쳐

3D그래픽스에 사용하는 텍스쳐 맵핑 데이터로 동영상을 실시간으로 맵핑해 붙일 수 있다. 게임 중에 등장하는 전광판 등에 재생되는 영상 등에 적용이 가능하다. 기본적으로는 복잡한 모델링에는 사용되기 어렵고 단순 평면에 동영상을 출력하는 형태로만 활용이 가능하다. 이론상으로는 복잡한 모델링에도 3D그래픽 처리단에서 해당 동영상을 맵핑 데이터로 쓰기위해 변용하는 과정을 추가하면 쓸 수 있긴 하겠으나, 그런 회사는 없었던 듯 하다.

이펙트 무비

폭발, 화염, 연기, 천둥 등 리얼타임 렌더링으로는 표현이 어려운 복잡한 이펙트나 파티클 영상효과를 미리 렌더링해둔 영상을 이용해서 쉽게 표현할 수 있다. 데스크림슨2의 오프닝에서 옥중의 대니가 죽을 때 폭발 이펙트를 이 기술로 처리했다. (상당히 언밸런스해서 어색하긴하지만)

α채널 동영상

동영상 데이터 자체에 α채널(투명도) 정보를 부여한 동영상을 통해서 게임 영상과 동영상의 합성을 더욱 자연스럽게 적용할 수 있게 해준다. 8비트 알파 채널을 통해서 투명도를 부여, 실시간 렌더링이 어려운 반투명한 사물을 표현해서 화면 내에 배치해줄 수 있다.

Z채널 동영상

동영상 이미지에 픽셀 단위로 Z값(깊이값)을 부여해 3D 그래픽과 합쳐서 렌더링 할 때 자연스러운 그래픽 표현을 할 수 있게 해준다. 시점이 고정이라는 전제 하에서 자연스러운 유사 3D 그래픽과 같은 효과를 기대할 수 있기 때문에 활용 방안이 매우 넓다.

특히 건슈팅 게임같은 1자 진행형의 레일 게임에서 배경 그래픽을 동영상으로 도입해서 전체적인 퀄리티를 높인다거나 하는 것이 가능해진다.

파일포맷

SFD

SFD는 Sofdec의 영상 컨테이너다. 기본적으로 MPEG-2 규격의 파일과 큰 차이는 없으나 ADX 규격에서 사용하는 헤더 정보와 인덱스, 스크립트 데이터를 포함하고 있다. 기본적으로 영상 데이터 자체는 MPEG-1이나 MPEG-2 코덱을 사용하기 때문에 파일 컨테이너만 전환시키면 여타 MPEG 디코더로도 디코딩이 가능하다.

파일 내부에 ADX오디오 트랙을 포함시킬 수 있으나, 비디오만 담아두고 SFA에서 별도 스트리밍을 읽어들여 재생하는 것도 가능하다.

기본적으로 패키징 등은 ADX (코덱)에서 담당하기 때문에 Sofdec에서는 동영상 저장과 디코딩만 담당한다고 보면 된다.

Sofdec2 (소프덱2)

CRI WARE 통합 로고. ADX와 SOFDEC을 포함한 통합 솔루션

Sofdec2는 Sofdec1을 개량한 코덱이다. 기본적으로 Sofdec1을 개량, 강화한 미들웨어이기 때문에 기능적으로는 Sofdec1에서 지원하던 모든 기능을 지원하고 있으나, MPEG 코덱에 기반한 Sofdec1과 달리, H264기반의 코덱과 CRI에서 제작한 자체 코덱을 지원한다. (Sofdec1의 MPEG-1, MPEG-2 코덱은 지원하지 않는다) 때문에 압축률 향상이 이루어져 용량 대비 화질면에서 Sofdec1에 비해 더 많은 메리트를 발휘할 수 있게 변경되었다.

또한 다양한 시스템에서 지원하는 하드웨어 코덱을 사용하는 매니징까지 지원함으로서 ‘소프트웨어 코덱’이 중심이었던 Sofdec1에 비해서 통합 비디오 매니징 소프트같은 형태로 변경되었다고 할 수 있다.

또한 함께 개발된 ADX2 코덱을 지원함으로서 더욱 높은 효율과 플래쉬 미디어 지원 및 확대된 플랫폼 지원을 약속하고 있다. 거기에 게임 개발에 필요한 다수의 기능이 추가됨으로서 게임에서 사용되는 미들웨어로서의 특성을 더욱 강화하고 있다.

  • 지원 기종 : PSP, XBOX360, PS3, Wii, 3DS, PSV, PC
    (NDS의 경우 Sofdec1과 ADX2병용으로 지원예정. 아이폰, 아이패드, 안드로이드 플랫폼 지원예정)

특성

기본적인 기능 면에서는 일단 Sofdec1 항목의 내역을 확인하면 된다. 여기서는 추가 및 변경된 기능에 대해서만 다루도록 한다.

알파채널 변경

알파채널 방식이 독자 방식을 사용하던 Sofdec1과 달리 동영상에 사용하는 컬러 프로필 자체가 YUV420 방식의 32비트 컬러로 바뀌면서 24비트 컬러 + 8비트 알파 채널 방식으로 변경되었다. 이는 MPEG 비디오 방식에서 탈피해서 전용 코덱과 H264 코덱 기반으로 변경되면서 다양한 컬러 프로필을 사용할 수 있게 되었기 때문이다.

또한 이러한 컬러 프로필이 이미 그래픽카드 등에서 하드웨어 가속이 지원되기 때문에 별도 소프트단에서 알파채널을 처리하지 않아도 되기 때문에 그만큼 처리 능력을 절약할 수 있게 되었다.

큐포인트

큐포인트

큐 포인트(Cue Point)는 동영상의 원하는 위치에 이벤트 포인트를 지정해 스크립트를 포함시키는 기능이다. 지정된 이벤트 포인트에 도달하면 지정된 스크립트를 통해서 특정 기능을 실행하는 것이 가능하다. 예를 들면 컨트롤러를 진동 시키거나 게임의 캐릭터를 움직이거나 이펙트를 일으키거나 하는 등의 연출이 가능하다.

이전세대에서는 동영상 파일의 재생 시간에 맞춰서 이벤트를 일으키는 방식으로 제어하던 기능이지만, Sofdec2에서는 파일 내부에 스크립트 내장이 가능해지면서 따로 스크립트 작업을 해야 할 필요가 없어졌다. 또한 탐색 재생 기능과 조합해서 사용할 경우에도 별도 스크립트 작업을 할 필요 없이 그냥 재생하면 자동으로 이벤트가 발생하게 할 수 있다.

탐색 재생

탐색 재생

탐색재생(Seek play)은 긴 동영상 파일에서 특정 부분만 불러서 재생하는 것이 가능하다. 심리스 재생 방식은 지원되지만 통파일에서 특정 포인트부터 재생하는 것은 지원하지 않던 Sofdec1을 개선한 기능이다. (특정 포인트의 스크린샷 추출은 가능했지만 동영상으로 추출은 안되었음)

이를 통해서 하나의 동영상 파일을 챕터형태로 나눠 재생하거나, 특정씬의 썸네일 영상 추출 등이 가능해졌다.

루프 재생

루프재생

탐색 재생 기능의 도입으로 Sofdec1에서는 불가능했던 동영상 루프 재생이 가능해졌다. 1개의 동영상을 이음새 없이 반복해서 재생함으로서 메뉴나 이펙트 애니메이션을 자연스럽게 연속 표현하는 것이 가능해졌다.

화질 및 코덱

기본적으로 Sofdec2 용으로 CRI에서 만든 자체 코덱을 지원한다. 거기에 H.264 표준 디코더를 지원하며 하드웨어적으로 지원하는 전용 코덱(예를 들면 플레이스테이션 포터블(Playstation Portable)에서 지원하는 H264의 전용 프로필 등)의 매니징을 지원함으로서 다양한 하드웨어에서 소프트웨어 코덱 뿐만 아니라 하드웨어적인 코덱을 이용한 동영상 재생까지 통합적인 관리까지 지원하고 있다. (하드웨어 코덱 사용시에도 Sofdec2의 기능은 모두 사용 가능)

16*16 사이즈로 지원되던 해상도 블럭이 8*8로 더욱 미세화 되었다.

음성 코덱의 경우에는 ADX1, 혹은 ADX2 음성 코덱을 동봉해서 사용하는 것이 가능하다.

영상 스트림 Sofdec 비디오, H.264,
하드웨어별 기타 지원 코덱 매니징
프레임 속도 60fps, 30fps, 24fps, 15fps 등
(시스템에 따라서 직접 지정가능)
프레임 데이터 YUV420 형식 32bit ARGB
이미지 크기 8 × 8 픽셀 단위로 임의
표준 지원 해상도 및 비트레이트
HD급 1920 × 1080 (30fps) : 24Mbps
1280 × 720 (30fps) : 16Mbps
SD급 640 × 480 (30fps) : 6Mbps
320 × 240 (30fps) : 2Mbps
지원 오디오 ADX1, ADX2(특정 기종 한정)

파일포맷

USM

Sofdec2 용의 파일 컨테이너로, sofdec1 방식에 추가로 큐포인트 데이터 및 탐색 재생을 위한 인덱스 등을 포함하고 있다.

기본적으로는 SFD 컨테이너를 개량한 것이지만 알파채널 등을 따로 저장할 필요가 없어지고 다른 데이터를 저장하게 변하면서 내부 인덱스가 변화되어 호환성은 사실상 없다.

인터넷 데모

구글 크롬의 16버전부터 구글 네이티브 클라이언트(NaCl) 기능이 지원되면서 이를 이용한 데모 소프트웨어를 제공하고 있다. 단순한 Sofdec 코덱의 영상 재생과 큐브 텍스쳐 기능, 반투명 동영상, 컷인 동영상 등의 기술 데모를 실행해볼 수 있다. 단 구글 네이티브 클라이언트 특성상 아직까지는 x86 계열의 CPU를 장착한 장비에서만 기동이 된다.

기능을 중복으로 재생시켜서 적용되는 상태를 확인해보면 Sofdec이 추구하는 영상처리 기법을 확인하기는 크게 어렵지 않을 것이다.

같이 보기

안쪽 고리

바깥 고리

 

덧글

용어/sofdec.txt · 마지막으로 수정됨: 2012/08/30 13:37 저자 에리얼