본 발명의 제 1 목적은 광디스크와, 기록매체로서 광디스크를 사용하는 비디오 데이터 편집장치를 제공하기 위한 것으로, 이 광디스크는 광디스크에 이미 기록된 비디오를 덧쓰기 없이 광디스크 자체에서 편집되도록 하기 위한 것이다.
본 발명의 제 2 목적은 광디스크와, 기록매체로서 광디스크를 사용하는 비디오 데이터 편집장치를 제공하기 위한 것으로, 이 광디스크는 비디오 편집의 최종 결과뿐아니라 다수의 분리된 중간 비디오 편집패턴을 저장할 수 있고, 사용자가 최근의 중간 비디오 편집패턴중 가장 적합한 것을 선택할 수 있다.
본 발명의 제 3 목적은 광디스크와, 광디스크용 재생장치를 제공하기 위한 것으로, 이 광디스크는 비디오 이미지의 디스플레이중에 사용자가 고정밀도로 편집되는 섹션을 표시할 수 있다.
상술한 본 발명의 제 1 및 제 2 목적은 적어도 하나의 비디오 오브젝트를 포함하는 파일을 기록하기 위한 데이터 영역과, 원래 타입의 체인정보와 사용자 정의 타입의 체인정보의 적어도 한 세트를 기록하기 위한 인덱스 영역을 포함하는 광디스크에 의해 달성되며, 상기 원래 타입의 체인정보는 파일을 복수의 파일섹션의 배열로서 관리하고, 각 파일 섹션은 (가)비디오 오브젝트의 시작위치, (나)비디오 오브젝트의 종료위치, (다)비디오 오브젝트내의 적어도 하나의 소정위치의 3위치중 임의의 2개의 조합인 섹션 경계에 의해 표시되며, 사용자 정의 타입의 체인정보의 각 세트는 파일내의 복수의 파일부분과 표시된 파일부분에 대한 재생경로를 표시하고, 각각의 파일부분은 부분경계에 의해 표시되며, 부분경계는 (가)2개의 섹션 경계, (나)소정위치와 다른 비디오 오브젝트의 위치와 섹션경계중 하나, (다)소정의 위치와 다른 비디오 오브젝트중의 2개의 위치중의 어느 하나이고, 각각의 재생경로는 표시된 파일부분이 파일에서 나타나는 순서와 무관하다.
원래 타입의 체인정보는 섹션들이 비디오 오브젝트에 배열되는 순서로 그 섹션들이 생성되는 것을 표시할 수 있다. 사용자 정의 타입의 체인정보는 비디오 오브젝트에 포함된 복수의 섹션을 비디오 편집함으로써 생성된 작업에 대하여 임시로 결정된 재생경로를 표시할 수 있다.
원래 타입의 체인정보는 데이터 영역내의 비디오 오브젝트가 사용자 정의 타입의 체인정보의 세트에 따라 비디오 데이터 편집장치에 의해 처리되거나 데이터 영역내의 비디오 오브젝트가 덧쓰기 될 때 마지막으로 결정된 재생순서를 표시할 수 있다.
체인정보는 편집작업중에 사용되므로, 사용자는 사용자 정의 타입의 체인정보의 세트를 정의함으로써 원하는 장면 순서에 대한 재생경로를 즉시 생성할 수 있다. 사용자 정의 타입의 체인정보 세트에 따라 비디오를 재생함으로써 사용자는 임시로 결정된 재생경로의 내용을 검증할 수 있다.
재생경로의 임시결정은 사용자 정의 타입의 체인정보의 세트를 정의함으로써 단시간에 용이하게 실행될 수 있다. 사용자 정의 타입의 체인정보 세트의 데이터 크기는 무시할 수 있기 때문에 사용자 정의 타입의 체인정보 세트에 의해 비디오 오브젝트가 갑자기 덧쓰기 될 위험성은 없다.
디스크가 매우 개인적인 값어치를 갖는 비디오 이미지를 기록하였을 때 사용자는 가치있는 이미지가 덧쓰기되거나 상실될 위험성이 없이 디스크에 비디오에 대한 재생경로를 임시로 결정할 수 있다.
복수 세트의 사용자 정의 타입의 체인정보를 정의하고, 각각의 재생을 실행하며 실제의 편집을 위해 최선의 것을 선택함으로써 사용자는 광디스크에 비디오 오브젝트의 내용을 직접 재기록하는 볼드 편집작업을 실행할 수 있다. 원래의 비디오 오브젝트가 상실되면 사용자는 실제 편집의 결과를 확인할 충분한 기회를 갖게 되어 그 결과에 만족할 것이다.
본 발명의 제 3 목적은 편집매체로서 광디스크를 사용하는 비디오 데이터 편집장치에 의해 달성될 수 있으며, 상기 광디스크는 적어도 하나의 비디오 오브젝트를 포함하는 파일을 기록하기 위한 데이터 영역과, 원래 타입의 체인정보와 사용자 정의 타입의 체인정보의 적어도 한 세트를 기록하기 위한 인덱스 영역을 포함하며, 상기 원래 타입의 체인정보는 파일을 복수의 파일섹션의 배열로서 관리하고, 각 파일 섹션은 (가)비디오 오브젝트의 시작위치, (나)비디오 오브젝트의 종료위치, (다)비디오 오브젝트내의 적어도 하나의 소정위치의 3위치중 임의의 2개의 조합인 섹션 경계에 의해 표시되며, 사용자 정의 타입의 체인정보의 각 세트는 파일내의 복수의 파일부분과 표시된 파일부분에 대한 재생경로를 표시하고, 각각의 파일부분은 부분경계에 의해 표시되며, 부분경계는 (가)2개의 섹션 경계, (나)소정위치와 다른 비디오 오브젝트의 위치와 섹션경계중 하나, (다)소정의 위치와 다른 비디오 오브젝트중의 2개의 위치중의 어느 하나이고, 각각의 재생경로는 표시된 파일부분이 파일에서 나타나는 순서와 무관하고, 비디오 데이터 편집장치는 사용자로부터 동작을 수신하기 위한 수신부와, 이 수신부가 광디스크에 기록된 사용자 정의 타입의 체인정보 세트의 하나에 대한 실제의 편집동작의 표시를 수신할 때 사용자 정의 타입의 체인정보의 표시된 세트에 표시된 시작부분과 종료부분의 경계가 광디스크에 기록된 비디오 오브젝트의 경계로 되도록 파일을 처리하기 위한 처리부와, 처리부에 의한 처리후, 사용자 정의 타입의 체인정보 세트의 표시된 세트를 원래 타입의 체인정보로 변환하도록 인덱스 영역의 사용자 정의 타입의 체인정보의 표시된 세트를 갱신하기 위한 갱신부를 포함한다.
각각의 비디오 오브젝트는 복수의 비디오 오브젝트부를 포함할 수 있으며, 각각의 비디오 오브젝트부는 임의의 재생기간동안 복수의 비디오 프레임에 대해 재생될 복수의 화상 데이터 세트를 포함하고, 각각의 셀정보 세트는 셀내의 비디오 데이터에 대한 프리젠테이션 시작시간 정보와 프리젠테이션 종료시간 정보를 포함하는 시간정보를 포함하고, 프리젠테이션 시작시간 정보는 비디오 오브젝트의 부분에서 처음으로 재생될 화상 데이터 세트의 디스플레이 비디오 필드를 보여주며, 프리젠테이션 종료시간 정보는 비디오 오브젝트의 부분에서 마지막으로 재생될 화상 데이터 세트의 디스플레이 비디오 필드를 보여주고, 셀은 파일섹션과 파일부분중 하나이며, 또 각각의 셀정보 세트는 셀이 속하는 비디오 오브젝트를 표시하기 위한 식별정보를 포함하고, 상기 수신부는 사용자 정의 타입의 체인정보 세트중 하나에 대한 플레이 표시를 수신하며, 비디오 데이터 편집장치는 수신부가 플레이 표시를 수신할 때 인덱스 영역으로부터 매핑정보 및 한쌍의 프리젠테이션 시작시간 정보와 프리젠테이션 종료시간 정보를 판독하고, 프리젠테이션 시작시간 정보와 프리젠테이션 종료시간 정보를 사용하여 매핑정보를 검색함으로써 프리젠테이션 시작시간 정보에 대해 디스플레이될 화상 데이터를 포함하는 시작 비디오 오브젝트부의 기록위치와 프리젠테이션 종료시간 정보에 대해 디스플레이될 화상 데이터를 포함하는 종료 비디오 오브젝트부의 기록위치를 특정하기 위한 액세스 위치 특정부와, 상기 특정된 기록위치 사이에 기록된 비디오 오브젝트부의 열을 판독하기 위한 판독부와, 판독된 비디오 오브젝트부의 열을 디코드하고, 사용자 정의 타입의 체인정보의 표시된 세트내의 셀정보 세트에 대응하는 부분의 부분경계가 시작 비디오 오브젝트부의 시작위치 및 종료 비디오 오브젝트부의 열의 종료위치와 일치하지 않을 때 셀정보에 의해 표시된 처음 비디오 필드와 마지막 비디오 필드 사이의 디코딩 결과를 출력하며, 처음 비디오 필드전의 데이터와 마지막 비디오 필드 다음의 데이터의 디코딩 결과의 출력을 금지하기 위한 디코딩부를 포함한다.
상술한 구성으로 셀정보는 하나의 비디오 필드의 정확성에 대해서 까지 편집에 사용될 비디오 부분을 특정한다. 이것은 편집될 부분이 매우 높은 정밀도로 특정될 수 있다는 것을 의미한다.
다음의 실시예는 비디오 데이터 편집장치와 비디오 데이터 편집장치가 기록매체로서 사용하는 광디스크를 설명한 것이다. 설명을 용이하게 하기 위해 광디스크의 물리적 구조와 논리적 구조, 비디오 데이터 편집장치의 하드웨어 구조, 비디오 데이터 편집장치의 기능적 구조를 다룬 4개의 실시예로 나누어 설명한다.
제 1 실시예는 비디오 편집의 제 1 기본예로서 비디오 오브젝트(객체)의 이음매없는 연결뿐 아니라 광디스크와 비디오 데이터 편집장치의 하드웨어 구조에 대한 설명이다.
제 2 실시예는 제 2 기본예로서 비디오 오브젝트 부분들의 이음매없는 연결에 대한 설명이다. 제 3 실시예는 비디오 데이터 편집장치의 기능적 구성과 파일 시스템내에서의 비디오 편집을 실현하는 절차를 취급한 것에 대한 설명이다.
제 4 실시예는 사용자 정의 PGC와 원래의 PGC라 불리는 프로그램 체인의 2종류의 가상편집과 실제의 편집으로 구성되는 2단 편집처리를 실행할 때 비디오 데이터 편집장치의 데이터 구조와 절차에 관한 설명이다.
(1-1) 기록가능한 광디스크의 물리적 구조
도 2의 (a)는 기록가능한 광디스크인 DVD-RAM의 외관도이다. 이 도면에 도시된 바와 같이 DVD-RAM은 카트리지(75)가 넣어지는 비디오 편집장치에 장착된다. 이 카트리지(75)는 DVD-RAM의 기록면을 보호하며, 내부에 포함되어 있는 DVD-RAM에 접근할 수 있도록 개폐하는 셔터(76)를 구비한다.
도 2의 (b)는 기록가능한 광디스크인 DVD-RAM 디스크의 기록영역을 도시한 것이다. 도면에 도시된 바와 같이 DVD-RAM은 가장 안쪽의 가장자리부에 형성된 리드인 영역(lead-in area)과 가장 바깥의 가장자리부에 형성된 리드아웃 영역(lead-out area)과 이들 사이에 위치한 데이터 영역을 구비한다. 리드인 영역은 광픽업에 의한 액세스중에 서보(servo)의 안정화에 필요한 참조신호와 다른 매체와의 혼동을 방지하기 위한 식별신호를 기록한다. 리드아웃 영역은 리드인 영역과 동일한 타입의 참조신호를 기록한다. 한편 데이터 영역은 DVD-RAM이 액세스될 수 있는 최소 단위인 섹터로 분할된다. 여기에서 각 섹터의 크기는 2KB로 설정된다.
도 2의 (c)는 섹터의 헤더에서 절단된 DVD-RAM의 단면과 표면을 도시한 도면이다. 도시된 바와 같이 각각의 섹터는 금속막과 같은 반사막의 표면에 형성된 피트 열(pit sequence)과 요철부로 구성된다.
피트 열은 섹터 어드레스를 보여주도록 DVD-RAM의 표면에 각인된 0.4㎛∼1.87㎛의 피트로 구성된다.
요철부는 "홈(groove)"이라 불리는 오목부와 "랜드(land)"라 불리는 볼록부로 구성된다. 각각의 홈과 랜드는 그 표면에 부착되어 위상변화가 가능한 금속막으로 구성된 기록마크를 구비한다. 여기에서 "위상변화가 가능"이란 표현은 금속막이 광빔에 노출되었는지의 여부에 따라 기록마크가 결정 상태 또는 비결정 상태일 수 있다는 것을 의미한다. 이러한 위상변화 특성을 이용하면 데이터가 이 요철부에 기록될 수 있다. 데이터를 MO(Magnetic-Optical) 디스크의 랜드부에 기록할 수 있는 한에는 DVD-RAM의 랜드부와 홈부에 모두 데이터를 기록될 수 있으며, 이것은 DVD-RAM의 기록밀도가 MO 디스크의 기록밀도를 초과한다는 것을 의미한다. 에러정정 정보는 16개의 섹터의 각 그룹에 대하여 DVD-RAM에 제공된다. 이러한 스펙에서 ECC(Error Correcting Code; 에러정정 코드)로 주어진 16개 섹터의 각 그룹은 ECC 블록이라 불린다.
DVD-RAM 상에서 데이터 영역은 기록 및 재생중에 Z-CLV(Zone-Constant Linear Velocity)라 불리는 회전제어를 실현하도록 수개의 구역으로 분할된다.
도 3의 A는 DVD-RAM 상에 구비되는 복수의 구역을 나타낸다. 도시된 바와 같이 DVD-RAM은 구역 0에서 구역 23까지 24개의 구역으로 분할된다. 각 구역은 동일한 각속도를 이용하여 액세스되는 트랙의 집합이다. 이 실시예에서 각각의 구역은 1888개의 트랙을 포함한다. DVD-RAM의 회전 각속도는 이 각속도가 디스크의 내주부에 위치된 구역보다 높거나 보다 근접할 때 각 구역에 대해 분리 설정된다. 데이터 영역의 구역분할은 단일 구역내에서 액세스를 실행하는 동안 광픽업이 일정속도로 이동할 수 있다는 것을 의미한다. 그렇게 함으로써 DVD-RAM의 기록밀도는 상승되며, 기록 및 재기록중의 회전제어는 보다 용이하게 된다.
도 3의 (b)는 도 3의 (a)에 도시된 리드인 영역, 리드아웃 영역, 및 구역 0에서 23까지의 수평배열을 나타낸 도면이다.
리드인 영역과 리드아웃 영역은 각각 결함관리영역(DMA: Defect Management Area)을 포함한다. 이 결함관리영역은 결함섹터를 대체하기 위해 사용되는 섹터가 어느 대체 영역에 위치하는지를 나타내주는 결함 및 대체 위치 정보를 포함하도록 발견된 섹터의 위치를 나타내주는 위치정보를 기록한다.
각 구역은 사용자 영역을 가지며, 그 외에 다음 구역과의 경계에 구비되는 미사용 영역과 대체영역을 구비한다. 사용자 영역은 파일 시스템이 기록영역으로서 사용할 수 있는 영역이다. 이 대체 영역은 이러한 결함 섹터가 발견되었을 때 결함섹터를 대체하기 위해 사용된다. 미사용 영역은 기록 데이터를 위해 사용되지 않은 영역이다. 미사용 영역으로서 2개의 트랙만이 사용되며, 이러한 미사용 영역은 섹터 어드레스의 오식별이 방지되도록 구비된다. 그 이유는 섹터 어드레스가 동일한 구역내의 인접한 트랙내의 동일 위치에서 기록되는 동안, Z-CLV에 대하여 섹터 어드레스의 기록위치가 구역들 사이의 경계에 인접한 트랙과 다르기 때문이다.
아무튼 데이터 기록을 위해 사용되지 않은 섹터가 구역들 사이의 경계에 존재한다. DVD-RAM 상에서 논리 섹터 번호(LSN: Logical Sector Number)는 연속해서 기록 데이터를 위해 사용되는 섹터만을 나타내주도록 내주부로부터 시작하는 순서로 사용자 영역의 물리적 섹터에 할당된다. 도 3의 (c)에 도시된 바와 같이, 사용자 데이터를 기록하고 LSN이 할당된 섹터로 구성되는 영역은 볼륨 영역이라 불린다. 볼륨영역은 복수의 VOB와 AV 파일에 대한 관리정보인 RTRW(Real Time ReWritable) 관리파일로 각각 구성되는 AV 파일을 기록하기 위해 사용된다. 이들 AV 파일과 RTRW 관리파일은 비록 이것이 본 실시예에서 설명되지는 않았지만 사실상 ISO/IEC 13346에 따라 파일 시스템에 기록된다. 이 파일 시스템은 이하의 제 3 실시예에서 상세히 취급하도록 한다.
(1-2) 볼륨 영역에 기록되는 데이터
도 4의 (a)는 DVD-RAM의 볼륨영역에 기록된 데이터의 내용을 도시한다.
도 4의 (a)의 제 5 레벨에 도시된 비디오 스트림과 오디오 스트림은 제 4 레벨에 도시된 바와 같이 약 2KB의 단위로 분할된다. 이 분할을 통해 구한 단위는 MPEG 표준을 준수하고, 비디오 팩과 오디오 팩으로서 제 3 레벨에 도시된 AV 파일의 VOB#1과 VOB#2에 인터리브된다. AV 파일은 ISO/IEC 13346을 준수하고, 제 2 레벨에 도시된 바와 같은 복수의 익스텐트(extent)로 분할되며, 이들 익스텐트의 각각은 도 4의 (a)의 제 1 레벨에 도시된 바와 같이 볼륨영역내의 하나의 구역내의 빈 영역에 저장된다.
VOB#1∼VOB#3에 대한 정보는 제 5 레벨에 도시된 VOB#1 정보, VOB#2 정보 및 VOB#3 정보와 같은 RTRW 관리파일에 기록된다. 이 RTRW 파일은 AV 파일과 동일한 방식으로 복수의 익스텐트로 분할되어 볼륨영역의 빈 영역에 기록된다.
다음은 비디오 스트림, 오디오 스트림 및 VOB에 대한 설명이다. 우선 MPEG 표준의 계층구조와 이들 요소의 데이터 구조를 정의하는 DVD-RAM 표준에 대해 설명하기로 한다.
도 4의 (b)는 MPEG 표준하에서 사용된 데이터 정의의 계층구조를 나타낸다. MPEG 표준에 대한 데이터 구조는 엘리멘터리 스트림층과 시스템층으로 구성되어 있다.
도 4의 (b)에 도시된 엘리멘터리 스트림층은 비디오 스트림의 데이터 구조를 정의하는 비디오층과, MPEG-오디오 스트림의 데이터 구조를 정의하는 MPEG-오디오층과, Dolby-AC3 방법하에서 오디오 스트림의 데이터 구조를 정의하는 AC-3층과, 선형-PCM 방법하에서 오디오 스트림의 데이터 구조를 정의하는 선형-PCM층을 포함한다. 프리젠테이션 시작시간(Presentation_Start_Time)과 프리젠테이션 종료시간(Presentation_End_Time)은 별개의 박스로 도시된 바와 같이 비록 비디오층, MPEG-오디오층, AC-3층 및 선형-PCM층을 위해 사용되는 엘리멘터리 스트림층 범위내로 정의되어 있다고 하더라도, 비디오 스트림과 오디오 스트림의 데이터 구조는 독립되어 있다. 비디오 프레임의 프리젠테이션 시작시간 및 프리젠테이션 종료시간과 오디오 프레임의 프리젠테이션 시작시간 및 프리젠테이션 종료시간은 동일하게 동기화되지 않는다.
도 4의 (b)에 도시된 시스템층은 후술하는 팩, 패킷, DTS 및 PTS를 정의한다. 도 4의 (b)에서 시스템층은 비디오층 및 오디오층에 대해 별도의 박스로 도시되어 있으며, 이것은 팩, 패킷, DTS 및 PTS가 비디오 스트림 및 오디오 스트림의 데이터 구조와 독립되어 있음을 보여준다.
상술한 층구조는 MPEG 표준에 사용되며, DVD-RAM 표준은 도 4의 (b)에 도시된 MPEG 표준하의 시스템층과 엘리멘터리 스트림층을 포함한다. 상술한 팩, 패킷, DTS 및 PTS외에도 DVD 표준은 도 4의 (a)에 도시된 VOB의 데이터 구조를 정의한다.
(1-2-1) 비디오 스트림
도 5의 (a)에 도시된 비디오 스트림은 도 4의 (b)에 도시된 비디오층에 의해 정의되는 데이터 구조를 갖는다. 각각의 비디오 스트림은 각각이 비디오 이미지의 하나의 프레임에 대응하는 복수의 화상 데이터 세트의 배열로 구성된다. 이 화상 데이터는 MPEG 기술을 이용하여 압축된 NTSC(National Television Standards Committee)나 PAL(Phase Alternation Line) 표준에 따르는 비디오 신호이다. NTSC 표준하에 비디오 신호를 압축함으로써 생성된 화상 데이터의 세트는 약 33밀리초(정확하게는 1/29.97초)의 프레임 간격을 가지는 비디오 프레임으로 표시되는 한편, PAL 표준하의 비디오 신호를 압축함으로써 생성된 화상 데이터의 세트는 40밀리초의 프레임 간격을 갖는 비디오 프레임으로 표시된다. 도 5의 (a)의 최상위 레벨은 비디오 프레임의 예를 나타낸다. 도 5의 (a)에서 부호 "<"와 ">" 사이에 표시된 부분은 각각 비디오 프레임을 나타내며, 부호 "<"는 각 비디오 프레임에 대한 프리젠테이션 시작시간(Presentation_Start_Time)을 나타내고, 부호 ">"는 각 비디오 프레임에 대한 프리젠테이션 종료시간(Presentation_End_Time)을 나타낸다. 비디오 프레임에 대한 이 부호법은 또한 다음의 도면에도 사용된다. 이들 부호로 둘러싸인 부분은 각각 복수의 비디오 필드를 포함한다.
도 5의 (a)에 도시된 바와 같이 비디오 프레임에 대해 표시될 화상 데이터는 비디오 프레임의 Presentation_Start_Time 전의 디코더에 입력되어 Presentation_Start_Time에서 디코더에 의해 버퍼로부터 취해져야만 한다.
압축이 MPEG 표준에 따라 실행되면 하나의 프레임의 화상내의 공간 주파수 특성과 하나의 프레임 전 또는 후에 표시되는 이미지와의 시간관계 상호관련이 사용된다. 그렇게 함으로써 화상 데이터의 각 세트는 양방향 예측 B화상, 예측 P화상 또는 인트라 I화상 중의 하나로 변환된다. B화상은 압축이 현재의 이미지 전 또는 후에 재생되는 이미지와의 시간관련 상호관계를 이용하여 실행되는 경우에 사용된다. P화상은 압축이 현재의 이미지 전에 재생되는 이미지와의 시간관련 상호관계를 이용하여 실행되는 경우에 사용된다. I화상은 압축이 다른 화상과의 시간관련 상호관계를 이용하지 않고 하나의 프레임 내의 공간 주파수 특성을 이용하여 실행되는 경우에 사용된다. 도 5의 (a)는 비록 크기에 사실상 큰 변화가 있는 것으로 지시되어 있더라도 모두 동일한 크기를 가질 때의 B화상, P화상, I화상을 도시한 도면이다.
프레임 사이의 시간관련 상호관계를 이용하는 B화상과 P화상을 디코드할 때, 화상이 디코드되기 전이나 후에 재생될 이미지에 대해 참고할 필요가 있다. 예컨대, B화상을 디코드할 때 디코더는 다음 이미지의 디코딩이 완료될 때까지 대기하지 않으면 안된다.
결국, MPEG 비디오 스트림은 화상의 디스플레이 순서를 정의하는 외에 각 화상의 코딩순서를 정의한다. 도 5의 (a)에서 제 2 및 제 3 레벨은 각각 디스플레이순 또는 코딩순으로 배열된 화상 데이터의 세트를 각각 도시한다.
도 5의 (a)에서 B화상중의 하나의 참조 목표는 다음의 I화상에 대해 점선으로 도시되어 있다. 디스플레이 순서에서, 이 I화상은 B화상의 다음이며, B화상이 I화상과의 시간관련 상호관계를 이용하여 압축되어 있기 때문에 B화상의 디코딩은 완료될 I화상의 디코딩 동안 대기하여야만 한다. 결국, 코딩순서는 I화상이 B화상 전에 온다는 것을 정의한다. 코딩순서를 생성할 때 화상의 디스플레이 순서의 재배열을 "재배열(reordering)"라 한다.
도 5의 (a)의 제 3 레벨에 도시된 바와 같이 각각의 화상 데이터 세트는 코딩순으로 배열된 후 2KB 단위로 분할된다. 결과로서의 2KB 단위는 도 5의 (a)의 하위 레벨로 나타낸 바와 같이 비디오 팩의 열로서 저장된다.
B화상과 P화상의 열이 사용되면 비디오 스트림의 도중에 디코딩을 시작하는 특별한 재생성과 같은 문제가 발생할 수 있다. 이러한 문제점을 방지하기 위해 I화상이 0.5초의 간격으로 비디오 데이터에 삽입된다. I화상으로부터 시작하여 다음의 I화상까지 계속하는 화상 데이터의 각 열은 GOP(Group Of Pictures; 화상의 그룹)라 불리며, GOP는 MPEG 압축을 위한 단위로서 MPEG 표준의 시스템층으로 정의된다. 도 5의 (a)의 제 3 레벨에는 점선의 수직선이 현재의 GOP와 다음의 GOP 사이의 경계를 나타내고 있다. 각각의 GOP에서 디스플레이순으로 최종 배열된 화상 데이터의 화상의 종류는 P화상이나, 코딩순으로 최초로 배열된 화상 데이터의 화상의 종류는 I화상이어야 한다.
(1-2-2) 오디오 스트림
오디오 스트림은 Dolby-AC3 방법, MPEG 방법 및 선형-PCM 방법중의 하나에 따라 압축된 데이터이다. 비디오 스트림과 마찬가지로 오디오 스트림은 고정된 프레임 간격을 갖는 오디오 프레임을 사용하여 발생된다. 도 5의 (b)는 오디오 프레임과 오디오 데이터 사이의 대응을 나타낸다. 상세하게는 오디오 프레임의 재생기간은 Dolby-AC3에 대해서는 32밀리초, MPEG에 대해서는 24밀리초, 선형-PCM에 대해서는 약 1.67밀리초(정확하게는 1/600초)이다.
도 5의 (b)의 최상위 레벨은 오디오 프레임의 예를 나타낸다. 도 5의 (b)에서 부호 "<"와 ">" 사이에 표시된 부분은 오디오 프레임이며, 부호 "<"는 프리젠테이션 시작시간을 나타내고, 부호 ">"는 프리젠테이션 종료시간을 나타낸다. 오디오 프레임에 대한 이 부호법은 또한 다음의 도면에도 사용된다. 오디오 프레임을 위해 디스플레이될 이 오디오 데이터는 오디오 프레임의 프리젠테이션 시작 시간전에 디코더로 입력되며, 프리젠테이션 시작 시간에 디코더에 의해 버퍼로부터 인출되어야만 한다.
도 5의 (b)의 최하위 레벨은 각 프레임에서 재생될 오디오 데이터가 어떻게 오디오 팩에 저장되는지를 보여준다. 이 도면에서 오디오 프레임(f81, f82)에 대해 재생될 오디오 데이터는 오디오 팩(A71)에 저장되며, 오디오 프레임(f84)에 대해 재생될 오디오 데이터는 오디오 팩(A72)에 저장되고, 오디오 프레임(f86, f87)에 대해 재생될 오디오 데이터는 오디오 팩(A73)에 저장된다. 오디오 프레임(f83)에 대해 재생될 오디오 데이터는 첫번째로 오는 오디오 팩(A71)과 그 다음에 오는 오디오 팩(A72) 사이에서 분할된다. 동일한 방식으로 오디오 프레임(f86)에 대해 재생될 오디오 데이터는 첫번째로 오는 오디오 팩(A72)과 그 다음에 오는 오디오 팩(A73) 사이에서 분할된다. 하나의 오디오 프레임에 대해 재생될 오디오 데이터가 2개의 오디오 팩으로 분할되어 저장되는 이유는 오디오 프레임과 비디오 프레임 사이의 경계가 팩 사이의 경계와 일치하지 않기 때문이다. 이러한 경계가 일치하지 않는 이유는 MPEG 표준하의 팩의 구조가 비디오 스트림 및 오디오 스트림의 데이터 구조와 독립되어 있기 때문이다.
(1-2-3) VOB의 데이터 구조
도 4의 (a)에 도시된 VOB#1, VOB#2 및 VOB#3은 비록 이들 VOB가 종료시에 program_end_code를 갖지 않더라도 비디오 스트림과 오디오 스트림을 다중화함으로써 얻어지는 ISO/IEC 13818-1 하의 프로그램 스트림이다.
도 6의 (a)는 VOB의 논리구조에 대한 상세한 계층을 도시한 도면이다. 이것은 도 6의 (a)의 최상위 레벨에 위치된 논리포맷이 보다 하위의 레벨에 보다 상세히 도시되어 있다는 것을 의미한다.
도 6의 (a)에 도시된 최상위 레벨에 위치된 비디오 스트림은 제 2 레벨상의 복수의 GOP로 분할되어 도시되어 있으며, 이들 GOP는 도 5의 (a)에 도시되어 있다. 도 5의 (a)에 도시된 바와 같이 GOP 단위의 화상 데이터는 다수의 2KB 단위로 분할된다. 한편 도 6의 (a)의 최상위 레벨의 우측에 도시된 오디오 스트림은 도 5의 (b)에 도시된 바와 같은 방식으로 제 3 레벨상에 대략 2KB 단위로 다수 분할된다. 2KB 단위로 분할된 GOP 단위에 대한 화상 데이터는 대략 2KB 단위로 동일하게 분할된 오디오 스트림과 인터리브된다. 이것은 도 6의 (a)의 제 4 레벨상의 팩의 열을 생성시킨다. 이 팩의 열은 제 5 레벨에 도시된 복수의 VOBU(Video Object Units)를 형성하며, 제 6 레벨상에 도시된 VOB는 시간 계열로 배열된 복수의 이들 VOBU로 구성된다. 도 6의 (a)에서 점선을 이용하여 인출한 가이드라인은 인접한 레벨에 관한 데이터 구조에서 데이터들 사이의 관계를 나타낸다. 도 6의 (a)에서 가이드라인을 참조함으로써 제 5 레벨상의 VOBU가 제 2 레벨상에 도시된 GOP단위로 제 4 레벨상의 팩의 열과 화상 데이터에 대응함을 알 수 있다.
가이드라인을 추적함으로써 알 수 있는 바와 같이, 각각의 VOBU는 약 0.4초 내지 약 1.0초의 재생기간을 갖는 화상 데이터와 이 화상 데이터와 인터리브되는 오디오 데이터로 구성되는 적어도 하나의 GOP를 포함한다. 동시에 각각의 VOBU는 MPEG 표준하의 비디오 팩과 오디오 팩의 배열을 포함한다. MPEG 표준하의 GOP단위라 불리는 단위는 비록 도 6의 (a)의 제 2 레벨에 도시된 바와 같이 비디오 데이터만이 GOP에 의해 특정될 때 오디오 데이터와, 비디오 데이터와 다중화된 다른 데이터(예컨대, 서브-화상 데이터 및 제어 데이터)가 GOP에 의해 표시되지 않더라도 시스템층에 의해 정의된다. DVD-RAM 표준하에, "VOBU"는 GOP에 대응하는 단위에 대해 사용되며, 이 단위는 약 0.4초 내지 약 1.0초의 재생기간을 갖는 화상 데이터와, 이 화상 데이터와 인터리브되는 오디오 데이터로 구성되는 적어도 하나의 GOP에 대한 일반명칭이다.
여기에서 VOB의 부분들은 삭제될 수 있으며, 이 최소 단위는 하나의 VOBU이다. 일례로서, VOB로서 DVD-RAM상에 기록된 비디오 스트림은 사용자가 원하지 않는 광고 이미지를 포함할 수 있다. 이 VOB내의 VOBU는 화상 데이터와 인터리브된 광고 오디오 데이터를 구성하는 적어도 하나의 GOP를 포함하므로, 만약 광고에 대응하는 VOB내의 VOBU만이 삭제될 수 있다면 사용자는 광고를 볼 필요없이 비디오 스트림을 볼 수 있게 된다. 여기에서 비록 하나의 VOBU가 삭제되었지만 예를들면 삭제된 VOBU의 다른 쪽에 있는 VOBU는 각각이 그들의 전방에 위치한 I화상을 갖는 GOP단위의 비디오 스트림의 일부를 포함할 것이다. 이것은 VOBU의 삭제후라고 하더라도 정상의 디코드와 재생처리가 가능하다는 것을 의미한다.
도 6의 (b)는 VOB의 부분이 삭제되는 예를 나타낸 도면이다. 이 VOB는 원래 VOBU#1, VOBU#2, VOBU#3, VOBU#4, …VOBU#7를 포함한다. VOBU#2, VOBU#4 및 VOBU#6의 삭제가 표시되면 이들 VOBU에 의해 원래 점유되었던 영역이 자유롭게 되어 도 6의 (b)의 제 2 레벨상에 빈 영역으로 도시된다. 그후 ,VOB가 재생되면 재생순서는 VOBU#1, VOBU#3, VOBU#5, OBU#7로 된다. VOBU에 포함된 비디오 팩과 오디오 팩은 2KB의 데이터 길이를 갖는다. 이 2KB 크기는 DVD-RAM의 섹터크기와 부합하므로 각 비디오 팩과 오디오 팩은 개개의 섹터에 기록된다.
비디오 팩과 오디오 팩의 배열은 동일한 수의 연속하는 논리섹터의 배열에 대응하며, 이들 팩내에 유지된 데이터는 DVD-RAM으로부터 판독된다. 이것은 비디오 팩과 오디오 팩의 배열이 이들 팩이 DVD-RAM으로부터 판독되는 순서를 참조한다는 것을 말한다. 각 비디오 팩은 그 크기가 대략 2KB이므로 하나의 VOBU에 대한 비디오 스트림의 데이터 크기가 예를들어 수백 KB이더라도 비디오 스트림은 수백개의 비디오 팩으로 분할되어 저장될 것이다.
(1-2-3-1) 비디오 팩과 오디오 팩의 데이터 구조
도 6의 (c) 내지 (e)는 VOBU에 저장된 비디오 팩과 오디오 팩의 논리포맷을 나타낸 것이다. 정상적으로 복수의 패킷은 비록 DVD-RAM 표준하에 하나의 팩에 삽입될 수 있는 패킷의 수가 하나로 제한되더라도 MPEG 시스템 스트림으로 하나의 팩에 삽입된다. 도 6의 (c)는 VOBU의 시작에 배열되는 비디오 팩의 논리포맷을 나타낸다. 도 6의 (c)에 도시된 바와 같이 VOBU내의 첫번째 비디오 팩(제 1 비디오 팩)은 팩 헤더, 시스템 헤더, 패킷 헤더, 비디오 스트림의 일부인 비디오 데이터로 구성된다.
도 6의 (d)는 VOBU에서 처음에 오지 않는 비디오 팩, 즉 첫번째 팩을 제외한 다른 비디오 팩의 논리 포맷을 도시한다. 도 6의 (d)에 도시된 바와 같이 이들 비디오 팩은 각각 팩 헤더, 패킷 헤더, 비디오 데이터로 구성되지만 시스템 헤더는 포함하지 않는다.
도 6의 (e)는 오디오 팩의 논리 포맷을 도시한다. 도 6의 (e)에 도시된 바와 같이 각각의 오디오 팩은 팩 헤더와, 패킷 헤더와, 현재의 팩에 포함된 오디오 스트림을 위해 사용되는 압축방법이 선형-PCM인지 또는 Dolby-AC3인지를 나타내는 sub_stream_id와, 오디오 스트림의 일부로서 표시된 방법에 따라 압축된 오디오 데이터로 구성된다.
(1-2-3-2-1) VOB 내의 버퍼제어
비디오 스트림과 오디오 스트림은 상술한 바와 같이 비디오 팩과 오디오 팩에 저장된다. 그러나 이음매없이 VOB를 재생하기 위해서는 비디오 팩과 오디오 팩내에 비디오 스트림과 오디오 스트림을 저장하기에 충분하지 않으며, 버퍼제어가 차단되지 않도록 보증하기 위해서는 비디오 팩과 오디오 팩을 적절하게 배열할 필요가 있다. 여기에서 언급된 버퍼는 디코더에 입력되기 전의 비디오 스트림과 오디오 스트림을 임시로 저장하기 위한 입력버퍼이다. 이하 이 별개의 버퍼는 비디오 버퍼와 오디오 버퍼로 언급하며, 도 19에서와 같은 특정의 예에서는 비디오 버퍼(4b)와 오디오 버퍼(4d)로 도시된다. 인터럽트되지 않은 버퍼제어는 어느 입력버퍼에서도 발생하지 않은 오버플로우 또는 언더플로우를 보증하는 버퍼에 대한 입력제어를 말한다. 이것은 보다 상세히 설명될 것이나 기본적으로는 MPEG 스트림에 대해 표준화된 시간 스탬프(데이터의 입력, 출력 및 디스플레이에 대한 정확한 시간을 나타냄)를 도 6의 (d)와 도 6의 (e)에 도시된 팩 헤더와 패킷 헤더에 할당함으로써 달성된다. 비디오 버퍼와 오디오 버퍼에 대해 어떠한 언더플로우나 오버플로우도 발생하지 않으면 비디오 스트림과 오디오 스트림의 재생에 어떠한 인터럽트도 발생하지 않을 것이다. 이 상세한 설명으로부터 명백한 바와 같이 버퍼제어가 인터럽트되지 않는다는 것은 매우 중요하다.
시간제한이 있고, 이것에 의해 각각의 오디오 데이터 세트가 오디오 버퍼에 전송될 필요가 있고 이러한 데이터에 의해 재생될 오디오 프레임의 프리젠테이션 시작시간에 의해 디코드될 필요가 있으나, 오디오 스트림이 비교적 작은 양의 데이터로 인코딩하는 고정된 길이를 사용하여 인코드되기 때문에 각 오디오 프레임의 재생에 필요한 데이터는 오디오 팩에 저장될 수 있다. 이들 오디오 팩은 재생중에 오디오 버퍼에 전송되며, 상술한 시간제한이 용이하게 관리될 수 있다는 것을 의미한다.
도 7의 (a)는 오디오 버퍼에 대한 이상적인 버퍼동작을 나타낸 것이다. 이 도면은 버퍼 점유가 오디오 프레임의 열에 대해 어떻게 변하는가를 나타내고 있다. 이러한 구성에서, 용어 "버퍼점유"는 데이터를 저장하기 위해 사용되는 버퍼의 용량에 대한 크기를 말한다. 도 7의 (a)의 수직축은 오디오 버퍼의 점유를 나타내며, 수평축은 시간을 나타낸다. 이 시간축은 Dolby-AC3 방법에서 각 오디오 프레임의 재생주기와 일치하는 32밀리초의 부분들로 분할된다. 이 그래프를 참조함으로써 버퍼의 점유가 시간에 따라 변화하여 톱니패턴을 나타내주는 것을 알 수 있다.
톱니 패턴을 구성하는 3각형의 이의 높이는 각 오디오 프레임에서 재생될 오디오 스트림 부분에서의 데이터량을 나타낸다.
각각의 삼각형 이의 그래디언트는 오디오 스트림의 전송속도를 나타낸다. 이 전송속도는 모든 오디오 프레임에 대해 동일하다.
하나의 삼각형 이에 대응하는 기간 동안 오디오 데이터는 이 오디오 데이터에 의해 재생되는 오디오 프레임에 선행하는 오디오 프레임의 디스플레이 기간(32밀리초) 동안 일정한 전송속도로 축적된다. 이전 오디오 프레임의 프리젠테이션 종료시간(이 시간은 현재의 프레임에 대한 디코드 시간을 나타냄)에서, 현재의 프레임에 대한 오디오 데이터는 오디오 버퍼로부터 순간적으로 출력된다. 톱니파 패턴이 달성되는 이유는 버퍼로의 저장으로부터 버퍼로부터의 출력으로의 처리가 연속적으로 반복되기 때문이다.
일례로 오디오 버퍼로의 오디오 스트림의 전송이 시간 T1에서 시작하는 것으로 가정하자. 이 오디오 데이터는 시간 T2에서 재생될 것이므로, 오디오 버퍼에 저장된 데이터의 양은 오디오 데이터의 전송 때문에 시간 T1과 T2 사이에서 점차 증가할 것이다. 그러나 이 전송된 오디오 데이터는 이전 오디오 프레임의 프리젠테이션 종료시간에서 출력되기 때문에 오디오 버퍼는 그 시점에서 오디오 데이터를 소거하여 오디오 버퍼의 점유는 0으로 복귀한다. 도 7의 (a)에서 동일한 패턴이 시간 T2와 T3 및 T3과 T4 등에서 반복된다.
도 7의 (a)에 도시된 버퍼동작은 각 오디오 프레임에 재생될 오디오 데이터가 하나의 오디오 팩에 저장될 경우의 전제에 대한 이상적인 버퍼동작 상태이다. 그러나 도 5의 (b)에 도시된 바와 같이 실질적으로 하나의 오디오 팩내에 저장될 수개의 상이한 오디오 프레임으로 재생될 오디오 데이터는 정상이다. 도 7의 (b)는 오디오 버퍼에 대한 보다 현실적인 동작을 나타낸다. 이 도면에서 오디오 팩(A31)은 오디오 데이터 A21, A22, A23을 저장하며, 이들은 각각 오디오 프레임 f21, f22 및 f23의 프리젠테이션 종료시간에 의해 디코드된다. 도 7의 (b)에 도시된 바와 같이 오디오 데이터 A21의 디코딩만이 오디오 프레임 f21의 프리젠테이션 종료시간에서 완성될 것이며, 다른 세트의 오디오 데이터 f22 및 f23의 디코딩은 각각 다음의 오디오 프레임 f22 및 f23의 프리젠테이션 종료시간에 의해 달성된다. 이 오디오 팩에 포함된 오디오 프레임중에서 오디오 데이터 A21이 처음으로 디코드되며, 이 오디오 데이터의 디코딩은 오디오 프레임 f21의 프리젠테이션 종료시간에 의해 달성될 필요가 있다. 따라서 이 오디오 팩은 오디오 프레임 f21의 재생기간 동안 DVD-RAM으로부터 판독된다.
비디오 스트림은 시간관련 상호관계를 사용하는 압축방법에서 사용된 상이한 종류의 화상(I화상, P화상, B화상) 사이의 코드 크기에서의 큰 차이 때문에 가변 코드 길이로 인코드된다. 비디오 스트림은 또한 상당량의 데이터를 포함하므로 비디오 프레임에 대한 화상 데이터, 특히 이전의 비디오 프레임의 프리젠테이션 종료시간에 의해 I화상에 대한 화상 데이터의 전송을 완성하기가 어렵다.
도 7의 (c)는 비디오 프레임과 비디오 버퍼의 점유를 나타낸 그래프이다. 도 7의 (c)에서 수직축은 비디오 버퍼의 점유를 나타내고, 수평축은 시간을 나타낸다. 이 수평축은 33밀리초의 부분으로 분할되며, 이 각가은 NTSC 표준하의 비디오 프레임의 재생시간과 일치한다. 이 그래프를 참조함으로써 시간에 대한 비디오 버퍼 변화의 점유의 변화가 톱니파 패턴을 나타내 줄 수 있다는 것을 알 수 있다.
톱니파 패턴을 구성하는 각 삼각형 이의 높이는 각 비디오 프레임에 재생될 비디오 스트림 부분에서의 데이터의 양을 나타낸다. 상술한 바와 같이, 각 비디오 프레임에서의 데이터의 양은 프레임의 복잡성에 따라 각 비디오 프레임에 대한 코드의 양이 동적으로 할당되기 때문에 같지 않다.
각 삼각형 이의 경도는 비디오 스트림의 전송속도를 나타낸다. 비디오 스트림의 대략적인 전송속도는 트랙버퍼의 출력속도로부터 오디오 스트림의 출력속도를 감산함으로써 계산된다. 이 전송속도는 각 프레임 주기 동안 동일하다.
도 7의 (c)에서 하나의 삼각형 이에 대응하는 주기동안 화상 데이터는 이 화상 데이터에 의해 재생된 비디오 프레임에 선행하는 비디오 프레임의 디스플레이 주기(33밀리초)동안의 일정한 전송속도로 축적된다. 이전의 비디오 프레임의 프리젠테이션 종료시간(이 시간은 현재의 화상 데이터에 대한 디코드 시간을 나타냄)에서 현재의 프레임에 대한 디코드 시간은 비디오 버퍼로부터 순간적으로 출력된다. 톱니파 패턴이 달성되는 이유는 비디오 버퍼내의 저장으로부터 비디오 버퍼로부터의 출력까지의 처리가 연속으로 반복되기 때문이다.
주어진 비디오 프레임내에서 표시될 이미지가 복잡하면 보다 많은 양의 코드는 이 프레임에 할당될 필요가 있다. 코드의 보다 많은 양이 할당되면, 이것은 비디오 버퍼내의 데이터의 예비저장이 미리 잘 시작될 필요가 있다는 것을 의미한다.
정상적으로는 화상 데이터가 비디오 버퍼로 전송되기 시작하는 전송 시작시간으로부터 화상 데이터에 대한 디코드 시간까지의 주기는 VBV(Video Buffer Verify) 지연이라 불린다. 일반적으로 이미지가 복잡하면 복잡할수록 할당된 코드의 양이 커지며 VBV 지연이 길어진다.
도 7의 (c)로부터 알 수 있는 바와 같이 이전 비디오 프레임의 프리젠테이션 종료시간 T16에서 디코드되는 화상 데이터의 전송은 시간 T11에서 시작된다. 한편 이전 비디오 프레임의 프리젠테이션 종료시간에서 디코드된 화상 데이터의 전송은 시간 T12에서 시작된다. 다른 비디오 프레임에 대한 화상 데이터의 전송은 시간 T14, T15, T17, T19, T20 및 T21에서 시작됨을 알 수 있다.
도 7의 (d)는 보다 상세한 화상 데이터 세트의 전송을 도시한 것이다. 도 7의 (c)의 상황을 고려하면, 도 7의 (d)의 시간 T24에서 디코드될 화상 데이터의 전송은 "VBV 지연"의 시작시간 T23과 재생될 다음 비디오 프레임에 대한 화상 데이터의 전송의 시작 사이의 "Tf_Period"에서 달성될 필요가 있다. 이 Tf_Period 전방에서 발생하는 버퍼의 점유의 증가는 다음 비디오 프레임에서 디스플레이될 이미지에 대한 화상 데이터의 전송에 의해 야기된다.
비디오 버퍼에 축적된 화상 데이터는 화상 데이터가 디코드될 시간 T24 동안 대기한다. 디코드 시간 T24에서 이미지 A가 디코드되며, 이것은 비디오 데이터에 저장된 화상 데이터의 부분을 삭제하여 비디오 버퍼의 총점유를 감소시킨다.
상술한 상황을 고려하면, 오디오 데이터의 전송이 미리 하나의 프레임 부근에서 시작될 어떤 오디오 프레임에서 재생되기에 충분한 동안에는 어떤 비디오 프레임에 대한 화상 데이터의 전송은 이러한 화상 데이터의 디코드 시간전에 시작될 필요가 있음을 알 수 있다. 즉, 어떤 오디오 프레임에서 재생될 오디오 데이터는 동일한 시간부근에서 오디오 프레임에 앞서 존재하는 비디오 프레임에 대한 화상 데이터로서 오디오 버퍼에 입력된다. 이것은 오디오 스트림과 비디오 스트림이 MPEG 스트림으로 다중화되면 오디오 데이터가 대응하는 화상 데이터 전에 다중화될 필요가 있다는 것을 의미한다. 결국 VOBU의 비디오 데이터와 오디오 데이터는 사실상 나중에 재생될 비디오 데이터와 오디오 데이터로 구성된다.
복수의 비디오 팩과 오디오 팩의 배열은 팩에 포함된 데이터의 전송순서를 반영하는 것으로서 설명되었다. 따라서 오디오 프레임에 앞서있는 비디오 프레임에서 재생될 화상 데이터와 동일한 시간에서 판독된 오디오 프레임에서 재생될 오디오 데이터를 갖기 위해서는 문제의 오디오 데이터와 화상 데이터를 저장하는 오디오 팩과 비디오 팩이 VOB의 동일한 부분으로 배열될 필요가 있다.
도 8의 (a)는 각 오디오 프레임에 재생될 오디오 데이터를 저장하는 오디오 팩과 각 비디오 프레임에 재생될 화상 데이터가 어떻게 저장되는지를 나타내 준다.
도 8의 (a)에서 "V"와 "A"로 표시된 장방형은 각각 비디오 팩과 오디오 팩을 나타낸다. 도 8의 (b)는 이들 각 장방형의 폭과 높이를 나타내 준다. 도 8의 (b)에 도시된 바와 같이 각 장방형의 높이는 팩을 전송하기 위해 사용된 비트율을 나타낸다. 결국, 큰 높이를 갖는 팩은 높은 비트율로 전송되고 이것은 팩이 상대적으로 신속하게 버퍼에 입력될 수 있다는 것을 의미한다. 그러나 높이가 없는 팩은 낮은 비트율로 전송되며 버퍼에 전송되는데 비교적 긴 시간이 걸린다는 것을 의미한다.
도 8의 (b)에서 시간 T11에서 디코드되는 화상 데이터 V11은 기간 k11 동안 전송된다. 오디오 데이터 A11의 전송 및 디코딩이 이 기간 k11 동안 수행되기 때문에 비디오 데이터 V11을 저장한 비디오 팩과 오디오 데이터 A11을 저장한 오디오 팩은 도 8의 (a)의 저부에 도시된 바와 같이 동일한 위치에 배열된다.
도 8의 (a)에서 시간 T12에서 디코드된 화상 데이터 V12는 기간 k12 동안에 전송된다. 이 오디오 데이터 A12의 전송 및 디코딩은 이 기간 k12 동안에 수행되기 때문에 비디오 데이터 V12를 저장한 비디오 팩과 오디오 데이터 A12를 저장한 오디오 팩은 도 8의 (a)의 하부에 도시된 바와 같이 유사한 위치에 배열된다.
동일한 방식으로 오디오 데이터 A13, A14, A15는 전송이 이들 오디오 데이터 세트에서 시작되는 화상 데이터 V13, V14와 유사한 위치에 배열된다.
화상 데이터 V16과 같은 많은 양의 할당된 코드를 갖는 화상 데이터가 버퍼에 축적되면 복수의 오디오 데이터 A15, A16, A17이 화상 데이터 V16의 전송기간인 k16 동안 다중화된다.
도 9는 복수의 오디오 프레임에서 재생될 복수의 오디오 데이터 세트를 저장하는 오디오 팩과 각각의 비디오 프레임에서 재생될 화상 데이터를 저장하는 비디오 팩이 어떻게 저장되는지를 나타내는 도면이다. 도 9에서 오디오 팩 A31은 오디오 데이터 오디오 프레임 f21, f22, f23에 대해 재생될 오디오 데이터 A21, A22, A23을 저장한다. 오디오 팩 A31에 저장된 오디오 데이터 중에서 디코드될 제 1 오디오 데이터는 오디오 데이터 A21이다. 오디오 데이터 A21은 오디오 프레임 f20의 프리젠테이션 종료시간에서 디코드될 필요가 있으며, 이 오디오 데이터 A21은 전송이 오디오 프레임 f20과 동일한 기간동안 수행되는 화상 데이터 V11과 함께 DVD-RAM으로부터 판독될 필요가 있다. 결국, 오디오 팩 A31은 화상 데이터 V11을 기억하는 비디오 팩 부근에 배열된다.
오디오 팩이 수개의 오디오 프레임에 대해 디코드될 오디오 데이터를 저장할 수 있고, 오디오 팩이 장래에 디코드될 화상 데이터로 구성된 비디오 팩과 유사한 위치에 배열되는 것을 고려하면 동시에 디코드될 오디오 데이터와 화상 데이터가 VOB내의 먼 위치에 있는 오디오 팩과 비디오 팩에 저장되는 것을 알 수 있다. 그러나 1초 또는 그 이상의 후에 디코드될 화상 데이터를 저장하는 비디오 팩이 동시에 디코드될 오디오 데이터를 따라 저장되는 경우는 없다. 이것은 MPEG 표준이 시간 데이터에 대한 상한이 버퍼에 축적될 수 있는지를 정의하기 때문이며, 모든 데이터는 버퍼에 입력된지 1초내에 버퍼로부터 출력된다. 이러한 제한은 MPEG 표준에 있어서의 "1초 룰"이라 불린다. 1초 룰 때문에 비록 동시에 디코드될 오디오 데이터와 화상 데이터가 먼 위치에 배열되더라도 주어진 시간에 디코드될 오디오 데이터를 저장하는 오디오 팩은 주어진 같은 시간에 디코드될 화상 데이터를 저장하는 VOBU로부터 3개의 VOBU의 범위내로 한정적으로 저장될 것이다.
(1-2-3-2-2) VOB들 사이의 버퍼 제어
다음의 설명은 2 이상의 VOB를 성공적으로 재생할 때 수행되는 버퍼제어를 나타낸다. 도 10의 (a)는 비디오 스트림의 제 1 부분에 대한 버퍼상태를 나타낸다. 도 10의 (a)에서 화상 데이터를 포함하는 팩의 입력은 비디오 프레임 f71 동안 First_SCR로서 표시된 위치에서 시작되며, BT2로서 도시된 데이터의 양은 비디오 프레임 f72의 프리젠테이션 종료시간에 의해 전송된다. 유사하게 데이터 BT3의 양은 비디오 프레임 f73의 프리젠테이션 종료시간에 의해 버퍼에 축적된다. 이 데이터는 비디오 프레임 f74의 프리젠테이션 종료시간에서 비디오 디코더에 의해 비디오 버퍼로부터 판독되며, 이 시간은 이하 기호 First_DTS로 표시된다. 이러한 방식으로 버퍼의 상태는 도 10의 (a)에 도시된 바와 같이 변하며, 시작시의 이전 비디오 스트림에 대한 데이터가 없고 축적된 데이터의 양은 점차 증가하여 삼각형을 이룬다. 여기에서 도 10의 (a)는 비록 VOB의 전방에 위치된 팩이 상이한 팩일 때 버퍼링된 데이터의 양의 증가 시작이 시간 First_SCR과 일치하지 않는다고 하더라도 비디오 팩이 시간 First_SCR에서 입력되는 것을 전제로 한 것이다. 또한 Last_SCR이 비디오 프레임의 중도에 위치하는 이유는 팩의 데이터 구조가 비디오 데이터의 데이터 구조와 독립되어 있기 때문이다.
도 10의 (b)는 비디오 스트림의 다음 부분 동안의 버퍼 상태를 도시한다. 이 도면에서 비디오 버퍼로의 데이터 입력은 비디오 프레임(f61)을 통한 중간에 위치되는 시간 Last_SCR에서 완성된다. 그 후, 축적된 비디오 데이터의 데이터 양 △3만이 비디오 프레임 f61의 프리젠테이션 종료시간에서 비디오 버퍼로부터 취해진다. 그 다음에 데이터의 양 △4만이 비디오 프레임 f62의 프리젠테이션 종료시간에서 비디오 버퍼로부터 취해지고, 데이터의 양 △5만이 비디오 프레임 f63의 프리젠테이션 종료시간에서 취해진다. 후자의 시간은 Last_DTS라고도 불린다.
VOB의 다음 부분에 대한 비디오 팩과 오디오 팩의 입력은 도 10의 (b)에서 Last_SCR로 도시된 바와 같은 시간에 의해 완성되므로 비디오 버퍼에 저장된 데이터의 양은 비디오 프레임 f61, f62, f63 및 f64의 디코딩 단계에서 감소한다. 결국 버퍼의 점유는 도 10의 (b)에 도시된 바와 같이 비디오 스트림의 종료단계에서 감소한다.
도 10의 (c)는 VOB과 교차하는 버퍼상태를 나타낸다. 보다 상세하게는 이 도면은 도 10의 (b)에 도시된 버퍼상태를 야기시키는 비디오 스트림의 다음 부분이 도 10의 (a)에 도시된 버퍼상태를 야기시키는 다른 비디오 스트림의 먼저 부분에 이음매없이 연결되는 경우를 나타낸다.
이들 2개의 비디오 스트림이 이음매없이 연결되면 재생된 제 2 비디오 스트림의 먼저 부분의 First_DTS가 제 1 비디오 스트림의 나중 부분의 Last_DTS로 비디오 프레임 뒤를 추종할 필요가 있다. 즉 제 2 비디오 스트림내의 제 1 비디오 스트림의 디코딩은 제 1 비디오 스트림내의 최종 디코드 시간으로 비디오 프레임의 디코딩후에 수행될 필요가 있다. 만약 제 1 비디오 스트림의 다음 부분의 Last_DTS와 제 2 비디오 스트림의 먼저 부분의 First_DTS가 하나의 비디오 프레임과 등가이면, 제 1 비디오 스트림의 다음 부분의 화상 데이터는 도 10의 (c)에 도시된 바와 같이 제 2 비디오 스트림의 먼저 부분의 화상 데이터와 함께 비디오 버퍼내에 공존할 것이다.
도 10의 (c)에서 도 10의 (a)에 도시된 비디오 프레임 f71, f72, f73이 도 10의 (b)에 도시된 비디오 프레임 f61, f62, f63과 일치하는 것으로 가정한다. 이러한 조건하에서 비디오 프레임 f71의 프리젠테이션 종료시간에서는 제 1 비디오 스트림의 다음 부분의 화상 데이터 BE1과 제 2 비디오 스트림의 앞선 부분의 화상 데이터 BT1은 비디오 버퍼내에 존재한다. 비디오 프레임 f72의 프리젠테이션 종료시간에서 제 1 비디오 스트림의 다음 부분의 화상 데이터 BE2와 제 2 비디오 스트림의 앞선 부분의 화상 데이터 BT2는 비디오 버퍼내에 존재한다. 비디오 프레임 f73의 프리젠테이션 종료시간에서 제 1 비디오 스트림의 다음 부분의 화상 데이터 BE3과 제 2 비디오 스트림의 앞선 부분의 화상 데이터 BT3은 비디오 버퍼내에 존재한다. 비디오 프레임의 디코딩이 진행함에 따라 제 1 비디오 스트림의 다음 부분의 화상 데이터는 제 2 비디오 스트림의 먼저 부분의 화상 데이터가 점차 증가하는 동안 단계적으로 감소한다. 이들 증가 및 감소는 동시에 발생하므로 도 10의 (c)에 도시된 버퍼 상태는 도 7의 (c)의 VOB에 대해 도시된 버퍼 상태를 밀접하게 닮은 톱니파 패턴을 나타낸다.
데이터 양 BT1과 데이터 양 BE1의 합 BT1+BE1, 데이터 양 BT2과 데이터 양 BE2의 합 BT2+BE2, 데이터 양 BT3과 데이터 양 BE3의 합 BT3+BE3의 각각은 비디오 버퍼의 용량 미만이다. 여기에서 이들 합 BT1+BE1, BT2+BE2, BT3+BE3의 어느 것이 비디오 버퍼의 용량을 초과하면 비디오 버퍼에 오버플로우가 발생할 것이다. 만약 이들 총합 중 가장 높은 것이 Bv1+Bv2로 표시되면 이 값 Bv1+Bv2는 비디오 버퍼의 용량의 범위내 이어야 한다.
(1-2-3-3) 팩 헤더, 시스템 헤더, 패킷 헤더
상술한 버퍼 제어에 대한 정보는 도 6의 (f) 내지 (g)에 도시된 팩 헤더, 시스템 헤더, 패킷 헤더에 시간 스탬프로서 기재되어 있다. 도 6의 (f) 내지 (g)는 팩 헤더, 시스템 헤더, 패킷 헤더의 논리 포맷을 도시한다. 도 6의 (f)에 도시된 바와 같이 팩 헤더는 Pack_Start_Code, 현재의 팩에 저장된 데이터가 비디오 버퍼와 오디오 버퍼에 입력되는 시간을 나타내는 SCR(System Clock Reference), Program_max_rate를 포함한다. VOB에서 제 1 SCR은 MPEG 표준하의 디코더에 표준 특징으로서 제공되는 STC(System Time Clock)의 초기값으로 설정된다.
도 6의 (g)에 도시된 시스템 헤더는 VOBU의 시작에 위치한 비디오 팩에 첨부될 뿐이다. 이 시스템 헤더는 데이터를 입력할 때 재생장치의 요구되는 전송속도를 나타내는 최대속도 정보(도 6의 (g)에서 "Rate.bound.info)로 나타냄)와 VOBU에 데이터를 입력할 때 재생장치의 요구되는 최대 버퍼크기를 나타내는 버퍼크기 정보(도 6의 (g)에 "Buffer.bound.info"로 나타냄)를 포함한다.
도 6의 (h)에 도시된 패킷 헤더는 디코딩 시간을 나타내는 DTS(Decoding Time Stamp)와 디코딩된 비디오 스트림을 재배열한 후 데이터가 출력되는 시간을 나타낸 PTS(Presentation Time Stamp)를 포함한다. PTS와 DTS는 비디오 프레임이나 오디오 프레임의 프리젠테이션 시작시간에 기초하여 설정된다. 데이터 구성에서 PTS와 DTS는 비록 모든 비디오 프레임에 대해 표시될 화상 데이터에 관한 이러한 정보가 드물더라도 모든 팩에 대해 설정될 수 있다. 이러한 정보가 일단 GOP에 할당되는 것은 보통이며, 이것을 재생시간의 매 0.5초에 한번이라고 한다. 그러나 모든 비디오 팩과 오디오 팩은 SCR로 할당된다.
오디오 스트림에 대해서는 PTS가 1 또는 2의 오디오 프레임에 대해 할당되는 것이 보통이나 비디오 스트림에 대해서는 PTS가 GOP내의 각 비디오 프레임에 할당되는 것이 보통이다. 오디오 스트림에 있어서 디스플레이 순서와 코딩 순서 사이에는 차이가 없으므로 DTS가 필요하지 않다. 하나의 오디오 팩이 2이상의 오디오 프레임에 대하여 재생될 모든 오디오 데이터를 저장하면 오디오 팩의 시작에서 PTS가 기록된다.
일례로서, 도 5의 (b)에 도시된 오디오 팩 A71은 PTS로서 오디오 프레임 f81의 프리젠테이션 시작시간이 주어진다. 한편 분할된 오디오 프레임 f83을 저장하는 오디오 팩 A72는 PTS로서 오디오 프레임 f83의 프리젠테이션 시작시간이 아니라 오디오 프레임 f84의 프리젠테이션 시작시간이 주어진다. 이것은 오디오 팩 A73의 경우에도 마찬가지다. 즉 오디오 팩 A73은 PTS로서 오디오 프레임 f85의 프리젠테이션 시작시간이 아니라 오디오 프레임 f86의 프리젠테이션 시작시간이 주어진다.
(1-2-3-4) 시간 스탬프의 연속성
다음은 도 6의 (f) 내지 (h)에 도시된 바와 같은 비디오 팩과 오디오 팩에 대한 PTS, DTS 및 SCR로서 설정된 값에 대해 설명한다.
도 11의 (a)는 팩이 VOB에 배열되는 순서로 VOB에 포함된 팩의 SCR값을 나타내는 그래프이다. 수평축은 비디오 팩의 순서를 나타내고 수직축은 각 팩에 할당된 SCR의 값을 나타낸다.
도 11의 (a)에서 SCR의 제 1 값은 0이 아니며 대신에 Init 1로 나타낸 소정값이다. SCR의 제 1 값이 0이 아닌 이유는 비디오 편집장치에 의해 처리되는 VOB가 많이 편집되게 되어 VOB의 제 1 부분이 이미 삭제되는 경우가 많이 있기 때문이다. 이미 인코드된 VOB의 SCR의 초기값은 비록 본 실시예가 VOB에 대한 SCR의 초기값이 도 11의 (a)에 도시된 바와 같이 0이 아닌 것으로 가정한다 하더라도 0일 수도 있는 것을 알 수 있다.
도 11의 (a)에서 비디오 팩이 VOB의 시작에 가까워질수록 그 비디오 팩의 SCR의 값이 낮아지고, 비디오 팩이 VOB의 시작으로부터 멀어질수록 그 비디오 팩의 SCR 값은 더 높아진다. 이 특징을 "타임 스탬프의 연속성(continuity of time stamps)"이라 하며 동일한 연속성이 DPS에 의해 나타난다. 비록 비디오 팩의 코딩순서는 후자의 비디오 팩의 PTS가 전자의 비디오 팩보다 낮은 값을 갖는다는 것을 의미하는 후자의 비디오 팩이 전자의 비디오 팩 전에 사실상 디스플레이 될 수 있다는 것이지만, PTS는 SCR 및 DTS와 동일한 방식으로 개략적인 연속성을 나타낸다.
오디오 팩의 SCR은 비디오 팩과 동일한 방식으로 연속성을 나타낸다.
SCR, DTS 및 PTS의 연속성은 VOB의 적절한 디코딩에 대해 필수불가결한 것이다. 다음은 이 연속성을 유지하기 위해 SCR에 대해 사용되는 값의 설명이다.
도 11의 (b)에서 섹션 B의 SCR의 값을 나타내는 직선은 섹션 A에서 SCR의 값을 나타내는 직선의 연장부이다. 이것은 섹션 A와 섹션 B 사이의 SCR 값 사이에 연속성이 있다는 것을 의미한다.
도 11의 (c)에서 기간 D의 SCR의 제 1 값은 섹션 C의 SCR의 값을 나타내는 직선상의 최대값보다 높다. 그러나 이 경우에는 또한 팩이 VOB의 시작에 가까워질 수록 SCR의 값이 낮아지고 비디오 팩이 VOB의 시작으로부터 멀어질수록 SCR의 값이 높아진다. 이것은 섹션 C와 섹션 D 사이에 시간 스탬프의 연속성이 있다는 것을 의미한다.
여기에서 시간 스탬프의 차이가 크면 이들 스탬프는 자연적으로 비연속이다. MPEG 표준하에서 SCR과 같은 시간 스탬프의 쌍 사이의 차는 0.7초를 초과하지 않으므로 이 값이 초과하는 데이터의 영역은 비연속인 것으로 취급된다.
도 11의 (d)에서 섹션 E의 SCR의 최종값은 섹션 F의 SCR의 값을 나타내는 직선상의 제 1 값보다 높다. 이 경우에는 팩이 VOB의 시작에 가까워질수록 SCR의 값이 낮아지고 비디오 팩이 VOB의 시작으로부터 멀어질수록 SCR의 값이 더 이상 유효하게 높아지지 않으므로 섹션 E와 섹션 F 사이에 시간 스탬프의 연속성이 없다.
섹션 E와 섹션 F의 예로서 시간 스탬프에 연속성이 없으면 전자의 섹션과 후자의 섹션이 별개의 VOB로서 관리된다.
VOB사이의 버퍼제어와 다중화 방법에 대해서는 국제특허출원 공보 "WO 97/13367"에 상세히 기재되어 있다.
(1-2-4) AV 파일
AV 파일은 연속적으로 재생될 적어도 하나의 VOB를 기록한 파일이다. 복수의 VOB가 하나의 AV 파일에 유지되면 이들 VOB는 그들이 AV 파일에 저장된 순서로 재생된다. 도 4의 예에서 3개의 VOB와, VOB#1, VOB#2 및 VOB#3이 하나의 AV 파일에 저장되며, 이들 VOB는 VOB#1→VOB#2→VOB#3의 순서로 재생된다. VOB가 이러한 순서로 저장되면 재생될 제 1 VOB의 마지막에 위치한 비디오 스트림과, 재생될 나중 VOB의 처음에 위치된 비디오 스트림에 대한 버퍼상태는 도 10의 (c)에 도시된 바와 같다. 여기에서 버퍼에 저장될 가장 높은 양의 데이터 Bv1+Bv2가 버퍼의 양을 초과하거나, 두번째로 재생될 VOB의 제 1 시간 스탬프가 첫번째로 재생될 VOB의 최종 타임 스탬프와 연속되어 있지 않으면, 제 1 및 제 2 VOB에 대하여 이음매없는 재생이 가능하지 않게 될 위험성이 있다.
(1-3) RTRW 관리파일의 논리구성
다음은 RTRW 관리파일의 설명이다. RTRW 관리파일은 AV 파일에 저장된 각 VOB에 대한 속성을 나타내는 정보이다.
도 12의 (a)는 데이터가 RTRW 관리파일에 저장된 상세한 계층구조를 나타낸다. 도 12의 (a)의 우측에 도시된 논리포맷은 좌측에 도시된 데이터의 세부 확장을 나타내고, 데이터 구조의 부분을 명확히 하기 위한 가이드라인으로서 점선을 사용하고 있다.
도 12의 (b)의 데이터 구조를 참조함으로써, RTRW 관리파일은 VOB#1, VOB#2, VOB#3, …, VOB#6을 기록하며, 이 VOB정보는 VOB 일반정보, 스트림 속성정보, 타임 맵표(time map table), 이음매없는 연결정보로 구성된다는 것을 알 수 있다.
(1-3-1) VOB 일반정보
"VOB 일반정보"는 AV 파일의 각 VOB와 각 VOB의 VOB 재생기간 정보에 유일하게 할당된 VOB-ID를 말한다.
(1-3-2) 스트림 속성정보
스트림 속성정보는 비디오 속성정보와 오디오 속성정보로 구성된다.
비디오 속성정보는 MPEG2와 MPEG1중의 하나를 나타내는 비디오 포맷 정보와 NTSC와 PAL/SECAM중의 하나를 나타내는 디스플레이 방법을 포함한다. 비디오 속성정보는 NTSC를 나타내며, "720×480"이나 "352×240"과 같은 표시는 디스플레이 해상도로서 주어지며, "4:3"이나 "16:9"와 같은 표시는 어스펙트비로서 주어진다. 아날로그 비디오 신호에 대한 복사방지 제어의 존재/부재는 비디오 신호의 블랭크 기간 동안 신호의 크기를 변경시킴으로써 VTR의 AGC회로를 손상시키는 비디오 카세트 레코더에 대한 복사방지의 존재/부재와 마찬가지로 표시될 수 있다.
오디오 속성정보는 MPEG2, 돌비 디지털 또는 선형-PCM 중의 하나인 인코딩 방법, 샘플링 주파수(예를들면, 48kHz), 고정 비트율이 사용될 때의 비트율 또는 가변 비트율이 사용될 때의 "VBR"로 표시된 비트율을 나타낸다.
타임 맵표(time map table))는 VOB를 구성하는 각 VOBU의 크기와 각 VOBU의 재생기간을 보여준다. 액세스 능력을 향상시키기 위해 대표적인 VOBU가 10초의 배수와 같은 소정의 간격으로 선택되며, 이들 대표적인 VOBU의 어드레스 및 재생시간이 VOB의 시작에 대해 주어진다.
(1-3-3) 이음매없는 연결정보
이음매없는 연결정보는 AV 파일내의 복수의 VOB의 연속적인 재생이 이음매없이 실행되도록 하는 정보이다. 이 이음매없는 연결정보는 이음매없는 플래그, 비디오 프리젠테이션 시작시간 VOB_V_S_PTM, 비디오 프리젠테이션 종료시간 VOB_V_E_PTM, First_SCR, Last_SCR, 오디오 갭 시작시간 A_STP_PTM, 오디오 갭 위치정보 A_GAP_LOC를 포함한다.
(1-3-31) 이음매없는 플래그
이음매없는 플래그는 현재의 이음매없는 연결정보에 대응하는 VOB가 AV 파일내의 현재의 VOB 직전에 위치한 VOB의 재생의 종료 다음에 이음매없이 재생되는지를 나타내는 플래그이다. 이 플래그가 "01"로 설정되면, 현재의 VOB(나중 VOB)의 재생은 이음매없이 실행되나, 플래그가 "00"으로 설정되면 현재의 VOB의 재생은 이음매없이 실행되지 않는다.
복수의 VOB를 이음매없이 재생하기 위해 선행 VOB와 나중 VOB 사이의 관계가 다음과 같아야 한다.
(1) 양 VOB는 비디오 속성정보에서 주어진 것과 동일한 비디오 스트림에 대한 디스플레이 방법(NTSC, PAL 등)을 사용하여야만 한다.
(2) 양 VOB는 오디오 속성정보에서 주어진 것과 동일한 오디오 스트림에 대한 인코딩 방법(AC-3, MPEG, 선형-PCM)을 사용하여야만 한다.
상술한 조건에 부합되지 않으면 이음매없는 재생의 실행이 가능하지 않게 된다. 비디오 스트림에 대하여 상이한 디스플레이 방법이 사용되거나 오디오 스트림에 대하여 상이한 인코딩 방법이 사용되면 비디오 인코더와 오디오 인코더가 디스플레이 방법과 디코딩 방법 및/또는 비트율을 전환하기 위해 그들 각각의 동작을 중단하지 않으면 안될 것이다.
일례로서 연속적으로 재생될 2개의 오디오 스트림이 먼저의 오디오 스트림은 AC-3 방법에 따라 인코드되고 나중의 오디오 스트림은 MPEG방법에 따라 인코드되면, 오디오 디코더는 스트림이 AC-3에서 MPEG으로 전환될 때 스트림 속성을 전환하도록 디코딩을 중단하지 않으면 안될 것이다. 비디오 스트림이 변경되면 비디오 디코더에 대해서도 유사한 상황이 발생한다.
이음매없는 플래그는 상술한 조건 (1)과 (2)가 만족되면 "01"로만 설정된다. 상술한 조건 (1)과 (2)중의 어느 하나라도 만족시키지 못하면 이음매없는 플래그는 "00"으로 설정된다.
(1-3-3-2) 비디오 프리젠테이션 시작시간 VOB_V_S_PTM
비디오 프리젠테이션 시작시간 VOB_V_S_PTM은 VOB를 구성하는 비디오 스트림의 제 1 비디오 필드의 재생이 시작되는 시간을 나타낸다. 이 시간은 PTM 서술자 포맷으로 주어진다.
PTM 서술자 포맷은 시간이 1/27,000,000초 또는 1/90,000초(=300/27,000,000초)의 정밀도로 표현되는 포맷이다. 1/90,000초의 정밀도는 NTSC 신호, PAL 신호, Dolby AC-3, MPEG 오디오의 공통의 배수를 고려하여 설정되나, 1/27,000,000초의 정밀도는 STC의 주파수를 고려하여 설정된다.
도 12의 (b)는 PTM 서술자 포맷을 나타낸다. 이 도면에서 PTM 서술자 포맷은 프리젠테이션 시작시간을 1/90,000초로 나눌 때의 몫을 나타내는 기본 요소(PTM_base)와, 동일한 프리젠테이션 시작시간을 1/27,000,000초의 정밀도까지 기본요소로 나눌 때의 나머지를 나타내는 확장요소(PTM_extention)로 구성된다.
(1-3-3-3) 비디오 프리젠테이션 종료시간 VOB_V_E_PTM
비디오 프리젠테이션 종료시간 VOB_V_E_PTM은 VOB를 구성하는 비디오 스트림의 최종 비디오 필드의 재생이 종료될 때의 시간을 나타낸다. 이 시간은 또한 PTM 서술자 포맷으로 주어진다.
(1-3-3-4) 비디오 프리젠테이션 시작시간 VOB_V_S_PTM과 비디오 프리젠테이션 종료시간 VOB_V_E_PTM 사이의 관계
다음은 선행 VOB와 나중 VOB가 이음매없이 재생될 때 선행 VOB의 VOB_V_E_PTM과 나중 VOB의 VOB_V_S_PTM 사이의 관계에 대한 설명이다.
나중 VOB는 선행 VOB에 포함된 모든 비디오 팩 다음에 기본적으로 재생되기 때문에 나중 VOB의 VOB_V_S_PTM이 선행 VOB의 VOB_V_E_PTM과 같지 않으면 시간 스탬프는 연속하지 않을 것이며, 이것은 선행 VOB와 나중 VOB가 이음매없이 재생될 수 없다는 것을 의미한다. 그러나 2개의 VOB가 완전히 분리되어 인코드되면 인코더가 인코딩중에 유일한 시간 스탬프를 각각의 비디오 팩과 오디오 팩에 할당하므로 선행 VOB의 VOB_V_E_PTM과 동일한 나중 VOB의 VOB_V_S_PTM에 대한 조건은 문제가 될 것이다.
도 13은 선행 VOB와 나중 VOB에 대한 버퍼의 상태를 도시한다. 도 13의 그래프에서 수직축은 버퍼의 점유를 나타내며 수평축은 시간을 나타낸다. SCR, PTS, 비디오 프리젠테이션 종료시간 VOB_V_E_PTM과 비디오 프리젠테이션 시작시간 VOB_V_S_PTM을 나타내는 시간이 구성되어 있다. 도 11의 (b)에서, 선행 VOB에서 마지막으로 재생되는 화상 데이터는 이 화상 데이터에 의해 구성되는 비디오 팩의 Last_SCR로 표시된 시간에 의해 비디오 버퍼에 입력되며, 이 데이터의 재생처리는 프리젠테이션 시작시간인 PTS가 도달할 때까지 대기한다(만약 MPEG 디코더에 입력된 최종 팩이 오디오 또는 다른 팩이면 이 조건은 유효하지 않다.). 여기에서 비디오 프리젠테이션 종료시간 VOB_V_E_PTM은 이 최종 비디오의 디스플레이 주기 h1이 이 PTS로부터 시작하여 종료되는 지점을 보여준다. 이 디스플레이 주기 h1은 하나의 스크린 크기 이미지를 구성하는 제 1 필드로부터 최종필드까지의 이미지를 인출하도록 취해지는 주기이다.
도 11의 (b)의 하부에서 나중 VOB에 처음으로 표시될 화상 데이터는 시간 First_SCR에서 비디오 버퍼에 입력되며, 이 데이터의 재생은 프리젠테이션 시작시간을 나타내는 PTS 까지 대기한다. 이 도면에서 먼저와 나중 비디오 팩은 각각 제 1 값 "0"을 갖는 SCR, 비디오 프리젠테이션 종료시간 VOB_V_E_PTM, 비디오 프리젠테이션 시작시간 VOB_V_S_PTM으로 할당된다. 이 예에 있어서, 나중 VOB의 VOB_V_S_PTM<선행 VOB의 VOB_V_E_PTM임을 알 수 있다.
다음은 왜 이음매없는 재생이 "나중 VOB의 VOB_V_S_PTM<선행 VOB_V_E_PTM"인 조건에 대해서도 가능한지에 대한 설명이다. DVD-RAM 표준하에서 확장된 STD 모델(이하, "E-STD"라 함)은 도 19에 도시된 바와 같이 재생장치에 대한 표준모델로서 정의된다. 일반적으로 MPEG디코더는 표준시간을 측정하기 위한 STC(System Time Clock)를 가지며 비디오 디코더와 오디오 디코더는 디코드처리 및 재생처리를 실행하기 위해 STC에 의해 나타낸 표준시간을 참조한다. 그러나 STC 외에도 E-STD는 STC에 의해 출력된 표준시간에 오프셋을 가산하는 가산기를 가지므로, STC에 의해 출력된 표준시간과 가산기의 가산결과중의 하나가 선택되어 비디오 디코더와 오디오 디코더에 출력된다. 이러한 구성에 의해 상이한 VOB에 대한 시간 스탬프가 연속되지 않는 경우에 조차도 가산기의 출력은 디코더에 출력되어 디코더가 마치 VOB의 시간 스탬프가 연속인 것처럼 행동하도록 하게 할 수 있다. 결국 선행 VOB의 VOB_V_E_PTM과 나중 VOB의 VOB_V_S_PTM이 연속이지 않은 경우에도 상술한 예에서 처럼 이음매없는 재생이 가능하다.
선행 VOB의 VOB_V_E_PTM과 나중 VOB의 VOB_V_S_PTM 사이의 차이는 가산기에 의해 가산된 오프셋으로서 사용될 수 있다. 이것은 정상적으로 "STC_offset"라고 한다. 결국 E-STD 모델의 재생장치는 선행 VOB의 VOB_V_E_PTM과 나중 VOB의 VOB_V_S_PTM을 사용하는 이하에 나타낸 식에 따라 "STC_offst"를 구한다. 이 STC_offset를 구한 후 재생장치는 가산기에 그 결과를 설정한다.
STC_offset=선행 VOB의 VOB_V_E_PTM - 나중 VOB의 VOB_V_S_PTM
선행 VOB의 VOB_V_E_PTM과 나중 VOB의 VOB_V_S_PTM이 이음매없는 연결정보에 기록되는 이유는 디코더로 하여금 상술한 연산을 실행하게 하여 그 가산기에 STC_offset를 설정하도록 하기 때문이다.
도 11의 (e)는 도 11의 (a)에 도시된 바와 같이 시간 스탬프가 연속인 2개의 VOB에 대해 구성한 그래프이다. VOB#1에서 제 1 팩의 시간 스탬프는 초기값 Init 1을 포함하며, 그 이후의 팩은 그들의 시간 스탬프에 따라 증가하는 보다 높은 값을 갖는다. 동일한 방식으로 VOB#2에서 제 1 팩의 시간 스탬프는 초기값 Init 2를 포함하며, 그 이후의 팩은 그들의 시간 스탬프에 따라 증가하는 보다 높은 값을 갖는다. 도 11의 (e)에서 VOB#1에서의 시간 스탬프의 최종값은 VOB#2에서의 시간 스탬프의 제 1 값보다 높으므로 시간 스탬프가 2개의 VOB를 가로질러 연속하지 않는다. VOB#2의 제 1 팩의 디코딩이 시간 스탬프의 비연속성에 관계없이 VOB#1의 최종 팩 다음에 오는 것이 바람직하면 STC_offset는 VOB#2의 시간 스탬프에 가산될 수 있어 VOB#2의 시간 스탬프를 도 11의 (e)에 도시된 실선으로부터 VOB#1의 시간 스탬프의 확장으로서 연속하는 점선으로 시프트시킨다. 결국 VOB#2의 시프트된 시간 스탬프는 VOB#1의 시간 스탬프와 함께 연속일 수 있다.
(1-3-3-5) First_SCR
First_SCR은 PTM 서술자 포맷으로 기록된 VOB의 제 1 팩의 SCR을 나타낸다.
(1-3-3-6) Last_SCR
Last_SCR은 PTM 서술자 포맷으로 기록된 VOB의 최종 팩의 SCR을 나타낸다.
(1-3-3-7) First_SCR과 Last_SCR 사이의 관계
상술한 바와 같이 VOB의 재생은 E-STD 타입의 디코더에 의해 실행되기 때문에 선행 VOB의 Last_SCR과 나중 VOB의 First_SCR은 선행 VOB의 Last_SCR = 나중 VOB의 First_SCR인 조건을 만족시킬 필요가 없다. 그러나 STC_offset를 사용할 때 다음의 관계가 만족되어야만 한다.
선행 VOB의 Last_SCR + 1팩의 전송에 의해 필요한 시간 ≤STC_offset + 나중 VOB의 First_SCR
여기에서 선행 VOB의 Last_SCR과 나중 VOB의 First_SCR이 상기의 조건을 만족시키지 못한다면 이것은 선행 VOB를 구성하는 팩이 나중 VOB를 구성하는 팩과 동일한 시간에 비디오 버퍼와 오디오 버퍼에 전송된다는 것을 의미한다. 이것은 팩이 팩의 열의 순서로 한번에 하나씩 전송되는 경우의 E-STD 디코더 모델과 MPEG 표준을 위반하는 것이다. 도 10의 (c)를 참조함으로써 선행 VOB의 Last_SCR이 나중 VOB의 First_SCR에 일치함을 알 수 있으므로 상술한 관계가 만족된다.
VOB가 E-STD 타입의 디코더를 사용하여 재생되고 특히 시간이 주목되면 그 시간에서는 STC에 의해 출력된 표준시간을 출력하는 것과 가산기에 의해 가산된 오프셋을 갖는 표준시간을 출력하는 것 사이에서 전환이 실행된다. 이러한 전환에 대해서는 어떠한 정보도 VOB의 시간 스탬프에 주어지지 않기 때문에 가산기의 출력값에 대한 전환을 위해 부적절한 시간이 사용될 위험성이 있다.
First_SCR과 Last_SCR은 디코더에 가산기의 출력값에 전환하기 위한 정확한 시간을 알려주는데 효과적이다. STC가 카운트되는 동안 디코더는 STC에 의해 출력되는 표준시간과 First_SCR과 Last_SCR에 의해 출력된 표준시간을 비교한다. STC에 의해 출력된 표준시간이 First_SCR 또는 Last_SCR과 일치하면 디코드는 STC에 의해 출력된 표준시간으로부터 가산기의 출력값으로 전환한다.
VOB를 재생할 때 표준재생은 선행 VOB를 재생한 후 나중 VOB를 재생하나 "되감기 재생"(뒷쪽 화상 검색)은 나중 VOB를 재생한 후 선행 VOB를 재생한다. 따라서 Last_SCR은 표준재생중에 디코더에 의해 사용되는 값을 전환하기 위해 사용되며 First_SCR은 되감기 재생중에 디코더에 의해 사용된 값을 전환하기 위해 사용된다. 되감기 재생중에 나중 VOB는 최종 VOBU로부터 시작하여 최초의 VOBU로 디코드되고, 나중 VOB의 제 1 비디오 팩이 디코드되면 선행 VOB가 최종 VOBU로부터 시작하여 최초의 VOBU로 디코드된다. 즉 되감기 재생중에 나중 VOB의 제 1 비디오 팩의 디코딩이 완료되는 시간은 디코더에 의해 사용되는 값이 전환될 필요가 있는 시간이다. 이 시간을 E-STD 타입의 비디오 데이터 편집장치에 알려주기 위해 각 VOB의 First_SCR이 RTRW 관리파일에 제공된다.
E-STD와 STC_offset에 대해 사용되는 기술의 보다 상세한 설명은 국제특허공보 W0 97/13364에 기술되어 있다.
(1-3-3-8) 오디오 갭 시작시간 "A_STP_PTM"
오디오 재생 갭이 VOB내에 존재하면 오디오 갭 시작시간 "A_STP_PTM"은 오디오 디코더가 그 동작을 정지시키는 정지 시작시간을 나타낸다. 이 오디오 갭 시작시간은 PTM 서술자 포맷으로 주어진다. 하나의 오디오 갭 시작시간 "A_STP_PTM"은 하나의 VOB에 대해 표시된다.
(1-3-3-9) 오디오 갭 길이 "A_GAP_LEN"
오디오 갭 길이 "A_GAP_LEN"은 오디오 디코더가 오디오 시작 시간 "A_STP_PTM"으로 표시된 정지 시작시간으로부터 시작되는 동작을 얼마나 오래동안 중단하는지를 보여준다. 이 오디오 갭 길이 "A_GAP_LEN"의 길이는 하나의 오디오 프레임 길이 보다 작게 제한된다.
(1-3-3-10) 오디오 갭의 필연성
다음은 오디오 갭이 발생하는 기간이 왜 오디오 갭 시작 시간 A_STP_PTM과 오디오 갭 길이 A_GAP_LEN에 의해 특정되는지에 대한 설명이다.
비디오 스트림과 오디오 스트림은 상이한 사이클로 재생되기 때문에 VOB에 포함된 비디오 스트림의 총 재생시간은 오디오 스트림의 총 재생시간과 일치하지 않는다. 예컨대, 비디오 스트림이 NTSC 표준에 대한 것이고 오디오 스트림이 Dolby AC-3에 대한 것이면, 도 14의 (a)에 도시된 바와 같이 비디오 스트림의 총재생 시간은 33밀리초의 정수배이고 오디오 스트림의 총재생 시간은 32밀리초의 정수배이다.
2개의 VOB의 이음매없는 재생이 총 재생시간의 이들 차이에 관계없이 실행되면 화상 데이터와 오디오 데이터의 재생을 동기화하기 위해 화상 데이터 세트의 재생시간과 오디오 데이터 재생시간을 정렬할 필요가 있다. 이러한 재생시간을 정렬하기 위해 총시간의 차가 화상 데이터나 오디오 데이터의 시작 또는 종료의 어느 하나에서 나타난다.
도 14의 (b)에서 화상 데이터의 재생시간은 VOB의 시작에서 오디오 데이터의 재생시간과 정렬되므로 시간차 g1이 화상 데이터와 오디오 데이터에서 존재한다.
시간차 g1이 VOB#1의 종료에서 존재하기 때문에 이음매없는 재생 VOB#1과 VOB#2가 시도되면 VOB#2의 오디오 스트림의 재생이 시간차 g1을 채우도록 실행되며, 이것은 VOB#2의 오디오 스트림의 재생이 시간 g0에서 시작한다는 것을 의미한다. 오디오 디코더는 오디오 스트림을 재생할 때 고정 프레임 속도을 사용하므로 오디오 스트림의 디코딩이 고정된 사이클로 연속적으로 실행된다. VOB#1 다음의 재생될 VOB#2가 이미 DVD-RAM으로부터 판독되면 VOB#1의 오디오 스트림의 디코딩이 완료되자 마자 오디오 디코더는 VOB#2의 디코딩을 시작한다.
이음매없는 재생중에 나중 VOB의 오디오 스트림이 너무 빨리 재생되는 것을 방지하기 위해 스트림의 오디오 갭 정보는 재생장치 호스트측에 대하여 관리되므로 오디오 갭 기간중에 호스트는 오디오 디코더의 동작을 정지할 필요가 있다. 이 재생 정지기간은 오디오 갭이며, 오디오 갭 시작시간 A_STP_PTM으로부터 시작하여 A_GAP_LEN로서 나타낸 기간 동안 계속된다.
오디오 갭을 특정하기 위한 처리는 또한 스트림내에서 실행된다. 보다 구체적으로는 오디오 갭의 직후에 오디오 프레임의 PTS가 오디오 패킷의 패킷 헤더에 기록되므로 오디오 갭이 종료될 때 특정이 가능하다. 그러나 재생되어야 할 오디오 데이터의 수개 세트가 단일 오디오 패킷에 저장될 때의 특정방법으로 문제가 발생한다. 보다 상세하게는 수개의 오디오 프레임에 대해 재생될 오디오 데이터의 수개 세트가 단일 오디오 패킷에 저장되면 이 패킷내의 복수의 오디오 프레임중에서 제 1 프레임에 대한 PTS를 제공할 수 있을 뿐이다. 즉, PTS는 패킷의 나머지 오디오 프레임에 대하여 제공될 수 없다. 만약 오디오 갭의 전후에 위치된 오디오 프레임에 대하여 재생될 오디오 데이터가 동일한 패킷에 배열되어 있으면, 오디오 갭의 직후에 위치된 오디오 프레임에 대한 PTS를 제공할 수 없다. 결국 오디오 갭을 특정할 수 없으며, 이것은 오디오 갭이 상실된다는 것을 의미한다. 이것을 피하기 위해 오디오 갭 직후에 위치된 오디오 프레임은 다음 오디오 팩의 앞에 배열되도록 처리되므로 오디오 갭직후의 오디오 프레임의 PTS(오디오 갭 시작시간 A_STP_PTM과 오디오 갭 길이 A_GAP_LEN)는 스트림내에서 명료해질 수 있다.
필요할 때마다 MPEG표준에 의해 규정된 패딩-패킷(Padding-Packet)이 오디오 갭 직전에 재생될 오디오 데이터를 저장하는 오디오 패킷내의 오디오 데이터 직후에 삽입될 수 있다. 도 14의 (c)는 오디오 갭을 포함하고 도 14의 (b)에 도시된 VOB#1의 다음 부분에 위치한 오디오 프레임 y-2, y-1, y에 대해 재생될 오디오 데이터 y-2, y-1, y를 포함하는 오디오 팩 G3을 나타낸다. 이 도면은 또한 VOB#2의 앞에 위치한 오디오 프레임 u+1, u+2, u+3을 포함한다.
상술한 오디오 팩 G4는 오디오 갭 직후의 오디오 프레임에 대해 재생될 오디오 데이터를 포함하며, 오디오 팩 G3은 이 팩의 직전에 위치되는 팩이다.
오디오 갭 직후에 위치된 오디오 프레임에 대하여 재생될 오디오 데이터가 팩에 포함되면 이러한 팩 직전에 위치된 팩은 "오디오 갭을 포함하는 오디오 팩"이라 한다.
여기에서 오디오 팩 G3은 VOBU에서 비디오 팩 열의 종단을 향해 위치되며 다음의 재생시간을 갖는 어떠한 화상 데이터도 VOB#1에 포함되지 않는다. 그러나 VOB#2의 재생은 VOB#1의 재생에 후속하는 것으로 추정되므로 VOB#2에 포함된 화상 데이터는 오디오 프레임 y-2, y-1 및 y에 대응하여 판독되는 화상 데이터이다.
이것이 그 경우이면 오디오 갭을 포함하는 오디오 팩 G3은 "1초 룰"을 위반하지 않고 VOB#2내의 처음 3개의 VOBU중의 어느 하나내에 위치될 수 있다. 도 14의 (d)는 오디오 갭을 포함하는 오디오 팩 G3이 VOB#2의 시작에서 VOBU#1, VOBU#2 및 VOBU#3 중의 어느 하나에 위치될 수 있다는 것을 보여준다.
오디오 디코더의 동작은 오디오 갭의 기간 동안 일시적으로 중단될 필요가 있다. 그것은 오디오 디코더가 오디오 갭 동안이더라도 디코드 처리를 시도할 것이기 때문이므로 재생장치에서 핵심 제어처리를 실행하는 호스트 제어부는 일단 화상 데이터와 오디오 데이터의 재생이 종료되면 디코더에 오디오 중단을 표시해야만 하며 그럼으로써 오디오 디코더가 일시적으로 중단된다. 이 표시는 도 19에서 ADPI(Audio Decoder Pause Information)로 나타나 있다.
그렇게 함으로써 오디오 디코더는 오디오 갭의 주기동안 중단될 수 있다. 그러나 이것은 오디오 갭이 어떻게 데이터에 나타나는지에 관계없이 오디오 출력이 중단될 수 있다는 것을 의미하는 것은 아니다.
이것은 제어부가 표준 마이크로컴퓨터와 소프트웨어로 구성되는 것이 정상이기 때문이므로, 오디오 디코어의 동작을 중단시키는 환경에 따라 짧은 기간동안 오디오 갭이 반복적으로 발생하고, 제어부가 중단 표시를 충분히 조기에 발행하지 않을 가능성이 있다. 일례로서 대략 1초 길이의 VOB가 연속적으로 재생되면, 약 1초의 간격으로 오디오 디코더에 대한 중단 표시가 주어질 필요가 있다. 제어부가 표준 마이크로컴퓨터와 소프트웨어로 구성되면, 이러한 오디오 갭이 존재하는 기간동안 제어부가 오디오 디코더를 중단시킬 수 없을 가능성이 있다.
VOB를 재생할 때 화상 데이터의 재생시간과 오디오 데이터의 재생시간은 여러번 정렬되며 오디오 디코더에 중단 표시를 매번 제공하는 것이 필수적이다. 제어부가 표준 마이크로컴퓨터와 소프트웨어로 구성되면 이러한 오디오 갭이 존재하는 기간동안 제어부가 오디오 디코더를 중단시킬 수 없을 가능성이 있다. 이러한 이유로 다음의 제한에 의해 오디오 갭이 소정의 기간내에 한번 발생할 뿐이다.
첫째, 제어부가 용이하게 중단동작을 실행할 수 있도록 하기 위해 VOB의 재생주기를 1.5초 이상으로 설정하여 오디오 갭이 발생하는 빈도를 감축시킨다.
둘째, 화상 데이터의 재생시간과 오디오 데이터의 재생시간의 정렬은 각각의 VOB에서 한번만 실행한다. 그렇게 함으로써 각 VOB에는 하나의 오디오 갭만이 존재한다.
셋째, 각 오디오 갭의 주기는 하나의 오디오 프레임 미만으로 제한한다.
넷째, 오디오 갭 시작시간 VOB_A_STP_PTM이 표준으로서 나중 VOB의 비디오 프리젠테이션 시작시간 VOB_V_S_PTM으로 설정되므로, 오디오 갭 시작시간 VOB_A_STP_PTM은 다음의 비디오 프리젠테이션 시작시간 VOB_V_S_PTM의 하나의 오디오 프레임 내에 있는 것으로 제한한다.
결국, VOB_V_S_PTM-하나의 오디오 프레임의 재생주기 < A_STP_PTM ≤VOB_V_S_PTM 이다.
이것을 만족시키는 오디오 갭이 발생하면 나중 VOB내의 제 1 이미지는 바로 디스플레이되므로 비록 이 시간에서 오디오 출력이 없더라도 이것은 사용자에게 특히 분명하지는 않을 것이다.
상술한 제한을 제공함으로써 오디오 갭이 이음매없는 재생중에 나타나면 오디오 갭 사이의 간격은 적어도 "1.5초-2개의 오디오 프레임의 재생주기"이다. 보다 구체적으로 실제의 값을 대입함으로써 각 오디오 프레임의 재생주기는 Dolby AC-3가 사용되면 32밀리초이므로 오디오 갭 사이의 최소 간격은 1436밀리초이다. 이 간격은 제어부가 처리에 대한 데드라인 내의 중단 제어처리를 잘 실행할 수 있는 높은 가능성이 있다는 것을 의미한다.
(1-3-3-11) 오디오 갭 위치정보
오디오 갭 위치정보 "A_GAP_LOC"는 나중 VOB의 시작에 위치된 3개의 VOB 중 어느 것에 오디오 갭을 포함하는 오디오 갭이 삽입되는 것을 보여주는 3비트 값이다. 이 값에서 제 1 비트가 "1"이면, 이것은 오디오 갭이 VOBU#1에 존재한다는 것을 보여준다. 동일한 방식으로 값 "2"와 "3"은 각각 오디오 갭이 VOBU#2와 VOBU#3에 존재한다는 것을 보여준다.
이 플래그가 필요한 이유는 이음매없이 재생될 2개의 VOB중 나중 것이 부분적으로 삭제될 때 오디오 갭를 재발생하는 것이 필수적이기 때문이다.
VOB의 부분삭제는VOB의 처음 또는 마지막에 위치한 복수의 VOBU의 삭제를 말한다. 일례로서 사용자가 개방된 신뢰성의 순서를 삭제하길 원할 때 비디오 편집중인 경우가 많이 있다. 이 개방된 신뢰성의 순서를 포함하는 VOB의 삭제를 "VOB의 부분삭제"라 한다.
부분삭제가 실행되면 나중 VOB에 이동되는 오디오 갭을 포함하는 오디오 팩은 특별한 주의를 필요로 한다. 상술한 바와 같이, 오디오 갭은 나중 VOB의 비디오 프리젠테이션 시작시간 VOB_V_S_PTM에 따라 결정되므로 나중 VOB로부터 일부 VOBU가 삭제되면 오디오 갭과 이 화상 데이터에 대한 VOBU를 결정하는 비디오프리젠테이션 시작시간 VOB_V_S_PTM을 갖는 화상 데이터는 삭제될 것이다.
오디오 갭은 VOB의 시작에서 첫번째 3개의 VOB중 하나에 다중화된다. 따라서 첫번째 VOBU와 같은 VOB의 일부가 삭제되면 오디오 갭이 이 삭제의 결과로서 파괴되는지에 관해서는 분명하지 않을 것이다. 하나의 VOB내에 구비되는 오디오 갭의 수는 하나로 제한되기 때문에 일단 새로운 오디오 갭이 발생되면 더이상 필요하지 않은 이전의 오디오 갭을 삭제할 필요가 있다.
도 14의 (d)에 도시된 바와 같이. 오디오 갭을 포함하는 오디오 팩 G3은 1초룰에 부합하도록 VOB#2내의 VOBU#1 내지 VOBU#3의 어느 하나에 삽입될 필요가 있으므로 이 오디오 갭을 포함하는 오디오 팩은 VOB#1 내지 VOB#3에 포함된 팩의 하나를 취할 필요가 있다. 이것은 최대 3개의 VOBU를 필요로 하며 이 오디오 갭을 포함하는 오디오 팩 G3만의 중간 추출은 기술적으로 매우 어렵다. 이것은 스트림 분석이 요구된다는 것을 의미한다. 여기에서 각 VOBU는 수백개의 팩을 포함하므로 이러한 모든 팩의 내용을 참조하기 해서는 상당량의 처리가 요구된다.
오디오 갭 위치정보 A_GAP_LOC는 나중 VOB의 시작에서 3개의 VOBU의 어느 하나에 오디오 갭을 포함하는 오디오 팩이 삽입되는 것을 보여주는 3비트 플래그를 이용하므로 오디오 갭을 찾을 때 하나의 VOBU만이 검색될 필요가 있다. 이것은 오디오 갭을 포함하는 오디오 팩 G3의 추출을 용이하게 한다.
도 15의 (a) 내지 (e)는 이음매없이 재생될 2개의 VOB 즉, VOB#1 및 VOB#2 중에서 VOB#2의 처음에 위치한 VOBU가 삭제된 경우 비디오 데이터 편집장치에 의한 오디오 갭의 재생성에 대한 절차를 보여준다.
도 15의 (a)에 도시된 바와 같이 VOBU들, 즉 "VOBU#98", "VOBU#99" 및 "VOBU#100"은 VOB#1의 마지막에 위치하며, VOBU들, 즉 "VOBU#1", "VOBU#2" 및 "VOBU#3"은 VOB#2의 시작에 위치한다. 이 예에서, 사용자는 비디오 데이터 편집장치에게 VOB#2내의 VOBU#1 및 VOBU#2를 삭제하도록 부분삭제를 명령한다.
이 경우에 VOBU#100에 저장된 오디오 데이터중에서 오디오 갭을 포함하는 오디오 팩 G3이 요구되나 그 오디오 갭을 포함하는 오디오 팩 G3이 VOB#2내의 VOBU#1, VOBU#2 및 VOBU#3의 하나에 배열된 것을 확실히 알 수 있다. 오디오 갭을 포함하는 오디오 팩 G3이 배열되는 VOBU를 찾기 위해 비디오 데이터 편집장치는 오디오 갭 위치정보 A_GAP_LOC를 참조한다. 오디오 갭 위치정보 A_GAP_LOC가 도 15의 (b)에 도시된 바와 같이 설정되면 오디오 갭을 포함하는 오디오 팩 G3이 VOB#2내의 VOBU#3에 위치됨을 알 수 있다.
일단 오디오 갭을 포함하는 오디오 팩 G3이 VOBU#3에 위치되는 것을 비디오 데이터 편집장치가 알 수 있으면, 이 비디오 데이터 편집장치는 오디오 갭이 부분삭제될 영역으로 다중화되는지를 알게 될 것이다. 이 예에서 오디오 갭은 삭제된 영역에 포함되지 않으므로 오디오 갭 위치정보 A_GAP_LOC의 값은 삭제된 VOBU의 수에 의해 보정될 뿐이다.
이것은 VOB, 비디오 스트림, 오디오 스트림 및 본 발명에 대한 광디스크에 저장된 VOB정보의 설명을 완성시킨다.
(1-4) 비디오 데이터 편집장치의 시스템 구성
본 실시예의 비디오 편집장치는 DVD-RAM 재생장치와 DVD-RAM 기록장치의 기능을 구비한다. 도 16은 본 실시예의 비디오 데이터 편집장치를 포함하는 시스템 구성의 예를 도시한 것이다. 도 16에 도시된 바와 같이 이 시스템은 비디오 데이터 편집장치(이하, DVD 레코더(70)라 함), 리모콘(71), DVD 레코더(70)에 접속된 TV 모니터(72) 및 안테나(73)를 포함한다. DVD 레코더(70)는 텔레비전 방송을 기록하기 위한 종래의 비디오 카세트 레코더 대신에 사용될 장치로서 고려되나 편집기능의 특징을 갖는다. 도 16에 도시된 시스템은 DVD 레코더(70)가 가정용 비디오 편집장치로서 사용되는 경우를 나타낸다. 상술한 DVD-RAM은 텔레비전 방송을 기록하기 위한 기록매체로서의 DVD 레코더(70)에 의해 사용된다.
DVD-RAM이 DVD 레코더(70)에 넣어되면 DVD 레코더(70)는 안테나(73)를 통해 수신된 비디오 신호 또는 종래의 NTSC신호를 압축하고 그 결과를 VOB로서 DVD-RAM에 기록한다. DVD 레코더(70)는 또한 DVD-RAM에 기록된 VOB에 포함된 비디오 스트림과 오디오 스트림을 압축해제하여 그 결과로서의 비디오 신호나 NTSC 신호 및 오디오 신호를 TV 모니터(72)에 출력한다.
(1-4-1) DVD 레코더(70)의 하드웨어 구성
도 17은 DVD 레코더(70)의 하드웨어 구성을 도시한 블록도이다. 도 17에 도시된 바와 같이 DVD 레코더(70)는 제어부(1), MPEG 인코더(2), 디스크 액세스부(3), MPEG 디코더(4), 비디오 신호 처리장치(5), 리모콘(71), 버스(7), 리모콘 신호 수신부(8) 및 수신기(9)로 구성된다.
도 17에서 실선으로 도시된 화살표는 DVD 레코더(70) 내부의 배선에 의해 달성되는 물리적 접속을 나타낸다. 반면 점선은 비디오 편집동작중에 실선으로 나타낸 접속에 대한 다양한 종류의 데이터의 입출력을 나타낸 논리적 접속관계를 나타낸다. 점선에 할당된 번호 (1) 내지 (5)는 DVD 레코더(70)가 VOBU를 재인코드할 때 VOBU와 VOBU를 구성하는 화상 데이터 및 오디오 데이터가 어떻게 물리적 접속에 전송될 수 있는가를 보여준다.
제어부(1)는 CPU(1a), 프로세서 버스(1b), 버스 인터페이스(1c), 주저장부(1d) 및 ROM(1e)을 포함하는 호스트측 제어부이다. ROM(1e)에 저장된 프로그램을 실행함으로써 제어부(1)는 VOB를 기록, 재생 및 편집한다.
MPEG 인코더(2)는 다음과 같이 동작한다. 수신기(9)가 안테나(73)를 통해 NTSC 신호를 수신하거나 가정용 비디오 카메라에 의해 출력된 비디오 신호가 DVD 레코더(70)의 뒤에 구비된 비디오 입력단자를 통해 수신되면 MPEG 인코더(2)는 NTSC 신호나 비디오 신호를 인코드하여 VOB를 생성하고 생성된 VOB를 버스(7)를 통해 디스크 액세스부(3)에 출력한다. 비디오 편집과 특별히 관계된 처리로서 MPEG 인코더(2)는 점선 (4)에 의해 도시된 바와 같이 버스(7)를 통해 접속선(C1)으로부터 MPEG 디코더(4)의 디코딩 결과의 입력을 수신하여 이 데이터에 대한 인코딩 결과를 점선 (5)로 나타낸 바와 같이 버스(7)를 통해 디스크 액세스부(3)에 출력한다.
디스크 액세스부(3)는 트랙버퍼(3a), ECC 처리부(3b), DVD-RAM을 위한 구동부(3c)을 포함하며, 제어부(1)에 의한 제어에 따라 DVD-RAM을 액세스한다.
보다 상세하게는 제어부(1)가 DVD-RAM에 기록을 위한 표시을 주고, MPEG 인코더(2)에 의해 인코드된 VOB가 점선 (5)로 나타낸 바와 같이 계속해서 출력되면, 디스크 액세스부(3)는 트랙 버퍼(3a)에 수신된 VOB를 저장하고, ECC 처리부(3b)는 ECC 처리를 실행하고 구동부(3c)를 제어하여 계속적으로 이들 VOB를 DVD-RAM에 기록한다.
한편 제어부(1)가 DVD-RAM으로부터 판독된 데이터를 표시하면 디스크 액세스부(3)는 구동부(3c)를 제어하여 DVD-RAM으로부터 계속적으로 VOB를 판독하고, ECC 처리부(3b)는 이들 VOB에 대한 ECC 처리를 실행하여 그 결과를 트랙버퍼(3a)에 저장한다.
여기에서 언급된 구동부(3c)는 DVD-RAM을 설정하기 위한 플래터, DVD-RAM을 고정하고 회전시키기 위한 스핀들 모터, DVD-RAM에 기록된 신호를 판독하기 위한 광픽업 및 광픽업을 위한 액튜에이터를 포함한다. 판독 및 기록동작은 이들 구동부의 구성요소를 제어함으로써 달성되나 이러한 제어는 본 발명의 주요부를 구성하는 것은 아니다. 이러한 제어는 공지의 방법을 이용하여 달성될 수 있기 때문에 본 명세서에서 더 이상의 설명은 생략한다.
디스크 액세스부(3)에 의해 DVD-RAM으로부터 판독된 VOB가 점선 (1)로 도시된 바와 같이 출력되면 MPEG 디코더(4)는 이들 VOB를 디코드하여 압축이 해제된 디지털 비디오 데이터와 오디오 신호를 얻는다. MPEG 디코더(4)는 비디오 신호처리부(5)에 압축이 해제된 디지털 비디오 데이터를 출력하고 오디오 신호를 TV 모니터(72)에 출력한다. 비디오 편집동작중에 MPEG 디코더(4)는 비디오 스트림과 오디오 스트림에 대한 디코딩 결과를 도 17의 점선 (2)와 (3)으로 도시된 바와 같이 접속선 C2, C3를 통해 버스(7)에 출력한다. 버스(7)에 출력된 디코딩 결과는 점선 (4)로 나타낸 바와 같이 접속라인 C1을 통해 MPEG 인코더(2)에 출력된다.
비디오 신호 처리부(5)는 MPEG 디코더(4)에 의해 출력된 이미지 데이터를 TV 모니터(72)를 위한 비디오 신호로 변환한다. 외부로부터의 그래픽 데이터 수신시에 비디오 신호 처리부(5)는 그래픽 데이터를 이미지 신호로 변환하고 신호처리를 실행하여 이 이미지 신호를 비디오 신호와 결합한다.
리모콘 신호 수신부(8)는 리모콘 신호를 수신하여 그 신호에 포함된 키코드를 제어부(1)에 알려주므로 제어부(1)는 리모콘(71)의 사용자 조작에 따라 제어를 실행할 수 있다.
(1-4-1-1) MPEG 인코더 2의 내부 구성
도 18은 MPEG 인코더(2)의 구성을 나타낸 블록도이다. 도 18에 도시된 바와 같이 MPEG 인코더(2)는 비디오 인코더(2a), 비디오 인코더(2a)의 출력을 저장하기 위한 비디오 버퍼(2b), 오디오 인코더(2c), 오디오 인코더(2c)의 출력을 저장하기 위한 오디오 버퍼(2d), 비디오 버퍼(2b)내의 인코드된 비디오 스트림과 오디오 버퍼(2d)내의 인코드된 오디오 스트림을 다중화하기 위한 시스템 인코더(2e), MPEG 인코더(2)의 동기클록을 생성시키기 위한 STC(System Time Clock)부(2f) 및 MPEG 인코더(2)의 이들 구성요소를 제어 및 관리하기 위한 인코더 제어부(2g)로 구성된다.
(1-4-1-2) MPEG 디코더(4)의 내부구성
도 19는 MPEG 디코더(4)의 내부 구성도이다. 도 19에 도시된 바와 같이 MPEG 디코더(4)는 디멀티플렉서(4a), 비디오 버퍼(4b), 비디오 디코더(4c), 오디오 버퍼(4d), 오디오 디코더(4e), 재배열 버퍼(reordering buffer)(4f), STC부(4g), 스위치(SW1∼SW4) 및 디코더 제어부(4k)로 구성된다.
디멀티플렉서(4a)는 VOB로부터 판독된 패킷의 헤더를 참조하여 여러가지 팩이 비디오 팩인지 오디오 팩인지를 판단한다. 디멀티플렉서(4a)는 비디오 팩인 것으로 판단된 팩의 비디오 데이터는 비디오 버퍼(4b)에 출력하고 오디오 팩인 것으로 판단된 팩의 오디오 데이터는 오디오 버퍼(4d)에 출력한다.
비디오 버퍼(4b)는 디멀티플렉서(4a)에 의해 출력된 비디오 데이터를 축적하기 위한 버퍼이다. 비디오 버퍼(4b) 내의 화상 데이터 세트는 각각 비디오 버퍼로부터 획득될 때의 그 디코드 시간까지 저장된다.
비디오 디코더(4c)는 그들의 각 디코드 시간에서 비디오 버퍼(4b)로부터의 화상 데이터 세트를 취하여 순간적으로 그 데이터를 디코드한다.
오디오 버퍼(4d)는 디멀티플렉서(4a)에 의해 출력된 오디오 데이터를 축적하기 위한 버퍼이다.
오디오 디코더(4e)는 오디오 버퍼(4d)에 저장된 오디오 데이터를 프레임 단위로 연속적으로 디코드한다. 제어부(10)에 의해 발행된 ADPI(Audio Decoder Pause Information)를 수신할 때 오디오 디코더(4e)는 오디오 프레임 데이터를 처리하기 위한 디코드를 중단한다. ADPI는 현재의 시간이 이음매없는 연결정보에 의해 나타나는 오디오 갭 시작시간 A_STP_PTM에 도달할 때 제어부(1)에 의해 발행된다.
재배열 버퍼(4f)는 그것이 I화상과 P화상을 디코드할 때 비디오 디코더(4c)의 디코딩 결과를 저장하기 위한 버퍼이다. I화상과 P화상에 대한 디코딩 결과가 저장되는 이유는 인코딩 순서는 원래 디스플레이 순서를 재배열함으로써 생성되기 때문이다. 따라서 재배열 버퍼(4f)에 저장된 디코딩 결과의 전에 디스플레이되는 모든 B화상이 디코드된 후, 재배열 버퍼(4f)는 지금까지 기억된 I화상 및 P화상의 디코딩 결과를 NTSC 신호로서 출력한다.
STC부(4g)는 MPEG 디코더(4)에 사용하기 위해 시스템 클록을 나타내는 동기클록을 생성한다.
가산기(4h)는 동기클록에 의해 나타나는 표준클록에 STC_offset를 가산함으로써 생성된 값을 오프셋 표준클록으로서 출력한다. 제어부(1)는 이음매없는 연결정보에 주어진 비디오 프리젠테이션 시작시간 VOB_V_S_PTM과 프리젠테이션 종료시간 VOB_V_E_PTM 사이의 차를 구함으로써 이 STC_offset를 계산하고 그 STC_offset를 가산기(4h)에 설정한다.
스위치 SW1은 디멀티플렉서(4a)에 STC부(4g)에 의해 측정된 표준시간 또는 가산기(4h)에 의해 출력되는 오프셋 표준시간을 공급한다.
스위치 SW2는 오디오 디코더(4e)에 STC부(4g)에 의해 측정된 표준시간 또는 가산기(4h)에 의해 출력되는 오프셋 표준시간을 공급한다. 공급된 표준시간 또는 오프셋 표준시간은 각 오디오 프레임의 디코드 시간과 프리젠테이션 시작시간을 대조하기 위해 사용된다.
스위치 SW3은 비디오 디코더(4c)에 STC부(4g)에 의해 측정된 표준시간 또는 가산기(4h)에 의해 출력되는 오프셋 표준시간을 공급한다. 공급된 표준시간 또는 오프셋 표준시간은 각 화상 데이터 세트의 디코드를 대조하기 위해 사용된다.
스위치 SW4는 재배열 버퍼(4f)에 STC부(4g)에 의해 측정된 표준시간 또는 가산기(4h)에 의해 출력되는 오프셋 표준시간을 공급한다. 공급된 표준시간 또는 오프셋 표준시간은 각 화상 데이터 세트의 프리젠테이션 시작시간을 대조하기 위해 사용된다.
디코더 제어부(4k)는 GOP의 정수배라고 하는 VOBU의 정수배에 대하여 제어부(1)로부터의 디코드 처리요구를 수신하고 디멀티플렉서(4a)로부터 재배열 버퍼(4f)까지의 모든 구성요소에 의해 실행되는 디코드 처리를 갖는다. 또한 디코딩 결과의 재생출력에 대한 유효/무효를 수신할 때, 표시가 유효이면 디코더 제어부(4k)는 비디오 디코더(4c)와 오디오 디코더(4e)의 디코딩 결과를 외부로 출력하며, 표시가 무효이면 비디오 디코더(4c)와 오디오 디코더(4e)의 디코딩 결과가 외부로 출력되는 것이 금지된다.
유효/무효의 표시는 비디오 필드에 대해서 처럼 비디오 스트림에 대해 보다 작은 단위로 주어질 수 있다. 비디오 필드의 단위로 재생출력의 유효부를 나타내는 정보는 유효 재생부 정보라 한다.
(1-4-1-2-1) 스위치 SW1∼SW4의 전환을 위한 타이밍
도 20은 스위치 SW1∼SW4의 전환을 위한 시간의 타이밍도이다. 이 타이밍도는 VOB#1 및 VOB#2의 이음매없는 재생이 실행될 때 스위치 SW1∼SW4의 전환을 나타낸다. 도 20의 상부는 VOB#1과 VOB#2를 구성하는 팩의 열을 나타내나, 중간부는 비디오 프레임을 나타내고 하부는 오디오 프레임을 나타낸다.
스위치 SW1의 전환에 대한 타이밍은 MPEG 디코더(4)에 전송될 팩의 열이 VOB#1로부터 VOB#2로 변경되는 시점이다. 이 시간은 VOB#1의 이음매없는 연결정보에서 Last_SCR로서 표시된다.
스위치 SW2의 전환을 위한 타이밍은 스위치 SW1의 전환 전에 오디오 버퍼(4d)에 저장된 VOB(이것을 VOB#1이라 함)의 모든 오디오 데이터가 디코드되는 시점이다.
스위치 SW3의 전환을 위한 타이밍은 스위치 SW1의 전환 시간(T1)전에 비디오 버퍼(4b)에 저장된 VOB(이것을 VOB#1이라 함)의 모든 비디오 데이터가 디코드되는 시점이다.
스위치 SW4의 전환을 위한 타이밍은 최종 비디오 프레임이 재생되는 VOB#1의 재생되는 동안의 시점이다.
ROM(1e)에 저장된 프로그램은 DVD-RAM에 기록된 2개의 VOB가 이음매없이 재생되도록 하게 하는 모듈을 포함한다.
(1-4-1-2-2) VOB의 이음매없는 처리를 위한 절차
도 21 및 도 22는 AV 파일내의 2개의 VOB를 이음매없이 연결하는 절차를 나타낸 흐름도이다. 도 23의 (a) 및 (b)는 각 비디오 팩에 대한 버퍼상태의 분석을 나타낸다. 도 24의 (a) 및 도 25는 도 22에서 설명된 오디오 프레임 x, x+1, y-1, y, u+1, u+2 및 u+3에 대응하는 오디오 스트림내의 오디오 프레임을 나타낸다.
다음은 VOB의 재인코딩에 관한 설명이다. 도 21의 단계 S102에서 제어부(1)는 선행 VOB의 VOB_V_E_PTM에서 나중 VOB의 VOB_V_S_PTM을 감산하여 STC-offset를 구한다.
단계 S103에서 제어부는 선행 VOB의 First_SCR로부터 선행 VOB의 모든 데이터의 디코드 종료시간까지의 버퍼의 점유에 대한 변화를 분석한다. 도 23의 (a) 및 (b)는 단계 S1013에서 실행되는 버퍼의 점유에 대한 분석처리를 보여준다.
비디오 팩 #1과 비디오 팩 #2가 도 23의 (a)에 도시된 바와 같이 선행 VOB에 포함되면 이들 비디오 팩에 포함된 SCR#1, SCR#2 및 DTS#1이 시간축에 대하여 그려진다. 그 다음에 비디오 팩 #1 및 비디오 팩 #2에 포함된 데이터의 데이터 크기가 계산된다.
비디오 팩 #1의 데이터 크기가 구성될 때까지 팩 헤더내의 비트율 정보와 함께 SCR#1로부터 시작하는 라인이 그래디언트로서 그려진다. 그 다음 비디오 팩 #2의 데이터 크기는 SCR#2로부터 시작하여 구성된다. 다음으로 디코드될 화상 데이터 P1의 데이터 크기는 DTS#1에서 제거된다. 이 화상 데이터 P1의 데이터 크기는 비트스트림을 분석함으로써 얻어진다.
이러한 방식으로 비디오 팩과 화상 데이터의 데이터 크기를 구성한 후, 제 1 SCR로부터 DTS까지의 비디오 버퍼(4b)의 버퍼상태는 그래프로 구성될 수 있다. VOB내의 모든 비디오 데이터와 오디오 데이터에 대해 동일한 절차를 사용함으로써 버퍼의 상태를 나타내는 그래프를 도 23의 (b)에 도시된 바와 같이 얻을 수 있다.
단계 S104에서, 제어부(1)는 나중 VOB에 대하여 단계 S103에서와 동일한 분석을 행하고, 나중 VOB의 First_SCR로부터 나중 VOB의 모든 데이터의 디코드 종료시간 Last_SCR까지의 비디오 버퍼의 점유의 변화를 분석한다.
단계 S105에서, 제어부(1)는 나중 VOB + STC_offset의 First_SCR로부터 선행 VOB의 Last_SCR까지의 비디오 버퍼의 점유 변화를 분석한다. 나중 VOB + STC_offset의 First_SCR로부터 선행 VOB내의 데이터의 Last_SCR까지의 기간은 선행 VOB의 최종 화상 데이터가 아직 비디오 버퍼(4b)에 저장되어 있는 동안 나중 VOB의 제 1 화상 데이터가 비디오 버퍼(4b)에 전달되는 시간이다.
선행 VOB와 나중 VOB의 비디오 데이터가 버퍼에 공존하면 버퍼상태는 도 10의 (c)에 도시된 바와 같을 것이다. 도 10의 (c)에서 비디오 버퍼(4b)는 First_SCR+STC_offset로부터 Last_SCR까지의 기간동안 선행 VOB와 나중 VOB의 비디오 데이터를 저장하며, Bv1+Bv2는 이 기간 동안 비디오 버퍼(4b)의 최고 점유를 나타낸다.
단계 S106에서, 제어부(1)는 선행 VOB의 마지막에 위치된 3개의 VOBU를 판독하도록 디스크 액세스부(3)를 제어한다. 그 다음에 단계 S107에서 제어부(1)는 나중 VOB의 앞에 위치된 3개의 VOBU를 판독하도록 디스크 액세스부(3)를 제어한다.
도 23의 (b)는 단계 S106에서 선행 VOB로부터 판독된 영역을 보여준다. 도 23의 (c)에서 선행 VOB는 VOBU #98∼#105를 포함하므로 VOBU #103∼#105는 마지막으로 디코드될 화상 데이터 V_END를 포함하는 VOBU로서 판독된다. 도 23의 (d)는 단계 S107에서 나중 VOB로부터 판독되는 영역을 나타낸다. 도 23의 (d)에서 선행 VOB는 VOBU #1∼#7을 포함하므로 VOBU #1이 먼저 오면 VOBU #1∼#3이 화상 데이터 V_TOP를 포함하는 VOBU로서 판독된다.
1초 룰에 따르면 1초 이내에 재생될 오디오 데이터와 화상 데이터가 3개의 VOBU를 교차하여 저장되므로 VOB의 시작 및 마지막에 3개의 VOBU를 판독함으로써 단계 S106에서 선행 VOB의 마지막에 위치한 화상 데이터 V_END의 프리젠테이션 종료시간으로부터 1초의 시점과 이 프리젠테이션 종료시간 사이에서 재생될 모든 화상 데이터 및 오디오 데이터가 함께 판독될 수 있다.
또한 단계 S107에서 나중 VOB의 시작에 위치한 화상 데이터 V_TOP의 프리젠테이션 시작시간과 이 프리젠테이션 시작시간 후 1초의 시점 사이에서 재생될 모든 화상 데이터 및 오디오 데이터가 함께 판독될 수 있다. 이 흐름도에서의 판독은 VOBU 단위에 대해 실행되며, 대신 이 판독은 VOBU에 포함된 모든 화상 데이터와 오디오 데이터중에서 1초 내에 재생될 화상 데이터와 오디오 데이터에 대해 실행될 수 있다. 비록 VOBU의 어떤 수도 재인코드되지 않지만 이 실시예에서 1초에 대응하는 VOBU의 수는 3이다. 판독은 이와 달리 1초보다 긴 기간에 재생될 화상 데이터와 오디오 데이터에 대해 실행될 수도 있다.
다음으로, 단계 S108에서 제어부(1)는 디멀티플렉서(4a)를 제어하여 처음부분과 마지막 부분에 대한 VOBU를 비디오 스트림과 오디오 스트림으로 분할하며, 이들 스트림을 디코드하는 비디오 디코더(4c)와 오디오 디코더(4e)를 디코드한다. 정상적인 재생중에 비디오 디코더(4c)와 오디오 디코더(4e)의 디코딩 결과는 비디오 및 오디오로서 출력된다. 그러나 재인코딩이 실행되면 이들 디코딩 결과는 MPEG 인코더(2)에 입력되므로 제어부(1)는 도 17에 점선으로 도시된 화살표 (2)와 (3)에 의해 도시된 바와 같이 버스(7)에 출력되는 디코딩 결과의 비디오 스트림과 오디오 스트림을 갖는다.
디코딩 결과인 비디오 스트림과 오디오 스트림은 버스(7)를 통해 점선 (4)로 도시된 바와 같이 MPEG 인코더(2)에 전송된다.
그 다음에 제어부(1)는 MPEG 인코더(2)에 의해 디코드된 비디오 스트림과 디코드된 오디오 스트림의 재인코드를 위한 코드의 양을 계산한다. 우선, 단계 S109에서 제어부(1)는 버퍼에 축적된 데이터의 양이 선행 VOB와 나중 VOB가 버퍼에 공존할 때 임의의 디코딩 시점에서 버퍼의 상한을 초과하는지의 여부를 판단한다. 본 실시예에서 이것은 단계 S105에서 계산된 값 Bv1+Bv2가 버퍼의 상한을 초과하는지를 판단함으로써 달성된다. 만약 이 값이 상한을 초과하지 않으면 처리는 단계 S112로 진행하고, 그 값이 상한을 초과하면 제어부(1)는 계산된 양으로부터 코드 A의 초과 양을 감산하여 그 결과의 코드 양을 디코드된 VOBU열에 할당한다.
코드의 양이 감소하면 비디오 스트림의 화질이 이들 VOBU의 재생중에 열화된다는 것을 의미한다. 그러나 2개의 VOB를 이음매없이 연결할 때 비디오 버퍼(4b)의 오버플로우가 금지되어야만 하므로 화질을 열화시키는 이러한 방법이 사용된다. 단계 S111에서 제어부(1)는 단계 S110에서 할당된 코드의 양에 따라 비디오 디코더(4c)를 제어하여 비디오 디코더(4c)와 오디오 디코더(4e)의 디코딩 결과를 재인코드한다.
여기에서 MPEG 인코더(2)는 디코드를 실행하여 비디오 데이터내의 화소값을 YUB 좌표계의 디지털 데이터로 변환한다. 이러한 YUB 좌표계의 디지털 데이터는 컬러 TV에 대한 색을 특정하는 신호(휘도 신호(Y), 색 신호(U, V))에 대한 디지털 데이터이며, 비디오 디코더(4c)는 이 디지털 디코더를 재인코딩하여 화상 데이터의 세트를 생성한다. 코드의 양을 할당하기 위해 사용되는 기술은 MPEG2 DIS(Draft International Standard) 테스트 모델 3이다. 코드의 양을 감축시키기 위한 재인코딩은 정량 계수를 대체하는 것과 같은 처리에 의해 달성된다. 초과량 A를 감산한 코드의 양은 나중 VOB에만 또는 선행 VOB에만 할당될 수 있다.
단계 S112에서 제어부(1)는 선행 VOB로부터 얻어지는 오디오 데이터에 대한 디코딩 결과의 어떤 부분이 나중 VOB의 STC_offset + First_SCR을 포함하는 오디오 프레임 x에 대응하는지를 계산한다. 도 24의 (a)에서 그래프는 선행 VOB와 나중 VOB에 대한 버퍼상태를 나타내며, 하부는 선행 VOB로부터 분리된 오디오 데이터의 오디오 프레임과 나중 VOB로부터 분리된 오디오 데이터의 오디오 프레임을 나타낸다. 도 24의 (a)의 하부에서 오디오 프레임의 열은 각 오디오 프레임과 상부의 그래프의 시간축 사이의 대응을 나타낸다. 그래프에서 First_SCR + SCR_offset로 나타낸 점으로부터 인출된 하강선은 선행 VOB에 대한 오디오 프레임열중에서 하나의 오디오 프레임과 교차한다. 이 하강하는 선과 교차하는 오디오 프레임은 오디오 프레임 x이며, 직후에 오는 오디오 프레임은 선행 VOB에 포함된 최종 오디오 데이터이다. 오디오 프레임 x와 x+1은 최종 화상 데이터 V_END의 재생주기 전후 1.0초 시점에 의해 표시되는 주기 동안 재생될 오디오 데이터에 포함되며, 이것은 단계 S105에서 3개의 VOBU에 포함된다.
도 24의 (b)는 First_SCR + STC_offset가 선행 VOB내의 오디오 프레임 경례와 일치하는 경우를 나타낸다. 이 경우에 그 경계 직전의 오디오 프레임은 오디오 프레임 x로 설정된다.
단계 S113에서 제어부(1)는 나중 VOB의 STC_offset+VOB_V_S_PTM을 포함하는 오디오 프레임 y+1을 계산한다. 도 24의 (a)에서 비디오 프리젠테이션 시작시간 VOB_V_S_PTM+STC_offset로부터 인출된 하강선은 나중 VOB의 오디오 프레임 열에서 하나의 오디오 프레임과 교차한다. 이 하강선과 교차하는 오디오 프레임은 오디오 프레임 y+1이다. 여기에서 이전 오디오 프레임 y까지의 오디오 프레임은 선행 VOB에 포함된 원래의 오디오 데이터중에서 편집장치가 실행된 후 아직 사용된 유효한 오디오 프레임이다.
도 24의 (c)는 비디오 프리젠테이션 시작시간 VOB_V_S_PTM+STC_offset가 선행 VOB의 오디오 프레임 경계와 일치하는 경우를 나타낸 것이다. 이 경우에 비디오 프리젠테이션 시작시간 VOB_V_S_PTM+STC_offset 직전의 오디오 프레임이 오디오 프레임 y로서 설정된다.
단계 S114에서 오디오 프레임 x+2로부터 오디오 프레임 y로의 오디오 데이터는 이전의 오디오 데이터로부터 취한다. 도 24의 (a)에서 오디오 프레임 y+1로부터 진행하는 오디오 프레임은 점선으로 도시되어 있으며 이 부분은 VOB에 다중화되지 않은 것을 나타낸다. 나중 VOB로 이동될 오디오 프레임은 선행 VOB에 대한 시간 스탬프에 할당되기 때문에 이들 오디오 프레임은 나중 VOB에 대한 시간 스탬프에 재할당된다.
단계 S115에서 오디오 프레임 y와 y+1 사이의 경계를 포함하는 오디오 프레임 직후의 오디오 프레임 u는 나중 VOB의 오디오 프레임 열로부터 검출된다. 하강 라인이 오디오 프레임 y 및 y+1의 경계로부터 인출되면 이 라인은 나중 VOB의 오디오 프레임 열의 오디오 프레임의 하나와 교차한다. 이 교차된 오디오 프레임 다음의 오디오 프레임은 오디오 프레임 u이다.
도 24의 (d)는 오디오 프레임 y의 프리젠테이션 종료시간이 나중 VOB의 오디오 프레임 경계와 일치하는 경우를 나타낸다. 이 경우에 이 프리젠테이션 종료시간 직후의 오디오 프레임은 오디오 프레임 u로서 설정된다.
단계 S116에서 오디오 프레임 u에 대해 재생될 오디오 데이터가 전방에 배열되는 오디오 데이터 열을 포함하는 오디오 팩 G4가 나중 VOB의 오디오 스트림으로부터 생성된다. 도 24의 (a)에서 오디오 프레임 u에 선행하는 오디오 프레임은 점선으로 나타내며, 점선을 사용하여 도시된 이 오디오 데이터는 나중 VOB에 다중화된다.
상술한 단계 S114∼S116의 결과로서 제 1 오디오 프레임으로부터 오디오 프레임 x+1까지의 오디오 데이터는 선행 VOB에 다중화된다. 오디오 프레임 x+2로부터 오디오 프레임 y까지의 오디오 데이터와 오디오 프레임 u로부터 최종 오디오 프레임까지의 오디오 데이터는 나중 VOB에 다중화된다. 이러한 방식으로 다중화를 실행함으로써 선행 VOB의 마지막의 오디오 데이터에 대한 오디오 프레임은 재생시에 미리 재생될 화상 데이터와 동일한 시간에서 DVD-RAM으로부터 판독된다.
이 시점에서 선행 VOB의 오디오 데이터가 프레임 y만큼 존재하지 않으면(이것을 오디오 데이터가 부족하다고 함), 묵음의 오디오 프레임 데이터가 삽입되어 불충분한 수의 프레임을 보상한다. 동일한 방식으로 나중 VOB의 오디오 데이터가 오디오 프레임 u로부터 시작하여 존재하지 않으면(이것을 오디오 데이터가 부족하다고 함) 묵음 프레임 데이터가 삽입되어 불충분한 수의 프레임을 보상한다.
선행 VOB에서 오디오 프레임 x+2로부터 오디오 프레임 y까지의 오디오 프레임과 나중 VOB에서 오디오 프레임 u로부터 최종 오디오 프레임까지의 오디오 데이터가 나중 VOB에 멀티플렉스되면, AV 동기화에 주의를 기울일 필요가 있다.
도 24의 (a)에 도시된 바와 같이, 재생 갭은 오디오 프레임 y와 오디오 프레임 u 사이에서 발생하며, 다중화가 이 재생 갭에 관계없이 실행되면 동기화의 손실이 발생하여 오디오 프레임 u가 대응하는 비디오 프레임 전에 재생될 것이다.
오디오와 비디오 사이의 이러한 시간 지연이 증가하는 것을 방지하기 위해서는 오디오 프레임 u를 나타내는 시간 스탬프가 오디오 패킷에 할당될 수 있다.
그렇게 하기 위해 단계 S117에서는 패딩-패킷 또는 셔플링 바이트가 오디오 프레임 y의 데이터를 포함하는 팩에 삽입되므로 오디오 프레임 u는 오디오 프레임 y를 저장하는 팩에 저장된다. 결국, 오디오 프레임 u는 다음 팩의 시작에 위치된다.
단계 S118에서 선행 VOB의 마지막에 위치된 VOBU의 열은 선행 VOB의 마지막에 위치된 VOBU로부터 추출된 오디오 데이터 중에서 오디오 프레임 x+1까지 오디오 데이터를 다중화함으로써 생성되고, 비디오 데이터는 재인코드된다.
단계 S119에서, 오디오 프레임 x+2로부터 진행하는 오디오 데이터가 나중 VOB의 시작에 위치된 VOBU로부터 추출된 비디오 데이터와 다중화되어 나중 VOB의 앞에 배열된 VOBU를 생성시킨다.
상세하게는 제어부(1)는 오디오 팩 G3을 가지며, 이것은 오디오 프레임 x+2로부터 오디오 프레임 y까지의 오디오 데이터 열과 Padding_Packet과 오디오 팩 G4를 가지며, 이것은 나중 VOB에서 위를 향하는 오디오 프레임 u로부터의 오디오 데이터 열을 포함하며, 재인코드된 비디오 데이터와 다중화되고, 나중 VOB의 시작에서 배열될 VOBU를 생성하는 스트림 인코더(2e)를 갖는다. 이 다중화의 결과로서 선행 VOB의 오디오 데이터의 마지막에서의 오디오 프레임은 나중 시간에서 재생될 화상 데이터의 세트와 동일한 시간에 DVD-RAM으로부터 판독될 것이다.
도 25는 복수의 오디오 프레임에 대해 재생될 복수의 오디오 데이터 세트를 저장하는 오디오 팩이 복수의 비디오 프레임에 대해 재생될 화상 데이터를 저장하는 비디오 팩과 어떻게 다중화되는지를 보여준다.
도 25에서 나중 VOB의 시작에서 디코드될 화상 데이터 V_TOP의 전송은 기간 Tf_Period내에서 완료된다. 도 25의 이 기간 Tf_Period미만으로 배열된 팩의 열은 화상 데이터 V_TOP를 구성하는 팩을 나타낸다.
도 25에서, 오디오 갭을 포함하는 오디오 팩 G3은 외디오 프레임 x+2, y-1 및 y에 대해 재생될 오디오 데이터 x+2, y-1 및 y의 세트를 저장한다. 이 오디오 팩에 저장된 오디오 데이터 세트중에서 디코드될 첫번째의 것은 오디오 데이터 x+2이다. 오디오 데이터 x+2는 오디오 프레임 x+1의 프리젠테이션 종료시간에서 디코드되며, 오디오 프레임 x+1과 동일한 기간 Tf_Period 동안 팩의 열이 전송되는 화상 데이터 V_TOP와 함께 DVD-RAM으로부터 판독된다. 결국 이 오디오 데이터는 도 25의 하면에 도시된 바와 같이 화상 데이터 V_TOP을 저장한 비디오 팩의 열 P51과 비디오 팩의 열 P52 사이에 삽입된다.
오디오 프레임 u, u+1 및 u+2에 대해 재생될 오디오 데이터 u, u+1, u+2의 세트를 저장하는 오디오 팩 G4에서 오디오 데이터 u가 먼저 디코드된다. 이 오디오 데이터 u는 오디오 프레임 u-1의 프리젠테이션 종료시간에서 디코드되므로 이 오디오 데이터 u는 동일한 기간 동안 팩의 열이 전송되는 화상 데이터 V_NXT와 함께 DVD-RAM으로부터 판독된다. 결국 이 오디오 데이터 u는 도 25의 하면에 도시된 바와 같이 화상 데이터 V_TOP를 저장하는 비디오 팩의 열 P52와 화상 데이터 V_NXT를 저장한 비디오 팩의 열 사이에 삽입된다.
상술한 바와 같이 오디오 갭을 포함하는 오디오 팩 G3은 비디오 팩의 열 P51과 P52 사이에 삽입되나 오디오 팩 G4는 비디오 팩의 열 P52와 P53 사이에 삽입되어 다중화를 완료한다.
그 다음에 단계 S120에서 제어부(1)는 선행 VOB와 나중 VOB의 First_SCR과 Last_SCR, 이음매없는 플래그, VOB_V_E_PTM 및 VOB_V_S_PTM을 선행 VOB에 대한 이음매없는 연결정보에 삽입한다. 단계 S121과 S122에서, 제어부(1)는 오디오 갭 시작시간이라 불리는 A_STP_PTM의 오디오 갭에 관한 모든 정보와, 오디오 갭 위치정보 A_GAP_LOC를 이음매없는 연결정보에 기록한다.
상술한 처리후 제어부(1)는 선행 VOB, 나중 VOB 및 DVD-RAM에 기록된 이음매없는 연결정보를 갖는다.
상술한 재인코드를 통해 얻어진 비디오 데이터와 오디오 데이터를 저장하는 비디오 팩과 오디오 팩은 상승하는 값으로 할당된 SCR이다. 이 할당된 SCR의 초기값은 재인코드될 영역의 시작에 원래 위치된 팩의 SCR 값이다.
SCR은 비디오 버퍼(4b)와 비디오 디코더(4c)에 각각의 오디오 팩과 오디오 팩이 입력되는 시간을 보여주기 때문에 재인코드 전이나 후의 데이터의 양에 변화가 있으면 SCR값을 갱신하는 것이 필수적이다. 그러나 이러한 경우라고 하더라도 나중 VOB의 재인코드된 첫번째 부분이 재인코드되지 않은 나중 VOB의 나머지 부분의 비디오 팩의 SCR 보다 작으면 디코딩 처리가 정확하게 실행될 것이다.
PTS와 DTS는 비디오 프레임과 오디오 프레임에 따라 할당되므로 재인코딩이 실행될 때 그들의 값에 심각한 변화가 없다. 결국 DTS-PTS의 연속성은 재인코딩되지 않은 데이터와 재인코드된 영역의 데이터 사이에서 유지된다.
이음매없이 2개의 VOB를 재생하기 위해 시간 스탬프의 비연속성이 회피되어져야만 한다. 그렇게 하기 위해서 제어부(1)는 SCR의 중복이 나타나는지를 도 22의 단계 S123에서 판단한다. 이 판단이 부정이면(즉, SCR이 중복이 아니면) 도 22의 흐름도의 처리는 종료된다. SCR의 중복이 나타나면 제어부(1)는 SCR 중복을 가지는 팩의 수에 기초하여 초과량 A를 계산하는 단계 S124로 진행한다. 그리고 제어부(1)는 단계 S110으로 복귀하여 이 초과량 A에 대해 반복된 재인코딩에 대해 할당된 코드의 양을 기초하여 재인코딩을 반복한다.
도 17의 화살표 (5)로 나타낸 바와 같이, 도 22의 처리에 의해 새롭게 다중화된 6개의 VOBU는 디스크 액세스부(3)에 출력된다. 이 디스크 액세스부(3)는 DVD-RAM에 VOBU열을 기록한다.
도 21 및 도 22의 흐름도는 2개의 VOB를 이음매없이 연결하는 것을 설명한 것으로 동일한 VOB의 2개 부분을 연결하기 위해 동일한 처리가 사용될 수 있다. 도 6의 (b)에 도시된 예에 대하여 VOBU #2, #4, #6 및 #8을 삭제하면 삭제된 각 부분의 앞에 위치된 VOBU는 도 21 및 도 22의 처리에 의해 삭제된 팩의 다음에 위치된 VOBU에 이음매없이 연결될 수 있다.
다음은 상술한 처리에 의해 이음매없이 연결된 2개의 VOB를 이음매없이 재생하기 위한 재생절차에 대한 설명이다.
사용자가 AV 파일에 기록된 2 이상의 VOB의 이음매없는 재생을 나타내면 제어부(1)는 우선 나중 VOB의 이음매없는 연결정보내의 이음매없는 플래그를 참조한다. 이 이음매없는 플래그가 "온(on)"이면 제어부(1)는 STC_offset를 구할 수 있도록 선행 VOB의 비디오 프리젠테이션 종료시간 VOB_V_E_PTM에서 비디오 프리젠테이션 시작시간 VOB_V_S_PTM을 감산하여 얻은 시간을 설정한다. 제어부(1)는 STC_offset를 STC부(4g)에 의해 측정된 표준시간에 가산하는 가산기(4h)를 구비한다.
그 다음에 이음매없는 연결정보에 의해 표시된 선행 VOB의 버퍼 입력시간 First_SCR은 STC부(4g)에 의해 측정된 표준시간과 비교된다. 표준시간이 이 First_SCR에 도달하면 제어부(1)는 스위치 SW1을 전환하도록 제어하여 STC부(4g)에 의해 출력된 표준시간 대신에 가산기(4h)에 의해 출력된 오프셋 표준시간을 출력하도록 한다. 그 다음 제어부(1)는 도 20의 타이밍 챠트에 따라 스위치 SW2∼SW4의 상태를 전환한다.
본 발명에 따르면 VOB의 처음과 마지막만을 판독 및 재인코딩함으로써 복수의 VOB의 이음매없는 재생이 달성된다. 재인코드된 데이터가 VOB의 처음 및 마지막에 위치된 VOBU이기 때문에 VOB의 재인코딩은 매우 짧은 시간에 달성될 수 있다.
본 실시예는 이음매없는 연결정보가 각 VOB에 대해 관리되는 경우를 설명하고 있으나 VOB의 이음매없는 연결에 필요한 정보는 집합적으로 제공될 수 있다. 일례로서 STC_offset를 계산하기 위해 사용되는 비디오 프리젠테이션 종료시간 VOB_V_E_PTM과 비디오 프리젠테이션 시작시간 VOB_V_S_PTM은 비록 이들이 나중 VOB의 이음매없는 연결정보로서 주어지기는 하지만 VOB정보의 2개의 분리된 VOB정보의 세트로서 설명된다. 그렇게 하면 VOB정보는 선행 VOB의 프리젠테이션 종료시간(PREV_VOB_V_E_PTM)에 대한 정보를 포함하는 것이 바람직하다.
동일한 방식으로 선행 VOB의 최종 SCR(PREV_VOB_LAST_SCR)인 정보가 나중 VOB의 이음매없는 연결정보에 포함되는 것이 바람직하다.
본 실시예에서 DVD 레코더(70)는 종래의(비휴대형) 가정용 VCR의 대용 장치인 것으로서 설명하였으나, DVD-RAM이 컴퓨터용 기록매체로서 사용될 때에도 다음의 시스템 설정이 사용될 수 있다. 디스크 액세스부(3)는 DVD-RAM 드라이브 장치로서 기능하며, SCSI, IDE 및 IEEE1394 표준을 충족시키는 인터페이스를 통해 컴퓨터 버스에 접속될 수 있다.
이러한 경우 DVD 레코더(70)는 제어부(1), MPEG 인코더(2), 디스크 액세스부(3), MPEG 디코더(4), 비디오 신호 처리부(5), 리모콘(71), 버스(7), 리모콘 신호 수신부(8) 및 수신기(9)를 포함한다.
상술한 실시예에서, VOB는 비록 부제에 대한 데이터를 실행길이 인코딩함으로써 생성된 부화상 데이터가 VOB에 다중화되더라도 비디오 스트림과 오디오 스트림의 다중화된 조합인 것으로 기술된다. 또한 화상 데이터의 세트로 구성된 비디오 스트림은 다중화될 수 있다.
더욱이, 상술한 실시예는 VOB가 MPEG 인코더(2)에 의해 디코드된 후, MPEG 디코더(4)에 의해 데이터의 재인코딩이 실행되는 경우를 설명하였다. 그러나 VOB는 재인코딩중에 종래의 디코딩없이 디스크 액세스부(3)로부터 MPEG 인코더(2)로 직접 입력될 수 있다.
본 실시예는 하나의 화상이 하나의 프레임을 사용하는 것으로 설명하고 있으나, 하나의 화상이 1.5프레임을 사용하는 경우, 예컨대 하나의 비디오 스트림에 대해 필름재료와 마찬가지 방식으로 1초당 24프레임의 이미지로 압축된 3:2의 풀다운이 사용되는 경우도 있다.
제 1 실시예(도 21 및 도 22)에서 흐름도로 나타낸 처리모듈 소프트웨어는 기록매체상에 기록되어 배포 및 판매되는 기계어 프로그램에 의해 실현될 수 있다. 이러한 기록매체의 예로서 IC카드, 광디스크 또는 플로피 디스크가 있다. 기록매체에 기록된 기계어 프로그램은 표준 개인 컴퓨터에 설치될 수 있다. 설치된 기계어 프로그램을 실행함으로써 표준 개인 컴퓨터는 본 실시예의 비디오 데이터 편집장치의 기능을 달성할 수 있다.
(제 2 실시예)
제 1 실시예가 이음매없는 연결이 VOB에 대해 실행된다는 전제하에 이루어졌지만 제 2 실시예는 VOB의 복수의 부분의 이음매없는 연결을 설명한다. 제 2 실시예에서, 이들 VOB의 부분은 비디오 필드를 나타내는 시간정보를 사용하여 특정된다. 여기에서 언급되는 비디오 필드는 하나의 비디오 프레임보다 작은 단위이며, 비디오 필드에 대한 시간정보는 비디오 팩의 PTS를 이용하여 표현된다.
비디오 필드에 대한 시간정보를 사용하여 특정된 VOB의 부분들은 셀이라 하고, 이들 셀을 표시하기 위해 사용되는 정보를 셀정보라 한다. 셀정보는 PGC정보내의 하나의 요소로서 RTRW 관리정보에 기록된다. 데이터 구성과 셀정보 및 PGC정보의 생성에 대한 상세한 설명은 제 4 실시예에서 하기로 한다.
도 26은 시작과 종료에 대한 비디오 필드에 의해 표시된 셀의 예시도이다. 도 26에서 시간정보 C_V_S_PTM과 C_V_E_PTM의 세트는 셀의 시작과 종료에서의 비디오 필드를 특정한다.
도 26에서 시간정보 C_V_S_PTM은 현재의 VOB의 하나의 부분을 형성하는 VOBU#100내의 P화상이 재생되는 비디오 필드의 프리젠테이션 시작시간이다. 동일한 방식으로 시간정보 C_V_E_PTM은 동일한 VOB의 하나의 부분을 형성하는 VOBU#105내의 B1 화상이 재생되는 비디오 필드의 프리젠테이션 종료시간이다. 도 26에 도시된 바와 같이 시간정보 C_V_S_PTM과 C_V_E_PTM은 P화상으로부터 B화상으로의 부분을 셀로서 특정한다.
(2-1) GOP의 재구성
VOB의 이음매없는 연결부가 시간정보로 표시되면 제 1 실시예에서 요구되지 않는 2개의 처리를 사용하는 것이 필수적으로 된다. 첫째, GOP의 구성은 시간정보에 의해 표시된 부분을 별개의 VOB로 변환하도록 구성되어야만 한다. 둘째로 GOP의 재구성에 기인한 버퍼점유의 증가가 계산되어야만 한다.
GOP의 재구성은 GOP의 재구성을 변경시키는 처리를 참조하므로 셀로서 표시된 부분이 적절한 디스플레이 순서와 코딩순서를 갖는다.
보다 구체적으로 연결된 부분이 셀정보에 의해 표시되면, 편집경계가 도 28의 (a)에 도시된 바와 같이 VOBU의 중도에 정의되는 경우가 있을 수 있다. 만약 이러한 경우가 있으면 연결될 2개의 셀이 적당한 디스플레이 순서나 코딩순서를 갖지 못한다.
디스플레이 순서와 코딩순서를 수정하기 위해 도 28의 (b)에 도시된 3가지 규칙에 기초한 처리를 사용하여 GOP의 재구성이 실행된다.
선행 셀의 디스플레이 순서에서 최종 화상 데이터가 B화상이면 제 1 규칙에 기초한 처리는 이 화상 데이터를 재인코드하여 P화상(또는 I화상)으로 변환한다. B화상으로 언급되는 전방의 P화상은 코딩순서로 B화상의 앞에 위치된다. 그러나 이 P화상은 편집후 표시되지 않으므로 VOB로부터 삭제된다.
나중 셀의 인코딩 순서에서 제 1 화상 데이터가 P화상이면, 제 2 규칙에 기초한 처리가 이 화상 데이터를 재인코드하여 I화상으로 변환한다.
나중 셀의 디스플레이 순서에서 화상 데이터의 제 1 세트 또는 연속의 세트가 B화상이면, 제 3 규칙에 기초한 처리가 이 화상 데이터를 재인코드하여 이것을 그 디스플레이가 이미 재생된 다른 이미지와의 상관관계에 의존하지 않는 화상으로 변환한다. 이하, 디스플레이될 이미지와의 상관관계에 의존하는 화상데이터로 형성된 이미지를 포워드-B화상(Forward-B picture)이라 한다.
(2-2) 버퍼점유의 증가 계산
어떤 이미지의 화상 타입이 상술한 바와 같이 제 3 법칙에 기초한 처리에 의해 변경되면, 버퍼점유의 증가를 계산하기 위한 처리에서 이들 변환된 화상 데이터 세트의 크기를 계산한다.
상술한 재구성이 선행 셀에 대하여 실행되면 선행 셀의 재구성 순서에서 최종 화상 데이터가 B화상으로부터 P화상 또는 I화상으로 변환되어 이 데이터의 크기를 증가시킨다.
상술한 재구성이 나중의 셀에 대하여 실행되면 최종 셀의 코딩순서의 처음에 위치한 화상 데이터는 P화상으로부터 I화상으로 변환되고 디스플레이 순서의 앞에 위치된 비디오 데이터의 화상 타입은 포워드-B화상으로 변환된다. 이 구성은 또한 데이터의 크기를 증가시킨다.
다음은 화상 타입의 변화에 따르는 데이터 크기의 증가를 계산하는 절차에 대한 설명이다. 도 29의 (a) 및 (b)는 이 절차를 설명하기 위해 사용된다.
도 29의 (a)에서 제 1 셀은 B화상 B3까지 연속한다. 상술한 규칙에 따라 비디오 편집장치는 이 B화상을 P화상 P1로 변환하여야 한다. B화상 B3이 B화상 다음에 재생될 P화상에 종속되면 화상 타입의 변환처리는 종래의 처리에 의해 생성된 P화상 P1'에 P화상 P2의 필수정보를 통합시킨다.
이러한 절차의 관점에서, 비디오 데이터 편집장치는 B화상 B3의 크기와 P화상 P2의 크기의 합을 사용하는 종래의 처리에 의해 획득된 P화상 P1'의 데이터 크기를 계산할 수 있다. 그러나 이 계산방법은 하나의 가능한 방법을 나타낼 뿐이므로 다른 방법도 마찬가지로 가능하다. 계산된 버퍼 점유에 기초하여 재인코딩에 사용하기 위한 코드의 양을 결정함으로써 비디오 데이터 편집장치는 코드의 적당량을 선행 셀과 나중의 셀에 할당할 수 있다.
도 30의 (a)와 (b)는 나중 셀내의 화상 타입을 수반하는 버퍼점유의 증가가 어떻게 계산되는지를 보여준다.
도 30의 (a)에서 B화상 B3으로부터 진행하는 데이터는 나중 VOB에 속한다. 각 셀은 셀의 시작에 대한 디스플레이 시간에 기초하여 결정되므로 B화상 B3은 나중 셀의 디스플레이 순서의 시작에 위치한 화상 데이터이다. 결국 비디오 데이터 편집장치는 상기 주어진 조건에 따라 B화상 B3을 포워드-B화상 B' 로 변환할 필요가 있다. 이 B화상 B3이 이미 재생된 P화상 P2에 종속되면 P화상 P2의 이 정보성분은 화상타입의 변환중에 포워드-B화상 B'에 통합된다.
이러한 절차의 관점에서 비디오 데이터 편집장치는 B화상 B3의 크기와 P화상 P2의 크기의 합을 사용하는 변환처리에 의해 구해진 포워드-B화상 B'의 데이터 크기를 계산할 수 있다.
나중 VOB에 대해서 비디오 편집장치는 코딩순서의 시작에 위치한 화상 데이터의 화상 타입을 변환할 필요가 있다. 도 28의 (a)의 나중 VOB의 디스플레이 순서를 참조함으로써 P화상 P3이 B화상 B3 직후에 디스플레이될 화상 데이터인 것을 알 수 있다. P화상 P3은 B화상 B3의 디코딩이 완료될 때까지 비디오 편집장치의 재배열 버퍼(4f)에 저장되므로, B화상 B3의 디코딩이 실행된 후 디스플레이될 뿐이다. 이러한 방식으로 화상 데이터를 재배열하는 재배열 버퍼(4f)를 가짐으로써 P화상 P3은 P화상 P3이 B화상 B3 다음에 디스플레이되더라도 코딩 순서에서 B화상 B3에 선행한다. 상술한 규칙에 따라 비디오 데이터 편집장치는 코딩순서에서 제 1 화상 데이터로서 검출된 화상 데이터 P3을 I화상으로 변환할 필요가 있다. 이 P화상이 P화상 P3전에 재생된 I화상에 의존하는 정보성분을 가지면 I화상의 이 정보성분은 화상타입의 변환중에 P화상 P3에 통합된다.
이러한 절차의 관점에서, 비디오 데이터 편집장치는 P화상 P3의 크기와 선행하는 I화상의 크기의 합을 사용하는 변환처리에 의해 구해진 I화상 I'의 데이터 크기를 계산할 수 있다. 이러한 방식으로 계산된 버퍼점유에 기초하여 비디오 데이터 편집장치는 재인코딩에 사용될 먼저와 나중 셀에 최적의 코드량을 할당할 수 있다.
(2-3) 셀을 이음매없이 연결하는 절차
도 31 내지 도 33은 2개의 셀을 연결하여 이음매없이 재생하게 하는 절차를 나타낸 흐름도이다. 이들 흐름도의 많은 단계는 용어 "VOB"를 "셀"로 대체한 것을 제외하고는 도 21 및 도 22의 흐름도의 단계와 동일하다. 이들 단계는 제 1 실시예에서와 동일한 참조번호를 가지며 이들의 설명은 생략한다.
도 34는 도 31에 사용된 오디오 프레임 x, 오디오 프레임 x+1, 오디오 프레임 y에 대응하는 오디오 스트림의 오디오 프레임을 나타낸다.
단계 S102에서 제어부(1)는 먼저 재생될 셀(이하, "선행 셀"이라 함)마지막을 특정하는 시간정보와 두번째로 재생될 셀(이하, "나중 셀"이라 함)의 마지막을 특정하는 시간정보를 참조하여 선행 셀의 C_V_E_PTM에서 나중 셀의 C_V_S_PTM을 감산하여 STC-offset를 구한다.
단계 S103에서 제어부(1)는 선행 셀의 First_SCR로부터 선행 셀의 모든 데이터의 디코드 종료시간 Last_SCR까지의 버퍼의 점유에 대한 변화를 분석한다.
단계 S104에서, 제어부(1)는 선행 셀에 대하여 단계 S103에서와 동일한 분석을 행하고, 나중 셀의 First_SCR로부터 나중 셀의 모든 데이터의 디코드 종료시간 Last_SCR까지의 버퍼의 점유의 변화를 분석한다.
단계 S130에서, 제어부(1)는 도 30의 (a) 및 (b)에 도시된 절차에 따라 나중 셀에 대한 화상 타입의 변화를 수반하는 버퍼점유의 증가 α를 계산한다. 단계 S131에서, 제어부(1)는 도 29의 (a) 및 (b)에 도시된 절차에 따라 선행 셀에 대한 화상 타입의 변화를 수반하는 버퍼점유의 증가 β를 계산한다. 단계 S132에서, 제어부(1)는 선행 셀과 나중 셀에 대한 각각의 버퍼 점유에 계산된 증가량 α및 β를 가산한다.
단계 S105에서, 제어부(1)는 나중 셀 + STC_offset의 First_SCR로부터 선행 셀의 Last_SCR까지의 비디오 버퍼의 점유의 변화를 분석한다.
제 1 실시예의 도 10의 (c)에 도시된 바와 같이 비디오 버퍼(4b)의 가장 높은 점유는 선행 셀과 나중 셀에 대한 비디오 데이터가 비디오 버퍼(4b)에 저장되는 기간 동안 구해진다.
단계 S106에서, 제어부(1)는 DVD-RAM으로부터의 선행 셀의 마지막에 위치된 화상 데이터를 포함하는 3개의 VOB를 판독하도록 디스크 액세스부(3)를 제어한다. 그 다음에 단계 S107에서 제어부(1)는 나중 셀의 시작에 위치된 화상 데이터를 포함하는 3개의 VOB를 판독하도록 디스크 액세스부(3)를 제어한다.
도 27의 (a)는 단계 S106에서 선행 셀로부터 판독된 영역을 보여준다. 도 27의 (b)는 선행 셀로서 표시된 VOBU #99∼#105와 함께 VOBU #98∼#107을 포함하는 VOB를 도시한다. 선행 셀에서 마지막에 재생될 화상 데이터가 화상 데이터 Bend이면 이 화상 데이터는 1초룰에 따라 VOBU#103∼VOBU#105의 하나에 포함될 것이므로 VOB#103 내지 VOB#105는 마지막에 재생될 화상 데이터를 포함하는 VOBU열로서 판독된다.
도 27의 (b)에 도시된 VOB는 VOBU#498 내지 VOBU#507을 포함하며 이들 중 VOBU#500 내지 VOBU#506은 나중 셀로서 나타낸다. 이 나중 셀에서 처음으로 표시될 화상 데이터가 화상 데이터 Ptop이면 이 화상 데이터 Ptop는 VOBU#500 내지 VOBU#502에 포함되므로 VOBU#500 내지 VOBU#502는 먼저 디스플레이될 화상 데이터를 포함하는 VOBU로서 판독된다. 이들 VOBU는 화상 데이터 Ptop와 Bend에 종속하는 모든 화상 데이터를 포함하며, 그 외에도 화상 데이터 Ptop와 Bend와 동일한 시간에 재생될 오디오 데이터도 포함한다. 결국 화상타입의 변환을 위해 필요한 모든 화상 데이터가 이 동작에 의해 판독된다.
이 흐름도에서의 판독은 VOBU에 포함된 모든 화상 데이터와 오디오 데이터중에서 비록 판독이 1초 이내에 재생될 화상 데이터와 오디오 데이터에 대해 실행되더라도 VOBU 단위로 실행된다. 본 실시예에서 VOBU의 수는 임의로 사용될 수 있지만 1초의 재생에 대응하는 VOB의 수는 3으로 주어진다. 판독은 이와달리 1초보다 긴 기간에 재생될 화상 데이터와 오디오 데이터에 대해 실행될 수 있다.
이들 판독이 완료된 후, 단계 108에서 제어부(1)는 디멀티플렉서(4a)를 제어하여 선행 셀의 마지막과 나중 셀의 처음에 위치된 VOBU로부터 비디오 데이터와 오디오 데이터를 분리한다.
단계 S109에서 제어부(1)는 버퍼에 축적된 데이터의 양이 선행 셀과 나중 셀이 버퍼에 공존할 때 임의의 디코딩 시점에서 버퍼의 상한을 초과하는지의 여부를 판단한다. 보다 구체적으로 이것은 단계 S105에서 계산된 값 Bv1+Bv2가 버퍼의 상한을 초과하는지를 판단함으로써 달성된다.
만약 이 값이 상한을 초과하지 않으면 처리는 단계 S133으로 진행하나, 그 값이 상한을 초과하면 제어부(1)는 초과된 양 A에 기초하여 코드의 양을 단계 S110에서의 선행 셀과 나중 셀에 할당한다. 이 경우에 실행되는 재인코딩은 선행 VOB와 나중 VOB중의 하나에 대해 실행될 뿐이다. 단계 S111에서 2개의 셀로부터 구해진 비디오 데이터는 단계 S110에서 할당된 코드의 양에 따라 재인코드된다.
단계 S113에서, 나중 셀에서 재인코드된 비디오 데이터에 새롭게 할당된 First_SCR이 구해진다. 나중 셀에서 디스플레이 순서에서 첫번째 화상 데이터와 코딩순서에서 첫번째 화상 데이터는 많은 양의 화상 데이터를 갖는 화상 타입으로 변환되어 값 First_SCR+SCR+STC_offset가 전보다 이른 시간을 나타냄을 알 수 있다.
단계 S112에서, 제어부(1)는 선행 셀로부터 분리된 오디오 데이터중에서 나중 VOB의 비디오 데이터에 새롭게 할당된 First_SCR과 STC_offset의 합을 포함하는 오디오 프레임 x에 대응하는 오디오 데이터를 계산한다. 도 34에서 상부와 하부의 그래프는 각각 선행 셀과 나중 셀의 비디오 데이터에 기인한 버퍼점유의 천이를 나타낸다. 도 34에서 하부의 그래프는 선행 셀로부터 분리된 오디오 데이터의 오디오 프레임을 도시한다.
도 34에서 하부 그래프 밑의 오디오 프레임 열은 그 위에 주어진 그래프의 시간축에 대한 각 오디오 프레임을 나타낸다. 재인코드의 결과로서 구해진 새로운 나중 셀에 대한 버퍼점유는 양 α1만큼 증가한다. 이 양 α1은 단계 S132에서 계산된 증가된 양 α와 다르다. 이 양 α1 때문에 나중의 비디오 데이터에 새롭게 할당된 First_SCR은 이른 시간을 나타낸다.
도 34의 하부 그래프로부터 알 수 있는 바와 같이, First_SCR+STC_offset의 새로운 값은 전보다 이른 시간 Tα1에 위치된다. 도 34에서 First_SCR+STC_offset의 새로운 값으로부터 인출된 하강하는 가이드라인은 선행 셀의 오디오 프레임열의 오디오 프레임과 교차한다. 이 교차된 오디오 프레임은 오디오 프레임 x이며, 다음의 오디오 프레임 x+1은 선행 셀의 최종 오디오 프레임이다.
나중 셀의 새로운 First_SCR과 STC_offset의 합의 값이 이른 시간을 나타내기 때문에 이것은 이른 프레임이 오디오 프레임 x로 표시된다는 것을 의미한다. 결국 나중 셀의 비디오 데이터에 대해 판독이 개시되면 이 비디오 데이터와 함께 선행 셀로부터 판독된 오디오 데이터는 제 1 실시예에서 보다 비교적 크다.
이후에 단계 S113 내지 S119에서의 처리가 실행되므로 스트림 인코더(2e)는 도 25에 도시된 다중화를 실행한다.
그 다음에 단계 120에서 선행 셀과 나중 셀에 대한 First_SCR, Last_SCR, 이음매없는 플래그, C_V_E_PTM 및 C_V_S_PTM이 선행 셀의 이음매없는 연결정보에 삽입된다. 제어부(1)는 단계 S121과 S122에서의 처리를 실행한다. 재인코딩을 통해 구해진 6개의 VOBU에 대한 데이터중에서 3개의 VOBU가 선행 셀의 원래 형성된 부분의 처음(처음 VOBU)에 배열되어 선행 셀의 마지막에 부가된다. 동일하게 이 3개의 VOBU는 나중 셀의 원래 형성된 부분의 마지막(나중 VOBU)에 배열되어 나중 셀의 처음에 삽입된다. 재인코드된 데이터에 주어진 선행 셀 및 나중 셀의 하나가 그것이 취해지는 VOB와 동일한 식별자로 할당되어 관리되는 동안 다른 2개의 셀은 그것이 취해지는 VOB와 다른 식별자로 할당되어 관리된다. 이것은 분할 후에 선행 셀과 나중 셀이 별개의 VOB로서 관리된다는 것을 의미한다. 이것은 선행 셀과 나중 셀 사이의 경계에 연속되지 않는 시간 스탬프의 높은 가능성이 있기 때문이다.
제 1 실시예에서처럼 단계 S123에서, 제어부(1)는 SCR의 값이 연속인지를 판단한다. 판단결과가 연속이면 제어부(1)는 도 31 내지 도 33의 흐름도에서 처리를 종료한다. 판단결과가 연속이 아니면 제어부(1)는 중복 SCR에 주어진 팩의 수에 기초하여 초과량 A를 계산하고. 초과량 A에 기초하여 코드량을 결정하고 단계 S109로 복귀하여 리인코딩을 반복한다.
상술한 처리의 결과로서 셀은 재인코드되며 셀정보에 의해 표시된 셀은 별개의 VOB로서 설정된다. 이것은 새롭게 생성된 VOB에 대한 VOB의 정보가 RTRW 관리파일에 구비될 필요가 있음을 의미한다. 다음은 셀에 대한 이 VOB가 어떻게 정의되는지에 대한 설명이다.
"비디오 스트림 속성정보"는 비록 이 정보가 셀이 취해지는 VOB에 대한 정보와 일치하도록 설정된다고 하더라도 압축모드 정보, TV시스템 정보, 어스펙트비 정보 및 해상도 정보를 포함한다.
"오디오 스트림 속성정보"는 비록 이 정보가 셀이 취해지는 VOB에 대한 정보와 일치하도록 설정된다고 하더라도 인코딩 모드, 동적 범위 제어의 존재/부재, 샘플링 주파수 및 채널수를 포함한다.
"시간 맵표"는 비록 셀이 취해지는 VOB에 대해 주어진 정보의 대응부분이 사용된다 하더라도 VOB를 구성하는 각 VOBU의 크기와 각 VOBU의 디스플레이 기간으로 구성되며, 그 크기와 디스플레이 기간은 재인코드된 VOBU에 대해 보정될 뿐이다.
다음은 단계 S133에서 생성된 "이음매없는 연결정보"의 설명이다. 이 이음매없는 연결정보는 이음매없는 플래그, 비디오 프리젠테이션 시작시간 VOB_V_S_PTM, 비디오 프리젠테이션 종료시간 VOB_V_E_PTM, First_SCR, Last_SCR, 오디오 갭 시작시간 A_STP_PTM 및 오디오 갭 길이 A_GAP_LEN으로 구성된다. 이들 요소는 한번에 하나씩 이음매없는 연결정보에 기록된다.
선행 셀과 나중 셀 사이의 관계가 만족되는 경우에만 다음의 조건 (1) 및 (2)는 "01"로 설정된 이음매없는 플래그이다. 어느 조건도 만족되지 않으면 이음매없는 플래그는 "00"으로 설정된다.
(1) 양 셀은 비디오 속성정보에서 주어진 것과 동일한 비디오 스트림에 대한 디스플레이 방법(NTSC, PAL 등)을 사용하여야만 한다.
(2) 양 셀은 오디오 속성정보에서 주어진 것과 동일한 오디오 스트림에 대한 인코딩 방법(AC-3, MPEG, 선형-PCM)을 사용하여야만 한다.
"비디오 프리젠테이션 시작시간 VOB_V_S_PTM"은 재인코딩후 프리젠테이션 시작시간으로 갱신된다.
"비디오 프리젠테이션 종료시간 VOB_V_E_PTM"은 재인코딩후 프리젠테이션 종료시간으로 갱신된다.
"First_SCR"은 재인코딩후 제 1 팩의 SCR로 갱신된다.
"Last_SCR"은 재인코딩후 최종 팩의 SCR로 갱신된다.
"오디오 갭 시작시간 A_STP_PTM"은 도 34에서 나중 셀로 이동되는 오디오 데이터에 대해 재생될 최종 오디오 프레임인 오디오 프레임 y의 프리젠테이션 종료시간에서 설정된다.
"오디오 갭 길이 A_GAP_LEN"은 도 34에서 나중 셀에 이동되는 오디오 데이터를 이용하여 재생될 최종 오디오 프레임의 프리젠테이션 종료시간으로부터 오디오 프레임 u의 프리젠테이션 종료시간까지의 기간으로서 설정된다.
일단 VOB정보가 상술한 바와 같이 생성되면 이 새로운 VOB정보에 포함된 RTRW 관리파일은 DVD-RAM에 기록된다. 그렇게 함으로써, 셀정보에 의해 표시된 2개의 셀은 이음매없이 재생될 2개의 VOB로서 DVD-RAM에 기록될 수 있다.
상술한 바와 같이 선행 셀의 마지막과 나중 셀의 처음을 단순히 판독하고 재인코딩함으로써 이음매없이 재생될 셀을 갖도록 VOB내의 셀을 처리할 수 있다. 각 셀의 처음과 마지막에 위치된 VOBU만이 재인코드되기 때문에 이 셀의 재인코딩은 매우 짧은 시간에 달성될 수 있다.
본 실시예는 비디오 필드가 셀을 표시할 때 단위로서 사용되는 경우를 설명하고 있으나 비디오 프레임이 대신 사용될 수 있다.
제 1 실시예(도 31 내지 도 33)에서 흐름도로 나타낸 처리모듈 소프트웨어는 기록매체에 기록되어 배포 및 판매되는 기계어 프로그램에 의해 실현될 수 있다. 이러한 기록매체의 예로서 IC카드, 광디스크, 플로피 디스크 등이 있다. 기록매체에 기록된 기계어 프로그램은 표준 개인 컴퓨터에 설치될 수 있다. 설치된 기계어 프로그램을 실행함으로써 표준 개인 컴퓨터는 본 실시예의 비디오 데이터 편집장치의 기능을 달성할 수 있다.
(제 3 실시예)
본 발명의 제 3 실시예는 파일 시스템내의 AV 파일을 관리하고 비디오 편집의 보다 큰 자유도를 가능하게 한다.
(3-1) DVD-RAM의 디렉토리 구조
제 1 실시예의 RTRW 관리파일 및 AV 파일은 ISO/IEC 13346에 부합하는 파일 시스템내에 도 35에 도시된 디렉토리로 배열된다. 도 35에서 타원형은 디렉토리를 나타내고 사각형은 파일을 나타낸다. 루트 디렉토리는 "RTRW"이라 불리는 디렉토리와 "File1.DAT" 및 "File2.DAT"라 불리는 2개의 파일을 포함한다. RTRW 디렉토리는 "Movie1.VOB", "Movie2.VOB" 및 "RTRWM.IFO"라 불리는 3개의 파일을 포함한다.
(3-1-1) 디렉토리 내의 파일 시스템 관리정보
다음은 도 35에 도시된 디렉토리 구조내의 RTRW 관리파일과 AV 파일을 관리하기 위해 사용되는 관리정보에 대한 설명이다. 도 36은 도 35의 디렉토리 구조내의 파일 시스템 관리정보를 나타낸다.
도 36은 도 3의 (d)에 도시된 볼륨영역, 섹터, 계층에서의 섹터의 저장된 내용을 나타낸다. 이 도면에서 화살표 ①∼⑦은 파일 "Movie1.VOB"의 저장위치가 현재의 관리정보에 의해 특정되는 순서를 나타낸다.
도 36의 계층에서 제 1 레벨은 도 3의 (d)의 볼륨영역을 나타낸다.
계층에서의 제 2 레벨은 전체의 관리정보중에서 파일 설정 서술자, 종료 서술자 및 파일 엔트리, 디렉토리를 나타낸다. 이 제 2 레벨에 관한 정보는 ISO/IEC 13346 하에서 표준화된 파일 시스템과 부합한다. ISO/IEC 13346 하에서 표준화된 파일 시스템은 계층내의 디렉토리를 관리한다.
도 36에서의 관리정보는 디렉토리 구조에 따라 배열된다. 그러나 기록영역은 AV 파일 "Movie1.VOB"에 대해 나타나 있을 뿐이다.
제 2 레벨에 대한 파일 설정 서술자(LBN 80)는 루트 디렉토리에 대한 파일 엔트리를 저장하는 섹터의 LBN과 같은 정보를 나타낸다. 종료 서술자(LBN 81)는 파일 설정 서술자의 종료를 나타낸다.
파일 엔트리(LBN 82, 584, 3585 등)는 각 파일에 대하여 저장되며 파일이나 디렉토리에 대한 저장위치를 나타낸다. 파일에 대한 파일 엔트리와 디렉토리에 대한 파일 엔트리는 동일한 포맷을 가지므로 계층 디렉토리가 자유롭게 구성될 수 있다.
파일 엔트리(LBN 83, 584, 3585 등)는 파일의 파일 엔트리나 디렉토리에 포함된 디텍토리에 대한 저장위치를 나타낸다.
3개의 파일 엔트리와 2개의 디렉토리가 계층내의 제 3 레벨에 나타나 있다. 파일 엔트리와 디렉토리는 파일 시스템에 의해 추적되며 특정 파일의 저장위치를 디렉토리 구조내의 계층의 구성에 관계없이 표시되게 하여주는 데이터 구조를 갖는다.
각 파일 엔트리는 파일이나 디렉토리의 저장위치를 보여주는 할당 서술자를 포함한다. 각 파일에 기록된 데이터가 복수의 익스텐트(extent)로 분할되면 파일 엔트리는 각 익스텐트에 대한 복수의 할당 서술자를 포함한다.
여기에서 용어 "익스텐트(extent)"는 연속영역에 저장된 파일에 포함된 데이터의 부분이다. 예컨대 AV 파일에 기록될 VOB의 크기는 크지만 VOB를 저장하기 위한 연속영역은 없으며, AV 파일은 DVD-RAM에 기록될 수 없다.
그러나, 파티션 영역을 가로질러 분포된 복수의 작은 연속영역이 있으면, AV 파일에 기록될 VOB를 분할함으로써 VOB의 분할될 부분은 분포된 연속영역에 저장될 수 있다.
이러한 방식으로 VOB를 분할함으로써 연속영역의 수와 파티션 영역의 길이가 제한된 경우에도 AV 파일과 같은 VOB를 저장할 수 있는 가능성이 증가한다. DVD-RAM에 데이터가 저장되는 효율성을 향상시키기 위해 하나의 AV 파일에 기록된 VOB는 복수의 익스텐트로 분할되며, 이들 익스텐트는 익스텐트의 순서에 관계없이 디스크상의 별개의 연속 영역에 기록된다.
여기에서 용어 "연속영역(consecutive regions)"은 논리적 또는 물리적으로 연속인 ECC 블록으로 구성된 영역을 말한다.
일례로서 도 36에서 LBN 82와 584를 갖는 파일 엔트리는 각각 단일 할당 서술자를 포함하며, 이것은 파일이 복수의 익스텐트로 분할되지 않는다는 것을 의미한다(즉, 단일 익스텐트로 구성된다.). 한편 파일 엔트리 3585는 2개의 할당 서술자를 구비하며 이것은 파일에 저장될 데이터가 2개의 익스텐트로 구성된다는 것을 의미한다.
각 디렉토리는 그 디렉토리에 포함된 각 디렉토리와 각 파일에 대한 파일 엔트리의 저장위치를 나타내는 파일 식별 서술자를 포함한다. 파일 엔트리와 디렉토리를 통해 경로설정을 추적하면 파일 "root/video/Movie.VOB"의 저장위치는 파일 설정 서술자로서 주어진 다음의 순서에 의해 찾을 수 있다. →①→파일 엔트리(루트)→②→디렉토리(루트)→③→파일 엔트리(RTRW)→④→디렉토리(RTRW)→⑤→파일 엔트리(Movie.VOB)→⑥⑦→파일(Movie1.VOB의 익스텐트 #1과 #2).
도 37은 디렉토리 구조를 추적하는 다른 포맷에서 이 경로상의 파일 엔트리와 디렉토리 사이의 연결관계를 나타낸다. 이 도면에서 경로설정에 사용된 디렉토리는 모디렉토리(parent directory)의 디렉토리(루트의 모는 루트 그 자체임), RTRW 디렉토리, File1.DAT 파일 및 File2.DAT 파일에 대한 파일식별 서술자를 포함한다. RTRW 디렉토리는 모디렉토리(루트)의 디렉토리, RTRW 디렉토리, Movie1.VOB 파일, Movie2.VOB 파일 및 RTRWM.IFO 파일의 각각에 대한 파일식별 서술자를 포함한다. 동일한 방식으로 Movie1.VOB의 저장위치는 경로 ①∼⑥⑦을 추적함으로써 특정된다.
(3-1-2) 파일 엔트리의 데이터 구조
도 38의 (a)는 파일 엔트리의 데이터 구조를 보다 상세히 도시한 도면이다. 도 38의 (a)에 도시된 바와 같이 파일 엔트리는 서술자 태그, ICB 태그, 할당 서술자 길이, 확장 속성 및 할당 서술자를 포함한다. 이 도면에서 기호 "BP"는 "비트 위치(bit position)"를 나타내고, "RBP"는 "상대 비트위치(relative bit position)"를 나타낸다.
서술자 태그는 현재의 엔트리가 파일 엔트리임을 나타내는 태그이다. DVD-RAM에 있어서 파일 엔트리 서술자 및 스페이스 비트맵 서술자와 같은 다양한 태그가 사용된다. 파일 엔트리에 있어서 값 "261"은 파일 엔트리를 나타내는 서술자 태그로서 사용된다.
ICB 태그는 파일 엔트리 자체에 대한 속성정보를 나타낸다.
확장된 속성은 파일 엔트리내의 속성 정보 필드에 의해 특정된 내용보다 높은 레벨의 내용을 갖는 속성들을 보여주는 정보이다.
확장 서술자 필드는 파일을 구성하는 익스텐트가 있는 많은 할당 서술자를 저장한다. 각 할당 서술자는 파일이나 디렉토리에 대한 익스텐트의 저장위치를 나타내는 논리블록을 나타낸다. 할당 서술자의 데이터 구조는 도 38의 (b)에 도시되어 있다.
도 38의 (b)에서 할당 서술자는 익스텐트 길이를 나타내는 데이터와 익스텐트의 저장위치를 나타내는 논리블록번호를 포함한다. 그러나 익스텐트 길이를 표시하는 최상위의 데이터 2비트는 익스텐트 저장영역의 저장상태를 나타낸다. 각종 값의 의미는 도 38의 (c)에 나타냈다.
(3-1-3) 디렉토리와 파일에 대한 파일 식별 서술자의 데이터 구조
도 39의 (a)와 (b)는 다양한 디렉토리내의 디렉토리와 파일에 대한 파일 식별 서술자의 데이터 구조를 상세히 나타낸 도면이다. 이들 2종류의 파일 식별 서술자는 동일한 포맷을 가지며 각각은 관리정보, 식별정보, 디렉토리명 길이, 디렉토리나 파일에 대한 파일 엔트리를 저장하는 논리적 블록번호를 나타내는 어드레스, 확장정보 및 디렉토리명을 포함한다. 이러한 방식으로 파일 엔트리의 어드레스는 디렉토리명 또는 파일명과 연관된다.
(3-1-4) AV 블록의 최소 크기
AV 파일에 기록될 VOB가 복수의 익스텐트로 분할되면, 각 익스텐트의 데이터 길이는 AV 블록의 데이터 길이를 초과하여야 한다. 여기에서 용어 "AV 블록"은 DVD-RAM으로부터 VOB를 판독할 때 트랙버퍼(3a)에 대한 언더플로우의 위험성이 있는 데이터의 최소량을 말한다.
연속재생을 보증하기 위해 AV 블록의 최소 크기는 재생장치에 제공된 트랙버퍼와 관련하여 정의된다. 다음의 설명은 AV 블록의 최소크기가 어떻게 구해지는지에 관한 것이다.
(3-1-5) AV 블록영역의 최소크기
우선, 인터럽트되지 않는 재생을 위한 AV 블록의 최소크기를 결정하는데 필요한 배경이론을 설명한다.
도 40은 비디오 오브젝트 버퍼를 재생하는 재생장치가 AV 데이터를 트랙버퍼에서 DVD-RAM으로부터 어떻게 판독하는지의 모델을 나타내고 있다. 이 모델은 인터럽트되지 않은 재생을 보증하기 위한 재생장치의 최소 요구조건을 보여준다.
도 40의 상부에서 재생장치는 DVD-RAM로부터 판독된 AV 데이터를 ECC 처리하여 그 결과 데이터를 FIFO 메모리인 트랙버퍼에 일시 보관한 다음, 트랙버퍼로부터 그 데이터를 디코더에 출력한다. 예시된 실시예에서, Vr은 트랙버퍼의 입력 전송속도(또는 데이터가 광디스크로부터 판독되는 속도)이고, Vo는 트랙버퍼의 출력 전송속도(디코더 입력속도)이며, Vr>Vo이다. 이 모델에서 Vr=11Mbps이다.
도 40의 하부는 현재의 모델에 있어서 트랙버퍼에서 데이터량의 변화를 나타내는 그래프이다. 이 그래프에서 수직축은 버퍼의 데이터량을 나타내고, 수평축은 시간을 나타낸다. 이 그래프는 결함섹터를 포함하는 AV 블록 #k가 결함섹터를 포함하지 않는 AV 블록 #j 다음에 판독되는 것으로 가정한다.
시간축에 도시된 기간 T1은 결함섹터를 포함하지 않은 AV 블록 #j의 모든 AV 데이터를 판독하기 위해 필요한 시간을 나타낸다. 이 기간 T1 동안 트랙버퍼내의 데이터량은 Vr-Vo의 속도로 증가한다.
기간 T2(이하 "점프기간"이라 함)는 AV 블록#j로부터 AV 블록 #k까지의 광픽업에 의해 요구되는 시간을 나타낸다. 이 점프기간은 광픽업에 대한 탐색시간과 안정화를 위해 광디스크의 회전에 걸리는 시간을 포함한다. 광디스크의 내주부로부터 외주부로 점프하는 최악의 시나리오의 경우에는 점프시간이 이 모델에 있어서 약 1500밀리초로 추정된다. 점프기간 T2 동안 트랙버퍼의 데이터량은 Vo의 속도로 감속된다. 기간 T3에서 T5는 결함 섹터를 포함하는 AV 블록 #k에서 모든 AV 데이터를 판독하기 위해 취해지는 시간이다.
이들 기간중 기간 T4는 결함섹터를 포함하는 현재의 ECC 블록으로부터 다음 ECC 블록까지 스킵하는데 걸리는 시간을 나타낸다. 이 스킵동작은 16개의 섹터중 하나 이상이 결함이 있으면 현재의 ECC 블록을 스킵하고 다음의 ECC 블록으로 점프한다. 이것은 AV 블록내에서는 단순히 ECC 블록내의 각 결함섹터를 대체섹터(또는 대체 ECC 블록)로 논리적으로 대체하는 대신에 결함섹터를 갖는 각 ECC 블록(모두 16섹터)의 사용을 중단한다는 것을 의미한다. 이 방법을 ECC 블록 스킵방법이라 한다. 기간 T4는 나쁜 경우의 시나리오로서 디스크 1회전 동안 걸리는 시간인 디스크 회전 대기시간이다. 이것은 본 모델에 대해서는 약 105밀리초이다. 기간 T3과 T5에서 버퍼의 데이터량은 Vr-Vo의 속도로 증가하나 기간 T4 동안에는 그 양은 속도 Vo로 감소한다.
"N_ecc"는 AV 블록내의 ECC 블록의 총수를 나타내고, AV 블록의 크기는 식 "N_ecc*8*2048"비트로 주어진다. 연속재생이 실행되는 것을 보증하기 위해 N_ecc의 최소값은 후술하는 바와 같이 구해진다.
기간 T2에서 AV 데이터는 AV 데이터의 동시 보충없이 트랙버퍼로부터 판독될 뿐이다. 이 기간 T2 동안, 버퍼내의 데이터량은 0이고, 디코더에서는 언더플로우가 발생한다. 이러한 경우에 AV 데이터의 인터럽트되지 않은 재생은 보증될 수 없다. 결국 하기의 수학식 1에 나타낸 바와 같은 관계가 AV 데이터의 인터럽트되지 않은 재생을 보증하기 위해(즉, 언더플로우가 발생하지 않도록 보증하기 위해) 만족될 필요가 있다.
(버퍼링된 데이터량 B)≥(소비된 데이터량 R)
버퍼링된 데이터량 B는 기간 T1의 마지막에서 버퍼에 저장된 데이터의 양이다. 소비된 데이터량 R은 기간 T2 동안 판독된 데이터의 총량이다.
버퍼링된 데이터량 B는 다음의 수학식 2로 주어진다.
소비된 데이터량 R은 다음의 수학식 3으로 주어진다.
(소비된 데이터량 R)=T2*Vo
수학식 2와 수학식 3을 수학식 1의 양변에 대입하면 다음의 수학식 4를 얻는다.
(N_ecc*16*8*2048)*(1-Vo/Vr)>T2*Vo
수학식 4를 재배열함으로써 연속재생을 보증하는 ECC 블록의 수 N_ecc가 다음의 수학식 5를 만족시켜야 한다는 것을 알 수 있다.
N_ecc>T2*Vo/((16*8*2048)*(1-Vo/Vr))
수학식 5에서, T2는 최대 1.5초를 갖는 상술한 점프기간이다. Vr은 도 40의 상부의 모델에 대하여 11Mbps의 고정값을 갖는다. Vo는 ECC 블록의 수 N_ecc를 포함하는 AV 블록의 가변 비트율을 취하여 다음의 수학식 6에 의해 표현된다. Vo는 트랙버퍼로부터 출력에 대한 논리적 전송속도의 최대값이 아니라 다음의 수학식 6에 의해 주어지며 디코더로의 AV 데이터의 가변속도의 유효한 입력속도이다. 여기에서 블록길이는 N_ecc Ecc 블록으로 구성되는 AV 블록에서의 팩의 수 N_pack으로 주어진다((N_ecc-1)*16<N_pack≤N_ecc*16).
상술한 식에서, SCR_first_next는 다음 AV 블록내의 제 1 팩의 SCR이며, SCR_first_current는 현재의 AV 블록내의 제 1 팩이다. 각 SCR은 대응 팩이 트랙버퍼로부터 디코더로 출력되는 시간을 나타낸다. SCR에 대한 단위는 1/27메가초이다.
상술한 수학식 5와 수학식 6에 나타낸 바와 같이, AV 블록의 최소크기는 AV 데이터의 실제 비트율에 따라 이론적으로 계산될 수 있다.
수학식 5는 결함 섹터가 광디스크에 존재하지 않는 경우에 적용된다. 이러한 섹터가 존재하면 인터럽트되지 않은 재생을 보증하기 위해 필요한 ECC 블록의 수 Necc는 이하에 설명하는 바와 같다.
여기에서 AV 블록 영역은 결함섹터를 갖는 ECC 블록을 포함하며, 그 수는 "dN_ecc"로 나타낸다. 상술한 ECC 블록 스킵에 기인한 dN_ECC 결함 ECC 블록에는 어떠한 AV 데이터도 기록되지 않는다. dN_ecc 결함 ECC 블록을 스킵함으로써 발생되는 손실시간 Ts는 "T4*dN ecc"로 나타내며, 여기에서 "T4"는 도 40에 도시된 모델에 대한 ECC 블록 스킵시간을 나타낸다.
결함섹터가 포함될 때 AV 데이터의 인터럽트되지 않은 AV 데이터의 재생을 보증하기 위해 AV 블록영역은 수학식 7로 나타낸 바와 같은 ECC 블록의 수를 포함할 필요가 있다.
N_ecc≥dN_ecc+Vo*(Tj+Ts)/((16*8*2048)*(1-Vo/Vr))
상술한 바와 같이 AV 블록영역의 크기는 결합섹터가 존재하지 않을 때 수학식 5로부터 계산되고, 결함섹터가 존재할 때에는 수학식 7로부터 계산된다.
AV 데이터가 복수의 AV 블록으로 구성되면 처음 및 최종 AV 블록은 수학식 5또는 수학식 7을 만족시킬 필요가 없다. 이것은 처음 AV 블록에 대해 디코딩이 시작되는 시간이 지연될 수 있기 때문이다. 즉 디코드될 데이터의 공급이 충분한 데이터가 버퍼에 축적될 때까지 지연되어 처음 및 최종 AV 블록 사이에서 인터럽트되지 않은 재생을 보증한다. 최종 AV 블록은 임의의 특정 AV 데이터 특정 AV 데이터에 뒤따르지 않으며, 이것은 재생이 이 최종 AV 블록과 함께 단순히 종료될 수 있다는 것을 의미한다.
(3-2) DVD 레코더(70)의 기능블록
도 41은 기능이 분할된 DVD 레코더(70)의 구성을 도시한 기능 블록도이다. 도 41의 각 기능은 도 17에 도시된 하드웨어를 제어하도록 ROM(1e)의 프로그램을 실행하는 제어부내의 CPU(1a)에 의해 실현된다.
도 41의 DVD 플레이어는 디스크 기록부(100), 디스크 판독부(101), 공통파일 시스템부(10), AV 파일 시스템부(11), 기록-편집-재생제어부(12), AV 데이터 기록부(13), AV 데이터 재생부(14) 및 AV 데이터 편집부(15)를 포함한다.
(3-2-1) 디스크 기록부(100)-디스크 판독부(101)
디스크 기록부(100)는 다음과 같이 동작한다. 기록이 시작되는 논리섹터의 입력과 공통파일 시스템(10)과 AV 파일 시스템부(11)로부터 기록될 데이터를 수신할 때 디스크 기록부(100)는 광픽업을 적절한 논리 섹터 번호로 이동시키며 디스크상의 표시된 섹터에 ECC 블록단위(16 섹터)의 광픽업 기록 데이터를 갖는다. 기록될 데이터의 양이 16섹터 미만이면 디스크 기록부(100)는 먼저 데이터를 판독하고 그것을 ECC 처리하여, 디스크상에 ECC 블록으로서 기록한다.
디스크 판독부(101)는 다음과 같이 동작한다. 데이터가 판독될 논리적 섹터번호의 입력과, 공통파일 시스템부(10)와 AV 파일 시스템부(11)로부터의 섹터번호를 수신할 때 디스크 판독부(101)는 광픽업을 적절한 논리섹터로 이동시키며, 광픽업으로 하여금 표시된 논리섹터로부터 ECC 블록단위로 데이터를 판독하도록 한다. 디스크 판독부(101)는 판독 데이터에 대해 실행된 ECC 처리를 가지며 요구되는 섹터 데이터만을 공통파일 시스템부(10)에 전송한다. 디스크 기록부(100)와 마찬가지로 디스크 판독부(101)는 각각의 ECC 블록에 대해 16개 섹터의 단위로 VOB를 판독하여 오버헤드(overhead)를 감축시킨다.
(3-2-2) 공통파일 시스템부(10)
공통파일 시스템부(10)는 기록편집 재생제어부(12), AV 데이터 기록부(13), AV 데이터 재생부(14), AV 데이터 편집부(15)에 ISO/IEC 13346 규정하에서 표준화된 데이터 포맷을 액세스하기 위한 표준기능을 제공한다. 공통파일 시스템부(10)에 의해 제공되는 이들 표준 기능은 디스크 기록부(100)와 디스크 판독부(101)를 제어하여 디렉토리 단위 및 파일 단위로 DVD-RAM에 대한 판독이나 기록을 행한다.
공통파일 시스템부(10)에 의해 제공되는 표준기능의 대표적인 예는 다음과 같다.
1. 디스크 기록부(100)가 파일 엔트리를 기록하여, 기록편집 재생 제어부(12), AV 데이터 기록부(13), AV 데이터 재생부(14) 및 AV 데이터 편집부 (15)에 파일 식별 서술자를 출력하게 한다.
2. 하나의 파일을 포함하는 디스크상의 기록영역을 빈 영역으로 변환한다.
3. DVD-RAM으로부터 특정된 파일의 파일 식별 서술자를 판독하도록 디스크 판독부(101)를 제어한다.
4. 메모리에 존재하는 기록 메모리를 디스크상에 비AV 파일로서 기록하도록 디스크 기록부(100)를 제어한다.
5. 디스크상에 기록된 파일을 구성하는 익스텐트를 판독하도록 디스크 판독부(101)를 제어한다.
6. 파일을 구성하는 익스텐트의 원하는 위치에 광픽업을 이동시키도록 디스크 판독부(101)를 제어한다.
이들 (1) 내지 (6)의 기능의 어느 하나를 사용하기 위해서는 기록-편집-재생 제어부(12)에서 AV 데이터 편집부(15)까지는 판독되거나 기록될 파일을 파라미터로서 나타내도록 공통파일 시스템부(10)에 명령을 발행할 수 있다. 이러한 명령을 공통파일 시스템 지향 명령이라 한다.
"(1)생성", "(2)삭제", "(3)개/폐", "(4)기록", "(5)판독", "(6)탐색" 등의 다양한 종류의 공통파일 시스템 지향 명령이 이용가능하다. 이러한 명령은 각각 기능 (1) 내지 (6)에 각각 할당된다.
본 실시예에서, 표준기능에 대한 명령의 할당은 다음과 같다. 기능 (1)을 사용하기 위해 기록-편집-재생 제어부(12)에서 AV 데이터 편집부(15)까지는 공통파일 시스템부(10)에 "생성"명령을 발행한다. 기능 (2)를 사용하기 위해 기록-편집-재생 제어부(12)에서 AV 데이터 편집부(15)까지는 공통파일 시스템부(10)에 "삭제"명령을 발행한다. 동일한 방식으로 기능 (3), (4), (5) 및 (6)을 이용하기 위해서는 기록-편집-재생 제어부(12)에서 AV 데이터 편집부(15)까지는 공통파일 시스템부(10)에 "개/폐", "기록", "판독" 또는 "탐색"명령을 발행한다.
(3-2-3) AV 파일 시스템부(11)
AV 파일 시스템부(11)는 AV 데이터 기록부(13), AV 데이터 재생부(14) 및 AV 데이터 편집부(15)에 AV 파일을 기록하거나 편집할 때 필수적인 확장기능을 제공한다. 이들 확장기능은 공통파일 시스템부(10)에 의해 제공될 수 없다.
다음은 이들 확장 기능의 대표적인 예를 나타낸 것이다.
(7) MPEG 인코더(2)에 의해 인코드된 VOB를 AV 파일로서 DVD-RAM에 기록한다.
(8) AV 파일에 기록된 VOB의 표시된 부분을 잘라내어 그 부분을 다른 파일로서 설정한다.
(9) AV 파일에 기록된 VOB의 표시된 부분을 소거한다.
(10) 제 1 및 제 2 실시예의 절차에 따라 재인코드된 VOBU와 DVD-RAM에 존재하는 2개의 AV 파일을 연결한다.
확장기능 (7) 내지 (10)을 사용하기 위해서는 기록-편집-재생 제어부(12)에서 AV 데이터 편집부(15)까지는 기록되거나, 연결되거나 또는 잘라 낼 파일을 나타내도록 공통파일 시스템부(10)에 명령을 발행한다. 이러한 명령은 AV 파일 시스템 지향 명령이라 한다. 여기에서 AV 파일 시스템 지향 명령인 "AV-기록", "분할", "단축" 및 "병합" 등의 명령이 이용가능하며, 이들은 각각 기능 (7) 내지 (10)에 할당된다.
본 실시예에서, 확장 기능에 대한 명령의 할당은 다음과 같다. 기능 (7)을 사용하기 위해 AV 데이터 기록부(13)에서 AV 데이터 편집부(15)까지는 AV기록명령을 발행한다. 기능 (8)을 사용하기 위해 AV 데이터 기록부(13)에서 AV 데이터 편집부(15)까지는 분할명령을 발행한다. 마찬가지로, 기능 (9) 및 (10)을 사용하기 위해 AV 데이터 기록부(13)에서 AV 데이터 편집부(15)까지는 "단축" 또는 "병합" 명령을 발행한다. 기능(10)으로 연결후의 파일의 익스텐트는 AV 블록과 같게 되거나 길어진다.
(3-2-4) 기록-편집-재생 제어부(12)
기록-편집-재생 제어부(12)는 디렉토리명을 나타내는 개/폐명령을 파라미터로서 공통파일 시스템부(10)에 발행하며, 그렇게 함으로써 공통파일 시스템부(10)에게 DVD-RAM으로부터의 복수의 파일 식별 서술자를 판독하게 한다. 그리고 기록-편집-재생 제어부(12)는 파일 식별 서술자로부터 DVD-RAM의 디렉토리 구조를 분석하여 동작될 파일이나 디렉토리의 사용자 식별을 수신한다.
목표파일이나 디렉토리의 사용자 식별을 수신할 때 기록-편집-재생 제어부 (12)는 리모콘 신호 수신부(8)에 의해 통지된 사용자 조작에 기초하여 원하는 동작의 내용을 식별하고, AV 데이터 기록부(13), AV 데이터 재생부(14) 및 AV 데이터 편집부(15)가 동작목표로서 표시된 파일이나 디렉토리에 대해 적절한 처리를 실행하도록 명령을 발행한다.
사용자가 동작목표를 표시하도록 하기 위해 기록-편집-재생 제어부(12)는 현재 디스크상의 디렉토리 구조, AV 파일의 총수 및 빈 영역의 데이터 크기를 시각적으로 나타내주는 그래픽 데이터를 비디오 신호 처리부(5)에 출력한다. 비디오 신호 처리부(5)는 이 그래픽 데이터를 이미지 신호로 변환하여 TV 모니터(72)상에 표시되게 해준다.
도 42는 기록-편집-재생 제어부(12)의 제어하에 TV 모니터(72)에 재생될 그래픽 데이터의 예를 도시한 것이다. 이 그래픽 데이터의 디스플레이중에 임의의 파일이나 디렉토리의 디스플레이 색은 가능한 동작목표를 보여주도록 변경될 수 있다. 이러한 색의 변화는 사용자의 주의를 집중하도록 이용되며 "집중상태"라고 한다. 정상적인 색을 사용하는 디스플레이는 "정상상태"라고 한다.
사용자가 리모콘(71) 상의 표시키를 누르면 현재 집중상태에 있는 파일이나 디렉토리의 디스플레이는 정상상태로 복귀하며, 새로 표시된 다른 파일이나 디렉토리는 집중상태로 표시된다. 파일이나 디렉토리 중의 어느 하나가 집중상태이면 기록-편집-재생 제어부(12)는 사용자가 리모콘(71)의 확인 키를 누르기를 기다린다.
사용자가 엔터키를 누르면, 기록-편집-재생 제어부(12)는 현재 집중상태에 있는 파일이나 디렉토리를 가능한 동작목표로서 확인한다. 이러한 방식으로 기록-편집-재생 제어부(12)는 동작목표인 파일이나 디렉토리를 식별할 수 있다.
그러나 동작내용을 식별하기 위해 기록-편집-재생 제어부(12)는 무슨 동작내용이 리모콘 신호 수신부(8)로부터 수신된 키코드에 할당되었는지를 결정한다. 도 41의 좌측에 도시된 바와 같이 리모콘(71)에는 "PLAY(플레이)", "REWIND(되감기)", "STOP(정지)", "FAST FORWARD(빨리감기)", "RECORD(기록)", "MARK(마크)", "VIRTUAL EDIT(가상편집)", "REAL EDIT(실제편집)"의 키가 있다. 이러한 방식으로 기록-편집-재생 제어부(12)는 리모콘 신호 수신부(8)로부터 수신된 키코드에 따라 사용자에 의해 표시된 동작내용을 식별한다.
(3-2-4-1) 기록-편집-재생 제어부(12)에 의해 수신될 수 있는 동작내용
동작내용은 종래의 가정용 AV 장치에 구비된 동작내용과 비디오 편집을 위해 특별히 구비된 동작내용으로 분류된다. 특정 예로서 "PLAY(플레이)", "REWIND(되감기)", "STOP(정지)", "FAST FORWARD(빨리감기)", "RECORD(기록)"는 모두 전자의 범주에 속하고, "MARK(마크)", "VIRTUAL EDIT(가상편집)", "REAL EDIT(실제편집)"는 후자의 범주에 속한다.
"PLAY(플레이)" 동작은 DVD 레코더(70)로 하여금 동작목표로서 특정된 AV 파일에 기록된 VOB를 재생하도록 한다.
"REWIND(되감기)" 동작은 DVD 레코더(70)로 하여금 현재 재생된 VOB를 반대로 신속하게 재생하도록 한다.
"STOP(정지)" 동작은 DVD 레코더(70)로 하여금 현재 VOB의 재생을 중단하도록 한다.
"FAST FORWARD(빨리감기)" 동작은 DVD 레코더(70)로 하여금 전방향의 현재의 VOB를 신속하게 재생하도록 한다.
"RECORD(기록)" 동작은 DVD 레코더(70)로 하여금 동작목표로서 표시된 디렉토리 내에 새로운 AV 파일이 생성되도록 하여 기록될 VOB를 새로운 AV 파일에 기록하도록 한다.
전자의 범주에서 이들 동작은 비디오 카세트 레코더와 CD 플레이어와 같은 종래의 AV 장치의 기능으로서 사용자에게 잘 알려져 있다. 후자의 범주의 동작은 종래의 영화필름 편집과 유사하게 사용하기 위해 영화필름을 잘라내고 합쳐 이음으로서 새로운 영상순서를 생성할 때 사용자에 의해 실행된다.
"MARK(마크)" 동작은 DVD 레코더(70)로 하여금 동작 목표로서 표시된 AV 파일에 포함된 VOB를 재생하게 하여 VOB에 의해 재생된 비디오 이미지 중에서 원하는 이미지를 표시하도록 한다. 영화필름 편집과 유사하게 사용하기 위해서는 이 "마크" 동작은 필름이 잘려져 나갈 지점을 표시하는 것을 포함한다.
"VIRTUAL EDIT(가상편집)" 동작은 DVD 레코더(70)로 하여금 마크동작에 의해 표시된 복수 쌍의 2 지점을 재생 시작점과 재생 종료점으로 선택하여 이들 지점에 대하여 재생순서를 할당함으로써 논리적인 재생경로를 정의하게 한다.
가상 편집 동작에서 사용자에 의해 선택된 한쌍의 재생 시작점과 재생 종료점에 의해 정의된 부분은 "셀"이라 한다. 셀에 대한 재생순서를 할당함으로써 정의된 재생경로는 "프로그램 체인"이라 한다.
"REAL EDIT(실제편집)" 동작은 DVD 레코더(70)로 하여금 DVD-RAM에 기록된 AV 파일로부터 셀로서 표시된 각 부분을 잘라내게 하고, 잘라낸 부분을 별개의 파일로서 설정하게 하여, 프로그램 체인에 의해 나타낸 재생순서에 따라 복수의 잘라낸 부분을 연결하도록 한다. 이러한 편집동작은 표시된 위치에서 영화필름을 잘라내고 그 잘라낸 부분을 합쳐 잇는 것과 유사하다. 이들 편집동작에서 연결된 파일의 익스텐트는 하나의 AV 블록의 길이와 같거나 크다.
상술한 동작내용을 실행할 때 AV 데이터 기록부(13)에서 AV 데이터 편집부 (15)까지를 제어하는 기록-편집-재생 제어부(12)가 사용된다. 동작목표와 동작내용을 특정하는 외에 기록-편집-재생 제어부(12)는 AV 데이터 기록부(13)에서 AV 데이터 편집부(15)까지 중에서 동작내용에 대한 적절한 구성요소를 선택하여 이들 구성요소에 동작내용을 알리는 명령을 출력한다.
다음은 기록-편집-재생 제어부(12)가 동작목표와 동작내용의 조합을 이용하여 AV 데이터 기록부(13), AV 데이터 재생부(14) 및 AV 데이터 편집부(15)에 제공하는 명령예의 설명이다.
도 42에서, "DVD_Video"는 집중상태에 있으므로 사용자가 "RECORD(기록)" 키를 누르면 기록-편집-재생 제어부(12)는 디렉토리 "DVD_Video"를 동작목표로, "RECORD(기록)"를 동작내용으로 식별한다. 기록-편집-재생 제어부(12)는 AV 데이터 기록부(13)를 기록동작을 실행할 수 있는 성분으로서 선택하고, AV 데이터 기록부(13)로 하여금 동작목표로서 표시된 디렉토리에 새로운 AV 파일을 생성시키도록 한다.
파일 "AV_FILE#1"이 집중상태에 있고 사용자가 리모콘(71)의 "PLAY(플레이)"키를 누르면 기록-편집-재생 제어부(12)는 파일 "AV_FILE#1"을 동작목표로서, "PLAY(플레이)"를 동작내용으로서 식별한다. 기록-편집-재생 제어부(12)는 플레이 동작을 실행할 수 있는 성분으로서 AV 데이터 재생부(14)를 선택하고 동작목표로서 표시된 AV 파일을 재생하도록 AV 데이터 재생부(14)에 명령한다.
파일 "AV_FILE#1"이 집중상태에 있고 사용자가 리모콘(71)의 "MARK(마크)"키를 누르면 기록-편집-재생 제어부(12)는 파일 "AV_FILE#1"을 동작목표로서, "MARK(마크)"를 동작내용으로서 식별한다. 기록-편집-재생 제어부(12)는 표시동작을 실행할 수 있는 성분으로서 AV 데이터 편집부(15)를 선택하고 동작목표로서 표시된 AV 파일에 대한 표시동작을 실행하도록 AV 데이터 편집부(15)에 명령한다.
(3-2-5) AV 데이터 기록부(13)
AV 데이터 기록부(13)는 공통파일 시스템부(10)와 AV 파일 시스템부(11)에 소정의 순서로 공통파일 시스템 지향 명령과 AV 파일 시스템 지향 명령을 발행하면서 MPEG 인코더(2)의 인코딩 동작을 제어한다. 그렇게 함으로써 AV 데이터 기록부(13)는 기능 (1) 내지 (10)을 이용하여 기록동작을 실현한다.
(3-2-6) AV 데이터 재생부(14)
AV 데이터 재생부(14)는 공통파일 시스템부(10)와 AV 파일 시스템부(11)에 소정의 순서로 공통파일 시스템 지향 명령과 AV 파일 시스템 지향 명령을 발행하면서 MPEG 디코더(4)의 디코딩 동작을 제어한다. 그렇게 함으로써 AV 데이터 재생부(14)는 기능 (1) 내지 (10)을 이용하여 "PLAY(플레이)", "REWIND(되감기)", "FAST FORWARD(빨리감기)" 및 "STOP(정지)" 동작을 실현한다.
(3-2-7) AV 데이터 편집부(15)
AV 데이터 편집부(15)는 공통파일 시스템부(10)와 AV 파일 시스템부(11)에 소정의 순서로 공통파일 시스템 지향 명령과 AV 파일 시스템 지향 명령을 발행하면서 MPEG 디코더(4)의 디코딩 동작을 제어한다. 그렇게 함으로써 AV 데이터 재생부(14)는 기능 (1) 내지 (10)을 이용하여 "MARK(마크)", "VIRTUAL EDIT(가상편집)" 및 "REAL EDIT(실제편집)" 동작을 실현한다.
보다 상세하게는 동작목표로서 표시된 AV 파일을 표시하기 위해 기록-편집-재생 제어부(12)로부터 명령을 수신할 때 AV 데이터 편집부(15)는 사용자가 리모콘 (71)의 "MARK(마크)"키를 누르면 AV 데이터 재생부(14)로 하여금 표시된 AV 파일과 모니터를 재생하도록 한다. 재생중에 사용자가 "MARK(마크)"키를 누르면 AV 데이터 편집부(15)는 "마크 포인트(mark point)"라 불리는 정보를 비-AV파일로서 디스크상에 기록한다. 이 마크 포인트 정보는 AV 파일의 재생 시작으로부터 사용자가 "MARK(마크)"키를 누를 때까지의 시간을 초단위로 보여준다.
가상 편집동작을 위한 기록-편집-재생 제어부(12)로부터 명령을 수신할 때 AV 데이터 편집부(15)는 리모콘(71)의 사용자 키조작에 따라 논리적 재생 경로를 정의하는 정보를 생성한다. AV 데이터 편집부(15)는 공통파일 시스템부(10)를 제어하므로 이 정보는 DVD-RAM에 비-AV파일로서 기록된다.
실제의 편집동작을 위한 기록-편집-재생 제어부(12)로부터의 명령을 수신할 때 AV 데이터 편집부(15)는 셀로서 표시된 DVD-RAM의 부분을 잘라내어 그 잘라낸 부분을 별도의 파일로서 설정하고 이들을 셀의 열을 형성하도록 연결한다.
복수의 파일을 연결하면 AV 데이터 편집부(15)는 이미지의 이음매없는 재생이 달성되도록 처리를 실행한다. 이것은 연결될 AV 파일이 재생될 때 이미지 디스플레이에 인터럽션이 없다는 것을 의미한다. AV 데이터 편집부(15)는 재생될 최종 익스텐트를 제외한 모든 익스텐트가 AV 블록과 같거나 그 보다 크도록 익스텐트를 연결한다.
(3-2-7-1) AV 데이터 편집부(15)에 의한 가상편집과 실제편집의 처리
도 43은 가상편집과 실제편집 동작에 대한 처리의 흐름도이다. 도 44의 (a) 내지 (f)는 도 43의 흐름도에 따라 AV 데이터 편집장치(15)에 의해 처리하는 보충예를 나타내는 도면이다. 다음으로 도 43의 흐름도와 도 44의 (a) 내지 (f)의 예를 참조하여 AV 데이터 편집장치(15)의 편집처리를 설명한다.
도 44의 (a)에 도시된 AV 파일은 이미 DVD-RAM에 저장되어 있다. 이 AV 파일이 동작목표로서 표시되면 사용자는 리모콘(71)의 "PLAY(플레이)" 키를 누른다. 기록-편집-재생 제어부(12)는 키조작을 검출하므로 사용자가 "MARK(마크)"키를 누르면 AV 데이터 편집부(15)는 AV 데이터 재생부(14)로 하여금 단계 S1에서 AV 파일의 재생을 시작하게 한다.
재생의 시작후에는 사용자가 다음 "MARK(마크)"키를 누르는 도 44의 (b)의 시간 t1까지 재생 처리가 된다. 이것에 응답하여 AV 데이터 편집부(15)는 시간 t1에 대한 상대시간 코드를 나타내는 마크 포인트 #1을 현재의 AV 파일에 설정한다. 사용자는 계속해서 시간 t2, t3, t4, …, t8에서 총 7회 "MARK(마크)"키를 누른다. 이에 따라 AV 데이터 편집부(15)는 시간 t2, t3, t4, …t8에 대한 상대시간 코드를 나타내는 마크 포인트 #2, #3, #4, …#8을 도 44의 (b)에 도시된 바와 같이 현재의 AV 파일에 설정한다.
단계 S1의 실행후에, 처리는 단계 S2로 진행하며, 여기서 AV 데이터 편집부(15)는 마크 포인트의 사용자 표시쌍을 갖는다. AV 데이터 편집부(15)는 선택된 마크 포인트의 쌍에 따라 현재의 AV 파일내에 재생될 셀을 결정한다.
도 44의 (c)에서 사용자는 마크 포인트 #1 및 #2가 쌍 (1)을 형성하고, 마크 포인트 #3 및 #4가 쌍 (2)를 형성하고, 마크 포인트 #5 및 #6이 쌍 (3)을 형성하고, 마크 포인트 #7 및 #8이 쌍 (4)을 형성함을 나타낸다.
이러한 방식으로 AV 데이터 편집부(15)는 마크 포인트의 각 쌍내의 AV 데이터를 별개의 셀로 설정하고, 본 실시예에서는 4개의 셀 Cell#1, Cell#2, Cell#3 및 Cell#4를 설정한다. 본 실시예에서 이와 달리 AV 데이터 편집부(15)가 하나의 셀로서 Mark#2와 Mark#3의 쌍으로 설정하고 다른 셀로서 Mark#4와 Mark#5의 쌍으로 설정할 수 있다.
다음으로 단계 S3에서 AV 데이터 편집부(15)는 그것이 생성한 셀에 재생순서를 할당함으로써 프로그램 체인을 생성한다. 도 44의 (d)에서 Cell#1은 재생경로에서 첫번째 것이며(도면에서 기호 "1ST" 로 도시됨), Cell#2는 재생경로에서 두번째 것이고(도면에서 기호 "2nd" 로 도시됨), Cell#3 및 4는 재생경로에서 세번째와 네번째 것이다(도면에서 기호 "3rd" 와 "4th"로 도시됨), 그렇게 함으로써 AV 데이터 편집부(15)는 선택된 재생순서에 기초하여 프로그램 체인으로서 복수의 셀을 처리한다. 도 44의 (d)는 가장 간단한 셀의 재생순서를 나타내며, 다른 순서는 가능하면 동일한 Cell#3→Cell#1→Cell#2→Cell#4와 같이 설정된다.
단계 S6에서 AV 데이터 편집부(15)는 사용자가 프로그램 체인의 재생을 표시하는지의 여부를 감시한다. 단계 S5에서 AV 데이터 편집부(15)는 사용자가 프로그램 체인에 대한 편집 동작을 표시하는지의 여부를 감시한다. 사용자가 재생을 표시하면 AV 데이터 편집부(15)는 재생을 위해 표시된 프로그램 체인을 재생하도록 AV 데이터 재생부(14)에 명령한다.
AV 데이터 편집부(15)로부터 재생명령을 수신할 때 AV 데이터 편집부(15)로부터 재생명령을 수신할 때, AV 데이터 재생부(14)는 도 44의 (e)에 도시된 바와 같이 광픽업으로 하여금 Cell#1에 대한 재생 시작위치를 탐색하도록 한다. 일단 광픽업이 SEEK 명령에 따라 AV 파일내의 Mark#1로 이동하면 AV 데이터 편집부(15)는 READ 명령을 공통파일 시스템부(10)에 발행함으로써 판독된 Mark#1과 Mark#2 사이의 부분을 갖는다. 이러한 방식으로 Cell#1내의 VOBU는 MPEG 디코더(4)에 의해 차례로 디코드되기 전에 DVD-RAM으로부터 판독되고 TV 모니터(72)상에 이미지로서 디스플레이된다.
일단 VOBU가 Mark#2까지 디코드되면 AV 데이터 편집부(15)는 나머지 셀에 대해 실행된 동일한 처리를 갖는다. 그렇게 함으로써 AV 데이터 편집부(15)는 재생된 Cell #1, #2, #3 및 #4로서 표시된 부분만을 갖는다.
도 44의 (a)에 도시된 AV 파일은 텔레비전 방송의 영화이다. 도 44의 (f)는 이 AV 파일내의 상이한 부분의 이미지 내용을 나타낸다. 시간 t0과 t1 사이의 부분은 영화의 주연과 감독을 보여주는 크레디트 장면 V1이다. 시간 t1과 t2 사이의 부분은 영화자체의 제 1 방송장면 V2이다. 시간 t2와 t3 사이의 부분은 TV 방송에 삽입되는 광고장면 V3이다. 시간 t3과 t4 사이의 부분은 영화의 제 2 방송장면 V4이다. 시간 t5와 t6 사이의 부분은 영화의 제 3 방송장면 V5이다.
여기에서 시간 t1, t2, t3, t4, t5 및 t6은 Mark#1, Mark#2, Mark#3, Mark#4, Mark#5 및 Mark#6으로 설정되며, 마크의 쌍은 셀로 설정된다. 셀의 디스플레이 순서는 프로그램 체인으로서 설정된다.
도 44의 (e)에 도시된 바와 같이 판독을 실행하면 데이터 편집부(15)는 크레디트 장면 V1을 스킵하므로 시간 t1과 t2 사이에 주어진 제 1 영화장면 V2에서 재생이 시작된다. 그 다음에 AV 데이터 편집부(15)는 광고장면 V3을 스킵하고 시간 t3과 t4 사이의 제 2 영화장면 V4를 갖는다.
다음은 도 45의 (a) 내지 (e) 및 도 46의 (a) 내지 (e)를 참조하여 사용자가 실제의 편집동작을 표시할 때 AV 데이터 편집부(15)의 동작에 관한 설명이다. 도 45의 (a) 내지 (e)는 도 43의 흐름도에서 AV 데이터 편집부(15)의 처리에 대한 보충예를 보여준다. 도 43 및 도 45의 (a) 내지 (e)의 흐름도에서 변수 mx, Af는 AV 파일의 위치를 나타낸다. 다음의 설명은 실제의 편집동작에 대한 AV 데이터 편집부(15)의 처리에 관한 것이다.
먼저, 단계 S8에서, AV 데이터 편집부(15)는 가상 편집동작중에 생성된 프로그램 체인에 따라 현재의 AV 파일로부터 잘려져 나갈 적어도 2개의 섹션을 결정한다.
도 45의 (a)에서 "소스 AV 파일"은 마크 포인트 Mark#1, #2, #3, …#8로 주어진다. 이 소스 AV 파일에 대해 설정된 셀은 마크 포인트 Mark#1, #2, #3, …#8의 쌍으로 정의되므로 AV 데이터 편집부(15)는 편집 시작점과 편집 종료점으로서의 각 쌍에서 마크 포인트을 처리한다. 결국 AV 데이터 편집부(15)는 편집 시작점 "In(1)"과 편집 종료점 "Out(1)"로서 Mark#1과 #2의 쌍을 처리한다. 이와 유사하게 AV 데이터 편집부(15)는 편집 시작점 "In(2)"와 편집 종료점 "Out(2)"로서 Mark#3과 #4의 쌍을 처리한다. AV 데이터 편집부(15)는 편집 시작점 "In(3)"과 편집 종료점 "Out(3)"으로서 Mark#5와 #6의 쌍을 처리한다. AV 데이터 편집부(15)는 편집 시작점 "In(4)"와 편집 종료점 "Out(4)"로서 Mark#7과 #8의 쌍을 처리한다.
Mark#1과 Mark#2 사이의 기간은 도 44의 (f)에 도시된 시간 t1과 t2 사이의 제 1 영화장면 V2에 대응한다. 이와 마찬가지로 Mark#3과 Mark#4 사이의 기간은 도 44의 (f)에 도시된 시간 t3과 t4 사이의 제 2 영화장면 V4에 대응하고, Mark#5와 Mark#6 사이의 기간은 시간 t5과 t6 사이의 제 3 영화장면 V5에 대응한다. 따라서 이 실제의 편집동작을 표시함으로써 사용자는 영화장면 V2, V4 및 V5를 포함하는 AV 파일을 구한다.
다음으로, 단계 S9에서 AV 데이터 편집부(15)는 결정된 분할영역이 mx AV 파일(여기에서 mx는 2미만의 정수임)로 분할되도록 AV 파일 시스템부(11)에 SPLIT(분할)명령을 발행한다. AV 데이터 편집부(15)는 도 45의 (a)의 편집 시작점과 편집 종료점의 쌍에 의해 표시된 각각의 폐쇄된 영역을 잘려져 나갈 영역으로 처리하고 도 45의 (b)에 도시된 4개의 AV 파일을 잘라낸다.
이하 AV 데이터 편집부(15)는 변수 Af를 이용하여 Af1, Af2, Af3, …Afm으로 번호가 부여된 절단된 AV 파일중의 하나를 특정한다. 단계 S10에서, AV 데이터 편집부(15)는 변수 Af를 초기화하기 위해 변수 Af를 "1"로 설정한다. 단계 S11에서, AV 데이터 편집부(15)는 AV 파일 Af+1의 시작에 위치된 VOBU(이하, "처음 부분"이라 함)와 AV 파일 Af의 마지막에 위치한 VOBU(이하, "마지막 부분"이라 함)에 대한 AV 파일 시스템부(11)에 READ 명령을 발행한다. 이들 명령을 발행한 후, 단계 S12에서 AV 데이터 편집부(15)는 AV 파일 Af의 마지막 부분과 AV 파일 Af+1(Af2)의 처음 부분을 재인코드하도록 제 2 실시예와 동일한 절차를 사용한다.
재인코딩후, AV 데이터 편집부(15)는 AV 파일 Af의 마지막 부분과 AV 파일 Af+1(Af2)의 처음 부분에 대해 AV 파일 시스템부(11)에 SHORTEN(단축)명령을 발행한다.
도 45의 (c)에서, AV 파일 Af1의 마지막 부분과 AV 파일 Af2의 처음 부분은 READ 명령의 결과로서 판독되어 재인코드된다. 재인코드 처리의 결과로서 판독 데이터를 재인코딩함으로서 생성된 재인코드 데이터는 DVD 레코더(70)의 메모리에 축적된다. 단계 S13에서, AV 데이터 편집부(15)는 판독에 의해 이미 점유된 영역에서 마지막 부분과 처음 부분이 삭제되도록 하는 SHORTEN(단축) 명령을 발행한다.
이러한 방식으로 실행되는 삭제는 다음의 2가지 경우중 하나이다.
첫번째 경우는 재인코드될 부분이 삭제되는 AV 파일 Af와 AV 파일 Af+1중의 어느 하나가 AV 블록길이와 같거나 그 보다 큰 연속길이를 가지는지의 여부에 관계없는 경우이며, 다른 AV 파일의 연속길이는 AV 블록의 데이터 크기 미만이다. AV 블록의 길이는 오버플로우가 발생하는 것을 방지하는 길이로 설정되기 때문에 AV 파일 Af나 Af+1이 그 연속길이가 AV 블록의 길이보다 짧은 상태에서 재생되면 트랙버퍼에서 언더플로우가 발생한다.
두번째 경우는 재인코드되어 메모리에 저장되는 데이터(인-메모리(in-memory) 데이터)의 데이터 크기가 AV 블록의 데이터 크기(길이)보다 작은 경우이다. 인-메모리 데이터의 데이터 크기가 크고 그래서 AV 블록과 같거나 또는 그 보다 큰 DVD-RAM상의 영역을 점유하면, 데이터는 AV 파일 Af와 Af+1로부터 떨어진 DVD-RAM상의 상이한 위치에 저장된다. 그러나 인-메모리 데이터의 데이터 크기가 하나의 AV 블록보다 작으면 데이터는 AV 파일 Af와 Af+1로부터 떨어진 DVD-RAM상의 다른 위치에서 저장될 수 없다.
이것은 다음의 이유 때문이다. AV 블록의 크기보다 작으나 별개의 위치에 저장된 인-메모리 데이터에 대해 실행된 판독이 별개의 위치에 저장되는 동안 충분한 양의 데이터가 트랙버퍼에 축적될 수 없다. 인-메모리 데이터로부터 AV 파일 Af+1로 점프에 비교적 긴 시간이 걸리면 점프가 발생하는 동안 트랙버퍼에 언더플로우가 발생한다.
도 45의 (d)에서, 점선은 AV 파일 Af1과 AV 파일 Af2의 처음부분이 삭제되는 것을 나타낸다. 이것은 AV 파일 Af1의 길이가 AV 블록의 길이보다 짧게 하고, 인-메로리 데이터의 길이가 AV 블록의 길이보다 짧게 한다.
만약 이 AV 파일 Af1이 그대로 남아 있으면 AV 파일 Af1에서 AV 파일 Af2로 점프할 때 언더플로우가 발생할 위험성이 있다. 이러한 언더플로우의 발생을 방지하기 위해 단계 S14에서는 AV 데이터 편집부(15)가 AV 파일 Af1과 AV 파일 Af+1에 대한 MERGE(병합) 명령을 발행한다.
도 45의 (e)와 도 46의 (a)에 도시된 바와 같이, 이러한 처리는 AV 파일 Af1과 재인코드된 VOBU의 연결하므로 AV 파일 Af1을 형성하는 모든 익스텐트에 대한 기록영역의 연속길이는 AV 블록의 길이와 같거나 또는 그 보다 길게 된다. MERGE(병합) 명령을 발행한 후, AV 데이터 편집부(15)는 단계 S15에서 변수 Af가 AV 파일mx-1의 수와 일치하는지를 판정한다. 만약 그 수가 일치하지 않으면 AV 데이터 편집부(15)는 단계 S16에서 변수 Af를 증가시켜 단계 S11로 복귀한다. 이러한 방식으로 AV 데이터 편집부(15)는 단계 S11 내지 S14의 처리를 반복한다.
변수 Af가 "2"로 되도록 증가된 후, AV 데이터 편집부(15)는 도 46의 (b)에 도시된 바와 같이 AV 파일 Af2의 마지막 부분과 AV 파일 Af3의 처음 부분이 판독되도록 READ 명령을 발행한다. 일단 이 마지막 부분과 처음 부분의 VOBU가 재인코드되면 최종 재인코드된 데이터가 DVD 레코더(70)의 메모리에 저장된다.
처음 부분과 마지막 부분에 의해 원래 점유된 DVD-RAM의 영역은 AV 데이터 편집부(15)가 단계 S13에 의해 발행되는 SHORTEN(단축) 명령의 결과로서 검출된다. 결국, 나머지 AV 파일 Af3은 AV 블록의 길이보다 짧은 연속길이를 갖는다. AV 데이터 편집부(15)는 도 46의 (d) 및 (e)에 도시된 바와 같이 AV 파일 Af2 및 Af3에 대한 AV 파일 시스템부(11)에 대하여 MERGE(병합) 명령을 발행한다. 이 절차는 변수 Af가 값 mx-1과 같아질 때까지 반복된다.
상술한 처리의 결과로서 저장영역내의 익스텐트는 영화장면 V2, V4 및 V5를 포함할 뿐이다. 이들 익스텐트는 각각 AV 블록의 길이 이상인 연속길이를 가지므로, 이들 AV 파일의 재생중에 이미지 디스플레이에 대한 인터럽트가 없다는 것이 보증된다.
Mark#1과 Mark#2 사이의 기간은 제 1 영화장면 V2에 대응한다. Mark#3과 Mark#4 사이의 기간은 제 2 영화장면 V4에 대응하고, Mark#5와 Mark#6 사이의 기간은 제 3 영화장면 V5에 대응한다. 결국 편집동작을 실행함으로써 사용자는 영화장면 V2, V4 및 V5에 대한 AV 파일로 구성된 열을 얻을 수 있다.
(3-2-7-1-2) SPLIT(분할) 명령이 발행될 때의 AV 파일 시스템부(11)의 처리
다음의 설명은 SPLIT(분할) 명령에 응답하여 확장된 기능을 제공할 때 AV 파일 시스템부(11)에 의한 처리의 상세한 설명에 관한 것이다. 도 48의 (a)는 SPLIT(분할) 명령에 응답하여 확장된 기능을 제공할 때 AV 파일 시스템부(11)의 동작을 나타낸다. 이 흐름도에서 편집 시작점(In 점)과 편집 종료점(Out 점)의 mx쌍중의 하나는 변수 h를 사용하여 표시된다. 단계 S22에서 값 "1"이 변수 h로 치환되므로 In 점과 Out 점의 제 1 쌍이 처리된다. AV 파일 시스템부(11)는 단계 S31에서 파일 엔트리 (h)를 생성하고, 이 파일 엔트리 (h)에 대한 파일 식별자 (h)를 임시 디렉토리의 디렉토리 파일내에 부가한다.
단계 S33에서, AV 파일 시스템(11)은 In 점 (h)에 대응하는 논리블록으로부터 Out 점(h)에 대응하는 논리블록으로의 u논리블록(여기에서 u≥1)의 열의 첫번째 어드레스 s와 점유된 블록 r의 수를 계산한다.
단계 S34에서, AV 파일 시스템부(11)는 파일 엔트리 (h)내의 u할당 서술자를 생성한다. 단계 S35에서, AV 파일 시스템부(11)는 u논리블록의 열의 첫번째 어드레스 s와 점유된 블록 r의 수를 u할당 서술자의 각각에 기록한다. 단계 S35에서, AV 파일 시스템부(11)은 변수 h가 값 mx-1에 도달되었는지의 여부를 판단한다.
변수 h가 이 값에 도달되어 있지 않으면 AV 파일 시스템부(11)는 변수 h를 증가시키고 단계 S31로 복귀한다. 그렇게 함으로써 AV 파일 시스템부(11)는 변수 h가 값 mx-1에 도달할 때까지 단계 S31 내지 단계 S35의 처리를 반복하고, In 점과 Out 점의 mx-1쌍의 각 쌍내의 닫힌 부분을 잘라낸다.
(3-2-7-1-3) SHORTEN(단축) 명령이 발행될 때 AV 파일 시스템부(11)의 처리
다음의 설명은 SHORTEN(단축) 명령에 응답하여 확장된 기능을 제공할 때 AV 파일 시스템부(11)의 처리에 관한 것이다. 도 48은 이 처리의 내용을 도시한 흐름도이다.
단계 S38에서, AV 파일 시스템부는 삭제될 영역을 특정한 삭제 시작 어드레스와 삭제 종료 어드레스 사이의 논리블록의 제 1 어드레스 c와 점유된 블록 d의 수를 계산한다. 단계 S45에서, AV 파일 시스템부(11)는 삭제될 처음부분과 마지막 부분의 AV 파일의 할당 식별자를 액세스한다. 단계 S46에서, AV 파일 시스템부(11)는 삭제될 영역이 AV 파일 익스텐트의 첫번째 부분인지의 여부를 판단한다.
만약 삭제될 영역이 익스텐트의 첫번째 부분이면(단계 S46에서 "Yes"), AV 파일 시스템부(11)는 단계 S47로 진행하여 익스텐트의 저장된 첫번째 어드레스 P를 할당 서술자의 저장 첫번째 어드레스 p+c*d로 갱신한다.
그 다음에, 단계 S48에서 AV 파일 시스템부(11)는 할당된 서술자에 주어진 점유 블록의 수 q의 익스텐트의 데이터 크기 q를 데이터 크기 q-c*d로 갱신한다. 한편, 단계 S46에서 AV 파일 시스템부(11)는 삭제될 영역이 AV 파일의 최종부분인 것을 구하면, AV 파일 시스템부(11)는 단계 S48로 직접 진행하며, 할당 서술자에 주어진 점유블록의 수 q의 익스텐트의 데이터 크기 q를 데이터 크기 q-c*d로 갱신한다.
(3-2-7-1-4) MERGE(병합) 명령이 발행될 때의 AV 파일 시스템부(11)의 처리
다음의 설명은 MERGE(병합) 명령에 응답하여 확장된 기능을 제공할 때 AV 파일 시스템부의 처리내용에 관한 것이다. 다음의 설명은 도 45의 (e)와 도 46의 (d)에서 점선으로 둘러싸인 영역을 처리하기 위해 사용되는 절차를 명백히 하기 위한 것이다.
MERGE(병합) 명령에 응답하여 AV 파일 시스템부(11)는 SPLIT(분할) 명령과 SHORTEN(단축) 명령의 결과로서 부분적으로 삭제된 AV 파일 Af와 Af+1과, 재인코드의 결과로서 DVD 레코더(70)의 메모리 내에 존재하는 재인코드된 데이터(인-메모리 데이터)를 AV 파일 Af, 메모리내 데이터 및 AV 파일 Af+1을 차례로 이음매없이 재생하는 방식으로 DVD-RAM 상에 배열한다.
도 47의 (a)는 MERGE(병합) 명령에 응답하여 확장된 기능을 제공할 때 AV 파일 시스템(11)에 의해 처리된 AV 데이터의 예를 나타낸다. 도 47의 (a)에서 AV 파일 x와 y는 SPLIT(분할) 명령에 따라 처리된다.
가상편집은 AV 데이터가 AV 파일 x →메모리 데이터→AV 파일 y의 순서로 재생되도록 하는 재생경로를 정의하도록 가정된다.
도 47의 (a)는 AV 파일 x와 y의 AV 데이터에 대한 재생경로의 예를 나타낸다. 도47의 (a)에서 수평축은 시간을 나타내므로 재생경로는 AV 파일 x →인-메모리 데이터→AV 파일 y의 디스플레이 순서를 설정하도록 될 수 있다.
AV 파일 x의 AV 데이터중에서, AV 파일 x의 마지막에 위치한 데이터 부분 m은 DVD-RAM의 연속영역에 저장되는데, 이것을 "선행 익스텐트"라 한다.
AV 파일 y의 AV 데이터중에서, AV 파일 y의 처음에 위치한 데이터 부분 n은 DVD-RAM의 연속영역에 저장되는데, 이것을 "나중 익스텐트"라 한다.
"SPLIT(분할)" 명령의 결과로서 AV 파일 x와 y는 잘려나가는 AV 데이터의 어떤 부분에 의해 얻어진다. 그러나 이 파일 시스템은 잘려나간 데이터에 대응하는 디스크상의 영역을 관리하는 동안 그들이 마치 비어있는 것처럼 원래의 AV 파일의 데이터는 DVD-RAM 상의 논리블록에 있는 것처럼 사실상 남아 있게 된다.
재생경로가 사용자에 의해 설정되면 사용자는 DVD-RAM상의 AV 블록이 잘려진 AV 파일을 저장하는 방식을 고려할 필요가 없는 것으로 추정할 수 있다. 결국, 선행 익스텐트와 나중 익스텐트를 저장하는 DVD-RAM상의 위치가 식별될 수 있는 방법은 없다. 비록 재생경로가 AV 파일 x →AV 파일 y로서 순서를 특정하더라도 선행 익스텐트와 나중 익스텐트 사이의 디스크상에 존재하는 현재의 재생경로와 무관한 AV 데이터의 가능성이 있다.
상술한 점의 관점에서 SPLIT(분할) 명령에 의해 잘려진 AV 파일의 연결은 선행 익스텐트와 나중 익스텐트가 DVD-RAM 상의 연속위치에 재배열된다고 가정하지 않는 대신 선행 익스텐트와 나중 익스텐트가 DVD-RAM상의 완전히 무관한 위치에 기록된다고 가정한다.
여기에서, AV 파일 x와 y를 나타내는 재생 경로와 무관한 적어도 하나의 "다른 파일 익스텐트"가 선행 익스텐트와 다음 익스텐트의 저장영역 사이에 존재하는 것으로 가정한다.
도 47의 (b)는 상술한 관점에서 선행 익스텐트와 나중 익스텐트의 DVD-RAM 상의 저장영역의 위치관계를 나타낸 도면이다.
선행 익스텐트를 포함하는 AV 파일 x는 SPLIT(분할) 명령의 결과로서 부분적으로 잘려지고, 선행 익스텐트가 먼저 존재하는 빈 영역을 포함한다. 이 영역을 외부영역(Out area)이라 한다. 상술한 바와 같이 이 외부영역은 비록 AV 파일 시스템부(11)가 SPLIT(분할) 명령이 이미 발행되었기 때문에 그 영역을 빈 영역으로서 처리하여도 사실상 잘려진 AV 파일 x의 데이터를 논리적으로 포함한다.
나중 익스텐트를 포함하는 AV 파일 y는 SPLIT(분할) 명령의 결과로서 부분적으로 잘리고 그래서 다음 익스텐트가 먼저 존재하는 빈 영역을 포함한다. 이 영역을 내부영역(In area)이라 한다. 상술한 바와 같이, 이 내부영역은 비록 AV 파일 시스템부(11)가 SPLIT(분할) 명령이 이미 발행되었기 때문에 그 영역을 빈 영역으로서 처리하여도 사실상 잘려진 AV 파일 y의 데이터를 논리적으로 포함한다.
도 47의 (b)에서, 선행 익스텐트는 비록 단순한 일례이기는 하지만 나중 익스텐트의 앞 위치에 저장되므로 나중 익스텐트가 선행 익스텐트의 앞 위치에 완전하게 저장될 수 있다.
본 실시예에서, 다른 파일 익스텐트는 선행 익스텐트와 나중 익스텐트 사이에 존재한다. 내부영역과 외부영역은 인-메모리 데이터의 기록에 대해 이상적이지만 내부영역과 외부영역의 연속길이는 선행 익스텐트와 나중 익스텐트 사이에 다른 파일 익스텐트가 존재하기 때문에 제한된다.
단계 S62에서 도 49의 흐름도에서 AV 파일 시스템부(11)는 외부영역의 데이터 크기와 내부영역의 데이터 크기를 계산한다.
내부영역과 외부영역의 데이터 크기를 구할 때 AV 파일 시스템부(11)는 선행 익스텐트의 데이터 크기 m과 나중 익스텐트의 데이터 크기 n을 참조하여 선행 익스텐트가 재생중에 트랙버퍼에 언더플로우를 일으킬 수 있는지를 판단한다.
(3-2-7-1-4-1) 선행 익스텐트 m이 AV 블록길이 보다 작을 때의 처리
선행 익스텐트 m이 AV 블록길이보다 짧고 나중 익스텐트 n이 AV 블록길이와 적어도 같으면, 선행 익스텐트 m에 대하여 언더플로우가 발생한다. 처리는 도 50의 단계 S70으로 진행한다.
도 50은 선행 익스텐트 m이 AV 블록길이보다 짧고 나중 익스텐트 n이 AV 블록길이와 적어도 같은 경우의 흐름도이다. 도 50의 AV 파일 시스템부(11)에 의한 처리는 도 51, 도 52 및 도 53을 참조하여 설명한다. 도 51, 도 52 및 도 53은 데이터의 각 조각이 기록된 영역과 데이터가 이동되는 영역뿐아니라 익스텐트 m과 n의 데이터 크기, 내부영역과 외부영역 i와 j, 인-메모리 데이터 k 및 AV 블록 B 사이의 관계를 나타낸다.
선행 익스텐트는 AV 블록길이보다 짧다. 결국, 만약 수정동작이 취해지지 않으면 언더플로우가 발생한다. 따라서 도 50의 흐름도는 선행 익스텐트와 인-메모리에 대한 적절한 저장위치를 결정하기 위한 처리를 보여준다.
단계 S70에서 선행 익스텐트와 인-메모리 데이터의 크기의 합이 AV 블록길이와 같은지 또는 그 보다 큰지의 여부를 판정한다. 만약 그렇다면 처리가 단계 S71로 진행하여 외부영역이 인-메모리 데이터보다 큰지를 판정한다. 외부영역이 인-메모리 데이터보다 크면 인-메모리 데이터는 먼저의 외부의 연속길이가 AV 블록길이와 적어도 같게 되도록 외부영역에 기록된다. 도 51의 (a)는 i≤k, m+k>B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 도 51의 (b)에서 인메모리 데이터가 외부영역에 기록되면 선행 익스텐트의 연속길이는 AV 블록길이와 적어도 동일하게 된다.
한편, 외부영역이 인-메모리 데이터보다 작으면 데이터가 이동된다. 도 52의 (a)는 i<k, m+k>B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다.
도 52의 (a)에서 선행 익스텐트는 우선 메모리로 판독되고, 도 52의 (b)에서 선행 익스텐트는 선행 익스텐트와 동일한 구역의 빈 영역에 기록된다. 선행 익스텐트가 이동된 후, 인-메모리 데이터는 도 52의 (c)에 도시된 바와 같이 이동된 선행 익스텐트 직후에 기록된다.
선행 익스텐트의 크기와 인-메모리 데이터의 크기의 합은 AV 블록길이보다 짧으면 처리는 단계 S72로 진행한다. 단계 S72에서, 선행 익스텐트, 나중 익스텐트 및 인-메모리 데이터의 크기의 합이 2개의 AV 블록길이와 적어도 동일한지의 여부가 판단되었는지가 판단된다. 그 크기의 합이 AV 블록길이보다 작으면 비록 데이터가 이동되더라도 그 크기는 AV 블록길이보다 작다. 결국 언더플로우가 발생한다. 그 크기의 합이 2개의 AV 블록길이보다 작으면 비록 선행 익스텐트, 인-메모리 데이터 및 나중 익스텐트가 논리블록에 기록되더라도 기록시간은 길어지지 않는다. 도 50의 흐름도에서 인-메모리 데이터, 선행 익스텐트 및 나중 익스텐트의 크기의 합이 2개의 AV 블록 보다 작으면, 처리가 단계 S72에서 단계 S73으로 진행하여 선행 익스텐트와 나중 익스텐트가 이동된다.
도 53의 (a)는 i<k, m+k<B, B≤m+n+k≤2B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 이 경우에 선행 익스텐트와 나중 익스텐트와 동일한 구역의 빈 영역에 대해 검색이 실행된다. 빈 영역이 발견되면 선행 익스텐트는 도 53의 (b)에 도시된 바와 같이 메모리로 판독되며 선행 익스텐트를 빈 영역으로 이동시키도록 빈 영역에 기록된다. 그 이동후, 인-메모리 데이터는 도 53의 (c)에 도시된 바와 같이 이동된 선행 익스텐트 직후에 기록된다. 인-메모리 데이터가 기록된 후에 나중 익스텐트는 도 53의 (d)에 도시된 바와 같이 메모리에 판독되고 선행 익스텐트를 빈 영역으로 이동시키도록 빈 영역에 기록된다.
인-메모리 데이터의 크기와 선행 익스텐트의 크기와 나중 익스텐트 크기의 합이 적어도 2개의 AV 블록길이와 같으면 처리는 단계 S72로부터 단계 S74로 진행한다. 이 크기의 합이 2개의 블록길이와 같거나 그 보다 크면 데이터를 논리블록에 기록하는데 긴 시간이 걸린다. 한편 선행 익스텐트가 이동되고 인-메모리 데이터가 이동된 선행 익스텐트 직후에 기록되는 간단한 방법은 액세스 속도의 관점에서 채택되지 않는다. 여기에서 인-메모리 데이터의 크기와 선행 익스텐트의 크기의 합은 AV 블록길이보다 작기 때문에 처리는 단계 S72에서 단계 S74로 진행한다. 인-메모리 데이터의 크기와 선행 익스텐트의 크기의 합이 AV 블록길이보다 작으나, 인-메모리 데이터의 크기와 선행 익스텐트의 크기 및 나중 익스텐트의 크기의 합이 2개의 AV 블록길이와 적어도 동일한 이유는 나중 익스텐트의 크기가 비교적 크기 때문이며, 나중 익스텐트와 AV 블록 길이 사이의 차이는 크다. 결국, 선행 익스텐트의 크기와 인-메모리 데이터의 크기의 합이 AV 블록길이보다 작으면 나중 익스텐트의 데이터의 부분은 상기 합에 가산될 수 있으며, 나중 익스텐트의 나머지 데이터 크기가 불충분할 위험성이 없다.
인-메모리 데이터의 크기와 선행 익스텐트의 크기 및 나중 익스텐트의 크기의 합이 2개의 AV 블록길이와 적어도 같으면, 처리는 단계 S72에서 단계 S74로 진행하고, 데이터는 도 54의 (a)내지 (d)에 도시된 방식으로 연결된다.
도 54의 (a)는 m+k<B, m+n+k≤2B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 이 경우에 선행 익스텐트와 나중 익스텐트와 동일한 구역의 빈 영역에 대해 검색이 실행된다. 이러한 빈 영역이 발견되면 선행 익스텐트는 도 54의 (b)에 도시된 바와 같이 메모리에 판독되며 선행 익스텐트를 이동시키도록 빈 영역에 기록된다. 다음으로 인-메모리 데이터는 도 54의 (c)에 도시된 바와 같이 이동된 선행 익스텐트 직후에 기록된다. 인-메모리 데이터가 기록되면 이 빈 영역의 데이터의 크기를 AV 블록크기와 동일하게 만들도록 충분히 큰 데이터 세트는 도 54의 (d)에 도시된 바와 같이 인-메모리 데이터 직후의 나중 익스텐트의 시작부터 이동된다.
선행 익스텐트 다음에 인-메모리 데이터, 나중 익스텐트의 앞 부분은 상술한 절차로 연결되며, 선행 익스텐트를 포함하는 AV 파일 Af와 AV 파일 Af+1의 파일 엔트리는 합성된다. 하나의 합성된 파일 엔트리가 구해지며 처리는 종료된다.
(3-2-7-1-4-2) 나중 익스텐트 n이 AV 길이보터 짧을 때의 처리
도 49의 흐름도의 단계 S63에서 판단이 "No"이면 처리는 단계 S64로 진행하며, 여기에서 선행 익스텐트 m은 AV 블록길이와 적어도 같지만 나중 익스텐트 n은 AV 블록길이보다 짧은지의 여부가 판정된다. 즉, 단계 S63에서 나중 익스텐트에 대하여 언더플로우가 발생하는지의 여부가 판정된다.
도 55는 나중 익스텐트가 AV 블록길이보다 짧고 선행 익스텐트가 AV 블록길이와 적어도 같을 때의 흐름도이다. 도 55의 흐름도에서 AV 파일 시스템부(11)에 의한 처리는 도 56 내지 도 59를 참조로 설명된다. 도 56 내지 도 59는 데이터의 각 조각이 기록되는 영역과 데이터가 이동되는 영역뿐 아니라 익스텐트 m, n, 내부영역과 외부영역 i 및 j, 인-메모리 데이터 k, AV 블록 B의 데이터 크기 사이의 관계를 나타낸다.
단계 S75에서 나중 익스텐트와 인-메모리의 크기의 합이 AV 블록길이와 적어도 동일한지가 판정된다. 동일한 것으로 판정되면 처리는 단계 S75에서 단계 S76으로 진행하며, 여기에서 내부영역이 인-메모리 데이터보다 큰지의 여부가 판정된다. 도 56의 (a)는 j≤k, n+k≤B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 도 56의 (b)에서 내부영역의 인-메모리 데이터의 기록은 나중 익스텐트의 연속길이가 AV 블록길이와 적어도 같게 되게 한다.
한편 내부영역이 인-메모리 데이터보다 작으면 데이터가 이동된다. 도 57의 (a)는 j<k, n+k≥B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 이 경우에 선행 익스텐트 및 나중 익스텐트와 동일한 구역의 빈 영역에 대해 검색이 실행된다. 이러한 빈 영역이 발견되면 인-메모리 데이터는 도 57의 (b)에 도시된 바와 같이 빈 영역에 기록된다. 나중 익스텐트는 메모리에 판독되며 도 57의 (c)에 도시된 바와 같이 인-메모리 데이터의 점유된 영역직후에 기록된다.
나중 익스텐트 및 인-메모리 데이터의 크기의 합이 AV 블록길이보다 작으면 처리는 단계 S75에서 단계 S77로 진행한다. 단계 S77에서 선행 익스텐트, 나중 익스텐트 및 인-메모리 데이터의 크기의 합은 적어도 2개의 AV 블록길이와 같다.
그 크기의 합이 2개의 AV 블록 길이보다 작으면 처리는 단계 S78로 진행한다. 도 58의 (a)는 j<k, n+k<B, m+n+k<2B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 단계 S78에서 AV 파일 시스템부(11)는 선행 익스텐트 및 나중 익스텐트와 동일한 구역의 빈 영역을 검색한다. 이러한 빈 영역이 발견되면 선행 익스텐트는 도 58의 (b)에 도시된 바와 같이 메모리에 판독되고 빈 영역에 기록되어 선행 익스텐트를 빈 영역으로 이동시킨다. 다음으로 인-메모리 데이터는 도 58의 (c)에 도시된 바와 같이 이동된 선행 익스텐트 직후에 기록된다. 인-메모리 데이터가 기록되면 나중 익스텐트는 도 58의 (d)에 도시된 바와 같이 메모리에 기록되며, 나중 익스텐트를 빈 영역으로 이동시키도록 인-메모리에 의해 점유된 영역 직후에 기록된다.
인-메모리 데이터, 선행 익스텐트 및 나중 익스텐트의 크기의 합이 2개의 AV 블록길이와 적어도 같으면 처리는 단계 S77로 진행하여 데이터는 도 59의 (a) 내지 (d)에 도시된 방식으로 연결된다.
도 59의 (a)는 n+k<B, m+n+k≥2B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 이 경우에 선행 익스텐트 및 나중 익스텐트와 동일한 구역의 빈 영역에 대해 검색이 실행된다. 이러한 빈 영역이 발견되면 (AV 블록길이 - (n+k))의 데이터 크기를 갖는 데이터가 도 59의 (b)에 도시된 바와 같이 선행 익스텐트의 끝으로부터 빈 영역으로 이동된다. 도 59의 (c)에 도시된 바와 같이 인-메모리 데이터는 선행 익스텐트로부터 이동된 이 데이터 직후에 기록된다. 인-메모리 데이터가 기록되면 나중 익스텐트는 도 59의 (d)에 도시된 바와 같이 인-메모리 데이터의 점유된 영역직후로 이동된다.
도 49의 흐름도에서 단계 S64에서의 판단이 "No"이면 처리는 단계 S65로 진행하고, 여기에서 선행 익스텐트 m과 나중 익스텐트 n이 AV 블록길이보다 짧은지의 여부가 판단된다. 즉 선행 익스텐트 m과 나중 익스텐트 n에 대해 언더플로우가 발생하는지의 여부가 판단된다.
도 60은 선행 익스텐트와 나중 익스텐트가 모두 AV 블록길이보다 짧은 경우에 대한 흐름도를 나타낸다. 도 60의 흐름도에서 AV 파일 시스템에 의한 처리는 도 61 내지 도 64를 참조하여 설명한다. 도 61 내지 도 64는 데이터의 각 조각이 기록되는 영역과 데이터가 이동되는 영역뿐 아니라 익스텐트 m과 n, 내부영역과 외부영역 i 및 j, AV 블록 B의 크기 사이의 관계를 나타낸다.
이 흐름도의 단계 S80에서 인-메모리 데이터, 선행 익스텐트, 나중 익스텐트의 크기의 합이 AV 블록 길이와 적어도 같은지를 판정한다. 만약 같지 않으면 처리는 단계 S81로 진행한다. 이 경우에 선행 익스텐트, 인-메모리 데이터, 나중 익스텐트의 크기의 합이 AV 블록 길이보다 짧다. 결국, 나중 익스텐트에 후속하는 익스텐트가 존재하는지의 여부가 판단된다. 나중 익스텐트가 없으면 나중 익스텐트 다음의 익스텐트는 데이터의 연결에 의해 생성된 AV 파일의 마지막이므로 어떠한 부가적인 처리도 필요하지 않다. 나중 익스텐트 다음에 익스텐트가 있으면 선행 익스텐트, 인-메모리 데이터, 나중 익스텐트의 크기의 합이 AV 블록길이보다 작기 때문에 언더플로우가 발생한다. 이러한 언더플로우를 피하기 위해 나중 익스텐트는 도 61의 (a) 내지 (d)에 도시된 연결처리에 의해 나중 익스텐트에 연결된다. 도 61의 (a)는 m+n+k<B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 단계 S81에서 AV 파일 시스템부(11)는 도 61의 (b)에 도시된 바와 같이 내부영역에 인-메모리 데이터를 기록한다. 인-메모리 데이터가 내부영역에 기록되면 AV 파일 시스템부(11)는 도 61의 (c)에 도시된 바와 같이 나중 익스텐트를 메모리에 판독하고 나중 익스텐트를 빈 영역으로 이동시키도록 인-메모리 데이터에 의해 점유된 영역 직후에 상기 판독된 나중 익스텐트를 기록한다.
그리고 도 61의 (d)에 도시된 바와 같이 AV 파일 시스템부(11)는 나중 익스텐트 다음의 익스텐트로부터 크기가 (AV 블록길이-(선행 익스텐트+인-메모리 데이터+나중 익스텐트))인 데이터를 취한다. AV 파일 시스템부(11)는 이 데이터를 선행 익스텐트, 인-메모리 데이터 및 나중 익스텐트와 연결한다.
선행 익스텐트, 나중 익스텐트 및 인-메모리 데이터의 크기의 합이 AV 블록길이와 적어도 같으면 처리는 단계 S82로 진행한다. 단계 S82에서 AV 파일 시스템부(11)는 이 선행 익스텐트 다음의 외부영역의 데이터 크기가 나중 익스텐트와 인-메모리 데이터의 크기의 합보다 작은지의 여부를 판단한다. 판단결과가 부정이면 처리는 단계 S83으로 진행한다. 도 62의 (a)는 i≥n+k, m+n+k≥B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 단계 S83에서 AV 파일 시스템부(11)는 도 62의 (b)에 도시된 바와 같이 내부영역에 인-메모리 데이터를 기록한다. 인-메모리 데이터가 기록된 후, AV 파일 시스템부 (11)는 나중 익스텐트를 메모리에 판독하고 나중 익스텐트를 이동시키도록 인-메모리 데이터의 점유된 영역 직후에 나중 익스텐트를 기록한다.
선행 익스텐트 다음의 외부영역의 데이터 크기가 나중 익스텐트 및 인-메모리 데이터의 크기의 합보다 작으면 처리는 단계 S82로부터 단계 S84로 진행한다. 단계 S84에서 나중 익스텐트를 처리하는 내부영역의 데이터 크기는 선행 익스텐트와 인-메모리 데이터의 크기의 합보다 작은지의 여부를 판정한다. 판정결과가 부정이면 처리는 단계 S85로 진행한다. 도 63의 (a)는 i<n+k, m+n+k<B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 단계 S85에서 AV 파일 시스템부(11)는 도 63의 (b)에 도시된 바와 같이 내부영역에 인-메모리 데이터를 기록한다. 인-메모리 데이터를 기록한 후, AV 파일 시스템부 (11)는 도 63의 (c)에 도시된 바와 같이 선행 익스텐트를 메모리에 판독하고 선행 익스텐트를 내부영역에 이동시키도록 인-메모리 데이터의 점유된 영역 직전의 저장영역에 선행 익스텐트를 기록한다.
단계 S84에서 판정이 "No"이면 처리는 단계 S86으로 진행한다. 도 64의 (a)는 i<n+k, j<m+k, m+n+k≥B의 관계로 DVD-RAM상의 선행 익스텐트, 나중 익스텐트, 내부영역 및 외부영역의 배열을 나타낸다. 단계 S86에서는 선행 익스텐트, 나중 익스텐트, 인-메모리 데이터의 합이 2개의 AV 블록길이보다 큰지의 여부가 판단된다. 판단결과가 부정이면 AV 파일 시스템부(11)는 선행 익스텐트와 동일한 구역내의 빈 영역을 검색한다. 빈 영역이 발견되면 AV 파일 시스템(11)은 메모리에 선행 익스텐트를 판독하고 도 64의 (b)에 도시된 바와 같이 선행 익스텐트를 빈 영역으로 이동시키도록 빈 영역에 상기 판독된 선행 익스텐트를 기록한다. 이동후, AV 파일 시스템(11)은 도 64의 (c)에 도시된 바와 같이 이동된 선행 익스텐트 직후의 저장영역에 인-메모리 데이터를 기록한다, 인-메모리 데이터를 기록한 후, AV 파일 시스템부(11)는 도 63의 (d)에 도시된 바와 같이 나중 익스텐트를 메모리에 판독하고 나중 익스텐트를 빈 영역에 이동시키도록 인-메모리의 점유된 영역 직후의 저장영역에 나중 익스텐트를 기록한다.
선행 익스텐트, 나중 익스텐트 및 인-메모리 데이터의 조합된 크기가 AV 블록을 초과하는 경우, 외부영역이나 내부영역이 큰지의 여부가 판단된다. 외부영역이 크면 연속길이가 AV 블록길이와 같아지도록 인-메모리 데이터의 일부가 외부영역에 기록된다. 인-메모리 데이터의 나머지 부분은 상이한 빈 영역에 기록되고 나중 익스텐트는 인-메모리 데이터의 나머지 부분 직후의 위치로 이동된다.
내부영역이 크면 AV 파일 시스템(11)은 선행 익스텐트를 빈 영역으로 이동시키며, 연속길이가 AV 블록길이와 같아지도록 인-메모리 데이터의 처음부분을 기록한다. 그 다음에 인-메모리 데이터의 나머지 부분은 내부영역에 기록된다.
익스텐트를 이동시키는 상술한 처리의 결과로서 총연속 길이는 AV 블록길이 이하로 유지될 수 있다.
선행 익스텐트 다음에는 인-메모리 데이터 및 나중 익스텐트의 앞부분이 상술한 절차로 연결되며 선행 익스텐트와 AV 파일 Af1+1을 포함하는 AV 파일 Af의 파일 엔트리는 합성된다. 하나의 합성된 파일 엔트리가 구해지며 처리는 종료된다.
(3-2-7-1-4-3) 선행 익스텐트와 나중 익스텐트가 AV 블록길이와 적어도 같은 경우의 처리
도 49의 흐름도의 단계 S65에서 판단이 "No"이면, 처리는 단계 S65로 진행하며, 여기에서 인-메모리 데이터는 AV 블록길이와 적어도 동일한지의 여부가 판단된다. 만약 동일하면 인-메모리 데이터는 빈 영역에 기록되어 처리는 종료한다.
도 49의 흐름도의 단계 S66에서 판단이 "No"이면, AV 파일 시스템부(11)는 선행 익스텐트 m이 AV 블록길이와 적어도 같고 나중 익스텐트 n이 AV 블록길이와 적어도 같으나, 인-메모리 데이터가 내부영역 i와 외부영역 j의 조합된 크기보다 작은지를 판단한다. 도 65는 나중 익스텐트가 AV 블록길이과 적어도 같은 경우의 흐름도이다.
도 66의 (a) 내지 (d)는 도 65의 AV 파일 시스템의 처리를 나타낸 보충예이다. 도 66의 (a)에서 선행 익스텐트와 나중 익스텐트는 둘다 적어도 AV 블록길이와 동일하다. 도 66의 (b) 내지 (d)는 인-메모리 데이터와 익스텐트가 도 65의 단계의 결과로서 내부영역, 외부영역 및 다른 빈 영역에 어떻게 기록되는지를 보여준다.
이 경우에 선행 익스텐트나 나중 익스텐트에 언더플로우가 발생할 위험은 없다. 그러나 인-메모리 데이터가 AV 파일 Af 다음의 외부영역과 AV 파일 Af+1 앞의 내부영역중 적어도 하나에 선행 익스텐트나 나중 익스텐트를 이동시키지 않고 기록될 수 있으면 이상적이다.
도 65의 흐름도의 단계 S87에서 외부영역의 크기가 인-메모리 데이터의 데이터 크기를 초과하는지의 여부가 판단된다. 초과하면 인-메모리 데이터는 도 66의 (b)에 도시된 바와 같이 단계 S88의 외부영역에 간단히 기록된다.
외부영역의 크기가 인-메모리 데이터의 데이터 크기보다 작으면 처리는 단계 S89로 이동하고, 여기에서 내부영역의 크기가 인-메모리 데이터의 데이터 크기를 초과하는지의 여부가 판단된다. 만약 초과하면 인-메모리 데이터는 도 66의 (c)에 도시된 바와 같이 단계 S89의 내부영역에 간단히 기록된다. 인-메모리 데이터가 외부영역이나 내부영역에 기록될 수 없으면 처리는 단계 S91로 진행하고, 여기에서 인-메모리 데이터는 도 66의 (d)에 도시된 바와 같이 외부영역과 내부영역에 각각 기록되는 2개의 부분으로 분할된다.
선행 익스텐트 다음에 인-메모리 데이터, 나중 익스텐트의 앞 부분이 상술한 순서로 연결되며, 선행 익스텐트를 포함하는 AV 파일 Af와 AV 파일 Af1+1의 파일 엔트리가 합성된다. 하나의 합성된 파일 엔트리가 구해지며 처리는 종료된다.
(3-2-7-1-4-4) 선행 익스텐트와 나중 익스텐트가 AV 블록길이와 적어도 같은 경우의 처리
도 49의 흐름도의 단계 S69에서는 선행 익스텐트 m이 AV 블록길이와 같고 나중 익스텐트 n이 AV 블록길이와 적어도 같으나, 인-메모리 데이터 k의 크기가 외부영역 j 및 내부영역 i의 합성된 크기를 초과하는지의 여부가 판단된다.
도 67은 내부영역과 외부영역의 합성된 크기를 제외한 선행 익스텐트가 인-메모리 데이터의 데이터 크기보다 작을 때의 처리를 나타낸 흐름도이다. 도 68의 (a) 내지 (e)는 도 67의 흐름도에서 AV 파일 시스템(11)의 처리를 나타낸 보충예이다. 도 68의 (a)에서 선행 익스텐트와 나중 익스텐트는 둘다 적어도 AV 블록길이와 동일하다. 도 68의 (b) 내지 (d)는 인-메모리 데이터와 익스텐트가 도 65의 단계의 결과로서 내부영역, 외부영역 및 다른 빈 영역에 어떻게 기록되는지를 보여준다.
이 경우에 선행 익스텐트와 나중 익스텐트는 모두 AV 블록길이와 적어도 동일하므로 인-메모리 데이터의 기록영역이 적어도 AV 블록길이와 적어도 같은 연속길이를 가져야만 하더라도 언더플로우가 발생할 위험은 없다.
단계 S92에서 선행 익스텐트와 인-메모리 데이터의 총크기는 적어도 2개의 AV 블록길이와 적어도 동일한지의 여부가 판단된다.
총크기가 2개의 AV 블록길이를 초과하면 처리는 단계 S93으로 진행하고, 여기에서 크기가 (AV 블록길이 - 인-메모리 데이터 k의 데이터 크기)인 데이터가 선행 익스텐트의 끝에서 판독되어 인-메모리 데이터가 기록되는 빈 영역으로 이동된다. 이로 인해 이 빈 영역의 기록상태와 두 익스텐트가 도 68의 (b)에 도시된 바와 같이 AV 블록길이와 같게 된다.
단계 S92에서 판단이 "No"이면, 처리는 단계 S94로 진행하며, 여기에서 나중 익스텐트와 인-메모리 데이터의 총크기는 2개의 AV 블록길이와 적어도 동일한지의 여부가 판단된다. 만약 동일하면, 나중 익스텐트가 AV 블록길이보다 짧게 종료될 위험성이 없이 과도하게 긴 논리블록 기록동작을 회피할 수 있고, 비교적 대량의 데이터가 나중 익스텐트에서 제거할 수 있기 때문에 단계 S92에서의 패턴을 따른다.
나중 익스텐트와 인-메모리 데이터의 총크기가 적어도 2개의 AV 블록길이와 동일하면 처리는 단계 S95로 진행하며, 여기에서 크기가(AV 블록길이 - 인-메모리 데이터 k의 데이터 크기)인 데이터가 나중 익스텐트의 시작에서 판독되어 선행 익스텐트 및 나중 익스텐트와 동일한 구역의 빈 영역으로 이동되며, 인-메모리 데이터는 또한 기록된다. 이로 인해 빈 영역의 기록상태와 두 익스텐트가 도 68의 (c)에 도시된 바와 같이 AV 블록길이와 같게 된다.
선행 익스텐트와 인-메모리 데이터의 총크기가 2개의 AV 블록길이보다 작고, 선행 익스텐트와 인-메모리 데이터의 총크기가 2개의 AV 블록길이보다 작으면, 논리 블록에 기록될 총데이터의 양이 AV 블록길이보다 작으므로 포함된 기록 처리에 의해 취해진 시간에 관계없이 실행될 수 있다.
따라서 선행 익스텐트와 인-메모리 데이터의 총크기가 2개의 AV 블록길이보다 작고, 나중 익스텐트와 인-메모리 데이터의 총크기가 2개의 AV 블록길이보다 작으면, 처리는 단계 S96으로 진행하고, 여기에서 보다 큰 선행 익스텐트와 나중 익스텐트가 발견된다. 이러한 상황에서, 비록 본 실시예에서는 이동될 2개중 보다 작은 것이 이상적이라 하더라도 단계 S96의 판단에서 선행 익스텐트나 나중 익스텐트의 어느 하나가 이동될 수 있다. 선행 익스텐트가 2개중의 작은 것이면 단계 S97에서 선행 익스텐트는 이동되며, 인-메모리 데이터는 인-메모리 데이터 직후의 위치에 기록된다. 그렇게 할때 이 빈 영역에 기록된 데이터의 연속길이는 도 68의 (d)에 도시된 바와 같이 2개의 AV 블록길이보다 작다.
나중 익스텐트가 2개중 보다 더 작으면 단계 S98에서 나중 익스텐트가 이동되고 인-메모리 데이터는 인-메모리 데이터 직전의 위치에 기록된다. 그렇게 할 때 이 빈 영역에 기록된 데이터의 연속길이는 도 68의 (e)에 도시된 바와 같이 2개의 AV 블록길이보다 작다.
선행 익스텐트 다음에 인-메모리 데이터, 나중 익스텐트의 앞 부분이 상술한 순서로 연결되면, 선행 익스텐트를 포함하는 AV 파일 Af와 AV 파일 Af1+1의 파일 엔트리가 합성된다. 하나의 합성된 파일 엔트리가 구해지며 처리는 종료된다.
최악의 경우에 이동되어 기록된 데이터의 데이터 크기를 2개의 AV 블록길이로 제한할 수 있는 다양한 환경을 처리하는 "MERGE(병합)"에 관한 흐름도에 대해 설명한다. 그러나 이것은 2개의 AV 블록 길이를 초과하는 데이터가 기록되어야 하는 경우가 없다는 것을 의미하는 것은 아니며, 다음의 두가지 경우는 2개의 AV 블록 길이를 초과하는 데이터가 기록되어야 하는 이러한 예외를 설명한다.
첫번째 예외로서 비록 AV 블록길이의 별개의 빈 영역이 이용가능하다 하더라도 2개의 AV 블록길이의 연속길이를 갖는 빈 영역이 필요하다. 이 경우에 2개의 AV 블록 길이의 연속길이를 갖는 빈 영역을 생성시키기 위해서는 하나의 AV 블록길이에 대한 AV 데이터가 이동되어야만 한다.
두번째 예외로서, 도 60의 단계 S81에서 나중 익스텐트로부터 데이터의 이동에 의해 나중 익스텐트의 나머지 부분이 AV 블록길이보다 작게 된다. 이 경우에 추가의 이동동작이 필요하게 되어 전체 처리에서 이동된 데이터의 총량이 2개의 AV 블록길이를 초과한다.
상술한 설명은 2개의 AV 파일, 인-메모리 데이터의 연결에 대해서만 설명하고 있으나, MERGE(병합) 명령은 단 하나의 AV 파일과 인-메모리 데이터에 대해 실행될 수 있다. 이 경우는 AV 파일의 마지막 익스텐트에 데이터를 부가할 때와 같으므로 이러한 부가후의 총크기는 AV 블록크기와 적어도 같을 필요가 있다. 결국, 인-메모리 데이터는 이 최종 익스텐트 다음의 외부영역에 기록된다. 내부영역이 너무 작아 모든 인-메모리 데이터를 기록할 수 없으면 인-메모리 데이터의 나머지 부분은 별개의 빈 AV 블록에 기록될 수 있다.
상술한 연결처리는 비록 파일을 가로지르는 이음매없는 재생에 대해 사용될 수 있기는 하지만 파일내의 이음매없는 재생의 전제에 대해 설명되었다. 파일을 가로지르는 이음매없는 재생은 현재의 AV 파일로부터 다른 AV 파일로의 재생의 분기를 참조한다. 상술한 바와 동일한 방식으로 2개의 AV 파일과 인-메모리 데이터를 연결하면 각 익스텐트의 연결길이는 AV 블록길이와 적어도 동일하여야 하므로 전체 연결절차가 사용되어야 한다.
이것은 AV 파일 시스템부(11)에 의해 사용된 연결절차의 설명을 완성한다.
(3-2-7-1-5) VOB정보와 PGC정보의 갱신
다음으로 "SPLIT(분할)" 명령과 "MERGE(병합)" 명령을 실행할 때 VOB정보(타임 맵표, 이음매없는 연결정보)와 PGC정보(셀정보)의 갱신을 설명한다.
먼저, "SPLIT(분할)" 명령을 실행할 때의 처리를 설명한다. "SPLIT(분할)" 명령의 실행에 의해 얻어지는 복수의 AV 파일 중에서 하나의 AV 파일이 그것이 분리되는 VOB를 기록하는 AV 파일과 동일한 AV_File_ID로 할당된다. 그러나 AV 파일로부터 분리된 다른 AV 파일중의 AV_File_ID는 새로운 값으로 할당될 필요가 있다.
원래 AV 파일로서 기록된 VOB는 SPLIT(분할) 명령의 실행 때문에 수개의 부분을 상실하므로 상실된 부분을 나타낸 마크가 삭제될 필요가 있다. 동일한 방식으로 이들 마크를 시작점과 종료점으로서 부여하는 셀정보가 RTRW 관리파일로부터 삭제될 필요가 있다.
마크 포인트를 삭제하는 외에 AV 파일의 비디오 프리젠테이션 시작 프레임을 C_V_S_PTM으로서 나타내고 AV 파일의 비디오 프리젠테이션 종료 프레임을 C_V_E_PTM으로서 나타낸 새로운 셀정보를 생성하고 이 새로운 셀정보를 RTRW 관리파일에 부가하는 것이 필수적이다.
이음매없는 연결정보와 시간 맵표를 포함하는 VOB정보는 대응 VOB가 분할될 때 복수의 부분으로 분할된다. 보다 상세하게는 mx VIB가 분할에 의해 생성되면 VOB정보는 mx세트의 이음매없는 연결정보와 mx 시간 맵표를 부여하도록 분할된다.
SPLIT(분할) 명령의 실행을 수반하는 처리에 의해 생성된 VOB의 비디오 프리젠테이션 시작 시간 VOB_V_S_PTM과 비디오 프리젠테이션 종료 시간 VOB_V_E_PTM은 각각 SPLIT(분할) 명령을 위해 사용된 셀정보의 시작점과 종료점에 의해 표시된 C_V_S_PTM과 C_V_E_PTM에 기초하여 각각 설정된다. 이음매없는 연결정보에서 Last_SCR과 First_SCR 또한 갱신된다.
다음은 MERGE(병합) 명령이 실행되었을 때 정보가 어떻게 갱신되는지에 관한 설명이다. MERGE(병합) 명령의 실행에 의해 하나의 AV 파일이 복수의 AV 파일에 의해 생성되므로 이 복수의 AV 파일에 포함된 VOB는 상관되지 않은 프레임 데이터의 세트로 구성되며 이것은 이들 AV 파일을 가로지르는 시간 스탬프가 연속되지 않는다는 것을 의미한다. 이들은 상이한 AV 파일에 원래 포함되어 있던 복수의 VOB와 다르기 때문에 별개의 VOB_ID가 이들 VOB에 할당된다.
다른 필수적인 처리를 제 2 실시예에서 설명한다. 그러나 분리영역을 특정하는 셀정보 내의 C_V_E_PTM은 인코드된 선행 VOBU의 부분에 포함된 프레임수에 의해 증가될 필요가 있다. 이와 유사하게 나중 AV 파일의 분리영역을 특정하는 셀정보 내의 C_V_S_PTM은 인코드된 나중 VOBU의 부분에 포함된 프레임수에 의해 감소될 필요가 있다.
(3-2-3)
조각모으기부(16)는 고정 자기 디스크 장치에 접속된다. 이 조각모으기부 (16)는 연결처리 또는 다른 처리가 되며 기록영역의 어느 한쪽 면에 빈 영역을 갖는 DVD-RAM 상에 기록된 익스텐트중 하나의 익스텐트를 판독하고, 이 익스텐트를 고정 자기 다스크에 기록하여 고정 자기 디스크내에 백업 데이터가 생성되도록 한다. 고정 자기 디스크 장치상에 이러한 익스텐트의 전부를 기록한 후 조각모으기부(16)는 생성된 백업 데이터를 판독하고 백업 익스텐트에 대한 그 백업 데이터를 익스텐트에 인접한 빈 영역에 기록한다.
여기에서 그들의 기록영역에 인접한 빈 영역를 갖는 익스텐트는 "SPLIT(분할)" 명령이나 "SHORTEN(단축)" 명령을 실행하는 AV 파일 시스템(11)에 의해 생성된 익스텐트이다. 이들 빈 영역은 소거된 영역과 동일하며 이것은 MERGE(병합) 명령이 실행되었을 때의 익스텐트에 대한 이동된 영역이나 인-메모리 데이터의 기록영역으로서 사용되기 때문이 아니다.
도 69의 (a) 내지 (d)는 조각모으기부(16)의 동작을 설명하기 위한 예시도이다. 도 69의 (a)에서 익스텐트 #x는 그 기록영역의 양면에 빈 영역 i, j를 갖는 익스텐트로서 도시되어 있다. 도 69의 (a)에 도시된 바와 같이 조각모으기부(16)는 이 익스텐트를 검출하여 DVD 레코더(70)로부터 그것을 판독하여 고정 자기 디스크 장치에 기록한다.
이 기록동작의 결과로서 고정 자기 디스크 장치에는 도 69의 (b)에 도시된 바와 같이 백업 데이터가 생성된다. 그 다음에 이 조각모으기부(16)는 도 69의 (c)에 도시된 바와 같이 고정 자기 디스크장치로부터 백업 데이터를 판독하고 익스텐트 #x의 현재의 기록영역과 이 기록영역 다음의 빈 영역 j을 모두 사용할 수 있도록 그 익스텐트를 DVD-RAM에 기록한다. 이것은 도 69의 (d)에 도시된 바와 같이 익스텐트 #x 앞에 길이 i+j의 연속된 빈 영역을 생성시킨다. 다음으로 익스텐트 #y에 대하여 이러한 처리를 실행함으로써 빈 영역의 연속길이를 추가로 증가시킬 수 있다.
조각모으기부(16)에 의해 실행된 기록은 우선 고정 자기 디스크 장치에 익스텐트를 저장함으로써 달성되므로 익스텐트를 DVD-RAM에 기록하는 동안 DVD 레코더에 대해 전원 문제가 발행한다고 하더라도 이 기록처리는 더 실행될 수 있다. 익스텐트를 DVD-RAM 상의 커다란 빈 영역에 이동시키기 전에 백업을 생성함으로써 DVD 레코더(70)에 전기고장이 일어날 때 익스텐트의 데이터를 상실할 염려가 없다.
상술한 본 실시예에 의해 사용자에 의해 복수의 AV 파일의 편집이 자유롭게 실행될 수 있다. 짧은 연속길이를 갖는 복수의 단편화된 AV 파일이 생성되면 DVD 레코더(70)는 적어도 AV 블록길이와 같은 연속길이를 갖는 생성된 AV 파일에 이들 짧은 AV 파일을 연결시킨다. 결국 AV 파일의 조각화에 의해 야기되는 문제점은 관리될 수 있으며, 인터럽트되지 않은 재생이 이들 AV 파일에 기록된 AV 데이터에 대해 실행될 수 있다.
연결처리중에는 기록될 데이터의 총크기가 2개의 블록길이와 적어도 같은지가 판단되어, 같으면 미리 기록된 AV 데이터의 이동량이 제한된다. 결국 기록될 데이터의 총크기는 2개의 AV 블록길이보다 작게 보장될 수 있으므로 짧은 시간에 연결이 완성될 수 있다.
재인코드된 데이터를 기록하기 위한 복수의 파일에 대한 사용자 편집동작의 결과로서 짧은 연속길이가 필수적인 경우라 할지라도 DVD 레코더(70)는 이 재인코드된 데이터가 재생중에 앞에 오거나 뒤에 오는 AV 데이터와 연결되게 하는 기록위치에서 이 재인코드된 데이터를 기록한다. 이것은 재인코드된 데이터의 조각난 기록이 시작부터 방지된다는 것을 의미하므로 이러한 AV 파일에 기록된 AV 데이터에 대한 인터럽트되지 않은 재생이 가능하다.
데이터의 이동은 함께 연결된 2세트의 AV 데이터가 디스크상에서 과도하게 분리되는 것을 피하기 위해 실행될 수 있다. 이러한 경우에 디스크상에 물리적으로 분리된 데이터 세트를 연결함으로써 생성된 데이터가 2세트의 AV 데이터의 인터럽트되지 않은 재생이 가능하게 되는 방식으로 배열된다. 그러나 빨리감기와 같은 특별한 재생이 실행되면 디스크상의 데이터의 과도한 분리에 의해 데이터의 재생에 저키(jerky)가 발생한다.
이러한 경우에 원활한 재생을 위해 2세트의 AV 데이터가 연결될 때 데이터 세트중의 하나가 소정량의 수배의 연속길이이고, 적합한 크기의 빈 블록이 2세트의 데이터 사이에 위치되면, 데이터는 이 빈 블록으로 이동될 수 있다. 그렇게 함으로써 정상재생과 특별재생에 대해 원활한 재생이 보증될 수 있다.
시간정보는 셀정보의 마크 포인트로부터 취할 수 있으며, 표의 형태로 시간 맵표로부터 취한 어드레스와 같은 정보로 관리된다. 그렇게 함으로써 이 정보는 초기의 예비 편집상태를 보여주는 스크린에 가능한 선택으로서 사용자에게 제공될 수 있다.
각각의 마크 포인트에는 축소된 이미지("섬네일(thumbnail)"이라고도 함)가 생성되어 별도의 파일로서 저장되며 각각의 섬네일에 대하여 포인터 정보가 생성될 수 있다. 예비 편집단계에서 셀정보를 표시할 때 이들 섬네일은 사용자에 의해 행해질 수 있는 가능한 선택을 보여주도록 디스플레이될 수 있다.
본 실시예는 비디오 데이터와 오디오 데이터가 처리될 때의 경우를 설명하나 이것은 본 발명의 기술에 대해 유효한 제한이 아니다. DVD-ROM에 대해 실행길이 인코드된 부제에 대한 부화상 데이터와 정지화상이 또한 취급될 수 있다. 제 3 실시예에서 흐름도를 이용하여 설명된 AV 파일 시스템부(11)의 처리(도 48의 (a)와 (b), 도 49, 도 50, 도 55, 도 60, 도 65 및 도 67)는 기계어 프로그램에 의해 달성될 수 있다. 이러한 기계어 프로그램은 기록매체에 기록되어 배포되거나 판매될 수 있다. 이러한 기록매체의 예로서 IC카드, 광 디스크 또는 플로피 디스크가 있다. 기록매체에 기록된 기계어 프로그램은 표준 개인 컴퓨터에 설치될 수 있다. 설치된 기계어 프로그램을 실행함으로써 표준 개인 컴퓨터는 제 3 실시예의 비디오 데이터 편집장치의 기능을 달성할 수 있다.
제 4 실시예
본 발명의 제 4 실시예는 두종류의 프로그램 체인, 즉 사용자 정의 PGC와 원래의 PGC를 사용하여 가상편집과 실제편집으로 구성되는 2단계 편집처리를 실행한다. 사용자 정의 PGC와 원래의 PGC를 정의하기 위해 제 1 실시예의 RTRW 관리파일에 새로운 표가 부가된다.
(4-1) RTRW 관리파일
다음은 제 4 실시예의 RTRW 관리파일의 구성에 관한 설명이다. 제 4 실시예에서, RTRW 관리파일은 동일한 디렉토리(RTRW 디렉토리)내에 AV 파일로서 기록되며, 도 70의 (a)에 도시된 내용을 갖는다.
도 70의 (a)는 제 4 실시예의 RTRW 관리파일의 저장된 내용을 상세하게 확장한 도면이다. 도 70의 (a)의 우측에 위치된 논리포맷은 보다 상세하게는 도 70의 (a)의 좌측에 도시되어 있으며 도 70의 (a)의 점선은 좌측과 우측 사이의 대응을 나타내고 있다. 도 70의 (a)에 도시된 VOB의 논리포맷으로부터 RTRW 관리파일은 제 1 실시예의 VOB정보에 부가하여 원래의 PGC정보표, 사용자 정의 PGC정보 및 타이틀 검색 포인터를 포함한다.
(4-1-2) 원래의 PGC정보의 내용
원래의 PGC정보표는 복수 세트의 원래의 PGC정보로 구성된다. 원래의 PGC정보의 각 세트는 이들이 AV 파일내에 배열되는 순서에 따라 RTRW 디렉토리에 존재하는 AV 파일에 저장된 VOB 또는 이들 VOB내의 부분을 나타내는 정보이다. 원래의 PGC정보의 각 세트는 RTRW 디렉토리에 존재하는 AV 파일에 기록된 VOB의 하나에 대응하므로 AV 파일이 RTRW 디렉토리에 기록되면 원래의 PGC정보의 세트는 비디오 데이터 편집장치에 의해 생성되며 RTRW 관리파일에 기록된다.
도 70의 (b)는 원래의 PGC정보 세트의 데이터 포맷을 나타낸다. 원래의 PGC정보의 각 세트는 복수 세트의 셀정보로 구성되며 셀정보의 각 세트는 셀정보의 세트에 할당된 유일한 식별자인 셀 ID(도 70의 (b)에서 CELL #1, #2, #3, …), AV 파일 ID(도 70의 (b)에서 AVF_ID), VOB_ID, C_V_S_PTM 및 C_V_E_PTM으로 구성된다.
AV 파일 ID는 셀정보의 세트에 대응하는 AV 파일의 식별자를 기록하기 위한 컬럼이다.
VOB_ID는 AV 파일에 포함된 VOB의 식별자를 기록하기 위한 컬럼이다. 복수의 VOB가 셀정보의 세트에 대응하는 AV 파일에 포함되면 이 VOB_ID는 복수의 VOB중 어느 것이 현재 세트의 셀정보에 대응하는지를 나타낸다.
셀시작 시간 C_V_S_PTM(도면에서는 줄여서 C_V_S_PTM라 함)은 현재의 셀정보에 의해 표시된 셀의 시작시간을 나타내고 또한 PTM 서술자 포맷을 이용하여 섹션의 첫번째 비디오 필드의 시작시간에 할당되는 PTS를 기록하기 위한 컬럼을 갖는다.
셀 종료시간 C_V_E_PTM(도면에서는 단축하여 C_V_E_PTM이라 함)은 현재의 셀정보에 의해 표시된 셀의 종료시간을 나타내고 또한 PTM 서술자 포맷을 이용하여 섹션의 마지막 비디오 필드의 종료시간을 기록하기 위한 컬럼을 갖는다.
셀시작 시간 C_V_S_PTM과 셀 종료시간 C_V_E_PTM으로 주어진 시간정보는 비디오 인코더에 의한 인코딩 동작을 위한 시작시간과 인코딩 동작을 위한 종료시간을 나타내며, 이들은 사용자에 의해 삽입된 마크점에 대응한다.
원래의 PGC정보 세트의 셀정보의 각 세트의 셀 종료시간 C_V_E_PTM은 주어진 순서의 다음 세트의 셀정보의 셀시작 시간 C_V_S_PTM과 일치한다. 이 관계는 셀정보 세트 사이에서 확립되기 때문에 원래의 PGC는 어떤 섹션도 생략함이 없이 VOB의 모든 섹션을 나타낸다. 결국 원래의 PGC는 섹션이 상호변경되는 순서로 VOB의 섹션을 표시할 수 없다.
(4-1-3) 사용자 정의 PGC정보의 내용
사용자 정의 PGC정보표는 복수 세트의 사용자 정의 PGC정보로 구성된다. 사용자 정의 PGC정보 세트의 데이터 포맷은 도 70의 (c)에 도시되어 있다. 원래의 PGC정보 세트와 달리 사용자 정의 PGC정보의 세트는 복수의 셀정보 세트로 구성되며, 이들의 각각은 AV 파일 ID, VOB_ID, C_V_S_PTM 및 C_V_E_PTM으로 구성된다.
사용자 정의 PGC정보의 세트는 비록 이들 셀정보 세트의 특성과 배열이 원래의 PGC정보의 것들과 다르더라도 원래의 PGC정보와 동일한 방식으로 복수 세트의 사용자 정의 PGC정보로 구성된다. 원래의 PGC정보 세트는 비디오 오브젝트의 섹션이 셀정보 세트가 배열되는 순서로 차례로 재생됨을 나타내나, 사용자 정의 PGC정보 세트는 비디오 오브젝트의 섹션이 그들이 배열되는 순서로 재생되는 것을 나타내는 것에 한정하지 않는다.
사용자 정의 PGC의 셀정보 세트에 의해 표시되는 섹션은 사용자 정의 PGC정보 세트에 의해 표시되는 섹션 또는 원래의 PGC정보의 세트에 의해 표시되는 섹션의 일부(부분 섹션)와 동일할 수 있다. 한 세트의 셀정보에 의해 표시된 섹션은 다른 세트의 셀정보에 의해 표시되는 섹션과 중첩될 수 있다.
한 세트의 셀정보에 의해 표시되는 섹션과 다른 세트의 셀정보에 의해 표시되는 섹션 사이에는 간격이 있을 수 있다. 이것은 사용자 정의 PGC정보의 세트가 VOB의 모든 섹션을 표시할 필요가 없다는 것을 의미하므로 VOB의 하나 이상의 부분이 표시될 수 없다. 원래의 PGC는 그들의 재생순서에 관한 엄격한 제한이 있으나, 사용자 정의 PGC는 이러한 제한이 없으므로 셀정보의 재생순서는 자유롭게 정의될 수 있다. 특별한 예로서 사용자 정의 PGC내의 셀의 재생정보는 셀이 배열되는 순서의 반대일 수 있다. 또한 사용자 정의 PGC는 상이한 AV 파일에 기록된 VOB의 섹션을 나타낸다.
원래의 PGC는 AV 파일 또는 VOB가 배열되는 순서에 따라 하나의 AV 파일 또는 하나의 VOB에서의 부분 섹션을 나타내므로 원래의 PGC는 표시된 데이터의 배열에 관계되는 것으로 말할 수 있다. 그러나 사용자 정의 PGC는 이러한 제한이 없어서 사용자가 원하는 순서를 섹션을 표시할 수 있다. 결국, 이들 사용자 정의 PGC는 비디오 데이터 편집동작 중에 VOB내의 복수의 섹션의 연결을 위해 사용자에 의해 일시적으로 결정된 재생순서를 저장하는데 이상적이다.
원래의 PGC는 AV 파일과 AV 파일내의 VOB에 관련되며, 원래의 PGC내의 셀은 이들 VOB내의 섹션을 나타낸다. 한편 사용자 정의 PGC는 특정 VOB에 연관되는 것으로 제한되는 것은 아니므로 사용자 정의 PGC정보에 포함된 셀정보의 세트는 상이한 VOB내의 섹션을 나타낸다.
다른 차이로서 원래의 PGC는 AV 파일을 기록할 때 생성되나, 사용자 정의 PGC는 AV 파일의 기록 다음의 임의의 시점에서 생성될 수 있다.
(4-1-4) PGC정보-비디오 속성정보-AV 파일의 통합
다음은 AV 파일, VOB, PGC정보 세트의 상관관계에 대한 설명이다. 도 71은 AV 파일, VOB, 시간 맵표 및 PGC정보 세트를 나타낸 것으로, 통합된 몸체를 형성하는 요소는 두꺼운 실선으로 그려진 프레임내에 둘러싸여 있다. 도 71에서 용어 "PGC정보"는 "PGCI"로 줄여서 설명한다.
도 71에서, AV 파일 #1, VOB정보 #1 및 셀정보 #1 내지 #3의 세트로 구성된 원래의 PGC정보 #1는 동일한 프레임내에 배열되며, AV 파일 #2, VOB정보 #2및 셀정보 #1 내지 #3의 세트로 구성된 원래의 PGC정보 #2는 상이한 프레임내에 배열된다.
도 71의 동일한 프레임내에 존재하는 AV 파일(또는 VOB), VOB정보 및 원래의 PGC정보는 DVD-RAM 표준하의 "원래의 PGC"라 불린다. DVD-RAM 표준과 부합하는 비디오 데이터 편집장치는 원래의 PGC라 불리는 부분을 비디오 타이틀로 불리는 관리부로 처리한다.
도 71의 예에서, AV 파일 #1, VOB정보 #1 및 원래의 PGC정보 #1의 조합은 원래의 PGC #1이라 하며, AV 파일 #2, VOB정보 #2 및 원래의 PGC정보 #2의 조합은 원래의 PGC #2라 한다.
DVD-RAM에 인코드된 VOB를 기록하는 외에 원래의 PGC를 기록할 때 VOB정보와 이들 정보에 대한 원래의 PGC정보를 생성시키는 것이 필수적이다. 그러므로 원래의 PGC 기록은 AV 파일, VOB정보표 및 원래의 PGC정보의 모두 3개가 DVD-RAM에 기록될 때 완료되는 것으로 간주된다. 다른 방법으로, AV 파일 자체로서 DVD-RAM에 인코드된 VOB를 기록하는 것은 DVD-RAM에 원래의 PGC를 기록하는 것을 완료하는 것으로서 간주하지 않는다.
이것은 또한 삭제의 경우에도 있으므로 원래의 PGC는 전체로서 삭제된다. 다른 방식으로, AV 파일, VOB정보 및 원래의 PGC정보의 어느 하나가 삭제되면 동일한 원래의 PGC의 다른 요소 또한 삭제된다.
원래의 PGC의 재생은 원래의 PGC정보를 나타내는 사용자에 의해 실행된다. 이것은 사용자가 어떤 AV 파일 또는 VOB의 재생에 대한 표시를 직접 부여하지 않는다는 것을 의미한다.
여기에서 원래의 PGC는 부분적으로 재생될 수 있다. 원래의 PGC의 이러한 부분적인 재생은 비록 VOBU와 같은 셀보다 작은 섹션의 재생이 표시될 수 없다고 하더라도 원래의 PGC에 포함된 셀정보의 세트를 나타내는 사용자에 의해 실행된다.
다음은 사용자 정의 PGC의 재생에 대한 설명이다. 도 71에서 CELL#1 내지 #4로 구성된 사용자 정의 PGC정보 #3은 전술한 원래의 PGC #1과 #2에 대하여 별도의 프레임에 포함된다. 이것은 DVD-RAM 표준에 있어서, 사용자 정의 PGC정보가 사실상 AV 데이터가 아니며 대신 별개의 타이틀로서 관리된다는 것을 보여준다.
결국 비디오 데이터 편집장치는 RTRW 관리파일의 사용자 정의 PGC정보를 정의하고, 그렇게 함으로써 사용자 정의 PGC의 생성을 완료할 수 있다. 사용자 정의 PGC에 있어서 사용자 정의 PGC의 재생은 사용자 정의 PGC정보의 세트의 정의와 동일한 관계에 있다.
사용자 정의된 PGC를 삭제하면 RTRW 관리파일로부터 사용자 정의된 PGC정보를 삭제하기 충분하며, 사용자 정의 PGC는 그 다음에는 존재하지 않는 것으로 간주된다.
사용자 정의 PGC의 재생을 위한 장치는 원래의 PGC에 대한 것과 동일하다. 이것은 사용자 정의 PGC의 재생이 사용자 정의 PGC정보를 나타내는 사용자에 의해 실행된다는 것을 의미한다. 사용자 정의 PGC는 또한 부분적으로 재생될 수 있다. 사용자 정의 PGC의 이러한 부분적인 재생은 사용자 정의 PGC에 포함된 셀을 나타내는 사용자에 의해 달성된다. 원래의 PGC와 사용자 정의 PGC 사이의 차는 사용자의 관점에서는 상술한 바와 같으나 이러한 차이점을 알 필요는 없다. 이것은 PGC의 양 종류의 전체 재생 또는 부분재생이 PGC정보 또는 셀정보를 각각 표시함으로써 동일한 방식으로 실행되기 때문이다. 결국 두종류의 PGC는 "비디오 타이틀"이라고 불리는 단위를 사용하는 동일한 방식으로 관리된다.
다음은 원래의 PGC와 사용자 정의 PGC의 재생에 관한 설명이다. 도 71에서 점선으로 그린 화살표는 어떤 데이터 세트가 다른 데이터를 어떻게 참조하는지를 보여준다. 화살표 y2, y4, y6 및 y8은 VOB정보내의 시간 맵표에 포함된 시간 코드와 VOB내의 각 VOBU 사이의 관계를 보여주나, 화살표 y1, y3, y5 및 y7은 VOB정보내의 시간 맵표에 포함된 시간 코드와 셀정보의 세트 사이의 관계를 보여준다.
여기에서 사용자는 PGC의 하나를 나타내는 것으로 가정되므로 비디오 타이틀은 재생되게 된다. 표시된 PGC가 원래의 PGC #1이면 원래의 PGC정보 #1의 앞에 위치된 셀정보 #1의 세트는 재생장치에 의해 추출된다. 다음으로 재생장치는 셀정보 #1의 추출된 세트에 포함된 AV 파일과 VOB 식별자를 참조하고 AV 파일 #1, VOB #1 및 이 VOB에 대한 시간 맵표 #1을 이 셀정보에 대응하는 AV 파일과 VOB로서 특정한다.
특정된 시간 맵표 #1은 VOB를 구성하는 각 VOBU의 크기와 각 VOBU의 재생기간을 포함한다. 데이터 액세스 능력을 향상시키기 위해 특정 시간 맵표 #1은 또한 10초의 배수와 같은 일정한 간격으로 선택된 대표적인 VOBU에 대한 VOB의 시작에 대한 경과시간과 어드레스를 포함한다. 결국 화살표 y1로 나타낸 바와 같이 셀시작 시간 C_V_S_PTM을 이용하는 시간 맵표를 참조함으로써 재생장치는 셀정보 #1의 세트에 포함된 셀 시작시간 C_V_S_PTM에 대응하는 AV 파일내의 VOBU를 특정하고 이 VOBU의 첫번째 어드레스를 특정할 수 있다. 그렇게 함으로써 재생장치는 이 셀 시작시간 C_V_S_PTM에 대응하는 VOBU의 첫번째 어드레스를 결정할 수 있고, 화살표 y2로 나타낸 바와 같이 VOBU #1에 액세스할 수 있으며, VOBU#1로부터 시작하는 VOBU 열의 판독을 시작할 수 있다.
셀정보 #1의 세트는 셀 종료시간 C_V_E_PTM을 포함하기 때문에 재생장치는 셀정보 #1의 세트에 포함된 셀 종료시간 C_V_E_PTM에 대응하는 AV 파일내에 VOBU를 특정하도록 화살표 y3으로 나타낸 바와 같이 이 셀 종료시간 C_V_E_PTM을 사용하여 시간 맵표에 액세스할 수 있다. 결국 재생장치는 셀 종료시간 C_V_E_PTM에 대응하는 VOBU의 첫번째 어드레스를 결정할 수 있다. 셀 종료시간 C_V_E_PTM에 대응하는 VOBU가 예컨대 VOBU #10이면 재생장치는 화살표 y4로 나타낸 바와 같이 VOBU#10에 도달할 때 VOBU열의 판독을 중단한다.
셀정보 #1과 VOB정보 #1을 통해 AV 파일을 액세스함으로써 재생장치는 AV 파일 #1에 포함된 VOB#1의 데이터중에서 셀정보 #1에 의해 표시된 섹션만을 판독할 수 있다. 만약 판독이 셀정보 #2, #3 및 #4에 대해 실행되면 VOB#1에 포함된 모든 VOBU는 판독 및 재생될 수 있다.
재생이 상술한 바와 같이 원래의 PGC에 대하여 실행되면 VOB의 섹션은 그들이 VOB에 배열되는 순서로 재생될 수 있다.
다음은 사용자가 사용자 정의 PGC중 하나에 의해 표시된 비디오 타이틀의 재생을 나타낼 때의 설명에 관한 것이다.
표시된 PGC가 사용자 정의된 PGC #1이면 재생장치는 이 사용자 정의 PGC #1에 대한 사용자 정의 PGC의 앞에 위치된 셀정보 #1의 세트를 추출한다. 다음으로 재생장치는 화살표 y5로 나타내는 바와 같이 이 셀정보 #1에 포함된 셀시작 시간 C_V_S_PTM을 사용하여 시간 맵표 #1을 참조하고, 셀정보 #1에 포함된 셀시작 시간 C_V_S_PTM에 대응하는 VOBU #1내의 VOBU를 특정한다. 이 경우에 재생장치는 VOBU #11을 셀시작 시간 C_V_S_PTM에 대응하는 VOBU로서 특정하고, 화살표 y6으로 나타낸 바와 같이 VOBU #11을 액세스하며, VOBU #11로부터 시작하는 VOBU열의 판독을 시작한다.
사용자 정의 PGC #1에 포함된 셀정보 #1은 또한 셀 종료시간 C_V_E_PTM을 포함하므로, 재생장치는 화살표 y7로 나타낸 바와 같이 셀 종료시간 C_V_E_PTM을 이용하여 시간 맵표를 참조하며, 셀정보 #1에 포함된 셀 종료시간 C_V_E_PTM에 대응하는 VOB#1의 VOBU를 특정한다. 셀 종료시간 C_V_E_PTM에 대응하는 VOBU가 예컨대 VOBU #1이면 재생장치는 화살표 y8로 나타낸 바와 같이 VOBU #1에 도달할 때 VOBU열의 판독을 중단한다.
상술한 바와 같이 셀정보 #1과 VOB정보 #1을 통해 AV 파일을 액세스한 후, 재생장치는 사용자 정의 PGC정보 #1에 포함된 셀정보 #2, #3 및 #4에 대해 동일한 처리를 실행한다.
셀정보 #1 다음 위치에 위치된 셀정보 #2를 추출한 후, 재생장치는 추출된 셀정보 #2에 포함된 AV 파일 식별자를 참조하므로, AV 파일 #2가 이 셀정보에 대응하고 시간 맵표 #2가 이 AV 파일에 대응하는지를 결정한다.
특정된 시간 맵표 #2는 VOB를 구성하는 각 VOBU의 크기와 각 VOBU의 재생기간을 포함한다. 데이터 액세스 능력을 향상시키기 위해 특정 시간 맵표 #2는 또한 10초의 배수와 같은 일정한 간격으로 선택된 대표적인 VOBU에 대한 VOB의 시작에 대한 경과시간과 어드레스를 포함한다. 결국 화살표 y9로 나타낸 바와 같이 셀시작 시간 C_V_S_PTM을 이용하는 시간 맵표를 참조함으로써 재생장치는 셀정보 #2의 세트에 포함된 셀 시작시간 C_V_S_PTM에 대응하는 AV 파일내의 VOBU를 특정하고 이 VOBU의 첫번째 어드레스를 특정할 수 있다. 그렇게 함으로써 재생장치는 이 셀 시작시간 C_V_S_PTM에 대응하는 VOBU의 첫번째 어드레스를 결정할 수 있고, 화살표 y10으로 나타낸 바와 같이 VOBU #2에 액세스할 수 있으며, VOBU#2로부터 시작하는 VOBU 열의 판독을 시작할 수 있다.
셀정보 #2의 세트는 셀 종료시간 C_V_E_PTM을 포함하기 때문에 재생장치는 셀정보 #2의 세트에 포함된 셀 종료시간 C_V_E_PTM에 대응하는 AV 파일내에 VOBU를 특정하도록 화살표 y11로 나타낸 바와 같이 이 셀 종료시간 C_V_E_PTM을 사용하여 시간 맵표에 액세스할 수 있다. 결국 재생장치는 셀 종료시간 C_V_E_PTM에 대응하는 VOBU의 첫번째 어드레스를 결정할 수 있다. 셀 종료시간 C_V_E_PTM에 대응하는 VOBU가 예컨대 VOBU #11이면 재생장치는 화살표 y12로 나타낸 바와 같이 VOBU#11에 도달할 때 VOBU열의 판독을 중단한다.
이러한 방식으로 사용자 정의 PGC정보를 재생함으로써 2개의 AV 파일에 포함된 VOB의 원하는 섹션이 주어진 순서대로 재생될 수 있다.
이것은 AV 파일, VOB정보 및 PGC정보의 통일에 관한 설명을 완료한다. 다음은 도 70에 도시된 타이틀 검색 포인터의 설명이다.
(4-1-5) 타이틀 검색 포인터의 내용
타이틀 검색 포인터는 상술한 비디오 타이틀이라 불리는 단위로 DVD-RAM에 기록된 VOB정보, 시간 맵표, PGC정보 및 AV 파일을 관리하기위한 정보이다. 각각의 타이틀 검색 포인터는 원래의 PGC정보 세트 또는 사용자 정의 PGC정보에 할당된 PGC번호, 타이틀 종류 및 타이틀 기록 히스토리로 구성된다.
각각의 타이틀 종류는 PGC번호중의 하나에 대응하며 대응하는 PGC번호를 갖는 AV 타이틀이 원래의 타입 PGC인 것을 보여주도록 값"00"으로 설정되거나 대응하는 PGC번호를 갖는 AV 파일이 사용자 정의 PGC임을 보여주도록 "01"로 설정된다.
타이틀 기록 히스토리는 대응하는 PGC정보가 DVD-RAM에 기록되는 시간과 데이터를 보여준다. DVD-RAM 상의 RTRW 디렉토리가 표시되면 DVD-RAM 표준에 부합하는 재생장치는 RTRW 관리파일로부터 타이틀 검색 포인터를 판독하여 많은 원래의 PGC와 사용자 정의 PGC가 어떻게 DVD-RAM의 각 디렉토리에 주어지고, 언제 이들 비디오 타이틀의 각각이 RTRW 관리파일에 기록되는지를 순간적으로 알 수 있다.
(4-1-6) 실제편집에서 사용자 정의 PGC와 원래의 OGC의 상호변경성
가상편집에서 정의된 사용자 정의 PGC정보는 제 4 실시예에서 나타낸 바와 같이 실제 편집의 셀에 대해서도 연결순서를 나타내기 위해 사용될 수 있다.
또한 일단 실제의 편집이 제 4 실시예에서 설명한 바와 같이 실행되고 만약 사용자 정의 PGC정보의 세트가 원래의 PGC정보의 세트로 변환되면 원래의 PGC정보는 이 연결에 의해 구해진 VOB에 대하여 용이하게 생성될 수 있다.
이것은 사용자 정의 PGC정보와 원래 타입의 정보의 데이터 구조가 타이틀 종류로서 주어진 값에서 다르기 때문이며, 실제편집에 의해 구해진 VOB의 섹션이 실제편집 전에 사용자 정의 PGC정보에 의해 표시된 섹션이기 때문이다.
다음은 제 4 실시예의 실제편집에 대한 절차와 사용자 정의 PGC정보를 원래의 PGC정보로 갱신하는 처리에 대한 설명이다. 도 72는 사용자 정의 PGC와 원래의 PGC정보의 예를 나타낸 도면이다.
도 72에서 원래의 PGC정보 #1은 CELL#1만을 포함하며, VOB#1과 VOB정보를 갖는 원래의 PGC의 부분을 형성한다. 한편 사용자 정의 PGC정보 #2는 CELL#1, CELL#2 및 CELL#3만을 이용하여 사용자 정의 PGC를 형성한다.
도 72에서, CELL#1은 점선의 화살표 y51 및 y52로 나타낸 바와 같이 VOBU#1로부터 VOBU#i까지의 섹션을 나타내나, CELL#2는 점선의 화살표 y53 및 y54로 나타낸 바와 같이 VOBU#1로부터 VOBU#i까지의 섹션을 나타내며, CELL#3은 점선의 화살표 y55 및 y56으로 나타낸 바와 같이 VOBU#j+1로부터 VOBU#k+2까지의 섹션을 나타낸다.
다음의 예에서 셀#2는 사용자 정의 PGC정보로부터 삭제되며, 사용자는 CELL#1 및 CELL#3으로 구성되는 사용자 정의 PGC정보 #2를 이용하는 실제의 편집을 나타낸다. 도 73에서 삭제된 셀에 대응하는 영역은 음영을 이용하여 도시하였다.
여기에서 삭제되는 CELL#2는 셀시작 시간 C_V_S_PTM을 이용하여 프레임 w11내부에 도시된 VOBU #i+1에 포함된 복수 세트의 화상 데이터중에서 하나의 비디오 프레임을 나타낸다. CELL#2는 또한 셀 종료시간 C_V_E_PTM을 이용하여 프레임 w12내부에 도시된 VOBU #j+1에 포함된 복수 세트의 화상 데이터중에서 하나의 비디오 프레임을 나타낸다.
실제의 편집이 사용자 정의 PGC정보 #2를 사용하여 실행되면, CELL#1의 마지막에 위치된 VOBU #i-1, i, i+1, CELL#2의 시작에 위치된 VOBU #j, j=1, j+2는 재인코딩되게 된다. 이 재인코딩은 제 1 및 제 2 실시예에 기재된 절차에 따라 실행되며, 익스텐트의 연결은 제 3 실시예에 기재된 절차에 따라 실행된다.
도 74의 (a)는 사용자 정의 PGC정보 #2를 사용하여 실행된 실제편집에 의해 자유롭게 되는 DVD-RAM 상의 ECC 블록을 나타낸다. 도 74의 (a)의 제 2 레벨에 도시된 바와 같이 VOBU #i, #i+1, #i+2는 AV 블록 #m에 기록되며, VOBU #j, #j+1, #j+2는 AV 블록 #n에 기록된다.
도 73에 도시된 바와 같이 CELL#2는 VOBU #i+1에 포함된 화상 데이터를 C_V_S_PTM으로서 나타내고, VOBU #j+1에 포함된 화상 데이터를 C_V_E_PTM로서 나타낸다. 결국 제 2 실시예의 SPLIT(분할) 명령과 SHORTEN(단축) 명령이 도 74의 (a)의 프레임 w13 및 w14에 도시된 바와 같이 VOBU #i+2에 의해 점유된 ECC 블록으로부터 VOBU #j에 의해 점유된 ECC 블록까지의 영역이 제거되도록 발행된다. 그러나 VOBU #i 및 #i+1에 의해 점유된 ECC 블록과 VOBU #j+1 및 j+2에 의해 점유된 ECC 블록은 제거되지 않는다.
도 74의 (b)는 실제의 편집후, VOB, VOB정보 및 PGC정보의 예를 나타낸 도면이다. CELL#2에 대응하는 영역이 삭제되며, VOB #1은 (새로운)VOB#1과 VOB#2로 삭제된다.
SPLIT(분할) 명령이 발행되면 VOB#1에 대한 VOB정보는 VOB정보 #1과 VOB정보 #2로 분할된다. 이 VOB정보에 포함된 시간 맵표는 또한 시간 맵표 #1과 시간 맵표 #2로 분할된다. 비록 도시생략되어 있으나 이음매없는 연결정보도 분할된다.
VOB#1과 VOB#2내의 VOBU는 이들 분할된 시간 맵표를 통해 재생장치에 의해 참조된다.
사용자 정의 PGC정보와 원래의 PGC정보는 동일한 데이터 구조를 가지며, 타이틀 종류의 값만이 다르다. 실제의 편집후 구해진 VOB의 섹션은 실제의 편집전에 사용자 정의 PGC정보에 의해 원래 표시되므로 사용자 정의 PGC정보 #2는 원래의 PGC정보로 변환된다. 이 사용자 정의 PGC정보 #2는 원래의 정보를 정의하기 위해 사용되기 때문에 실제편집후 새로운 원래의 PGC 데이터를 생성시키도록 별도의 처리를 할 필요가 없다.
(4-2) DVD 레코더(70)의 기능블록
도 75는 제 4 실시예의 DVD 레코더(70)의 구성를 도시한 기능블록도이다. 도 75에 도시된 각 기능은 도 17에 도시된 하드웨어를 제어하고 ROM(1e)의 프로그램을 실행하는 CPU에 의해 실현된다.
도 75에 도시된 DVD 플레이어는 제 3 실시예에 기재된 비디오 편집장치와 동일한 방식으로 디스크 기록부(100), 디스크 판독부(101), 공통파일 시스템부(10), AV 파일 시스템부(11) 및 기록-편집-재생 제어부(12)로 구성된다. 그러나 본 실시예는 AV 데이터 재생부(14)가 타이틀 재생부(23)로 대체되고, AV 데이터 편집부 (15)가 편집 다단 제어부(26)로 대체된다는 점에서 제 3 실시예와 다르다. 이 DVD 플레이어는 조각모으기부(16) 대신에 PGC정보표 작업영역(21), RTRW 관리파일 작업영역(24) 및 사용자 정의 PGC정보 생성기(25)를 포함한다.
(4-2-1) 기록-편집-재생 제어부(12)
제 4 실시예에서 기록-편집-재생 제어부(12)는 동작 목표물로서의 DVD-RAM 상의 디렉토리 구조내에서 디렉토리의 사용자 표시를 수신한다. 동작목표물의 사용자 표시를 수신하면, 기록-편집-재생 제어부(12)는 리모콘 신호 수신부(8)에 의해 보고된 사용자 조작에 따라 동작내용을 특정한다. 동시에 기록-편집-재생 제어부 (12)는 동작내용에 대응하는 처리가 타이틀 기록 제어부(22), 타이틀 재생 제어부 (23) 또는 다른 구성요소의 어느 하나에 의해 동작목표인 디렉토리에 대해 실행되도록 명령을 내린다.
도 77의 (a)는 기록-편집-재생 제어부(12)의 제어하에 TV 모니터(72)에 디스플레이되는 그래픽의 예를 도시한다. 디렉토리중의 어느 하나가 집중상태로 설정되면 기록-편집-재생 제어부(12)는 사용자가 엔터키를 누르기를 대기한다. 사용자가 엔터키를 누르면 기록-편집-재생 제어부(12)는 현재 집중상태에 있는 디렉토리를 현재의 디렉토리로 특정한다.
(4-2-2) PGC정보표 작업영역(21)
PGC정보표 작업영역(21)은 PGC정보의 세트가 성공적으로 정의될 수 있도록 표준화된 논리포맷을 갖는 메모리 영역이다. 이 PGC정보표 작업영역(21)은 매트릭스로서 관리되는 내부영역을 갖는다. PGC정보표 작업영역(21)에 존재하는 복수 세트의 PGC정보는 상이한 컬럼에 배열되나 복수 세트의 셀정보는 상이한 로우(row)에 배열된다. PGC정보표 작업영역(21)에서 PGC정보의 저장된 세트에서 임의 세트의 셀정보는 로우 번호와 컬럼번호의 조합을 이용하여 액세스될 수 있다.
도 76은 PGC정보표 작업영역(21)에 저장된 원래의 PGC정보 세트의 예를 나타낸다. 여기에서 AV 파일의 기록이 완료되면 사용자 정의 PGC정보표는 비게된다(도 76에서는 "널(NULL)"로 표시됨). 도 76에서 원래의 PGC정보 #1은 시작시간 t0과 종료시간 t1 사이의 섹션을 나타내는 셀정보 #1의 세트와, 시작시간 t1과 종료시간 t2 사이의 섹션을 나타내는 셀정보 #2의 세트와, 시작시간 t2와 종료시간 t3 사이의 섹션을 나타내는 셀정보 #3의 세트와, 시작시간 t3과 종료시간 t4 사이의 섹션을 나타내는 셀정보 #4의 세트를 포함한다.
(4-2-3) 타이틀 기록 제어부(22)
타이틀 기록제어부(22)는 제 3 실시예의 AV 데이터 기록부(13)와 동일한 방식으로 DVD-RAM에 VOB를 기록한다. 이렇게 함으로써 타이틀 기록 제어부(22)는 RTRW 관리파일 작업영역(24)에 시간 맵표를 저장하고, VOB정보를 생성하고, 이것이 PGC정보표 작업영역(21)에 저장하는 원래의 PGC정보를 생성한다.
원래의 PGC정보를 생성할 때, 타이틀 기록 제어부(22)는 후술하는 절차를 따른다. 우선 기록-편집-재생 제어부(12)로부터 기록키의 누름을 통지받으면 타이틀 기록 제어부(22)는 PGC정보표 작업영역(21)의 로우 영역을 확보한다. 다음으로 AV 데이터 기록부(13)가 AV 파일 식별자와 VOB 식별자를 새로 기록될 VOB에 할당한 후, 타이틀 기록 제어부(22)는 이들 식별자를 구하고, 그들을 새로 할당된 PGC 번호에 대응하는 확보된 로우영역에 저장한다.
다음으로 VOB에 대하여 인코딩이 시작되면 타이틀 기록 제어부(22)는 MPEG 인코더(2)에게 첫번째 비디오 프레임의 PTS를 출력하도록 명령한다. 인코더 제어부 (2g)가 제 1 비디오 프레임에 대하여 이 PTS를 출력하면 타이틀 기록 제어부(22)는 이 값을 저장하여 사용자가 마킹동작을 실행하도록 대기한다.
도 80의 (a)는 마킹동작이 실행될 때 데이터 입력과 출력이 도 75에 도시된 구성요소 사이에서 어떻게 실행되는지를 보여준다. TV 모니터(72)상에 디스플레이되는 비디오 이미지를 볼 때 사용자는 리모콘(71)상의 표시키를 누른다. 이 표시동작은 도 80의 (a)의 ①, ②, ③에 도시된 바와 같은 경로를 통해 타이틀 기록 제어부(22)에 보고된다. 타이틀 기록 제어부(22)는 사용자가 도 80의 (a)에 도시된 바와 같이 인코더 제어부(2g)로부터의 표시키를 누르는 점에 대한 PTS를 구하여 이것을 시간정보로서 설정한다.
타이틀 기록 제어부(22)는 VOB가 인코드되는 동안 상술한 처리를 반복적으로 실행한다. 사용자가 VOB의 생성중에 정지키를 누르면 타이틀 기록 제어부(22)는 인코더 제어부(2g)에 명령하여 인코드될 최종 비디오 프레임에 대한 프리젠테이션 종료시간을 출력한다. 일단 인코더 제어부(2g)가 인코드될 최종 비디오 프레임에 대한 프리젠테이션 종료시간을 출력하면 타이틀 기록 제어부(22)는 이것을 시간정보로서 저장한다.
VOB의 인코딩이 완료될 때까지 상술한 처리를 반복함으로써 타이틀 기록 제어부(22)는 AV 파일 식별자, VOB 식별자, 제 1 비디오 프레임의 프리젠테이션 시작시간, 마킹동작이 실행되는 점에 대응하는 각 비디오 프레임의 프리젠테이션 시작시간 및 최종 비디오 프레임의 프리젠테이션 종료시간의 저장을 종료한다.
이 저장된 시간정보 중에서 타이틀 기록 제어부(22)는 섹션의 시작시간과 종료시간 및 대응하는 AV 파일 식별자와 VOB 식별자를 그것이 PGC정보표 작업영역 (21)의 새로 확보된 로우에 저장하는 셀정보의 하나의 세트로서 설정한다. 그렇게 함으로써 타이틀 기록 제어부(22)는 원래의 PGC정보를 새로 생성한다.
상술한 생성을 완료할 때, 타이틀 기록 제어부(22)는 이 원래의 PGC정보를 할당된 PGC 번호에 연관시키고, PGC정보표 작업영역(21)에서 이 PGC정보가 원래의 PGC정보임을 보여주는 유형정보를 갖는 타이틀 검색 포인터와 이 PGC정보의 기록이 완료되는 날짜와 시간을 보여주는 타이틀 기록 히스토리를 생성한다.
여기에서 타이틀 재생 제어부(23)가 장면의 내용에 큰 변화가 있음을 검출할 수 있으면 사용자 정의 PGC정보 생성기(25)는 이러한 장면 변환이 발생하는 포인트에 대한 PTS를 자동으로 구하여 이들 PTS를 셀정보의 세트로 자동으로 설정할 수 있다.
시간 맵표나 VOB정보의 생성은 본 실시예의 요지를 형성하는 부분이 아니기 때문에 그에 대한 설명은 생략한다.
(4-2-4) 타이틀 재생 제어부(23)
타이틀 재생 제어부(23)는 기록-편집-재생 제어부(12)에 의해 표시된 현재의 디렉토리에 기록된 타이틀에 대한 재생 또는 부분재생을 실행한다.
이것을 이하에서 보다 상세히 설명한다. 도 77의 (a)에 도시된 바와 같이 디렉토리의 하나가 현재의 디렉토리로서 선택되고 사용자가 이 디렉토리에 저장된 타이틀 중 하나의 재생을 위해 표시를 하면, 타이틀 재생 제어부(23)는 도 77의 (a)에 도시된 스크린 이미지를 디스플레이하고, 이 디렉토리내의 RTRW 관리파일의 원래의 PGC정보표와 사용자 정의 PGC정보표를 판독하며, 사용자로 하여금 현재의 디렉토리내의 원래의 PGC 또는 사용자 정의 PGC중의 하나에 대해 전체재생 또는 부분재생을 선택하도록 한다. 도 77의 (b)는 가능한 동작목표의 리스트로서 디스플레이된 PGC와 셀을 보여준다. 이들 PGC와 셀을 나타내는 PGC정보와 셀정보의 세트는 도 76의 예에 도시된 것과 동일하다.
이 인터랙티브 스크린에 나타나는 원래의 PGC는 수평축에는 시간을 나타내는 간단한 그래프로 도시되어 있으며, 각각의 원래의 PGC는 그것이 기록되는 날짜와 시간을 따라 디스플레이된다. 도 77의 (b)에서 스크린 우하측의 메뉴는 전체재생 또는 부분재생이 현재의 디렉토리내의 비디오 타이틀에 대해 실행되는지의 여부를 보여준다. 리모콘(71)의 "1" 또는 "2"를 누름으로써 사용자는 비디오 타이틀의 전체재생 또는 부분재생을 선택할 수 있다. 사용자가 전체재생을 선택하면 타이틀 재생 제어부(23)는 사용자로 하여금 PGC의 하나를 동작목표로서 선택하게 하지만 사용자가 부분 재생을 선택하면 타이틀 재생 제어부(23)는 사용자로 하여금 셀의 하나를 동작목표로서 선택하게 한다.
전체재생이 PGC에 대해 선택되면 타이틀 재생 제어부(23)는 도 71에 도시된 것과 같은 시간 맵표를 참조함으로써 선택된 PGC로부터의 셀을 동작목표로서 추출하고, 셀에 의해 표시된 섹션을 하나씩 재생한다. 섹션의 재생을 완료했을 때 타이틀 재생 제어부(23)는 도 77의 (b)에 도시된 인터랙티브 스크린을 구비하며 셀정보의 다음 선택을 대기한다.
도 78의 (a)는 셀정보의 세트를 부분적으로 재생할 때의 처리를 나타낸 흐름도이다. 우선, 단계 S271에서 타이틀 재생 제어부(23)는 원래의 PGC정보 또는 사용자 정의 PGC정보중에서 재생될 셀정보로부터 C_V_S_PTM과 C_V_E_PTM을 판독한다. 다음으로, 단계 S272에서, 타이틀 재생 제어부(23)는 C_V_S_PTM 할당된 화상 데이터를 포함하는 VOBU(시작)의 어드레스를 특정한다.
단계 S273에서, 타이틀 재생 제어부(23)는 C_V_E_PTM 할당된 화상 데이터를 포함하는 VOBU(종료)의 어드레스를 특정하고, 단계 S274에서 타이틀 재생 제어부 (23)는 C_V_E_PTM 할당된 화상 데이터를 포함하는 VOBU(END)의 어드레스를 특정한다. 단계 S275에서 타이틀 재생 제어부(23)는 MPEG 디코더로 하여금 판독된 VOBU를 디코드하도록 명령한다. 단계 S276에서 타이틀 재생 제어부(23)는 디코드 처리요구와 함께 셀 프리젠테이션 시작시간 C_V_S_PTM과 셀 프리젠테이션 종료시간 C_V_E_PTM을 MPEG 디코더(4)의 디코더 제어부(4k)에 유효한 재생 섹션 정보로서 출력한다.
타이틀 재생 제어부(23)가 MPEG 디코더(4)에 유효한 재생 섹션 정보를 출력하는 이유는 MPEG 디코더(4)내의 디코더 제어부(4k)가 셀에 의해 표시된 섹션의 내에는 없는 짝수 화상 데이터를 디코드하도록 시도하기 때문이다. 보다 상세하게는 MPEG 디코더(4)의 디코드 처리를 위한 단위는 VOBU이므로 MPEG 디코더(4)는 VOBU(시작)로부터 VOBU(종료)까지의 전체 섹션을 디코드하고, 그렇게 함으로써 셀에 의해 표시된 섹션 외측의 화상 데이터가 재생되게 된다. 셀은 비디오 필드의 단위로 섹션을 표시하므로 섹션외부의 화상 데이터의 디코딩 및 재생을 금지하는 방법이 필요하다. 이러한 화상 데이터의 재생을 금지하기 위해 타이틀 재생 제어부(23)는 유효 재생 섹션정보를 타이틀 재생 제어부(23)에 출력한다. 도 78의 (b)는 VOBU(시작)와 VOBU(종료) 사이의 영역중에서 셀 프리젠테이션 시작시간(C_V_S_PTM)과 셀 프리젠테이션 종료시간(C_V_E_PTM) 사이의 섹션만이 어떻게 재생되는지를 보여준다.
이러한 유효 재생 섹션정보를 수신함으로써 MPEG 디코더(4)는 VOBU(시작)의 시작으로부터 C_V_S_PTM까지의 적절한 비디오 필드의 수의 디스플레이 출력과, C_V_E_PTM으로부터 VOBU(종료)까지의 적절한 비디오 필드의 수의 디스플레이 출력을 중단할 수 있다.
도 17에 도시된 하드웨어 구성에 있어서 디스크 액세스부(3)는 VOBU열을 판독하고 이것을 논리접속 (1)을 통해 MPEG 디코더(4)에 출력한다. MPEG 디코더(4)는 이 VOBU열을 디코드하고, C_V_S_PTM의 앞 부분과 C_V_E_PTM의 다음 부분의 재생출력을 금지한다. 결국 셀정보에 의해 표시된 섹션만이 재생된다.
원래의 PGC정보나 사용자 정의 PGC정보의 한 세트만이 복수 세트의 셀정보를 포함하기 때문에 도 78의 (a)에 도시된 절차는 PGC정보 한 세트에 포함된 각 셀정보 마다 반복될 수 있다.
(4-2-5) RTRW 관리파일 작업영역(24)
RTRW 관리파일 작업영역(24)은 도 70에 도시된 논리포맷에 따라 PGC정보표 작업영역에 생성된 복수 세트의 원래의 PGC정보와, 사용자 정의 PGC정보의 복수 세트로 구성된 사용자 정의 PGC정보, 타이틀 검색 포인터 및 VOB정보의 세트를 배열하기 위한 작업영역이다. 공통파일 시스템부(10)는 RTRW 관리파일 작업영역(24)에 배열된 데이터를 RTRW 디렉토리에 비-오디오 파일로서 기입하고, 그렇게 함으로써 RTRW 디렉토리에 RTRW 관리파일을 저장한다.
(4-2-6) 사용자 정의 PGC정보 생성기(25)
사용자 정의 PGC정보 생성기(25)는 현재의 디렉토리의 RTRW 관리파일에 기록된 한 세트의 PGC정보에 기초하여 사용자 정의 PGC정보를 생성한다. 사용자 정의 PGC정보(사용자 정의 셀정보 세트라 함)에는 두종류의 셀정보가 존재할 수 있으며, 이들은 PGC정보의 존재세트에 셀정보에 의해 표시된 섹션 내부의 영역을 나타내는 제 1 타입의 셀정보와, PGC정보의 존재세트에 셀정보와 동일한 섹션을 나타내는 제 2 타입의 셀정보이다. 사용자 정의 PGC정보 생성부(25)는 상이한 방법을 사용하여 이들 두종류의 셀정보를 생성한다.
존재하는 셀정보에 의해 표시되는 섹션 내부의 영역을 나타내는 제 1 타입의 사용자 정의 셀정보를 생성하기 위해 사용자 정의 PGC정보 생성기(25)는 타이틀 재생 제어부(23)로 하여금 존재하는 셀정보에 의해 표시된 섹션에 대한 부분적인 재생을 실행하도록 한다. 이 섹션에 대한 부분적인 재생중에 사용자 정의 PGC정보 생성기(25)는 사용자가 언제 마킹동작을 실행하는지를 감시하고, 마킹동작의 시간과 함께 셀정보의 세트를 시작점과 종료점으로서 생성한다. 이러한 방식으로 사용자 정의 PGC정보 생성기(25)는 이 첫번째 유형의 셀정보로 구성된 사용자 정의 PGC정보를 생성한다.
도 79의 (a) 및 (b)는 사용자 정의 PGC정보를 생성할 때 사용자가 TV 모니터(72)와 리모콘(71)을 어떻게 사용하는지를 보여준다. 도 80의 (b)는 마킹동작이 실행될 때 도 75에 도시된 구성요소 사이의 데이터 입력과 출력을 나타낸다. 도 79의 (a)에 도시된 바와 같이 사용자는 TV 모니터(72)에 디스플레이되는 비디오 이미지를 보고 원하는 장면의 시작에서 리모콘(71)상의 표시키를 누른다. 그 다음에 도 79의 (b)에 도시된 바와 같이 원하는 장면을 종료하고 사용자가 관심을 갖지 않는 내용으로 비디오 이미지를 변경한다. 따라서 사용자는 표시키를 다시 누른다.
이 표시동작은 도 80의 (b)의 ①, ② 및 ③에 도시된 바와 같은 경로를 통해 사용자 정의 PGC정보 생성기(25)에 보고한다. 사용자 정의 PGC정보 생성기(25)는 사용자가 도 80의 (b)의 ④에 도시된 바와 같이 MPEG 디코더(4)로부터 표시키를 누를 때 포인터의 PTS를 구하여 그 PTS를 시간정보로서 저장한다. 사용자 정의 PGC정보 생성기(25)는 섹션의 시작점과 종료점인 한쌍의 저장된 PTS에 적절한 AV 파일 식별자 및 VOB 식별자를 부착함으로써 한 세트의 셀정보를 생성하고, 이 셀정보를 도 80의 (b)의 ⑤에 도시된 바와 같이 PGC정보표 작업영역(21)의 새로 확보된 로우영역에 이 셀정보를 저장한다.
존재하는 셀정보에 의해 표시되는 섹션을 나타내는 사용자 정의 PGC정보를 생성할 때 사용자 정의 PGC정보 생성기(25)는 존재하는 셀정보를 PGC정보표 작업영역(21)의 상이한 로우영역에 단순히 복사한다.
보다 상세하게는 사용자 정의 PGC정보(25)는 RTRW 관리파일 작업영역(24)에 하나의 로우에 대한 로우영역을 확보하고 새로운 사용자 정의 PGC정보 식별자를 이 로우영역에 할당한다.
로우번호와 컬럼번호의 조합을 사용하여 PGC정보표 작업영역(21)에 이미 저장된 PGC정보의 셀정보 세트 중에서 일단 현재의 사용자 정의 PGC정보에 사용된 셀정보가 표시되면 사용자 정의 PGC정보 생성기(25)는 셀정보를 판독하여 그것을 PGC정보표 작업영역(21)내의 새로 확보된 로우영역에 복사한다.
(4-2-7) 편집 다단 제어부(26)
편집 다단 제어부(26)는 다음의 사항을 포함하는 다단편집 처리를 실행하도록 타이틀 재생 제어부(23), 사용자 정의 PGC정보 생성기(25) 및 이음매없는 연결부(20)를 제어한다.
1. 사용자 정의 PGC정보를 정의함으로써 달성되는 가상편집
2. 가상편집의 결과에 기초하여 실제의 편집에 의해 얻어진 비디오 이미지를 사용자가 볼 수 있게 하는 미리보기
3. 제 1 및 제 2 실시예에서 설명된 바와 같은 이음매없는 연결
4. 제 2 실시예에서 설명된 바와 같은 AV 파일을 연결함으로써 실행되는 실제편집
(4-2-7-1) 편집 다단 제어부(26)에 의한 다단편집의 절차
다음은 편집 다단 제어부(26)에 의해 실행되는 다단 제어에 대한 특정절차의 설명도이다. 사용자가 도 77의 (a)에 도시된 인터랙티브 스크린에 응답하여 리모콘(71)을 사용하여 가상편집을 선택하면, 편집 다단 제어부(26)는 RTRW 디렉토리를 액세스하고, 공통파일 시스템부(10)로 하여금 RTRW 디렉토리로부터 RTRW 관리파일을 판독하도록 하며, RTRW 관리파일 작업영역(24)에 저장된 RTRW 관리파일을 갖는다. 다음으로 RTRW 관리파일 작업영역(24)에 저장된 RTRW 관리파일중에서 편집 다단 제어부(26)는 원래의 PGC정보표, 사용자 정의 PGC정보표 및 타이틀 검색 포인터를 PGC정보표 작업영역(21)에 전송하고, 시간 맵표를 시간 맵표 작업영역에 전송한다.
편집 다단 제어부(26)는 전송된 원래의 PGC정보에 기초하여 도 85에 도시된 인터랙티브 스크린을 디스플레이하고, 다음 사용자 표시를 대기한다.
도 85는 사용자가 가상편집에서 사용자 정의 PGC의 셀에 대한 섹션을 선택하도록 TV 모니터(72)에 의해 디스플레이되는 인터랙티브 스크린의 예를 나타낸다.
이 인터랙티브 스크린은 원래의 PGC와 사용자 정의 PGC를 단순한 그래프로서 표시하고, 여기에서 수평축은 시간을 나타낸다. 각각의 원래의 PGC와 사용자 정의 PGC의 기록 일시가 또한 디스플레이된다. 이 인터랙티브 스크린은 복수의 셀을 직각의 수평 배열로서 디스플레이한다. 사용자는 리모콘(71)상의 커서키를 사용하여 이들 각각의 어느 하나를 선택할 수 있다. 이들 원래의 PGC와 셀은 도 76에 도시된 것들과 같으며, 다음은 도 76을 들어 초기상태로서 원래의 PGC정보표, 사용자 정의 PGC정보 및 타이틀 검색 포인터의 갱신에 대해 설명한다.
도 81은 사용자 정의 PGC를 정의할 때 편집 다단 제어부(26)를 처리하는 흐름도이다. 이 흐름도에서 변수 j는 인터랙티브 스크린에 수직으로 배열된 복수의 PGC중의 하나를 나타내며, 변수 k는 인터랙티브 스크린에 수평으로 배열된 복수의 셀중의 하나를 나타낸다.
변수 m은 RTRW 관리파일에 새롭게 정의된 사용자 정의 PGC정보의 세트에 할당된 PGC번호이며, 변수 n은 RTRW 관리파일에 새롭게 정의된 셀정보의 세트에 할당된 셀번호이다.
단계 S201에서 편집 다단 제어부(26)는 RTRW 관리파일내의 원래의 PGC정보의 마지막 번호에 1을 가산함으로써 주어진 값을 변수 m으로, 그리고 "1"을 변수 n으로 대체한다. 단계 S202에서 편집 다단 제어부(26)는 m번째 사용자 정의 PGC정보에 대한 공간을 사용자 정의 PGC정보에 더하고, 단계 S203에서 편집 다단 제어부(26)는 사용자가 키조작하는 것을 대기한다. 일단 사용자가 키조작을 하면, 단계 S204에서 편집 다단 제어부(26)는 리모콘(71)상의 키에 대응하는 플래그중에서 눌려진 키 "1"에 대한 플래그를 설정하며, 단계 S205에서 엔터키가 눌려졌는지를 보여주는 Enter_Flag가 "1"인지를 판정한다. 단계 S206에서 편집 다단 제어부(26)는 종료키가 눌려졌는지를 나타내는 End_Flag가 "1"인지를 판정한다. 이들 플래그가 모두 "0"이면 편집 다단 제어부(26)는 계산결과를 변수 k, j로 치환하기 전에,
k-k+1*(Right_Flag)-1*(Left_Flag)
j-j+1*(Down_Flag)-1*(Up_Flag)
의 계산을 실행하도록 각각 우측, 좌측, 아래, 위방향의 키가 눌려졌는지를 나타내는 Right_Flag, Left_Flag, Down_Flag, Upper_Flag를 사용한다.
우방향 키가 눌려지면 Right_Flag가 "1"로 설정되므로 변수 k는 "1"씩 증가된다. 위방향 키가 눌려지면 Up_Flag가 "1"로 설정되므로 변수 j는 "1"씩 증가된다. 반대로 좌방향 키가 눌려지면 Left_Flag가 "1"로 설정되므로 변수 k는 "1"씩 감소된다. 동일한 방식으로 하방향 키가 눌려지면 Down_Flag가 "1"로 설정되므로 변수 j는 "1"씩 감소된다.
이러한 방식으로 변수 k, j를 갱신한 후, 편집 다단 제어부(26)는 단계 S208에서 집중상태로 디스플레이된 로우 j와 컬럼 k의 셀 표현을 가지며, 단계 S209에서 리모콘(71) 상의 키에 할당된 모든 플래그를 0으로 소거하고, 단계 S203으로 복귀하여 여기에서 다시 한번 키조작을 대기한다. 단계 S203 내지 S209의 절차를 반복함으로써 집중상태는 리모콘(71)을 이용한 키조작에 따라 셀사이의 상/하 및 좌/우 이동할 수 있다.
사용자가 상술한 처리중에 집중상태의 셀중 어느 하나의 엔터키를 누르면 편집 다단 제어부(26)는 도 82의 단계 S251로 진행한다.
도 82의 단계 S251에서 편집 다단 제어부(26)는 로우 j와 컬럼 k의 셀정보가 그대로 사용되는지 또는 이 셀정보에 의해 표시된 섹션 내의 영역만이 사용되는지에 관한 표시를 사용자에게 제공한다. 셀정보가 그대로 사용되면, 편집 다단 제어부(26)는 로우 j 및 컬럼 k의 셀표현을 단계 S252에서 로우 m 및 컬럼 n으로서 주어진 공간에 복사하고 단계 S253에서 Original_PGC#j를 User_Defined_PGC#m.CELL#n으로서 정의한다. 이 정의 후에 단계 S254에서 편집 다단 제어부(26)는 변수 n을 증가시켜 도 81의 단계 S209로 진행한다.
로우 j와 컬럼 k의 셀정보에 의해 표시된 섹션내의 영역이 사용되면, 편집 다단 제어부(26)는 단계 S255로 진행하여 타이틀 재생 제어부(23)로 하여금 로우 j와 컬럼 k의 셀정보에 대한 부분재생을 시작하게 한다.
단계 S255에서, 편집 다단 제어부(26)는 로우 j와 컬럼 k의 셀정보의 재생을 위한 환경을 결정한다. 이 결정은 이 셀정보에 의해 표시된 섹션이 부분적으로 재생될 때 실행되기 때문에 시작부터 다시 한번 그 섹션을 재생할 필요가 없으며, 이것은 이전의 재생이 종료(단계 S266)되는 위치-이것을 재생 종료점 t라 함-에서 시작되도록 로우 j와 컬럼 k의 셀정보에 의해 표시되는 섹션의 재생을 위한 경우에 바람직하다.
한편, 로우 j와 컬럼 k의 셀정보가 재생되지 않으면 로우 j와 컬럼 k의 셀정보에 의해 표시된 섹션은 단계 S265의 시작부터 재생되며, 처리는 단계 S265로 복귀하고 단계 S256 및 S257의 루프형태로 들어간다. 단계 S256는 종료에 대한 셀의 재생을 대기하고 단계 S257은 사용자가 표시키를 누르는 것을 대기한다. 단계 S257에서 판정이 "Yes"로 주어지면 처리는 단계 S258로 진행하고, 여기에서 표시키의 누름에 대한 정보가 구해져 단계 S259로 진행한다.
단계 S259에서 편집 다단 제어부(26)는 두세트의 시간정보가 구해지는지를 판정하여, 구해지면 처리는 단계 S256으로 진행하고, 구해지지 않으면 처리는 단계 S260으로 진행하여 여기에서 구해진 두세트의 시간정보는 시작점과 종료점으로서 설정된다.
여기에서 구해진 시간정보 세트중 하나는 TV 모니터(72)상에 디스플레이되는 동안 사용자에 의해 표시되는 비디오 장면의 시작이며, 다른 시간정보의 세트는 비디오 장면의 종료이다. 이들 시간정보의 세트는 사용자가 비디오 편집을 위한 재료로서 특별히 원하는 원래의 PGC의 섹션을 표시하는 것으로 해석된다. 따라서 사용자 정의 PGC정보는 이 섹션에서 발생되므로 셀정보는 PGC정보표 작업영역(21)에서 발생된다. 그리고 처리는 단계 S261로 진행한다.
단계 S261에서 사용자 정의 PGC정보 생성기(25)는 Original_PGC#j.CELL#k에서 VOB_ID와 AV 파일 ID를 구한다. 단계 S262에서 사용자 정의 PGC정보 생성기 (25)는 구해진 시작점과 종료점, VOB_ID, AV 파일 ID를 사용하여 User_Defined_PGC#m.CELL#n을 생성한다. 단계 S263에서 종료점 정보는 재생 종료점 t로서 저장되며, 단계 S254에서 처리가 단계 S209로 복귀하기 전에 변수 n이 증가된다.
상술한 처리의 결과로서 새로운 사용자 정의 PGC정보가 로우 j와 컬럼 k의 셀정보로부터 생성된다. 그 다음에 다른 셀이 집중상태로 설정되며, 사용자 정의 PGC정보의 다른 세트는 이 셀로부터 생성되므로 사용자 정의 PGC정보의 세트는 점진적으로 한번에 하나의 셀로 정의된다.
여기에서 단계 S256에서 단계 S257에 도시된 루프처리에서 로우 j와 컬럼 k의 셀정보에 기초한 재생이 표시동작이 행해지지 않고 종료하면 처리는 단계 S254로 복귀한다.
종료키가 눌려진 것으로 판단되면 판단 "Yes"는 도 80의 (b)의 단계 S206에서 주어지고 처리는 단계 S213으로 진행한다. 단계 S213에서 사용자가 다음 사용자 정의 PGC정보가 정의될 것인지를 나타낼 수 있도록 메뉴가 디스플레이된다. 사용자가 새로운 사용자 정의 PGC를 정의하기를 원하고 이러한 표시를 부여하면, 단계 S214에서 변수 m이 증가되고, 변수 n이 초기화되며 처리는 단계 S209 및 S203으로 진행한다.
(4-2-7-2) 사용자 정의 PGC정보의 정의 특례
다음은 도 85의 인터랙티브 스크린 이미지에 디스플레이된 복수 세트의 원래의 PGC정보로부터 사용자 정의 PGC정보를 정의할 때의 동작 설명도이다.
도 86의 (a) 및 (b)는 리모콘(71)에 의해 행해지는 사용자 조작과 다양한 사용자 조작에 따르는 디스플레이 처리 사이의 관계를 도시한 것이다. 도 87의 (a) 내지 도 90은 이러한 동작예를 나타낸 것으로 이들 동작에 대해서는 후술하는 설명을 참조한다.
도 85에 도시된 바와 같이, 일단 로우 1, 컬럼 1인 CELL#1이 집중상태로 설정되면 사용자는 도 86의 (b)에 도시된 바와 같이 엔터키를 누른다. 결국 판단 "Yes"가 단계 S205에서 주어져 처리는 도 82의 흐름도로 진행한다. 도 82의 흐름도의 단계 S251 내지 S266에서 사용자 정의 PGC #1의 제 1 셀정보 CELL#1A는 도 86의 (a)에 도시된 Original_PGC#1.CELL#1에 기초하여 생성된다. 일단 이 생성이 완료되면 변수 n은 단계 S254에서 증가되고 처리는 변수 n의 값이 "2"에서 단계 S209를 거쳐 단계 S203으로 복귀한다. 이 예에서 사용자는 도 87의 (b)에 도시된 바와 같이 하방향 키를 한번 누르고 도 87의 (c) 및 (d)에 도시된 바와 같이 우방향 키를 두번 누른다. 단계 S204에서 눌려진 키에 대응하는 플래그는 "1"로 설정된다.
하방향 키의 첫번째 누른 결과는 다음과 같다.
k=1(=1+1*0-1*0)
j=2(=1+1*1-1*0)
우방향 키를 첫번째 누른 결과는 다음과 같다.
k=2(=1+1*1-1*0)
j=2(=2+1*0-1*0)
우방향 키를 두번째 누른 결과는 다음과 같다.
k=3(=2+1*1-1*0)
j=2(2+1*0-1*0)
도 87의 (a)에 도시된 바와 같이 로우 2와 컬럼 3에 위치한 CELL#7은 집중상태로 설정된다.
일단 로우 2와 컬럼 3의 셀이 집중상태로 설정되면 사용자는 도 88의 (b)에 도시된 바와 같이 엔터키를 누르므로, 판단 "Yes"가 단계 S205에서 주어져 처리는 도 82의 흐름도로 진행한다. UserDefined_PGC#1의 셀정보의 제 2 세트인 셀정보 #7A는 원래의 PGC정보표(도 88의 (a)참조)의 로우 2와 컬럼 3에 위치한 Original_PGC#2.CELL#7에 기초하여 생성된다.
제 2 세트의 셀정보가 생성된 후 상술한 처리가 반복된다. 사용자는 도 89의 (b)에 도시된 바와 같이 엔터키를 누르므로 셀정보 #11A와 셀정보 #3A는 각각 UserDefined_PGC#1의 제 3 및 제 4 세트의 셀정보로서 생성된다.
본 실시예에서 처리는 단계 S203으로 복귀하면 사용자는 종료키를 누른다. 결국, 종료키에 대응하는 End_Flag는 "1"로 설정되고 처리는 단계 S213으로 진행한다. 종료키가 눌려지기 때문에 편집 다단 제어부(26)는 사용자 정의 PGC정보 #1의 정의가 완료된 것으로 간주한다. 단계 S213에서 사용자는 이 정의된 사용자 정의 PGC정보 #1 다음의 다른 세트의 사용자 정의 PGC정보(사용자 정의 PGC정보 #2라 함)를 정의하기 원하는지를 나타내도록 질문을 받는다. 사용자가 그렇게 하기를 원하면 변수 m은 증가되며, 변수 n은 초기화되고 처리는 단계 S209로 진행한다.
상술한 처리를 반복함으로써 사용자 정의 PGC정보 #2와 사용자 정의 PGC정보 #3이 정의된다. 도 91에 도시된 바와 같이, 이 사용자 정의 PGC정보 #2는 CELL#2B, CELL#4B, CELL#10B 및 CELL#5B로 구성되며, 사용자 정의 PGC정보 #23은 CELL#3C, CELL#6C, CELL#8C 및 CELL#9C로 구성된다.
도 91은 사용자 정의 PGC정보표, 원래의 사용자 정의 PGC정보표 및 가상편집 처리의 마지막에서의 타이틀 검색 포인터의 내용을 나타내고 있다.
사용자가 이 때 종료키를 누르면 도 90에 도시된 인터랙티브 스크린은 도 81의 단계 S215에서 디스플레이되고, 편집 다단 제어부(26)는 사용자가 상방향 키 및 하방향 키를 사용하여 사용자 정의 PGC정보의 세트를 선택하도록 대기한다. 여기에서 사용자는 플레이키를 누름으로써 미리보기를 선택할 수 있고 실제의 편집키를 누름으로써 실제의 편집을 선택할 수 있으며, 사용자 정의 PGC정보표는 아직 기록되지 않는다.
사용자가 사용자 정의 PGC를 기록하는 동작에 대한 표시를 주면, PGC정보표 작업영역(21)에 생성된 새로운 사용자 정의 PGC를 포함하는 사용자 정의 PGC정보표는 RTRW 관리파일 작업영역(24)으로 전송되고, 여기에서 이것은 사용자 정의 PGC정보표에 대응하는 RTRW 관리파일 작업영역(24)에 기록된 RTRW 관리파일의 부분에 기록된다.
동시에 파일 시스템 명령이 발행되므로, 새롭게 생성된 사용자 정의 PGC정보에 대한 타이틀 검색 포인터는 RTRW 파일 작업영역(24)에 전송된 RTRW 관리파일에 이미 존재하는 타이틀 검색 포인터에 부가된다.
도 83은 미리보기 또는 실제편집 동안의 처리를 보여주는 흐름도이다. 다음은 VOB 연결동작의 미리보기를 실행할 때의 처리에 관한 설명으로 도 83의 흐름도를 참조한다.
도 92의 (a) 및 (b)와 도 93의 (a) 내지 (c)는 리모콘(71)을 사용하여 행해지는 동작과 이들 동작에 수반하여 디스플레이 처리 사이의 관계를 나타낸다.
도 83의 흐름도의 단계 S220에서 사용자 정의 PGC정보표의 첫번째 수는 변수 j로 치환되고, 단계 S221에서 키조작이 대기된다. 사용자가 키조작을 하면 단계 S222에서 사용자에 의해 눌려진 키에 대응하는 플래그가 "1"로 설정된다.
단계 S223에서 플레이 키가 눌려지는지를 보여주는 Play_Flag가 "1"인지를 판단되고, 단계 S224에서 실제의 편집키가 눌려졌는지를 보여주는 RealEdit_Flag가 "1"인지를 판단된다. 이들 플래그가 모두 "0"이면 처리는 단계 S225로 진행하고, 여기에서 상방향 키와 하방향 키가 눌려졌는지를 각각 보여주는 Up_Flag와 Down_Flag의 값을 사용하여 다음의 계산이 실행된다. 이 계산결과는 변수 j로 치환된다.
j←j+1*(Down_Flag)-(Up_Flag)
사용자가 상방향 키를 누르면 Up_Flag가 "1"로 설정되며, 이것은 변수 j가 감소함을 의미한다. 반대로 사용자가 하방향 키를 누르면 Down_Flag가 "1"로 설정되며, 이것은 변수 j가 증가함을 의미한다. 변수 j가 일단 이러한 방식으로 갱신되면 단계 S226에서 로우 j에 위치된 PGC정보에 대응하는 디스플레이상의 이미지는 집중상태로 설정된다. 단계 S227에서 리모콘(71)상의 키에 대응하는 모든 플래그는 0으로 소거되고 처리는 단계 S221로 복귀하며, 여기에서 다른 키조작이 대기된다. 단계 S221 내지 단계 S227에서의 이 처리는 반복되고, 집중상태는 리모콘(71)의 상방향 키와 하방향 키의 사용자 조작에 따라 상이한 PGC정보의 세트로 이동시킨다.
사용자가 플레이키를 누르면 상술한 처리가 반복되는 동안 집중상태의 PGC정보의 세트중 하나와 함께 Play_Flag는 "1"로 설정되고 단계 S223에서 판단 "Yes"로 주어지고, 처리는 단계 S228로 진행한다. 단계 S228에서 편집 다단 제어부(26)는 타이틀 재생 제어부(23)로 하여금 사용자 정의 PGC중에서 사용자에 의해 표시된 PGC에 따라 VOB를 재생하도록 명령한다.
사용자에 의해 표시된 PGC가 사용자 정의 PGC이면, 사용자 정의 PGC에 포함된 셀은 하나 이상의 VOB의 복수의 섹션 중에서 섹션을 표시한다. 이러한 재생은 제 1 및 제 2 실시예에서 기술된 이음매없는 재생에 필요한 조건을 만족시키지 못하기 때문에 이미지 디스플레이와 출력은 나중 셀로 진행하기 전의 재생중에 셀의 경계에서 중단된다. 셀의 이음매없는 재생을 위한 필요조건이 만족되지 않기 때문에 이미지 디스플레이와 오디오 디스플레이가 인터럽트된다. 그러나 이 동작의 목적은 사용자에게 복수 장면에 대한 연결결과를 미리 볼 수 있도록 하기 위한 것일 뿐이므로 이 목적은 이러한 인터럽션에 관계없이 달성된다.
(4-2-7-3) 다단편집의 미리보기와 실제편집을 위한 처리
이하, 실제편집에서 VOB의 연결을 위한 동작에 대해 설명한다.
도 94의 (a) 내지 (c)는 리모콘(71)의 사용자 조작과 이들 키조작에 수반하는 디스플레이 처리 사이의 관계를 나타낸다. 사용자는 도 94의 (b)에 도시된 바와 같이 CELL#1A가 집중상태로 설정되도록 상방향 키를 누른다. 이것은 도 94의 (a)에 도시된 바와 같이 TV 모니터(72) 상에 디스플레이되는 디스플레이 스크린에 반영된다. 사용자가 도 94의 (c)에 도시된 바와 같이 실제의 편집키를 누르면 도 83의 단계 S224에서 판단 "Yes"가 행해져 제 3 실시예에서 설명된 도 43의 흐름도의 단계 S8에서 S16으로의 처리가 실행된다.
제 3 실시예에서 이 처리가 완료된 후, 처리는 도 84의 단계 S237로 진행한다. 변수 n이 단계 S237에서 "1"로 설정된 후, 단계 S238과 단계 S239에서 UserDefined_PGC#j.CELL#n을 생성할 때 사용되는 Original_PGC#j.CELL#k에 대한 검색이 실행되고 이 Original_PGC#j가 존재하는지의 여부가 판단된다. 판단결과가 긍정이면 Original_PGC#j는 단계 S240에서 삭제되나, 판단결과가 부정이면 이 Original_PGC#j로부터 생성된 UserDefined_PGC#q에 대해 검색이 단계 S240에서 실행된다.
단계 S242에서, 적어도 하나 이상의 이러한 UserDefined_PGC#q가 존재하는지가 판정되고, 만약 존재하면 이러한 모든 UserDefined_PGC#q가 단계 S243에서 삭제된다. 단계 S244에서, 변수 n의 값이 셀정보의 최종번호와 일치하는지가 판정되어, 일치하지 않으면 처리는 단계 S245로 진행하고, 여기에서 변수 n은 처리가 단계 S238로 복귀하기 전에 PGC정보 #q의 다음 세트의 셀정보를 표시하도록 증가된다. 단계 S238에서 단계 S245의 루프 처리는 변수 n이 PGC정보 #q의 셀정보의 최종 번호에 도달할때까지 반복된다.
사용자 정의 PGC정보 #1에 의해 표시되는 섹션은 VOB #1, #2 및 #3의 모두이므로 이들은 모두 실제로 편집되게 된다. 사용자 정의 PGC정보 #1에 포함된 셀정보를 생성하기 위해 사용되는 원래의 PGC정보의 세트는 실제로 편집될 VOB를 나타내므로, 원래의 PGC정보의 이들 세트 모두는 삭제된다. 이들 PGC정보의 세트로부터 생성된 사용자 정의 PGC의 세트는 또한 실제로 편집되게 되므로 사용자 정의 PGC정보의 이들 모든 세트도 삭제된다.
단계 S244에서 판단 "Yes"가 행해지므로 처리는 단계 S246으로 진행하고, 원래의 PGC정보의 세트를 삭제함으로써 구해지는 제거된 PGC 번호중에서 최하위 번호는 PGC 번호로서 구해진다. 다음으로 단계 S247에서 셀정보는 MERGE(병합) 명령 후에 AV 파일과 VOB_ID에 할당된 AV 파일 ID를 이용하여 갱신되며, 단계 S248에서 UserDefined_PGC#q의 PGC 번호 PGC 번호 #e로 갱신된다. 한편 타이틀 검색 포인터에서 타입의 정보는 원래의 타입으로 갱신된다.
도 95는 원래의 PGC정보와 실제의 편집에 수반하는 사용자 정의 PGC정보의 세트를 삭제한 후 PGC정보표와 타이틀 검색 포인터의 예를 나타낸 도면이다.
사용자 정의 PGC정보 #1의 섹션에 의해 표시된 VOB #1, #2 및 #3은 실제의 편집에 놓여지게 되기 때문에 원래의 PGC정보 #1, #2 및 #3과 사용자 정의 PGC정보 #2 및 #3은 이미 삭제된다. 반대로 사용자 정의 PGC정보 #1은 원래의 PGC정보 #1로서 정의된다.
일단 PGC정보가 상술한 바와 같이 PGC정보표 작업영역(21)에서 갱신되면 새로운 원래의 PGC정보는 RTRW 관리파일 작업영역(24)에 전송되고, 여기에서 RTRW 관리파일 작업영역(21)에 현재 저장된 RTRW 관리파일을 겹쳐쓰기하도록 사용된다. 동시에, 이 새롭게 생성된 원래의 PGC정보에 대한 타이틀 검색 포인터는 RTRW 관리파일 작업영역(24)에 전송되고, 여기에서 RTRW 관리파일 작업영역(21)에 이미 존재하는 타이틀 검색 포인터를 겹쳐쓰기하도록 사용된다.
일단 사용자 정의 PGC정보표와 타이틀 검색 포인터가 기록되면, 파일 시스템 명령이 발행되므로 RTRW 관리파일 작업영역에 저장된 RTRW 관리파일은 RTRW 디렉토리로 기록된다.
본 실시예에 의해 실제의 편집을 위한 재료로서 사용된 섹션이 사용자 정의 PGC정보에 의해 표시되고, 이들은 재생경로를 임시로 결정하도록 자유롭게 배열된다.
사용자가 편집재료의 재생경로를 설정하기 원하면 이것은 일시적으로 VOB를 생성함이 없이 달성될 수 있으므로 비디오 재료의 편집은 간단한 방법을 사용하여 단시간에 실행될 수 있다. 이것은 또한 일시적으로 생성된 VOB를 저장하기 위해 DVD-RAM의 저장능력을 더 이상 사용할 필요가 없다는 것을 의미한다.
장면연결의 임시 결정이 단순히 사용자 정의 PGC정보의 세트를 정의함으로써 달성될 수 있으면, 사용자는 단시간에 재생경로의 다양한 변화를 생성할 수 있다. 사용자 정의 셀정보의 세트는 VOB의 섹션에 대한 시간정보를 사용하여 표시되므로, 표시된 VOB는 그들이 이미 기록된 상태로 유지될 수 있다.
사용자는 상이한 재생경로에 대해 복수 세트의 사용자 정의 PGC정보를 생성할 수 있으며, 이들 재생경로중 가장 적합한 것을 찾을 수 있도록 이들 경로를 미리 보여준다. 사용자는 바람직한 재생경로에 대한 실제의 편집을 나타낼 수 있고, 선택된 사용자 정의 PGC정보에 따라 VOB를 처리한다. 이것은 사용자가 광디스크에 이미 저장된 VOB를 직접 기록하는 볼드 편집처리를 실행할 수 있다는 것을 의미한다. 원래의 VOB가 디스크로부터 효과적으로 삭제되는 동안 사용자는 실제의 편집 표시를 하여 이것을 본 발명에 대해 특별한 문제를 만들기 전에 그 결과를 검사할 수 있다.
일단 실제의 편집이 실행되면 실제의 편집에 사용되는 사용자 정의 PGC정보의 타이틀 검색 포인터의 타이틀 유형은 "원래 타입의 PGC정보"로 설정되므로 이것은 다음의 비디오 편집동작에 대한 기초로서 사용될 수 있다.
상술한 바와 같이 단 하나의 광디스크를 사용하는 단일 비디오 데이터 편집장치는 사용자로 하여금 복수의 자유롭게 선택 가능한 소스재료의 배열중의 하나를 선택할 수 있게 함으로써 향상된 비디오 편집을 실행할 수 있다. 결국, 본 비디오 데이터 편집장치를 사용함으로써 다수의 비디오 애호가는 종래의 가정용 비디오 장비의 한계 때문에 고려해야 할 향상된 편집동작을 실행할 수 있다.
여기에서 시간정보는 셀정보의 마크점으로부터 취해질 수 있으며, 표의 형태로 시간 맵표로부터 취해지는 어드레스와 같은 정보로 관리된다. 그렇게 함으로써 이 정보는 예비 편집상태를 보여주는 스크린에 가능한 선택으로서 사용자에게 보내질 수 있다.
축소 이미지("섬네일(thumbnail)"이라고도 함)는 각각의 마크점에 대해 생성될 수 있으며, 별개의 파일로서 저장되며, 포인터 정보가 각각의 섬네일에 대해 생성된다.
예비 편집단계에서의 셀정보를 디스플레이할 때, 이들 섬네일은 사용자에 의해 만들어질 수 있는 가능한 선택을 보여주도록 디스플레이될 수 있다. 타이틀 재생 제어부(23)(도 78 참조)와 같은 구성요소의 처리와 흐름도를 이용한 제 4 실시예에 기재된 다단 편집 제어부(26)(도 81 내지 도 84)의 처리는 기계어 프로그램에 의해 달성될 수 있다. 이러한 기계어 프로그램은 기록매체에 기록되어 배포되거나 판매될 수 있다. 이러한 기록매체의 예로는 IC카드, 광디스크 또는 플로피 디스크가 있다. 기록매체에 기록된 기계어 프로그램은 표준 개인 컴퓨터에 설치될 수 있다. 설치된 기계어 프로그램을 실행함으로써 표준 개인 컴퓨터는 이 제 4 실시예의 비디오 데이터 편집장치의 기능을 달성할 수 있다.
VOB와 원래의 PGC정보 사이의 관계를 최종적으로 고려할 때 원래의 PGC정보의 한 세트가 각각의 VOB에 대하여 구비되는 것이 바람직하다.
비록 본 발명이 첨부도면을 참조로 한 예에 의해 상세히 설명되었지만 당업자라면 다양한 변경과 수정이 가능하다. 따라서 이러한 변경과 수정이 본 발명의 범위로부터 벗어나는 것은 아니며 이들은 본 발명에 속하는 것으로 간주되어야 한다.