현재 시장에는 PVR, DVR, 캠코더 등과 같이 기록 가능 cd, dvd와 같은 광매체에 멀티미디어 스트림을 저장하고, 재생하는 많은 임베디드 시스템들이 많이 있다. 이 논문에서는 다양한 응용과 임베디드 시스템에서 사용할 수 있도록 명확한 구조와 문서를 가진 운영체제 독립적 광매체 API의 설계하고 공개 소스 형태로 구현한 내용을 기술한다. 연구에서는 실시간 광매체 기록을 위하여 ISO-9660 표준을 따르는 새로운 매체 레이아웃과 API를 제안하고 구현하였다. 또 개발된 API의 유용성을 검증하기 위해, 잘 알려진 CD버닝 프로그램인 cdrecord를 대치할 수 있는 텍스트 응용 프로그램과 그래픽 응용 프로그램도 개발하였다. 모든 초기 개발은 Linux PC 환경에서 진행되었으며, 이후 pSOS를 운영체제로 하는 상용 임베디드 시스템에도 이식되었다.
현재 시장에는 PVR, DVR, 캠코더 등과 같이 기록 가능 cd, dvd와 같은 광매체에 멀티미디어 스트림을 저장하고, 재생하는 많은 임베디드 시스템들이 많이 있다. 이 논문에서는 다양한 응용과 임베디드 시스템에서 사용할 수 있도록 명확한 구조와 문서를 가진 운영체제 독립적 광매체 API의 설계하고 공개 소스 형태로 구현한 내용을 기술한다. 연구에서는 실시간 광매체 기록을 위하여 ISO-9660 표준을 따르는 새로운 매체 레이아웃과 API를 제안하고 구현하였다. 또 개발된 API의 유용성을 검증하기 위해, 잘 알려진 CD 버닝 프로그램인 cdrecord를 대치할 수 있는 텍스트 응용 프로그램과 그래픽 응용 프로그램도 개발하였다. 모든 초기 개발은 Linux PC 환경에서 진행되었으며, 이후 pSOS를 운영체제로 하는 상용 임베디드 시스템에도 이식되었다.
There are many embedded systems which store and play multimedia streams on optical media such as recordable cd and dvd. Some of those are PVRs, DVRs, and camcorders. In this paper we describe the design and implementation of a new, well structured, fully documented, operating system independent and ...
There are many embedded systems which store and play multimedia streams on optical media such as recordable cd and dvd. Some of those are PVRs, DVRs, and camcorders. In this paper we describe the design and implementation of a new, well structured, fully documented, operating system independent and open source optical media API which can be used in various applications and embedded systems. We also design an ISO-9660 compliant optical media layout, an API set and the scenario for real-time recording. To prove the usability, we develop a text application to replace well-known CD-burning software, cdrecord, and a graphic burning application. All the implementations are firstly done on Linux PC environment, and then ported to a commercial embedded system which uses pSOS as an operating system.
There are many embedded systems which store and play multimedia streams on optical media such as recordable cd and dvd. Some of those are PVRs, DVRs, and camcorders. In this paper we describe the design and implementation of a new, well structured, fully documented, operating system independent and open source optical media API which can be used in various applications and embedded systems. We also design an ISO-9660 compliant optical media layout, an API set and the scenario for real-time recording. To prove the usability, we develop a text application to replace well-known CD-burning software, cdrecord, and a graphic burning application. All the implementations are firstly done on Linux PC environment, and then ported to a commercial embedded system which uses pSOS as an operating system.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서 멀티 세션 기록 방식은 데이타 또는 파일 시스템 이미지를 임시로 저장할 별도의 메모리 또는 디스크 공간이 필요하며, 저장된 데이타를 다시 읽어 광매체에 기록함으로써 같은 데이타를 기록할 때, 소요되는 시간이 이 논문의 실시간 기록 방식과는 비교할 수 없을 정도로 길다는 것은 명백하다. 따라서 이 논문에서는 실시간 기록에 있어서 매체의 저장 공간 이용 효율성에 관한 평가를 수행하고자 한다. 평가에서 공간 효율성 비교는 두 기록방식에 따라 광매체에 대한 기록을 한 결과, 사용자 데이타를 제외한 오버헤드 공간이 얼마나 소요되었는지를 비교하는 것을 의미한다.
본 논문에서는 계충적 설계에 기반을 둔 새로운 공개 소스 광매체 API의 개발 결과를 기술하였다. 개발된 광 매체 API는 기존의 많은 광매체 기록 프로그램들이 이용하는 방식의 데이타 백업 응용에 그대로 사용될 수 있다.
본 논문에서는 임베디드 시스템 또는 독립적인 응용프로그램에서, 광매체에 접근하여 데이타를 읽거나 쓸 수 있는 운영체제 독립적 광매체 접근 API를 공개 소스 형태로 개발한 내용을 기술하였다. 또, 광매체에 멀티미디어 데이타를 실시간으로 저장하기 위한 새로운 광 매체 레이아웃을 제안하고, 실시간 기록을 위한 상위 API 또한 설계하고 구현하였다.
본 연구에서는, 구현된 API를 시험하고 공개 소스로 개발된 API의 활용도를 높이기 위하여, 이미 잘 알려진 광 매체 기록 프로그램인 cdrecord의 명령어 인터페이스를 그대로 적용한 텍스트 모드 기록 프로그램을 개발하여, 기존의 광매체 기록을 위한 GUI 전처리기 프로그램들을 수정 없이 사용할 수 있도록 하였다. 또 구현된 API의 효용성을 검증하고, 응용 프로그램에서 개발된 API를 직접 이용하는 예를 보이기 위하여 공개 소스프로그램인 GnomeBgr를 기반으로 그래픽 기록 프로그램을 제작하였다.
이 논문의 구현 대상인 API는 응용 프로그램이 준비한 데이타를 광 드라이브에 전달하고, 그 결과를 다시 응용 프로그램에 보고하는 중간적인 역할을 하는 소프트웨어 계층으로서 성능 평가 인자로서 실행 시간은 적합하지 않은 것으로 판단된다. 이 논문에서는 보통의 cd-r, dvdr과 같은 매체어】, 실시간 기록과 가장 근접한 기록 방법을 제공할 수 있는 멀티 세션 방식과 저장 공간 이용의 효율성을 비교하고자 한다.
논리적 저장 구조가 결정되어 있다. 이 절에서는 대표적인 광 저장 매체인 cd의 데이타 저장 구조와 주요 기록 방식을 간단하게 설명하고자 한다.
가설 설정
. 패킷 모드 기록에 대한 지원 : 패킷 모드 기록 방식은 트랙 기록 방식에 비하여 매우 느리며, 대부분의 운영체제가 기본으로 지원하지 않고 있다. 하지만, 플로피디스크와 같은 편리함 때문에, 캠코더와 같은 소비자 지향적인 임베디드 시스템에 유망한 매체라고 볼 수 있다.
。호환성 있는 실시간 기록 지원 : 응용 프로그램에 실시간 데이타 기록 기능을 제공하되, 기록된 매체의 레이아웃이 표준을 벗어나지 않도록 하여 호환성을 유지한다. 개발된 실시간 기록 레이아웃은 ISO-9660 표준을 따름으로써 호환성을 확보하여 광매체를 지원하는 대부분의 장치와 운영체제에서 바로 인식된다.
공간 비교에서 본 논문의 방식과, 멀티 세션 방식에서 모두, 저장되는 단위 데이타의 크기는 항상 트랙의 최소크기인 300섹터 (600KB)를 넘는 것으로 가정한다. 또 중간 정보를 저장하기 위한 ISO-9660 메타 데이타의 크기는 파일 수와 디렉토리를 구성하는 방법에 따라 다르지만 최대 99개의 실시간 데이타를 저장할 때도 10KB 를 넘지는 않으므로 10KB로 가정한다.
300섹터 (600KB)를 넘는 것으로 가정한다. 또 중간 정보를 저장하기 위한 ISO-9660 메타 데이타의 크기는 파일 수와 디렉토리를 구성하는 방법에 따라 다르지만 최대 99개의 실시간 데이타를 저장할 때도 10KB 를 넘지는 않으므로 10KB로 가정한다. 멀티 세션 방식에서는 pvd 영역이 16번 섹터에서 시작하므로 이 값을 40KB로 가정한다.
또 중간 정보를 저장하기 위한 ISO-9660 메타 데이타의 크기는 파일 수와 디렉토리를 구성하는 방법에 따라 다르지만 최대 99개의 실시간 데이타를 저장할 때도 10KB 를 넘지는 않으므로 10KB로 가정한다. 멀티 세션 방식에서는 pvd 영역이 16번 섹터에서 시작하므로 이 값을 40KB로 가정한다. 표준에서 광매체 기록에서 각 세션은 각각 9MB와 13.
제안 방법
공개된다. 공개 소스의 API로서, 여러 응용 프로그램과 임베디드 시스템 등에 널리 이용될 수 있도록 모든 이용 가능한 API, 활용 시나리오, 내부 구조 등을 문서화한다.
6이 실행되는 리눅스 환경에 개발된 API를 적용하고, 기존 광매체 프로그램을 대치할 수 있는 텍스트 모드 응용 프로그램과, 개발된 API 를 직접 이용하는 그래픽 응용 프로그램을 구현함으로써 그 유용성과 호환성을 확인하였다. 또 개발된 API는 실시간 운영체제인 pSOS를 사용하는 상용 임베디드 시스템인 dvr 등에서 광매체에 실시간으로 영상을 기록하는 용도로 적용되어 그 가치를 입증하였다.
구현되었다. 또 구현된 API를 시험하고 cdrecord를 대치하여 기존에 존재하던 GUI 전처리기 프로그램들을 그대로 이용할 수 있도록 하는 명령어 수준 인터페이스를 제공하는 텍스트 기반 기록 프로그램과, 구현된 API를 응용 프로그■램에서 직접 이용하는 그래픽 기록 프로그램도 공개 소스인 GmmeBoker[14]를 수정하여 개발하였다.
수정 없이 사용할 수 있도록 하였다. 또 구현된 API의 효용성을 검증하고, 응용 프로그램에서 개발된 API를 직접 이용하는 예를 보이기 위하여 공개 소스프로그램인 GnomeBgr를 기반으로 그래픽 기록 프로그램을 제작하였다. 두 응용 프로그램은 모두 리눅스 상에서 구현되었다.
개발된 광 매체 API는 기존의 많은 광매체 기록 프로그램들이 이용하는 방식의 데이타 백업 응용에 그대로 사용될 수 있다. 또 논문에서는 효율적인 실시간 데이타 기록을 위한 새로운 광매체 레이아웃을 제안하고, 실시간 기록을 위한 상위 API와 기록 시나리오도 같이 개발하였다. 제안된 레이아웃은 표준인 ISO-9660 파일 시스템 레이아웃을 따르기 때문에 모든 운영체제에서 인식이 가능한 호환성을 가진다.
형태로 개발한 내용을 기술하였다. 또, 광매체에 멀티미디어 데이타를 실시간으로 저장하기 위한 새로운 광 매체 레이아웃을 제안하고, 실시간 기록을 위한 상위 API 또한 설계하고 구현하였다. 논문에서 제안한 API 와 API를 검증하기 위한 응용 프로그램들은 커널 버전 2.
본 논문에서는 실시간 기록에 필요한 매체 레이아웃을 새로 구성하였다. 제안된 레이아웃은 ISO-9660 파일 시스템 표준을 준수하고 있어, 이 방식으로 기록된 매체는 모든 범용 운영체제에서 정상적인 매체로 인식되어 저장된 데이타를 읽을 수 있다.
연구에서는 커널 버전 2.6이 실행되는 리눅스 환경에 개발된 API를 적용하고, 기존 광매체 프로그램을 대치할 수 있는 텍스트 모드 응용 프로그램과, 개발된 API 를 직접 이용하는 그래픽 응용 프로그램을 구현함으로써 그 유용성과 호환성을 확인하였다. 또 개발된 API는 실시간 운영체제인 pSOS를 사용하는 상용 임베디드 시스템인 dvr 등에서 광매체에 실시간으로 영상을 기록하는 용도로 적용되어 그 가치를 입증하였다.
계층별 구현의 세부 내용을 기술한다. 특히 실시간 기록 API의 경우, 본 연구에서 제안한 새로운 광 매체 레이아웃과, 제안된 레이아웃에 따른 기록 시나리오를 설명하고 및 레이아웃의 효율성을 검증한다.
대상 데이터
모든 API와 응용 프로그램 초기 구현은 리눅스 커널 버전 2.6을 사용하는 리눅스 PC 상에서 atapi 인터페이스를 가지는 cd/dvd 드라이브를 대상으로 이루어졌다. 또, 운영 체제 적응 계층에 대한 약간의 수정을 거쳐 실시간 운영체제인 pSOS와 같은 실시간 운영체제에도 성공적으로 이식되었으며, usb 인터페이스를 갖는 광 매체 드라이브 등 다양한 드라이브 인터페이스에서도 문제없이 동작함을 확인하였다.
성능/효과
마지막으로 내부 소프트웨어 구조, 구현 내용, 내부 라이브러리에 대한 문서가 존재하지 않는다. 결론적으로 cdrec아는 응용 프로그램 자체는 매우 유용하다고 볼 수 있지만, 임베디드 시스템과 같은 다른 응용에서 활용하기 위해서는 많은 소스를 읽고 이해하고, 수정해야 하는 어려움이 따른다.
그림에서 본 논문의 방식은 부가적인 예약 트랙의 오버헤드가 존재함에도 불구하고 단일 세션 구조로 이루어졌다는 장점 때문에 공간 오버헤드가 적어 저장 공간 이용에 있어 매우 효율적임을 알 수 있다. 특히 멀티 세션 방식의 경우, 저장할 실시간 데이타의 개수가 30인 경우, 오버헤드의 크기만으로도 통상적인 cd 의 저장 한계인 700MB를 초과하고 있으며, 15개의 데이타를 기록할 때 cd 용량의 반 정도만 이용 가능하다.
또, 광매체에 멀티미디어 데이타를 실시간으로 저장하기 위한 새로운 광 매체 레이아웃을 제안하고, 실시간 기록을 위한 상위 API 또한 설계하고 구현하였다. 논문에서 제안한 API 와 API를 검증하기 위한 응용 프로그램들은 커널 버전 2.6을 사용하는 리눅스 PC 환경에서 구현되어 시험 된 뒤, 홈페이지를 통해 공개되었으며, 이후 pSOS를 비롯한 다른 실시간 운영체제에도 성공적으로 이식되어 상용 임베디드 시스템에 사용되고 있다.
제안된 레이아웃은 표준인 ISO-9660 파일 시스템 레이아웃을 따르기 때문에 모든 운영체제에서 인식이 가능한 호환성을 가진다. 또 논문에서는 실시간 저장에 따른 저장 공간 오버헤드 비교를 통하여, 제안된 실시간 기록방식의 공간 이용 효율성이 멀티 세션 기록 방식에 비하여 월등이 우수함을 보였다.
6을 사용하는 리눅스 PC 상에서 atapi 인터페이스를 가지는 cd/dvd 드라이브를 대상으로 이루어졌다. 또, 운영 체제 적응 계층에 대한 약간의 수정을 거쳐 실시간 운영체제인 pSOS와 같은 실시간 운영체제에도 성공적으로 이식되었으며, usb 인터페이스를 갖는 광 매체 드라이브 등 다양한 드라이브 인터페이스에서도 문제없이 동작함을 확인하였다.
모든 광매체 기록 소프트웨어는 데이타를 준비하고, 광매체 드라이브에 명령과 그 명령에 따른 데이타를 인터페이스가 지원하는 방식으로 전달하고, 명령 처리 결과를 기다리는 과정을 반복한다. 실제 광매체 기록 성능은 API보다는 광매체 드라이브의 하드웨어 성능, 인터페이스 종류에 의해 결정돤다.
또 dvd를 사용할 때 역시 98개의 데이타를 기록하는 경우, 용량의 반 정도를 오버헤드로 소비한다. 반면에 본 논문에서 제안하는 실시간 기록 방식의 경우, 데이타 개수가 한계치인 98개 일 때에도 저장 공간 오버헤드가 cd의 경우 19.0%, dvd의 경우 2.8%에 불과하다.
그 가운데 물리적인 광 드라이브 하드웨어의 배속 수(표준 속도 대비 몇 배의 속도로 읽기, 또는 쓰기를 할 수 있는지)가 성능을 결정하는 가장 결정적인 요인이며, 광 드라이브 내부의 버퍼 크기, 그리고 ide, scsi 등 광 드라이브와의 인터페이스가 제공하는 데이타 전송 속도가 미미하지만 그 다음의 요인들이 된다. 이 논문의 구현 대상인 API는 응용 프로그램이 준비한 데이타를 광 드라이브에 전달하고, 그 결과를 다시 응용 프로그램에 보고하는 중간적인 역할을 하는 소프트웨어 계층으로서 성능 평가 인자로서 실행 시간은 적합하지 않은 것으로 판단된다. 이 논문에서는 보통의 cd-r, dvdr과 같은 매체어】, 실시간 기록과 가장 근접한 기록 방법을 제공할 수 있는 멀티 세션 방식과 저장 공간 이용의 효율성을 비교하고자 한다.
후속연구
하지만 이들 표준 레이아웃은 메타 데이타가 사전에 고정되어야 하는 문제 때문에 실시간 기록에 대한 직접적인 지원이 어려운 경우가 많다. 따라서, 이 논문이 ISO-9660 파일 시스템에 대하여 접근하는 것과 유사한, 여러 우회적인 방법으로 효율적인 실시간 지원 방법을 찾는 연구가 필요할 것으로 본다.
참고문헌 (14)
Compact Disk Digital Audio System, IEC-908 (Red Book), 1987, ISO
Data Interchange on Read-only 120 mm Optical Data Disks, ISO/IEC-10149 (Yellow Book), 1995, ISO
DVD Forum 홈페이지, http://www.dvdforum.org
Volume and File Structure of cdrom for Information Interchange, ISO/IEC-9660, 1999, ISO
Universal Disk Format Specification (UDF), Rev. 2.6, Optical Storage Technology Association, March 2005
Mt. Fuji Commands for Multimedia Devices, American National Standard Institute NCITS T10/99-121R0, 1999, ANSI
Small Computer System Interface, American National Standard Institute X3T9.2/375R, ANSI
AT Attachment with Packet Interface 8 (ATA/ATAPI-8), American National Standard Institute NCITS T13/1532D, ANSI
※ AI-Helper는 부적절한 답변을 할 수 있습니다.