한눈에 살펴보는 DVD 레코딩의 원리와 작동 방식

2003년을 기점으로 DVD 레코더 시장은 조금씩 성장하고 있다. 올 하반기부터는 브랜드 PC에도 DVD 레코더가 기본으로 장착될 전망이다. DVD 레코더의 가격도 많이 떨어져 16배속 레코더의 경우 9만원대 후반이면 구입할 수 있으며 미디어의 가격도 배속에 따라 크게 떨어지고 있다. 이제 본격적인 DVD 레코딩 시대가 다가온 것이다. 하지만 여기에 의문을 가진 사람은 없을까? 레코딩 소프트웨어나 드라이브는 어떤 방식으로 정보를 기록하는 것일까?

DVD 레코딩의 전체적인 흐름과 그 세부적인 작동 방식을 살펴보자.

레코딩 소프트웨어에서 미디어까지의 처리 순서

데이터를 DVD에 저장하기 위해 DVD 레코딩 소프트웨어의 화면 위에 마우스를 클릭했다고 하자. PC 내부에서는 어떤 처리가 진행될까?
대략적인 처리 순서는 그림 1에 표시한 것과 같다. 레코딩 소프트웨어에서 기록을 지시하면 그 커맨드와 데이터는 윈도우의 커널과 디바이스 드라이버를 통해 DVD 레코더로 보내진다. 단 윈도우는 기본적으로는 DVD 레코딩을 지원하지 않기 때문에(윈도우XP는 DVD-RAM에만 대응) 지원 소프트웨어나 지원 드라이버라는 독자적인 모듈을 윈도우에 추가해야 한다.

▲ 그림 2. 레코드가 장착된 윈도우의 내부 구조

윈도우에서 보면 CD나 DVD나 마찬가지
DVD 레코더는 윈도우에서는 과연 무엇으로 인식될까? 윈도우는 하드웨어를 인식하기 위해 WDM(Windows Driver Model)이라는 계층 구조의 드라이버를 갖추고 있다. PC에 접속된 하드웨어는 이 WDM에 의해 인식되고, 윈도우에서는 하드웨어의 차이를 완충하는 ‘HAL’(Hardware Abstraction Layer)라는 층을 통해 액세스한다.

애플리케이션이 윈도우의 커널(윈도우의 핵심 부분)에 대해 데이터 읽기 등의 커맨드를 보내면 그것들은 각 계층을 경유해 HDD를 시작으로 하는 드라이브에 전달된다(그림 2). 예를 들어 CD-ROM의 경우, 데이터를 읽어들 이려면 ‘cdrom.sys’라는 드라이버가 커맨드를 중계한다.
DVD 드라이브의 데이터 읽기에서도 cdrom.sys가 사용된다. 따라서 그 상위에 있는 윈도우 커널이나 애플리케이션에서는 DVD 드라이브도 CD-ROM 드라이브와 같은 것으로 보인다.

DVD의 기록에는 레코딩 소프트웨어가 필요
구체적인 예를 들어보자. 프로그램이 HDD나 광디스크에서 파일을 읽어들일 때 윈도우의 API를 이용해 커널에 요구를 보낸다.
예를 들어 HDD에 대해 파일의 읽기와 쓰기를 실시하려면 CreateFile API(파일의 작성/열기 API)에서 파일을 열고, ReadFile API에서 읽기를, WriteFile API에서 저장하기를 처리한다. CD나 DVD라는 광디스크에 대해서도 마찬가지로 cdrom.sys를 통해 액세스한다. 그러나 DVD-R의 경우 저장용인 WriteFile API를 이용하려고 하면 ‘저장 금지’에러가 발생한다.

이것은 cdrom.sys가 DVD에서 파일을 읽어들이는 것은 지원하지만 DVD 레코더의 저장을 지원하지 않기 때문이다(윈도우XP 제외). CD-R/RW라면 imapi.sys를 통해 기록할 수 있지만 DVD 레코더에 저장하기 위한 모듈은 아니다.

따라서 B’s Clip 등의 UDF 지원 소프트웨어가 필요하다. 지원 소프트웨어는 cdrom.sys 대신 기록 작업을 하는 소프트웨어이다(그림 3). 지원 소프트웨어의 도입으로 DVD 미디어에 ‘패킷 라이트’방식으로 기록하는 것이가능하게 된다. 그러나 패킷 라이트는 파일 단위로 기록할 수는 있지만 디스크 상에 낭비되는 영역이 많이 발생해, 기록 속도가 떨어지는 등의 문제가 있다. 데이터를 일괄적으로 처리해 효율적이면서 고속으로 기록하기 위해서는 별도로 레코딩 프로그램을 도입해야 한다.


한편 윈도우XP는 DVD-RAM을 반복 기록 가능한 리무버블 디스크의 표준으로 인식한다(DVD+-R/RW는 미대응). 윈도우XP의 cdrom.sys에는 지원 소프트웨어에 상당하는 기능이 추가되어 있기 때문에 DVDRAM을 플로피디스크 등과 같이 취급할 수 있다.


즉, 그림 3에서 보이는 cdrom.sys 등에서는 HAL 쪽으로‘SCSI 커맨드’를 발생시킨다. 사실은 ATAPI(IDE) 디바이스는 cdrom.sys에서는 SCSI 디바이스로 인식되고, 각종 애플리케이션에서의 기록 요구 등은 SCSI 커맨드 형태로 송출된다. 그리고 이런 커맨드가 HAL을 거칠 때 HAL에 포함되어 있는 ‘atapi.sys’등의 드라이버가 SCSI 커맨드를 각종 ATAPI 드라이브용 커맨드로 변환한다.

▲ 그림 1. 레코딩소프트웨어에서 미디어까지의 처리 순서

DVD 레코더는 받은 데이터를 신호 처리 칩에서 DVD 미디어에 기록하는 데이터 형식으로 변환한다. 한편 DVD 드라이버는 시판되고 있는 대부분의 미디어에 대한 정보를 갖고 있는 것이 대부분이다. 데이터를 변환할 때에 그 정보를 참조하는 식으로 개개의 미디어 특성에 맞추어 안정적으로 기록한다. 바로 이 미디어에 도달하는, 기록을 위한 최종 데이터를 ‘라이트 스트래티지(Write Strategy)’라고 부른다. 스트래티지의 좋고 나쁜 정도가 DVD에 기록할 때의 안정성이나 속도를 좌우한다. 이 스트래티지를 어떻게 만들어 내는가 하는 부분이 바로 각사 고유의 노하우이다.
물리적인 구조 측면에서도 최근에 출시된 8배속 레코더의 기록 속도나, 곧 등장할 예정인 단면 2층 미디어에 대응하기 위해 여러 가지 연구가 활발하게 진행되고 있다. 그리고 픽업에까지 도달한 데이터는 레이저 광선의 점멸로 바뀌어 DVD 미디어의 표면을 태워 기록된다.

▲ 그림 3. 레코딩 소프트웨어나 UDF 지원 소프트웨어를 설치한 윈도우



1. 한눈에 살펴보는 DVD 레코딩의 원리와 작동 방식
2. 레코딩 소프트웨어는 필수!
3. 레코더에서는 무슨 일이 일어나고 있나?
4. 듀얼 레이어와 16배속은?
Posted by 퓨전마법사
,