도 1은 본 발명에 따른, 장면을 정의하는 장면 모델에 기반하여 비디오 프레임 시퀀스를 제공하는 장치의 블록도이다. 도 1의 장치는 전반적으로 도면부호 100으로 지시된다. 상기 장치(100)는 비디오 프레임 생성기(110)를 포함한다. 상기 비디오 프레임 생성기(110)는 장면 모델(112)과 사용자 제공 컨텐츠(114)를 수신한 다. 나아가, 상기 비디오 프레임 생성기(110)는 비디오 프레임 시퀀스(116)를 제공한다.
상기 비디오 프레임 생성기가 수신하는 상기 장면 모델(112)은 객체 이름 또는 객체 속성을 갖는 적어도 하나의 장면 모델 객체를 포함한다는 점에 주목하여야 한다. 예를 들어, 상기 장면 모델은 2차원 또는 바람직하게는 3차원 공간에 배열된 복수의 객체들의 기술(description)을 포함할 수 있다. 적어도 하나의 객체는 최소한 각각의 객체와 연결된 객체 이름 또는 객체 속성을 가져야 한다.
그 밖에, 상기 사용자 제공 컨텐츠(114)는, 예를 들어, 이미지, 비디오 프레임, 비디오 프레임 시퀀스 또는 적어도 하나의 2차원 또는 3차원 객체의 기술을 포함할 수 있다.
상기 비디오 프레임 생성기(110)는 장면 모델 및 사용자 제공 컨텐츠에 기반하여 복수의 비디오 프레임으로 구성된 시퀀스(116)를 제공한다. 상기 비디오 프레임 생성기(110)는 상기 장면 모델(112) 내에서 미리 정하여진 객체 이름 또는 미리 정하여진 객체 속성을 갖는 장면 모델 객체를 식별하여, 장면 모델 객체를 획득한다. 미리 정하여진 객체 이름 또는 미리 정하여진 객체 속성을 갖는 장면 모델 객체를 식별하는 과정은 상기 식별된 장면 모델 객체의 특정 표면을 식별하는 과정을 포함한다.
그 밖에, 상기 비디오 프레임 생성기(110)는 비디오 프레임 시퀀스를 생성하는데, 상기 사용자 제공 컨텐츠(114)가 상기 식별된 장면 모델 객체의 표면상에 표시된다. 선택적으로, 상기 비디오 프레임 생성기(110)는 상기 식별된 장면 모델 객 체를 대체하여 상기 사용자 제공 컨텐츠(114)를 표시할 수 있다.
만약 상기 사용자 제공 컨텐츠(114)가 이미지, 비디오 프레임 또는 비디오 프레임 시퀀스라면, 상기 식별된 장면 모델 객체의 표면에 사용자 제공 컨텐츠를 표시하는 것이 바람직하다는 점에 주목하여야 한다. 다른 한편으로, 만약 상기 사용자 제공 컨텐츠(114)가 2차원 대체 장면 모델 객체 또는 3차원 대체 장면 모델 객체라면, 상기 식별된 장면 모델 객체를 상기 사용자 제공 컨텐츠(114)로 대체하는 것이 바람직하다.
따라서, 상기 비디오 프레임 생성기(110)는 상기 사용자 제공 컨텐츠가 상기 장면 모델(112)에 의해 제어되어 표시되는 비디오 프레임 시퀀스(116)를 제공한다. 따라서, 상기 장면 모델(112)은 상기 비디오 프레임 시퀀스(116)의 템플릿으로 고려될 수 있는데, 상기 장면 모델은 상기 표시되는 장면을 기술하고, 상기 표시되는 장면은 상기 사용자 제공 컨텐츠에 의해 보충된다.
이하에서, 상기 장면 모델(112), 상기 사용자 제공 컨텐츠(114), 그리고 상기 비디오 프레임 시퀀스(116)의 생성에 관한 세부 사항이 기술될 것이다.
도 2는 본 발명에서 사용되는 전형적인 장면 모델의 그래픽적인 표현을 나타낸다. 상기 장면 모델은 전반적으로 도면번호 200으로 지시된다. 상기 장면 모델(200)은 입방체(210) 및 관찰 지점(212)을 포함한다. 상기 입방체(210) 및 상기 관찰 지점(212)은 3차원 공간에서 배열되는데, 상기 입방체(210) 및 상기 관찰 지점(212)의 위치 및 방위는 좌표계(220)를 참조하여 기술될 수 있다. x, y, z 방향을 갖는 복수의 가능한 좌표계 중 오직 하나만이 도시되었으나, 어떠한 임의의 좌 표계도 사용될 수 있다.
또한 "입방체1"로 지시되는 상기 입방체(210)가 모두 6개의 표면을 포함하고, 그 중 3개가 보여진다는 점에 주목하여야 한다. 예를 들어, 상기 입방체(210)는 제1 표면(230), 제2 표면(232) 그리고 제3 표면(234)을 포함한다. 나아가, 상기 입방체의 위치와 방위를 기술하기 위해 상기 입방체 내 바람직한 지점 및 상기 입방체 내 바람직한 방향이 정의될 수 있음에 주목하여야 한다. 예를 들어, 상기 입방체의 상기 위치 및 방위는 상기 입방체(210)의 중심(또는 무게 중심) 위치와 상기 입방체(210)의 바람직한 방향에 기반하여 기술될 수 있다. 상기 바람직한 방향은, 예를 들어, 상기 제1 표면(230)에서 바깥 방향으로 상기 제1 표면(230)에 수직인 방향일 수 있다. 따라서, 상기 입방체(210)의 위치는 상기 좌표계(220)의 원점(222)에 대한 상기 입방체의 위치를 지시하는 3개의 스칼라 좌표계(예를 들어, 좌표 x, y, z)에 의해 기술될 수 있다. 나아가, 2개의 추가적인 좌표(예를 들어, 2개의 각도 좌표 Φ, θ)가 상기 입방체(210)의 상기 바람직한 방향 또는 방위를 정의하기 위해 사용될 수 있다.
나아가, 상기 장면 모델(220)은 상기 관찰 지점(212), 예를 들어, 상기 좌표계(220)의 원점(222)에 대한 3개의 좌표에 의해 기술되는 위치를 포함한다. 또한, 선택적으로 관찰 방향 또는 관찰 구역이 관찰 지점(212)에 대해 정의될 수 있다. 즉, 상기 관찰 지점(212)에 위치하는 것으로 가정되는 관찰자가 바라보는 방향 및/또는 관찰자에게 보여지는 상기 장면 모델의 영역으로 정의될 수 있다. 나아가, 상기 관찰 지점(212)에 대하여, 수평 시야각 및/또는 수직 시야각이 상기 장면 모 델(220)의 어느 부분이 상기 관찰 지점(212)에 위치한 상기 관찰자에게 보여지는지를 지시함으로써 정의될 수 있다.
일반적으로, 상기 장면 모델(200)은 (예를 들어, 시야각의 관점에서) 상기 장면 모델(200)의 어느 부분이 상기 관찰 지점(212)에 있는 관찰자에게 보여지는지에 대한 정의를 포함한다.
즉, 상기 장면 모델(200)은 적어도 하나의 객체(예를 들어, 입방체(210)), 적어도 하나의 객체의 특성(예를 들어, 이름 또는 속성), 그리고, 선택적으로, 관측자에 관한 그리고 상기 관찰 지점(212)에 있는 상기 관찰자에게 보여지는 상기 장면 모델(200)의 부분을 정의하는 특성에 대한 정의를 포함한다.
도 3은, 도 2의 상기 장면 모델에 대하여, 장면 모델의 전형적인 리스트를 나타낸다. 도 3의 리스트는 전반적으로 도면번호 300으로 지시된다.
여기서 장면 모델 리스트는, 예를 들어, 구조화된 기술 언어(예를 들어, XML 기술 언어 또는 상용 기술 언어)로 정의될 수 있고, 상기 장면 모델 리스트는 어떤한 가능한 기술 형식도 취할 수 있다는 점에 주목하여야 한다. 또한, 이하의 예에서 약술되는 모든 특성은 임의적 사항으로 고려되어야 하며, 다른 특성으로 대체될 수 있고, 또는 완전히 생략될 수도 있다는 점에 주목하여야 한다.
도 3을 참조하면, 상기 리스트(300)는 상기 장면 모델(200)이 입방체(210)를 포함하고 있음을 나타낸다. 상기 리스트(300)에서, 식별자 "입방체1"은 상기 입방체(210)를 지시하기 위해 사용된다. 상기 리스트(300)는 복수의 입방체(210) 특성을 포함한다. 상기 특성은, 예를 들어, 상기 입방체(210)의 속성으로 생각되는 이 름("이름" 특성)과 예를 들어 직교좌표계 (x, y, z) 내에서의 상기 입방체(210)의 위치("위치" 속성)를 포함할 수 있다. 상기 장면 모델을 정의하는 상기 리스트(300)는 또한 예를 들어 각도 파라미터 θ, Φ에 기반하여 상기 입방체(210)의 회전을 정의하는 파라미터(parameters)를 포함할 수 있다.
게다가, 상기 장면 모델(200)의 상기 기술(300)은 상기 입방체(210)의 표면에 관한 세부 항목을 포함할 수 있다. 예를 들어, ("표면 1" 속성으로 지시되는) 상기 제1 표면(230)의 기술은 상기 제1 표면(230)의 텍스처에 대한 정보("텍스처" 속성), 상기 제1 표면(230)의 소재에 관한 정보("소재 1") 및/또는 상기 제1 표면(230)의 추가 정보("속성")를 포함할 수 있다.
주어진 예에서, 상기 장면 모델(200)의 상기 장면 모델 명세(300)는 상기 제1 표면(230)이 상기 텍스처 "비디오 1"을 가진다고 정의하고, 제1 사용자 제공 비디오 컨텐츠가 상기 입방체(210)의 상기 제1 표면(230) 상에 표시되어야 한다고 지시한다.
추가 속성이 (상기 리스트 또는 장면 모델 명세(300)에서 "표면 2"로 지시되는) 상기 제2 표면을 위해 주어질 수 있다. 예를 들어, 상기 제2 표면(232)("표면 2")은 "비디오 2"로 이름 붙여진 상기 텍스처을 가지는 것으로 정의되는데, 상기 제2 사용자 제공 비디오 컨텐츠가 상기 제2 표면(232) 상에 표시되어야 함을 지시한다. 유사한 특성 또는 속성이 상기 입방체(210)의 다른 표면들에 대해 주어질 수 있다.
상기 리스트(300)의 상기 장면 모델 명세는 나아가 상기 관찰 지점(212)에 관한 정보를 포함한다. 예를 들어, 상기 관찰 지점(212)의 위치가 직교좌표계 (x, y, z)와 관찰 지점에 기반하여 주어질 수 있다("위치" 속성 참조). 게다가, 각각의 파라미터에 기반하여 상기 관찰 지점에 대해 관찰 방향(즉, 상기 관찰 지점(212)에 위치한 관찰자가 바라보는 방향)이 정의될 수 있다("관찰 방향" 속성). 그 밖에, 선택적으로 시야각이 상기 관찰 지점(212)의 상기 관찰자에 대하여 정의될 수 있다("시야각" 속성). 상기 시야각은 상기 장면 모델의 어느 부분이 상기 관찰 지점(212)의 상기 관찰자에게 보여지는지를 정의한다.
나아가, 상기 리스트(300)의 상기 장면 모델 명세는 선택적으로 상기 장면 모델 내의 어떤 객체의 움직임을 기술할 수 있다. 예를 들어, 시간의 경과에 따라 상기 입방체(210)가 어떻게 움직이는지 기술할 수 있는데, 상기 입방체(210)의 일련의 위치 및/또는 방위 파라미터에 기반하여 기술될 수 있다. 선택적으로, 상기 입방체(210)의 움직임의 방향 및/또는 상기 입방체(210)의 움직임의 속도가 상기 리스트(300)의 상기 장면 모델 명세에 의해 기술될 수 있다. 여기서 상기 리스트(300)의 상기 장면 모델 명세가 시간의 경과에 따른 상기 입방체(210)의 위치 전개 및 방위의 기술 모두를 포함할 수 있다.
나아가, 상기 리스트(300)의 상기 장면 모델 명세는 선택적으로 또는 추가적으로 시간의 경과에 따른 상기 관찰 지점의 위치 변동 및/또는 시간의 경과에 따른 상기 관찰자의 관찰 방향의 변동 및/또는 시간의 경과에 따른 상기 관찰자의 시야각의 변동의 기술을 포함할 수 있다.
즉, 상기 장면 모델 명세는 어떤 주어진 시점에서 상기 장면 모델의 기술 및 시간의 경과에 따른 상기 장면 모델의 시간상 변동의 기술 모두를 포함할 수 있다.
상기 비디오 프레임 생성기(110)는, 바람직한 예에 있어서, (예를 들어, 상기 리스트(300)에 의해 주어진 바와 같은) 상기 장면 모델 명세를 평가하고 상기 장면 모델 명세에 기반하여 상기 비디오 프레임 시퀀스(316)를 생성한다. 예를 들어, 상기 비디오 프레임 생성기(110)는 제1 비디오 프레임을 얻기 위하여 제1 시점에서 유효한 상기 장면 모델 명세를 평가할 수 있다. 상기 비디오 프레임 생성기(110)는 나아가 제2 시점의 제2 비디오 프레임을 얻기 위하여 제2 시점에서 유효한 상기 장면 모델 명세를 평가할 수 있다. 제2 시점에 대한 상기 장면 모델 명세는 제2 시점에서 유효한 개별 장면 모델 명세로서 주어지거나, 또는 제1 시점에 대한 상기 장면 모델 명세 및 제1 시점과 제2 시점 사이의 상기 장면 모델의 변화를 기술하는 시간 변동 기술 또는 움직임 기술을 이용하여 결정될 수 있다.
도 4는 상기 비디오 프레임 생성기(110)를 이용하여 상기 장면 모델(112)과 사용자 제공 컨텐츠(114)에 기반하여 비디오 프레임 시퀀스를 생성하는 과정을 나타내는 예시 도면이다. 도 4의 도면은 전반적으로 도면번호 400으로 지시된다. 도면(400)의 왼쪽 열(410)은 서로 다른 시점에서의 장면 모델의 탑뷰(top view)를 나타낸다. 제2 열(420)은 서로 다른 시점에서의 상기 비디오 프레임 시퀀스(116)의 생성되는 비디오 프레임을 나타낸다. 제1 행(430)은 제1 시점에서의 장면 모델의 탑뷰와 상기 비디오 프레임 시퀀스(116)의 대응되는 비디오 프레임을 나타낸다. 제1 시점에 대한 장면 모델은 제1 표면(434)과 제2 표면(436)를 갖는 입방체(432)의 탑뷰를 나타낸다. 여기서 상기 입방체(432)는 도 2의 상기 입방체(210)와 동등하다 는 점에 주목하여야 한다. 상기 입방체(432)의 상기 제1 표면(434)는 상기 입방체(210)의 상기 제1 표면(230)과 동등하고, 상기 입방체(432)의 상기 제2 표면(436)은 상기 입방체(210)의 상기 제2 표면(232)에 상당한다. 상기 입방체(432)의 상기 제1 표면(434)은 상기 제1 표면(432)이 제1 사용자 제공 컨텐츠와 연결되어 있음을 지시하는 속성(예를 들어, 이름, 소재 지시자, 텍스처 지시자 또는 어떤 속성)을 가진다. 도 4의 예에서, 상기 제1 표면(434)은 제1 사용자 제공 이미지, 제1 사용자 제공 비디오 프레임 또는 제1 사용자 제공 시퀀스와 연결되어 있다고 가정된다. 나아가, 상기 제2 표면(136)은 (대응하는 속성 설정에 의하여) 제2 사용자 제공 이미지, 제2 사용자 제공 비디오 프레임 또는 제2 사용자 제공 시퀀스와 연결되어 있다고 가정된다. 나아가 최초 시점에 상기 장면 모델은 관찰 지점(438), 시야각(439)의 기술을 포함한다. 상기 시야각(439)은 상기 관찰 지점(438)의 관찰자가 상기 제1 표면(434)의 전체 화면 이미지를 볼 수 있도록 선택된다.
상기 최초 시점에 대한 장면 모델에 기반하여, 상기 비디오 프레임 생성기(110)는 상기 장면 모델에 의해 기술되는 장면을 나타내는 비디오 프레임을 상기 관찰 지점(438)의 상기 관찰자에게 보여지는 대로 생성하는데, 상기 관찰 지점(438)의 상기 관찰자는 상기 시야각(439)에 따라 바라볼 수 있다. 따라서, 상기 비디오 프레임 생성기(110)에 의하여 생성된 비디오 프레임(440)은 상기 관찰 지점(438)의 상기 관찰자에게 보여지는 상기 장면 모델의 영역을 보여준다. 상기에서 정의한 바와 같이, 상기 장면 모델은 상기 관찰 지점(438)의 상기 관찰자가 상기 제1 표면(434)의 전체 화면 이미지를 인식할 수 있고, 상기 프레임(440)이 상기 표 면(434)의 전체 화면 이미지를 나타낼 수 있도록 정의된다. 상기 제1 사용자 제공 이미지, 상기 제1 사용자 제공 비디오 프레임 또는 상기 제1 사용자 제공 비디오 시퀀스가 상기 제1 표면(434)과 연결되어 있는 상기 장면 모델에서 정의된 바와 같이, 상기 제1 시점에 대해 생성된 상기 비디오 프레임(440)은 상기 제1 사용자 제공 이미지의 전체 화면 이미지, 상기 제1 사용자 제공 비디오 프레임의 전체 화면 이미지, 또는 상기 제1 사용자 제공 비디오 시퀀스의 비디오 프레임의 전체 화면 이미지를 나타낸다.
상기 제2 행(444)은 제2 시점의 장면 모델과 대응되는 생성된 비디오 프레임을 나타낸다. 상기 제2 시점의 상기 장면 모델(446)은 상기 제1 시점의 장면 모델(431)과 유사하다. 그러나, 상기 제1 시점과 상기 제2 시점 사이에 상기 관찰 지점(438)이 상기 입방체(432)로부터 멀어졌다는 점에 주목하여야 한다. 따라서, 상기 제2 시점의 새로운 관찰 지점(448)은 이전의 관찰 지점과 비교하였을 때 상기 입방체(432)로부터 더 멀다. 그러나, 간단히 하기 위해 상기 제2 시점의 상기 시야각(449)은 (비록 시야각(449)이 시야각(439)과 다를 수 있더라도) 상기 제1 시점의 상기 시야각(439)과 동일하다고 가정한다. 따라서, 상기 제2 시점의 상기 관찰 지점(448)의 관찰자는 상기 제1 시점의 상태와 비교하였을 때 더 큰 장면 부분을 볼 것이다. 즉, 상기 제2 시점에서 상기 관찰 지점(448)의 관찰자는 상기 입방체(432)의 상기 제1 표면(436)뿐만 아니라, 상기 입방체(432)의 주위 일부도 (그리고 아마도 상기 입방체의 상위 평면도) 본다.
따라서, 상기 제2 시점의 상기 장면 모델(446)에 기반하여, 상기 비디오 프 레임 생성기(110)는 제2 비디오 프레임(450), 상기 입방체(432)의 이미지(예를 들어, 3차원 이미지)를 보여주는 상기 제2 비디오 프레임(450)을 생성한다. 제2 프레임(450)에서 상기 입방체의 상기 제1 표면(436)을 볼 수 있고, 상기 제1 표면(436)이 상기 제1 사용자 제공 이미지, 상기 제1 사용자 제공 비디오 프레임 또는 상기 제1 사용자 제공 비디오 프레임 시퀀스(이하에서 3가지 선택 사항이 상기 제1 사용자 제공 컨텐츠로 지정될 것이다)와 연결되어 있으므로, 상기 제1 사용자 제공 컨텐츠는 상기 제2 비디오 프레임(430)에서 상기 입방체(432)의 상기 제1 표면(436) 상에 표시될 것이다. 이를 성취하기 위해, 상기 비디오 프레임 생성기(410)는, 예를 들어, 상기 제2 생성되는 비디오 프레임(450)을 생성할 때 상기 입방체(432)의 상기 제1 표면(436)의 텍스처로서 상기 제1 사용자 제공 컨텐츠를 이용한다.
여기서 상기 제1 시점에서의 상기 제1 사용자 제공 컨텐츠가 상기 제2 시점에서의 상기 제1 사용자 제공 컨텐츠와 다를 수 있음에 주목하여야 한다. 예를 들어, 상기 비디오 프레임 생성기(110)는 상기 제1 시점에서의 (예를 들어, 사용자 제공 비디오 시퀀스의) 제1 비디오 프레임, 그리고 상기 제2 시점에서의 (예를 들어, 사용자 제공 비디오 시퀀스의) 제2 비디오 프레임을 사용할 수 있다.
상기 제2 시점에서 상기 제1 사용자 제공 컨텐츠는 제2 생성되는 비디오 프레임 상에서는 더 이상 전체 화면 이미지로 보여지지 않고, 도리어 상기 입방체(432)의 상기 제1 표면(434)을 채우는 텍스처으로 나타난다는 점에 주목하여야 한다. 따라서, 상기 제1 사용자 제공 컨텐츠는 단지 상기 제2 생성되는 비디오 프레임(450)의 일부를 채울 뿐이다.
제3 행(454)은 장면 모델(456)과 결과물인 제3 생성되는 비디오 프레임(460)을 나타낸다. 도 4에 나타난 예를 통해, 제3 시점에서의 상기 장면 모델(456)은 상기 입방체(434)가 수직 축(도면 평면에 수직인 것으로 여겨진)을 따라 회전한다는 점에서만 상기 제2 시점의 상기 장면 모델(446)과 다른 것으로 여겨진다는 점에 주목하여야 한다.
따라서, 상기 관찰 지점(448)의 관찰자는 상기 입방체(432)의 상기 제1 표면(434)과 상기 제2 표면(436) 모두를 볼 수 있다. 결과물인 제3 생성되는 비디오 프레임(460) 역시 보여진다. 제2 사용자 제공 컨텐츠 (예를 들어, 제2 사용자 제공 이미지, 제2 사용자 제공 비디오 프레임 또는 제2 사용자 제공 비디오 시퀀스)는 상기 입방체(432)의 상기 제2 표면(436)과 연결되어 있다. 그러므로, 상기 제2 사용자 제공 컨텐츠는 상기 제3 생성되는 비디오 프레임(460)에서 상기 입방체(432)의 상기 제2 표면(436)에 나타난다. 즉, 상기 비디오 프레임 생성기(110)가 상기 장면 모델(456)과 상기 제2 사용자 제공 컨텐츠에 기반하여 상기 제3 비디오 프레임(460)을 생성할 때, 상기 제2 사용자 제공 컨텐츠는 상기 프레임(432)의 상기 제2 표면(436)에 대한 텍스처으로 사용된다. 유사하게, 상기 비디오 프레임 생성기(110)가 상기 제3 생성되는 비디오 프레임(460)을 생성할 때, 상기 제1 사용자 제공 컨텐츠는 상기 입방체(432)의 상기 제1 표면(434)에 대한 텍스처으로 사용된다. 게다가, 상기 제1 사용자 제공 컨텐츠와 상기 제2 사용자 제공 컨텐츠가 제3 생성되는 비디오 프레임(460)에서 동시에 나타나는데, 상기 제1 사용자 제공 컨텐츠와 상기 제2 사용자 제공 컨텐츠가 상기 입방체(432)의 두 개의 다른 표면상에 나타난다는 점에 주목하여야 한다.
보다 일반화하면, 본 발명은 상기 제1 사용자 제공 컨텐츠와 상기 제2 사용자 제공 컨텐츠를 서로 다른 표면상에서 동시에 보여줄 수 있는 해결책을 제공하는데, 상기 제1 사용자 제공 컨텐츠와 상기 제2 사용자 제공 컨텐츠가 나타나는 상기 서로 다른 표면은 하나의 (전형적으로 3차원인) 객체 또는 서로 다른 (전형적으로 3차원인) 객체들에 속할 수 있다.
제4 행(464)은 제4 시점에서의 장면 모델(466)과 대응하는 생성되는 비디오 프레임(470)을 보여준다. 상기 장면 모델(466)에서 볼 수 있듯이, 상기 장면 모델(466)은 단지 상기 입방체(432)가 좀 더 회전한다는 점에서만 상기 장면 모델(456)과 차이가 날 뿐인데, 이는 상기 입방체(432)의 상기 제2 평면(436)이 상기 관찰 지점(448)을 향하게 하기 위함이다. 상기 비디오 프레임 생성기(110)는 상기 장면 모델(466)에 기반하여 상기 제4 생성되는 비디오 프레임(470)을 생성한다. 결과물인 상기 제4 생성되는 비디오 프레임(470)은, 상기 제2 사용자 제공 컨텐츠가 상기 입방체(432)의 상기 제2 표면(436)의 텍스처로서 나타나고, 상기 입방체(432)의 상기 제2 표면(436)이 상기 관찰 지점을 향한다는 점에서, 상기 제2 생성되는 비디오 프레임(450)과 유사하다.
제5 행(474)은 장면 모델(476)과 제5 생성되는 비디오 프레임(480)을 보여준다. 상기 제5 장면 모델(476)은, 상기 제5 장면 모델(476)에서의 상기 제4 관찰 지점(482)이 상기 제4 장면 모델(466)에서의 상기 관찰 지점(448)보다 상기 입방체(432)에 더 가까이 위치한다는 점에서, 상기 제4 장면 모델(466)과 다르다. 바람 직하게는, 상기 관찰 지점(482)과 상기 입방체(432)는 상기 장면 모델(476)에서 상기 관찰 지점(482)의 상기 관찰자가 상기 제2 표면(436)을 전체 화면 이미지로 볼 수 있도록 위치한다. 결과적으로, 제5 생성되는 비디오 프레임은 상기 제2 사용자 제공 컨텐츠를 전체 화면 이미지로 나타낸다.
상술한 바를 요약하면, 상기 다섯 개의 생성되는 비디오 프레임 시퀀스(440, 450, 460, 470, 480)는 상기 제1 사용자 제공 컨텐츠와 상기 제2 사용자 제공 컨텐츠 간의 전환을 보여주는데, 여기서 상기 제1 생성되는 비디오 프레임(440)은 상기 제1 사용자 제공 컨텐츠의 전체 화면 이미지를 보여주고, 상기 제5 생성되는 비디오 프레임은 상기 제2 사용자 제공 컨텐츠의 전체 화면 이미지를 보여준다.
다른 실시예에서, 상기 장면 모델(431, 446, 456, 466, 476)은 두 개의 장면간의 또 다른 장면 전환을 나타낼 수 있다. 예를 들어, 상기 장면 모델(431, 446, 456, 466, 476)은 복수의 메뉴 아이템을 표시하는 메뉴 페이지와 사용자 제공 컨텐츠 간의 장면 전환을 기술할 수 있다. 예를 들어, 상기 제1 장면 모델(431)은 상기 메뉴 페이지의 전체 화면 이미지를 기술하고, 마지막 장면 모델(476)은 상기 사용자 제공 컨텐츠의 전체 화면 이미지를 기술할 수 있다. 이 경우 중간 장면 모델(446, 456, 466)은 상기 제1 장면 모델(431)과 상기 마지막 장면 모델(476)간의 보다 부드러운 장면 전환의 중간 단계를 기술한다.
다른 실시예에서, 상기 장면 모델(431, 446, 456, 466, 476)은 제1 복수의 메뉴 아이템을 표시하는 제1 메뉴 페이지와 제2 복수의 메뉴 아이템을 표시하는 제2 메뉴 페이지 간의 장면 전환을 기술할 수 있다. 이 경우, 상기 제1 장면 모델은 상기 제1 메뉴 페이지의 전체 화면 이미지를 기술하고, 상기 마지막 장면 모델(476)은 상기 제2 메뉴 페이지의 전체 화면 이미지를 기술한다. 상기 중간 장면 모델(446, 456, 466)은 상기 제1 장면 모델(431)과 상기 마지막 장면 모델(476)간의 장면 전환의 중간 단계를 기술할 수 있다.
다른 실시예에서, 상기 장면 모델(431, 446, 456, 466, 476)은 사용자 제공 컨텐츠와 메뉴 페이지 간의 장면 전환을 기술할 수 있다. 이 경우, 상기 제1 장면 모델(431)은 상기 사용자 제공 컨텐츠의 이미지를 기술하고, 상기 마지막 장면 모델(476)은 상기 메뉴 페이지의 이미지를 기술할 수 있다. 상기 메뉴는 제1 시점(예를 들면, 표준화된 시간 파라미터에 대하여 t=0인 시점) 또는 제2 시점(예를 들면, 표준화된 시간 파라미터에 대하여 t=1인 시점)에서의 3차원 장면 이미지이다. 상기 중간 장면 모델(446, 456, 466)은 상기 제1 장면 모델(431)과 상기 마지막 장면 모델(476)간의 (되도록이면 부드러운) 장면 전환을 기술할 수 있다.
또 다른 가능한 구현은 상기 제1 열(430)이 사용자 제공 컨텐츠의 표현을 나타내는 것인데, 상기 사용자 제공 컨텐츠는 상기 비디오 프레임(440)에서 표시되는 것이다. 게다가, 상기 제3 열(454)은 (여느 경우와 같은 6개 버튼 대신에) 3개 버튼을 갖는 메뉴의 표현을 나타낸다. (비디오 프레임(460)에서 보여지는) 상기 입방체의 상기 세 개의 보여지는 표면은 상기 제3 열(454)에서 보는 바와 같이 장면에서 버튼으로 이용될 수 있다.
도 5는 비디오 프레임을 렌더링하는 방법의 블록도를 나타내는데, 상기 비디오 프레임 생성기(110)에 의해 적용될 수 있다. 도 5의 방법은 전반적으로 도면번 호 500으로 지시된다. 도 5의 방법(500)은 비디오 프레임 시퀀스를 생성하기 위해 복수의 프레임에 대하여 복수 횟수만큼 실행될 수 있다.
상기 방법(500)은, 제1 단계(510)에서, 비디오 프레임에 대한 사용자 컨텐츠를 획득하는데, 상기 비디오 프레임은 설명을 위하여 인덱스 f를 가진다.
상기 방법(500)은 나아가, 제2 단계(520)에서, 상기 비디오 프레임 f에 대한 장면의 기하학적 구조를 획득한다.
상기 방법(500)은 나아가, 제3 단계(530)에서, (상기 비디오 프레임 f에 대한) 상기 사용자 제공 컨텐츠와 (상기 비디오 프레임 f에 대한) 상기 장면의 기하학적 구조를 이용하여 비디오 프레임 f를 생성한다.
상기 방법(500)은 나아가, 제4 단계(540)에서, 렌더링된 비디오 프레임 f를 제공한다.
결정 단계(550)에서 렌더링할 프레임이 더 남아 있다면, 단계(510, 520, 530, 540)들이 반복된다.
상기 프레임 f에 대한 상기 사용자 컨텐츠를 획득하는 상기 제1 단계(510)는 상기 프레임 f에 대해 어느 사용자 컨텐츠가 사용될지를 결정한다. 예를 들어, 렌더링되어야 하는 비디오 프레임 시퀀스의 모든 프레임들이 상기 동일한 (불변의) 사용자 제공 컨텐츠를 사용한다면, 이전에 처리된 비디오 프레임을 위해 획득되었던 상기 사용자 제공 컨텐츠가 재사용될 수 있다. 그러나, 서로 다른 사용자 제공 컨텐츠가 상기 생성되는 (또는 렌더링되는) 비디오 프레임 시퀀스의 서로 다른 프레임에 대해 사용되어야 한다면, 연결된 사용자 제공 컨텐츠가 획득된다.
만약, 예를 들어, 상기 사용자 제공 컨텐츠가 비디오 프레임 시퀀스라면, 상기 사용자 제공 비디오 프레임 시퀀스의 상기 서로 다른 프레임들은 상기 생성되는 (또는 렌더링되는) 비디오 프레임 시퀀스의 서로 다른 프레임들과 연결될 수 있다. 따라서, 단계(510)에서, 비디오 프레임의 사용자 제공 비디오 프레임 시퀀스의 어느 프레임이 상기 이전에 렌더링된 비디오 프레임의 생성에 사용되어야 했는지 식별된다.
여기서 하나의 생성되는 (또는 렌더링되는) 비디오 프레임의 생성에 있어서 하나 또는 복수의 사용자 제공 비디오 프레임이 사용될 수 있다는 점에 주목하여야 한다. 예를 들어, 하나의 생성되는 (또는 렌더링되는) 비디오 프레임 내에 제1 사용자 제공 비디오 프레임 시퀀스의 대응하는 비디오 프레임과 제2 사용자 제공 비디오 프레임 시퀀스의 대응하는 프레임을 포함하는 것이 가능하다. 사용된 비디오 프레임의 예가 도 7를 참조하여 나타나 있다.
상기 제2 단계(520)에서 상기 현재 처리되는 프레임 f에 대한 장면의 기하학적 구조가 획득된다. 상기 장면의 기하학적 구조는, 예를 들어, 각 프레임에 존재하는 기하학적 객체를 묘사하는 기술 언어(description language)의 형태로 주어질 수 있다. 예를 들어, 프레임 f에 대한 상기 장면의 기하학적 구조는 도 3의 리스트(300)와 유사한 기술 언어로 기술될 수 있다. 즉, 상기 장면 기술은 각 프레임에서 표시되는 기하학적 형상 또는 구성 요소의 리스트를 포함할 수 있는데, 기하학적 객체 또는 형상과 연결되어 있는 복수의 속성 또는 특성이 수반될 수 있다. 그러한 특성은, 예를 들어, 객체의 위치 및/또는 방위, 객체의 크기, 객체의 이름, 객체의 소재, 객체나 객체의 개개 평면과 연결되는 텍스처, 객체의 투명도, 기타 등등을 포함할 수 있다. 여기서 어떠한 특성도 가상 현실 세계의 기술(description)에 있어 알려진 기하학적 객체 또는 기하학적 형상을 위해 사용될 수 있다는 점에 주목하여야 한다.
나아가, 상기 장면의 기하학적 구조는 관찰자 또는 관찰 지점에 관한 정보를 포함할 수 있는데, 상기 장면의 기하학적 구조에 의해 기술되는 장면 이미지를 생성하는 장면 시점을 정의한다. 상기 관찰 지점 및/또는 상기 관찰자의 기술은 상기 관찰 지점의 위치, 관찰 방향 그리고 시야각을 포함할 수 있다.
여기서 상기 프레임 f에 대한 상기 장면의 기하학적 구조는 상기 프레임 f에 대해 이용 가능한 장면 모델로부터 직접 가져올 수 있다는 점에 주목하여야 한다. 선택적으로, 상기 프레임 f에 대한 상기 장면의 기하학적 구조는 상기 프레임 f 전에 표시된 프레임 e에 대한 장면 모델을 이용하여 획득될 수 있는데, 상기 프레임 e와 상기 프레임 f 사이의 시간 동안의 객체의 움직임에 대한 정보를 이용한다. 또한, 상기 관찰 지점의 움직임, 관찰 방향 또는 시야각에 관한 정보는 상기 프레임 f에 대한 상기 장면의 기하학적 구조를 획득하기 위해 평가될 수 있다. 따라서, 상기 프레임 f에 대한 상기 장면의 기하학적 구조는 상기 프레임 f에 표시되어야 하는 기하학적 객체 및/또는 기하학적 형상의 기술이다.
상기 제3 단계(530)에서, 비디오 프레임 f는 상기 사용자 제공 컨텐츠와 상기 제2 단계(520)에서 획득된 상기 장면의 기하학적 구조를 이용하여 생성될 수 있다. 상기 비디오 프레임 f의 생성에 대한 세부 내용은 도 6을 참조하여 후술할 것 이다. 상기 제3 단계(530)에서 렌더링된 비디오 프레임은 상기 프레임 f에 대한 사용자 컨텐츠와 상기 프레임 f에 대한 상기 장면의 기하학적 구조에 기반하여 획득된다.
결과적으로, 상기 제4 단계(540)에서, 상기 렌더링된 프레임 f가 추가 처리를 위해 제공되는데, 예를 들면 프레임 시퀀스를 형성하거나 프레임 또는 프레임 시퀀스의 소스 소재의 추가 인코딩을 수행하기 위함이다.
도 6은 사용자 제공 컨텐츠와 상기 장면의 기하학적 구조를 이용하여 비디오 프레임 f를 생성하는 과정을 나타내는 블록도이다. 도 6의 방법은 전반적으로 도면번호 600으로 지시된다.
상기 비디오 프레임 f의 생성 과정은 미리 정하여진 이름 또는 미리 정하여진 객체 속성을 갖는 상기 비디오 프레임 f에 대한 상기 장면 모델에서 객체를 식별하는 제1 단계(610)를 포함한다. 그러한 객체가 상기 제1 단계(610)에서 식별될 수 있다면, 상기 식별된 객체는 제2 단계(620)에서 사용자 제공 객체로 대체될 수 있다. 제3 단계(630)에서, 객체는 미리 정하여진 표면 속성을 갖는 표면을 갖는 상기 장면 모델에서 식별될 수 있다. 상기 미리 정하여진 표면 속성은, 예를 들어, 표면 텍스처 속성, 표면 소재 속성 또는 표면 이름 속성이 될 수 있다. 그러나, 미리 정하여진 이름을 갖는 객체가 상기 장면 모델 내에 존재하는지 알 수 있고, 이 경우 상기 객체의 적어도 하나의 특정한 표면은 상기 미리 정하여진 표면 속성을 갖는 것으로 자동적으로 간주될 수 있다. 예를 들어, 상기 장면 모델이 미리 정하여진 이름(예를 들어, video_object, 또는 Mov가 영화를 나타내는 경우의 NSG_Mov) 을 갖는 입방체를 포함한다면, 각각의 입방체의 표면이 그 위에 비디오를 표시하도록 설정된 상기 미리 정하여진 표면 속성을 갖는지를 정의할 수 있다.
즉, 상기 제3 단계(630)의 핵심 목적은 그 위에 사용자 제공 컨텐츠를 표시하는 적어도 하나의 표면을 식별하거나, 또는 그것에 관하여 표면상에 사용자 제공 컨텐츠를 표시하도록 예정된 것임을 지시하는 속성을 갖는 적어도 하나의 객체를 식별하는 것이다.
상기 사용자 제공 컨텐츠를 표시하도록 예정된 표면이 식별되었다면, 상기 사용자 제공 컨텐츠는 각각의 표면상에 표시된다. 이러한 효과를 얻기 위해, 상기 비디오 프레임 생성기는 상기 사용자 제공 컨텐츠를 그 위에 사용자 제공 컨텐츠를 표시하도록 예정된 것으로 인식된 표면에 대한 텍스처으로 사용할 수 있다.
예를 들면, 상기 비디오 프레임 생성기는 상기 사용자 제공 컨텐츠를 표시하도록 예정된 적어도 하나의 표면을 식별하기 위해 상기 프레임 f에 대한 상기 장면 기술 또는 상기 장면 모델을 분석할 수 있다. 예를 들면, 상기 비디오 프레임 생성기는 상기 사용자 제공 컨텐츠를 상기 특정 표면을 위한 텍스처로서 사용된다는 것을 지시하는 참조(예를 들면, 링크)를 상기 장면 모델에 삽입할 수 있다. 즉, 상기 비디오 프레임 생성기는 객체 또는 표면의 특징적 이름 또는 특징적 속성을 식별하기 위해 상기 장면 모델 또는 상기 장면 기술을 분석할 수 있고, 상기 사용자 제공 컨텐츠가 텍스처로서 적용된다는 점을 지시하기 위해 식별된 객체 또는 표면의 텍스처 속성을 설정할 수 있다.
분석을 위하여, 상기 비디오 프레임 생성기는, 예를 들어, 미리 정하여진 분 석 규칙을 따를 수 있는데, 예를 들어 상기 분석 규칙은 미리 정하여진 표면 이름 또는 표면 속성을 갖는 표면이 사용자 제공 컨텐츠에 기반한 텍스처으로 채워져야 한다는 것을 정의하는 것일 수 있다.
선택적으로, 상기 분석 규칙은 미리 정하여진 이름을 갖는 객체의 미리 정하여진 i 번째 표면은 상기 사용자 제공 컨텐츠에 기반한 텍스처이 주어져야 한다고 지시할 수 있다.
만약 어떤 표면이 상기 사용자 제공 컨텐츠에 기반한 텍스처을 갖는 것으로 예정된 상기 장면 모델 또는 상기 장면 기술에서 식별된다면, 상기 비디오 프레임 생성기(110)는 결과적으로 상기 식별된 표면상에서 상기 사용자 제공 컨텐츠를 표시한다. 이를 위하여, 상기 장면 모델 또는 상기 장면 기술에 의해 기술되는 상기 장면의 도면이 생성된다. 상기 장면 모델 또는 상기 장면 기술에서 그들의 (위치, 크기, 방위, 색채, 소재, 텍스처, 투명도와 같은) 속성의 관점에서 기술된 상기 객체들은 상기 객체들의 도면으로 전환되는데, 서로 다른 객체 및 상기 관찰 지점을 고려하여 상기 객체들의 상대적 위치를 고려한다. 즉, 상기 장면 모델 또는 상기 장면 기술에 의해 기술된 상기 객체들의 배열은 상기 관찰 지점에서 보여지는 도면으로 전환된다. 상기 도면의 생성에 있어서, 상기 제2 단계(620)에서의 객체들의 대체는 물론 상기 사용자 제공 컨텐츠가 그와 같은 텍스처을 갖기로 예정된 식별된 표면의 텍스처이 된다는 사실도 고려된다.
여기서 장면 모델 또는 장면 기술에 의해 기술되는 장면의 도면의 생성은 미술가/디자이너에게 알려져 있다는 점에 주목하여야 한다.
나아가 상기 모든 단계(610, 620, 630, 640)를 수행할 필요는 없다는 점에 주목하여야 한다. 대조적으로, 어떤 실시예에서는 단계(610)와 (그리고 단계(610)이 성공한다면) 단계(620)를 수행하는 것으로 충분할 수 있다. 이 경우, 상기 비디오 프레임 생성기(110)는 상기 장면 모델에 의해 기술되는 상기 장면을 표시하는 비디오 프레임을 생성하는데, 상기 식별된 객체는 상기 제2 단계(620)에 따라 상기 사용자 제공 객체로 대체된다. 최종적으로, 단계(640)는 도면을 생성하기 위해 실행된다.
그러나, 만약 예를 들어 어떤 객체를 대체하는 것이 불필요하다면, 상기 제1 단계(610)와 상기 제2 단계(620)를 실행하는 것이 불필요하다. 이 경우, 상기 사용자 제공 컨텐츠가 (예를 들어, 텍스처로서) 표시되어야 하는 상기 장면 모델에서 상기 표면을 식별하는 단계(630)를 실행하는 것으로 충분할 수 있다. 상기 단계(630) 이후에, 상기 제4 단계(640)가 실행된다. 상기 단계(640)에서 상기 비디오 프레임 생성기(110)는 상기 사용자 제공 컨텐츠를 상기 식별된 표면상에 표시하는 비디오 프레임을 생성한다.
즉, 식별된 객체를 사용자 제공 객체로 대체하거나(단계(610, 620)), 표면의 텍스처을 사용자 제공 객체로 대체하거나(단계(630)), 또는 식별된 객체를 사용자 제공 객체(단계(610, 620))로 대체하고 표면의 텍스처을 사용자 제공 객체(단계(630))로 대체하는 것이 가능하다.
도 7은 제1 사용자 제공 비디오 프레임 시퀀스와 제2 사용자 제공 비디오 프레임 시퀀스 간의 장면 전환 생성에 있어서 두 개의 사용자 제공 비디오 프레임 시 퀀스의 비디오 프레임을 나타내는 도면이다. 여기서 상기 장면 전환은 상기 제1 사용자 제공 비디오 프레임 시퀀스의 컨텐츠와 상기 제2 사용자 제공 비디오 프레임 시퀀스의 컨텐츠가 상기 생성되는 비디오 프레임 시퀀스(116)에서 표시되는 동안의 시간 간격을 포함하는 것으로 간주된다.
이를 위하여, 사용자는 겹침 영역(overlap region)을 정의할 수 있다. 즉, 겹침 영역은, 예를 들어, (일정 지속 시간에 대응하는) F 개의 프레임을 포함할 수 있다. 따라서, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 마지막 F개의 프레임이 상기 장면 전환에서 사용된다. 상기 제1 사용자 제공 비디오 프레임 시퀀스의 상기 프레임들이 도 7의 제1 그래픽적 표현(710)에 나타나 있는데, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 마지막 F개의 프레임들은 (n-F+1) ~ n의 인덱스로 지시된다. 여기서 상기 제1 사용자 제공 비디오 프레임 시퀀스의 마지막 F개의 프레임들이 상기 장면 전환을 위해 사용된다는 점에 주목하여야 한다. 그러나, 반드시 마지막 F개의 프레임을 사용하여야 하는 것은 아니다. 오히려, 상기 제1 사용자 제공 비디오 프레임 시퀀스 내에 배열된 F개의 프레임들을 사용하는 것이 가능하다.
게다가, 여기서 제2 사용자 제공 비디오 프레임 시퀀스의 상기 제1 F개 프레임은 상기 생성되는 비디오 프레임 시퀀스의 생성에 사용된다고 가정된다.
나아가 상기 생성되는 비디오 프레임 시퀀스는 1 - F로 지시되는 F개의 비디오 프레임을 포함한다고 가정한다. 따라서, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 n-F+1번 인덱스의 프레임과 상기 제2 사용자 제공 비디오 프레임 시퀀스 의 1번 인덱스의 프레임은 상기 생성되는 비디오 프레임 시퀀스의 제1 프레임과 연결된다. 따라서, 상기 연결되는 비디오 프레임들은 상기 제1 생성되는 비디오 프레임 시퀀스의 생성에 사용된다. 즉, 상기 생성되는 비디오 프레임 시퀀스의 제1 프레임을 계산하기 위해, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 (n-F+1)번째 프레임과 상기 제2 사용자 제공 비디오 프레임 시퀀스의 제1 프레임이 적용된다.
대조적으로, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 n번째 프레임과 상기 제2 사용자 제공 비디오 프레임 시퀀스의 F번째 프레임은 상기 생성되는 비디오 프레임 시퀀스의 F번째 프레임과 연결된다.
여기서 사용자 제공 비디오 시퀀스의 프레임과 생성되는 비디오 프레임 시퀀스의 프레임 간의 연결이 상기 연결되는 프레임들이 상기 생성되는 비디오 프레임 시퀀스의 특정 프레임의 계산에 요구됨을 자동적으로 의미하는 것은 아니라는 점에 주목하여야 한다. 그러나, 상기 생성되는 비디오 프레임 시퀀스의 f번째 프레임의 렌더링 처리 동안 상기 제1 사용자 제공 비디오 프레임 시퀀스의 프레임 및/또는 상기 제2 사용자 비디오 프레임 시퀀스의 프레임이 요구된다면, 상기 연결되는 프레임이 사용된다.
즉, 상술한 상기 제1 사용자 제공 비디오 프레임 시퀀스와 상기 제2 사용자 제공 비디오 프레임 시퀀스 그리고 상기 생성되는 비디오 프레임 시퀀스의 프레임 간의 연결은 상기 생성되는 비디오 프레임 시퀀스가 효율적으로 계산될 수 있도록 하는데, 변동하는 (또는 움직이는) 사용자 제공 컨텐츠가 상기 생성되는 비디오 프레임 시퀀스에 삽입될 수 있다.
즉, 상기 제1 사용자 제공 비디오 프레임 시퀀스의 프레임은 상기 제1 사용자 제공 비디오 프레임 시퀀스를 표시하도록 예정된 (또는 식별된) 표면의 프레임에 따라 변동하는 텍스처로서 이용된다.
상기 제2 사용자 제공 비디오 프레임 시퀀스의 프레임은 상기 제2 사용자 제공 비디오 프레임 시퀀스를 표시하도록 예정된 (또는 식별된) 표면의 프레임에 따라 변동하는 텍스처을 구성한다.
따라서, 상기 생성되는 비디오 시퀀스는 프레임에 따라 변동하는 텍스처을 이용하여 제공된다.
나아가 상기 생성되는 비디오 프레임 시퀀스의 계산을 위하여 상기 제1 사용자 제공 비디오 프레임 시퀀스 및/또는 상기 제2 사용자 제공 비디오 프레임 시퀀스는 상기 생성되는 비디오 프레임 시퀀스에 따라 이동될 수 있다는 점에 주목하여야 한다. 또한, 상기 제1 사용자 제공 비디오 프레임 시퀀스는 시간에 따라 확장되거나 압축될 수 있다. 상기 제1 사용자 제공 비디오 프레임 시퀀스의 한 프레임과 상기 제2 사용자 제공 비디오 프레임 시퀀스의 한 프레임은 사용자 제공 컨텐츠들이 사용되는 상기 생성되는 비디오 프레임 시퀀스의 각 프레임과 연결되는 것만이 단지 요구된다.
도 8은 텍스트 플레이스 홀더 객체를 텍스트로 대체하는 과정을 나타내는 도면이다.
도 8의 상기 도면은 전반적으로 도면번호 800으로 지시된다. 상기 도면(800)에서 보는 바와 같이, (여기에서는 비디오 프레임 형태로 표현된) 장면 기술(810) 은 텍스트 플레이스 홀더 객체를 포함할 수 있다. 예를 들어, 상기 장면 기술(810)은 입방체 또는 직육면체가 텍스트 플레이스 홀더 객체임을 지시하는 이름 또는 속성을 갖는 입방체 또는 직육면체를 기술할 수 있다. 따라서, 상기 비디오 프레임 생성기(110)가, 상기 장면 모델(112)이 상기 장면 모델 객체가 텍스트 플레이스 홀더 객체임을 지시하는 미리 정하여진 이름 또는 미리 정하여진 객체 속성을 갖는 장면 모델 객체를 포함하는 것을, 알았다면, 상기 비디오 프레임 생성기는 상기 텍스트 플레이스 홀더 객체를 텍스트 표시로 대체한다. 예를 들어, 상기 비디오 프레임 생성기(110)는 상기 텍스트 플레이스 홀더 객체를 사용자 제공 텍스트를 나타내는 하나 또는 복수의 객체로 대체할 수 있다. 즉, 상기 비디오 프레임 생성기는 상기 사용자 제공 텍스트를 나타내는 객체 기술을 상기 장면 모델에 삽입할 수 있다. 상기 장면 모델 생성기는, 예를 들어, 문자열 입력의 형태로 상기 텍스트를 수신하고, 상기 문자열 입력의 텍스트를 나타내는 객체를 생성한다. 선택적으로, 상기 비디오 프레임 생성기는 하나 또는 복수의 객체의 형태로 상기 사용자 제공 텍스트의 기술을 수신할 수 있는데, 상기 객체의 형상은 상기 텍스트를 나타낸다. 이 경우, 상기 비디오 프레임 생성기는, 예를 들어, (복수의 객체의 기술 형태로 된) 상기 텍스트의 상기 사용자 제공 기술을 상기 장면 모델에 포함시키고, 상기 텍스트를 나타내는 상기 객체의 기술을 포함하는 상기 장면 모델에 기반하여 상기 비디오 프레임을 생성할 수 있다.
도 8에서 보는 바와 같이, 비디오 프레임 생성기(110)는 상기 사용자 제공 텍스트의 도면을 포함하는 비디오 프레임(820)을 생성한다. 여기서, 보다 바람직한 실시예에서 상기 사용자 제공 텍스트의 상기 도면의 크기는 상기 텍스트 플레이스 홀더 객체(812)의 크기에 맞춰진다는 점에 주목하여야 한다. 예를 들어, 상기 텍스트 플레이스 홀더 객체는 상기 사용자 제공 텍스트의 외부 경계로서 사용될 수 있다. 또한, 상기 텍스트 플레이스 홀더 객체(812)와 연결된 (예를 들어, 색채 속성 또는 투명도 속성과 같은) 속성들은 상기 사용자 제공 텍스트가 문자열 또는 복수의 객체로서 제공되는지 여부와 무관하게 상기 사용자 제공 텍스트에 적용될 수 있다.
따라서, 상기 장면 모델(112)은 상기 비디오 프레임 시퀀스(116)에서의 상기 사용자 제공 텍스트의 외관을 정의하는 템플릿으로 이용될 수 있다.
이하에서, 본 발명에 대해 추가 기술된다. 또한, 비디오 데이터 매체의 메뉴 구조의 생성을 위한 본 발명의 적용이 기술된다. 게다가, 발명 아이디어에 기반하여 서로 다른 비디오 컨텐츠 간의 장면 전환이 어떻게 생성되는지 기술될 것이다. 나아가, 비디오 효과와 텍스트 효과가 어떻게 생성되는지 기술될 것이다.
이하에서, DVD 메뉴, 비디오 장면 전환, 비디오 효과 그리고 텍스트 효과에 관한 몇몇 일반적인 정보가 기술될 것이다. 우선 제1로, 비디오 장면 전환, 비디오 효과 그리고 텍스트 효과가 기술될 것이다.
비록 본 발명의 핵심적인 응용은 3차원(3D) DVD 메뉴의 생성이지만, 3차원 텍스트 효과는 물론 3차원 비디오 장면 전환, 그리고 3차원 비디오 효과 또한 기술될 것이다. 3차원 비디오 장면 전환, 3차원 비디오 효과 그리고 3차원 텍스트 효과는 좀 더 복잡한 DVD 제작의 보다 간단한 버전(versions)으로서 고려될 것이다.
두 개의 비디오 시퀀스 (또는 비디오 영화)가 결합되거나 연결될 때 갑작스러운 장면 전환을 피하기 위해 전형적으로 하나의 비디오 장면 전환이 삽입된다. 아주 간단한 2차원(2D) 비디오 장면 전환은, 예를 들어, 제1 비디오를 점차 어둡게 하면서, 이어서, 반대로 제2 비디오를 점차 밝게 하는 것이다. 일반적으로, 비디오 장면 전환은 처음에 제1 비디오와 동일한 프레임을 보여주고, 마지막에 제2 비디오와 동일한 프레임을 보여주는 비디오 프레임 시퀀스(또는 영화 시퀀스)이다. 이러한 (비디오 프레임) 시퀀스가 두 비디오 사이에 커트(cut) (또는 삽입)되어, 따라서 두 비디오 사이에 연속적인(또는 부드러운) 장면 전환이 되게 한다.
3차원 비디오 장면 전환에 대하여, 상기 비디오 프레임 시퀀스(또는 영화 시퀀스)는 3차원 장면 렌더링의 결과물이다. 또한, 3차원 비디오 장면 전환에 있어서, 상기 시퀀스의 제1 프레임은 되도록 상기 제1 비디오의 프레임과 일치하고, 상기 시퀀스의 마지막 프레임은 되도록 상기 제2 비디오의 프레임과 일치한다. 3차원 장면 및 애니메이션은 별도로 하고, 렌더링 엔진은 상기 제1 비디오와 상기 제2 비디오의 동시(simultaneous) 프레임을 입력으로 받아들인다. 두 비디오가 겹쳐지는 방식으로 서로의 위에 놓이고, 상기 겹침 영역이 비디오 장면 전환의 길이를 정의하며 상기 렌더링된 장면으로 대체된다고 가정함으로써 (상기 장면 전환을 생성하는) 처리 과정을 상상할 수 있다. 3차원 비디오 장면 전환의 간단한 예는 상기 제1 비디오가 앞쪽에 보이고 상기 제2 비디오가 뒤쪽에 보이는 비행기이다. 상기 비행기는 애니메이션(또는 장면 전환)의 시작에서는 앞쪽이 전체 화면으로 보이고, 끝에는 뒤쪽이 전체 화면으로 보이는 방식으로 움직여야 한다. 예를 들어, 상기 비행 기는 카메라(또는 관찰자, 또는 관찰 지점)로부터 멀어지고, 수평 대칭축 주위로 반 회전하고, 다시 상기 카메라를 향해 이동할 수 있다.
3차원 비디오 효과와 3차원 텍스트 효과는 일반적으로 비디오 영화(또는 비디오 프레임 시퀀스)에 추가되는 3차원 객체이다. 이 경우, 원래 비디오(또는 시작 비디오)의 프레임은 물론 상기 3차원 장면과 상기 애니메이션이 상기 렌더링 엔진의 입력이 된다.
텍스트 효과에 있어서, 텍스트 문자열이 정해지거나(또는 설정되어야) 한다. 3차원 텍스트 효과의 예는, 상기 문자열이 형성되고, 상기 문자들의 3차원 텍스트 문자로 렌더링되고, 그 후 다시 사라지는 시퀀스(예를 들어, 비디오 프레임 시퀀스)로 상상될 수 있다. 이 경우 상기 원래 비디오(또는 시작 비디오)는 백그라운드에서 계속된다.
3차원 비디오 효과는, 예를 들어, 상기 프레임으로 날아 들었다가, 다시 날아 나오는 (예를 들어, 유아용 영화에서의 고무 젖꼭지, 또는 세계축구챔피언십 영화에서의 축구공과 같은) 3차원 객체가 될 수 있다.
예를 들어, 3차원 비디오 장면 전환, 3차원 비디오 효과 그리고 3차원 텍스트 효과가 결합된다. 상기 렌더링 엔진은 하나 또는 복수의 비디오 그리고 (선택적으로) 하나 또는 복수의 텍스트 문자열의 동시 프레임뿐만 아니라 3차원 장면을 입력으로 받아들인다. 그러면 상기 렌더링 엔진은 프레임 단위로 짧은 영화를 생성하는데, 상기 영화는 이후에 외부 장치에 의해 (예를 들어, 추가적인 비디오 소재와 함께 결합되거나 커트되는 등) 추가 처리된다.
상기 3차원 장면은 상용 데이터 포맷 또는 일반적으로 어떤 3차원 모델링 소프트웨어의 표준 내보내기(export) 데이터 포맷이 될 수 있는 일반적인 데이터 포맷의 형태로 이용 가능하다(또는 주어질 수 있다). 원칙적으로, 임의의 3차원 데이터 포맷(예를 들어, 3차원 장면을 기술하는 데이터 포맷)의 가져오기(import)가 가능하다. 상기 데이터 파일 포맷의 상세한 구조는 본 발명과는 관련이 없다.
나아가, 기하학적 개체를 모으고, 그룹, 객체 및/또는 표면 정의에 이름을 붙일 수 있는 것이 선호된다(예를 들어, 소재는 색채와 텍스처과 동일하다: 소재 = 색채 + 텍스처). 이런 식으로, 예를 들어, 특정 이름(예를 들어 특징적이거나 미리 정하여진 이름)을 3차원 비디오 장면 전환에 대해 상술한 예에서의 상기 비행기의 앞쪽 소재에 대하여 사용함으로써 상기 렌더링 엔진에게 상기 제1 비디오의 프레임이 상기 표면상에 위치해야 한다는 (또는 보여져야 한다는) 정보를 제공하는 것이 가능하다. 즉, 상기 비행기의 앞쪽의 소재가 특정 이름(예를 들어, NSG_Mov)으로 주어진다. 상기 특정 이름(NSG_Mov)은 상기 제1 비디오의 프레임이 특정 표면상에, 즉 상기 비행기의 앞쪽에, 보여져야 한다고 상기 렌더링 엔진에게 지시한다. 같은 방식으로, 상기 렌더링 엔진은 상기 제2 비디오의 프레임을 상기 비행기의 뒤쪽에 나타낼 것을 특정 소재 이름(예를 들어, NSG_MovI)에 의하여 지시받을 수 있다.
최종 사용자 편집 텍스트를 상기 3차원 장면에 삽입하기 위해, 직육면체와 같은 3차원 객체가 사용되는데, 상기 3차원 객체는 3차원 텍스트 객체에 대한 플레이스 홀더로서 특정(또는 특징적인) 이름으로 표시된다. 이어서 상기 렌더링 엔진은 사전에(예를 들어, 상기 3차원 장면의 도면을 생성하기 전에) 이들 객체를 제거 하고, 최종 사용자에 의해 정의된 테스트를 상기 제거된 자리에 렌더링할 수 있다. 그려진 3차원 텍스트의 크기는 상기 플레이스 홀더 객체의 크기에 따른다(또는 의존한다).
이러한 방식으로, 3차원 모델러는 이름과 그룹핑(grouping)을 제공함으로써 smart3D 엔진에 의하여 비디오 장면 전환, 텍스트 효과 또는 비디오 효과로 해석되는 3차원 장면을 생성할 수 있는데, 이때 상용 도구(예를 들어, 3차원 기술 데이터 포맷 형태로 데이터를 내보낼 수 있는 어떠한 프로그램)가 사용될 수 있다. 상기 3차원 모델러는 어떠한 프로그래밍 지식도 요구하지 않는다. (비디오) 장면 전환과 (비디오) 효과를 고려함에 있어서 객체 이름의 형태를 갖는 적은 수의 규칙이 있는데 반하여, 실용적인 DVD 메뉴의 생성은 더 복잡하다. 그러나, 기본적인 방식은 동일하다.
이하에서, DVD 메뉴의 생성이 기술될 것이다. 여기서 대부분의 상용 DVD들은 메인 영화 이외에도 메이킹 필름 또는 배우들의 인터뷰와 같은 추가적인 비디오 소재를 포함하고 있음에 주목하여야 한다. 이외에도, 메인 영화는 대개 챕터들(chapters)로 나눠진다. 상기 DVD의 최종 사용자가 상기 DVD의 내용 상에서 이동할 수 있게 하기 위해, 상기 DVD는 상술한 상기 비디오 소재에 더하여 추가 비디오 시퀀스를 포함하는데, 상기 추가 비디오 시퀀스는 DVD 플레이어에 의해 메뉴 구조로서 해석된다. 비디오 DVD의 데이터 포맷(또는 데이터 포맷의 상세)은 명세 상에서 정의되고, smart3D 개념으로 생성된 상기 DVD는 명세를 벗어나지 않는다.
DVD 메뉴는 복수의 메뉴 페이지로 구성된다. 사용자는 버튼을 선택하는 것과 같은 행위를 함으로써 페이지 간에 변경할 수 있다. 또한, 상기 사용자는 어떤 행위를 함으로써 특정 비디오 또는 비디오의 특정 챕터를 시작할 수 있다.
두 개의 메뉴 페이지의 표시 간에, 메뉴 페이지와 비디오 간에, 또는 DVD를 삽입한 직후의 검정색 화면과 메인 메뉴 페이지 간에, 작은 비디오 시퀀스가 정의되어 비디오 장면 전환과 유사하게 급작스러운 변경을 막을 수 있다. 도 9, 10, 11, 12, 13, 14, 15, 16, 17은 메뉴 간 순서를 갖는 DVD 메뉴의 개략적인 배열(또는 구조)를 나타낸다. 발명 개념(또한 smart3D로 지시되는)은 3차원 모델(또한 장면 모델로 지시되는)을 이용하여 메뉴 페이지와 메뉴 간 순서를 정의할 수 있는 가능성을 제공한다.
상기 DVD 메뉴 페이지 자체가 또한 짧은 비디오 시퀀스인데, (예를 들어, 상기 DVD를 이용하는 사람 등) 상기 DVD 사용자의 선택 시간 동안에도 반드시 고정 이미지만을 표시할 필요가 없도록 하기 위함이다. 대조적으로 하나 또는 복수의 애니메이션이 상기 DVD 사용자가 선택할 수 있는 시간 동안에도 실행될 수 있다. 이들 영화 시퀀스(즉, 작은 애니메이션)는 smart3D를 사용하는 DVD 제작 프로그램(DVD authoring program)에 의해 렌더링될 수 있다.
따라서, 상기 3차원 장면으로부터(또는 상기 3차원 장면에 기반하여) (예를 들어 상기 비디오 프레임 시퀀스와 같은) 상기 시퀀스를 생성하는 작업이 상기 제작 프로그램 또는 제작 소프트웨어의 사용자의 컴퓨터 상에서 실행된다. 상기 DVD 플레이어는 고정된 순서대로 또는 상기 DVD 사용자의 행위에 따라 (상기 DVD 제작 프로그램에 의해 생성된 DVD에 담겨 있는) 비디오를 단순히 재생한다.
이어서 비디오 DVD 매체에서 일어나는 전형적인 장면 전환이 도 9, 10, 11 그리고 12를 참조하여 기술될 것이다. 도 9는 두 개의 메뉴 페이지 간의 시퀀스(예를 들어, 비디오 프레임 시퀀스)를 나타내는 도면이다. 도 9의 도면은 전반적으로 도면번호 900으로 지시된다. 도 9는 제1 메뉴 페이지(910)를 나타낸다. 상기 제1 메뉴 페이지(910)는 버튼들(912, 914, 916, 918, 920, 922)을 포함하는데, 상기 버튼들은 상기 비디오 DVD 매체 상에 포함되는 상기 DVD 컨텐츠의 특정 챕터를 선택하는 데 사용될 수 있다. 상기 버튼들(912, 914, 916, 918, 920, 922)은 하나 또는 복수의 그래픽 객체에 의해 표현될 수 있다. 또한, 상기 버튼들(912, 914, 916, 918, 920, 922)은 선택을 위하여 버튼 중 하나에 하이라이트를 주기 위해 커서가 이동될 수 있도록 선택 영역 및/또는 하이라이트 영역을 포함할 수 있다. 나아가 버튼들(912, 914, 916, 918, 920, 922)의 상기 도면이 사용자 제공 컨텐츠, 사용자 제공 이미지, 사용자 제공 비디오 프레임 또는 사용자 제공 비디오 프레임 시퀀스로서 구성될 수 있다는 점에 주목하여야 한다. 즉, 상기 버튼들의 도면은 고정되거나, 또는 변화하는, 즉 바뀔 수 있는 그래픽 컨텐츠를 포함할 수 있다.
상기 메뉴 페이지(910)가 되도록이면 3차원 모델러에 의해 생성된 장면 모델에 기반하여 기술된다는 점에 주목하여야 한다. 따라서, 상기 메뉴 페이지(910)의 요소(예를 들어, 기하학적 객체)는 장면 기술 언어의 형태로 기술된다. 추가적으로, 상기 플레이스 홀더 객체가 사용자 제공 객체(즉, 사용자 제공 컨텐츠)로 대체될 수 있고, 상기 플레이스 홀더 표면은 사용자 제공 컨텐츠(예를 들어, 사용자 제공 이미지, 사용자 제공 비디오 프레임 또는 사용자 제공 비디오 프레임 시퀀스)를 (예를 들어, 텍스처로서) 표시할 수 있도록 상기 메뉴 페이지(910)의 상기 장면 모델은 플레이스 홀더 객체 또는 플레이스 홀더 표면을 포함한다.
도 9는 제2 메뉴 페이지(930)를 나타낸다. 상기 제2 메뉴 페이지(930)는 복수의 버튼들(932, 934, 936, 938, 940, 942)을 포함한다. 상기 버튼들(932, 934, 936, 938, 940, 942)은 상기 버튼들(912, 914, 916, 918, 920, 922)과 유사한 외관과 기능을 가질 수 있다.
도 9는 나아가 상기 제1 메뉴 페이지(910)와 상기 제2 메뉴 페이지(930) 간의 장면 전환이 일어날 때 상기 DVD 플레이어에 의해 재생되는 메뉴 간 순서 또는 메뉴 대 메뉴 순서(950)를 나타낸다. 상기 제1 메뉴 페이지(910)와 상기 제2 메뉴 페이지(930) 간에 위치하는 (전형적으로 움직이는 장면 또는 애니메이션인) 상기 메뉴 간 순서(950)는 오래된, 이전 (또는 이전에 표시된) 상기 메뉴의 내용이 사라지고, 상기 새로운 (다음의 또는 다음에 표시되는) 메뉴의 상기 장면(또는 내용)이 생성되도록 처리한다. 상기 메뉴의 구조에 따라서, 몇몇 이동 화살표(예를 들어 초록색 화살표)를 표시하는 것이 바람직하다. 여기서 도 9를 참조하여 기술된 상기 메뉴 구조가 본 발명의 본질적인 요소가 아니며, 단지 하나의 실시예로서 고려되어야 한다는 점에 주목하여야 한다. 즉, 본 발명은 특정 메뉴 구조에 제한되지 아니한다. 상기 전형적인 메뉴 도면은 단순히 동적인 메뉴 생성 문제를 설명할 의도에 의한 것이다. 여기서, "동적인"은 상기 메뉴가 설계되는 시점(즉, 예를 들어 메뉴 템플릿이 생성되는 시점)에 상기 메뉴의 최종적인 외관은 알 수 없다는 것을 의미한다. 예를 들어, 상기 메뉴가 설계되는 시점에, 상기 개별 버튼(또는 동적 전환 영역)과 선택적인 추가 (3차원) 객체의 점유(또는 배치)와 사용은 알 수 없다.
도 10은 소개 영화의 개념적으로 약술된 진행을 나타내는 도면이다. 도 10의 도면은 전반적으로 도면번호 1000으로 지시된다. 상기 도면(1000)은 복수의 버튼들(1012, 1014, 1016, 1018, 1020, 1022)을 갖는 제1 메뉴 페이지(1010)을 나타낸다. 예를 들어, 상기 제1 메뉴 페이지(1010)는 상기 메뉴 페이지(910)과 일치할 수 있다. 상기 도면(1000)은 나아가 (또한 "인트로(intro)"로 지시되는) 메뉴 트레일러 시퀀스(menu trailer sequence, 1030)를 나타낸다. 상기 소개 영화("인트로") 또는 트레일러(trailer)는 상기 DVD가 DVD 플레이어에 삽입될 때 한 번 재생된다. 상기 소개 영화 또는 트레일러는 상기 DVD의 제1 메인 메뉴에서 끝난다.
즉, 상기 메뉴 트레일러(menu trailer, 1030)는 검정색 화면에서 시작해서 상기 제1 메인 메뉴에서 끝나는 비디오 프레임 시퀀스이다. 그 밖에, 상기 메뉴 트레일러(1030)는 이미 상술한 바와 같이 되도록이면 장면 모델에 기반하여 기술된다.
도 11은 "챕터 선택 메뉴 -> 영화 시작" 중간 시퀀스의 대략적으로 약술된 애니메이션의 도면을 나타낸다. 도 11의 상기 도면은 전반적으로 도면번호 1100으로 지시되고 메뉴 페이지(1110)를 나타낸다. 상기 메뉴 페이지(1110)는, 예를 들어, 도 9의 상기 메뉴 페이지(910), 도 9의 상기 메뉴 페이지(930) 또는 도 10의 상기 메뉴 페이지(1010)와 일치할 수 있다. 도 11의 상기 도면은 나아가 영화(즉, 비디오 프레임 시퀀스)의 제1 프레임(1120)을 나타낸다. 상기 도면(1100)은 나아가 메뉴 중간 시퀀스 또는 메뉴 대 타이틀 시퀀스(1130)을 나타낸다.
상기 메뉴 중간 시퀀스(1130)는 되도록이면 상기 메뉴 페이지(1110)을 보여주는 비디오 프레임으로 시작해서 상기 사용자 제공 비디오(1120)의 제1 프레임과 동일한 비디오 프레임으로 끝난다. 여기서 상기 메뉴 중간 시퀀스(1130)는, 예를 들어, 상술한 바와 같이 장면 모델에 기반하여 기술될 수 있다는 점에 주목하여야 한다.
또 다른 실시예에서, 상기 메뉴 중간 시퀀스는 역순으로 상기 메뉴에 통합될 수 있다. 따라서, 상기 메뉴 중간 시퀀스(1130)는 (프레임(1120)으로 보여지는 프레임의) 비디오가 끝나고 상기 메인 메뉴로 돌아가는 장면 전환이 일어날 때 재생될 수 있다. 즉, 상기 타이틀에서 상기 메뉴로의 상기 장면 전환에 대한 메뉴 중간 시퀀스가 제공될 수 있다. 상기 각각의 장면 전환은 상기 비디오 프레임 시퀀스의 프레임(예를 들어, 마지막 프레임)에서 시작하여, 상기 메뉴 페이지(1110)에서 끝날 수 있다.
도 12는 메인 메뉴와 서브 메뉴 간의 시퀀스를 나타내는 도면이다. 도 12의 상기 도면은 전반적으로 도면번호 1200으로 지시된다. 상기 도면(1200)은 메인 메뉴 페이지(1212)와 서브 메뉴 페이지(1220)를 나타낸다. 상기 메인 메뉴 페이지(1212)는, 예를 들어, 도 9의 상기 제1 메뉴 페이지(910) 또는 상기 제2 메뉴 페이지(930), 도 10의 상기 메뉴 페이지(1010) 또는 도 11의 상기 메뉴 페이지(1110)와 일치할 수 있다. 상기 서브 메뉴 페이지(1220)는 상기 메인 메뉴 페이지(1212)의 구조와 유사하거나 동일한 구조를 가질 수 있다. 그러나, 상기 서브 메뉴 페이지(1220)는, 예를 들어, 상기 DVD의 영화의 서브 챕터에 대한 접근을 허용하는 버 튼을 포함할 수 있다. 따라서, 상기 서브 메뉴 페이지(1220)는 복수의 버튼들(1222, 1224, 1226, 1228, 1230, 1232)을 포함할 수 있다. 상기 도면(1200)은 나아가 메뉴 중간 시퀀스 또는 메뉴 대 서브 메뉴 시퀀스(1240)를 나타낸다.
도 12에서, n=6까지의 챕터들이 (전형적인 실시예에 따라) 메뉴별로 존재할 수 있다. 전형적인 메뉴 중간 시퀀스의 템플릿에 대하여, n*4+10개의 적절히 지시된 객체들이 상기 설계자(예를 들어, 3차원 모델러)에 의해 제공된다. 따라서, 만약 메뉴 페이지 당 최대 n=6개의 챕터가 존재한다고 가정한다면, 34개의 적절히 지시된 객체들이 설계자에 의해 제공되어야 한다. 특히, 다음 객체들은 전형적인 메뉴 대 메뉴 애니메이션 시퀀스를 위해 제공되어야 한다.
n "오래된" 챕터 이미지들
n "오래된" 챕터 텍스트들
3 "오래된" 이동 화살표들
1 "오래된" 헤더(header)
1 "오래된" 푸터(footer)
n "새로운" 챕터 이미지들
n "새로운" 챕터 텍스트들
3 "새로운" 이동 화살표들
1 "새로운" 헤더(header)
1 "새로운" 푸터(footer)
상술한 객체들과 밀접하게 연결되어, n개의 "오래된" 그리고 n개의 "새로운" 대응되는 그룹들이 3차원 장면에서 대응하여 놓여야 한다. "오래된" 그리고 "새로운" 그룹들은 어느 객체가 메뉴 버튼에 속하는지를 정의한다. 아래에서 보다 자세히 설명될 "모니터들" 예에서, 제1 챕터 이미지, 제1 챕터 텍스트 그리고 제1 모니터의 완전한 기구가 상기 제1 그룹에서 요약되어 있다.
따라서, 상기 3차원 모델러는 상용 소프트웨어를 이용하여 일련의 애니메이션을 생성함으로써 3차원 메뉴를 생성하여, 상기 애니메이션은 상술한 규칙을 준수한다. 상기 3차원 모델러는 어떠한 프로그래밍 지식도 가질 필요가 없다. 게다가, 상기 제작 프로그램의 상기 사용자 역시 3차원 모델링에 관한 지식을 가질 필요가 없다. 상기 smart3D 엔진은 (상기 3차원 모델러에 의해 생성된) 상기 3차원 장면을 읽어들이고, 상기 3차원 시퀀스와 상기 DVD 제작 프로그램의 상기 사용자에게서 획득한 정보로부터 짧은 영화 시퀀스를 생성한다. 상기 영화 시퀀스는 상기 메뉴 구조에 대한 정보와 함께 명세에 부합하는 상기 DVD 상의 동적인 DVD 메뉴를 구성한다.
이하에서, 메뉴 중간 시퀀스를 생성하기 위해 smart3D 엔진이 상기 제작 프로그램으로부터 얻은 정보와 함께 3차원 장면을 어떻게 처리하는지 기술할 것이다.
상기 제작 프로그램으로부터, 서로 다른 정보가 smart3D 엔진으로 전달된다. 상기 사용자는 서로 다른 수의 (메인) 비디오를 상기 DVD에 통합하기를 원할 수 있다. 상기 사용자는 상기 3차원 장면의 상기 버튼 이미지에 대한 상기 비디오 프레임 또는 비디오 프레임 시퀀스를 결정할 수 있고, 헤더, 푸터 또는 버튼의 라벨의 텍스트를 제공할 수 있으며, 하이라이트 마스크의 색채와 투명도를 선택할 수 있다. 그러나, 상기 3차원 장면 또는 백그라운드 이미지에서의 소재 색채와 같은 추가 정보가 또한 존재할 수 있다. 상기 3차원 장면을 각각 적합하게 하기 위해, 상기 3차원 장면은 우선 소위 장면 그래프라고 불리는 별도의 데이터 구조로 번역된다.
도 13은 장면 그래프의 도면을 나타낸다. 상기 렌더링 처리 동안, 상기 장면 그래프가 절차를 거쳐, 상기 기하학적 객체(사각형 노드)가 위에 놓인 상기 변환 및 소재에 따라(즉, 상기 장면 그래프의 더 높은 레벨에 있는 상기 소재와 변환에 따라) 도출된다. 상기 장면 트리(또는 장면 그래프)에서 "그룹"으로 지시되는 상기 노드는 객체들을 모으는 역할을 한다. 생성기는 아래에 놓인 객체의 애니메이션을 위해 이용된다.
상기 3차원 장면 데이터를 읽어 들여 상기 내부 데이터 포맷으로 변환할 때, 텍스트에 대한 플레이스 홀더 객체는 재빨리 동적인 3차원 텍스트 객체로 번역된다. 상기 3차원 텍스트 객체는 상기 장면 트리에서 "텍스트"로 지시되고, 상기 3차원 텍스트 객체는 텍스트 문자열이 입력될 것을 예상하고, 상기 3차원 텍스트를 상기 렌더링된 3차원 장면으로 생성한다.
그 결과로서 메모리 내 현존하는 데이터 구조는 상기 실제 렌더링 작업 이전에 제작 소프트웨어 사용자의 선호에 따라 조정될 수 있다.
만약, 예를 들어, 상기 사용자가 6개의 비디오 대신 오직 4개의 비디오만을 포함한다면(또는 연결한다면), 오직 4개의 비디오 버튼만이 필요하며, 만약 상기 모델러가, 예를 들어, 버튼들에 대한 6개의 3차원 객체를 제공했다면, 2개의 버튼은 가려지거나 생략될 필요가 있다. 따라서, smart3D 엔진은 단순히 상기 렌더링 과정 동안 상기 장면 트리에서 각각의 가지를 제외할 필요가 있다. 위에서 주어진 예(4개의 비디오 버튼)에 대하여, smart3D 엔진은 도 13의 상기 장면 그래프에서 도면번호 5와 도면번호 6으로 지시되는 가지를 제외할 수 있다.
상기 3차원 버튼 상에 부착되거나 보여져야 하는 상기 비디오 소재(예를 들어, 사용자 제공 컨텐츠)의 프레임은 각각의 메뉴 중간 시퀀스 프레임을 렌더링하기 전에 각각의 소재에 삽입될 수(또는 식별될 수, 또는 연결될 수) 있다. 예를 들어, 도 13의 상기 장면 그래프에 의해 기술된 상기 메뉴의 상기 제1 버튼(버튼 1)상에 보이는 이미지는 "챕터 이미지 1"로 지시된다.
따라서, smart3D를 이용하여 생성된 상기 DVD의 상기 사용자는 3차원 메뉴를 이용하여 상기 DVD의 내용 상에서 이동할 수 있다. 중간 시퀀스는, 예를 들어, 상기 DVD 상에 변동되지 않도록 수록된, 짧은 비디오 영화이다. 상기 사용자는 어떠한 개인용 컴퓨터 지식도 가질 필요가 없다. 상기 DVD 제작 프로그램의 상기 사용자는 타이틀 문자열을 입력하거나, 통합할 비디오 영화를 선택하거나, 또는 챕터를 고정함으로써 상기 DVD 메뉴의 외관을 사전에 결정한다. smart3D 엔진은 이러한 (타이틀 문자열 사항; 비디오 영화 선택; 챕터 선택; 이미지 선택 또는 버튼 상에 표시될 비디오 프레임 시퀀스의 선택 등의) 사항 또는 정보로부터 움직이는 3차원 장면의 도움을 얻어 상기 비디오 중간 시퀀스를 생성한다. 상기 제작 소프트웨어의 상기 사용자는 어떠한 3차원에 대한 지식 또는 프로그래밍 지식도 필요로 하지 않 는다.
상기 3차원 장면은 표준 소프트웨어를 이용하여 3차원 모델러에 의해 생성될 수 있는데, 오직 몇 개의 규칙만이 준수될 필요가 있다. 상기 3차원 모델러는 어떠한 프로그래밍 지식도 필요로 하지 않는다. 임의의 수의 3차원 메뉴, 3차원 장면 전환 그리고 3차원 효과가 소스 코드의 어떠한 변화 없이도 추가될 수 있다.
도 14, 15, 그리고 16은 사용 중인 기존의 3차원 DVD 메뉴의 스크린샷을 나타낸다는 점에 주목하여야 한다. 도 17은 상기 3차원 모델러에 의해 정의된 3차원 메뉴의 템플릿을 나타낸다.
챕터 객체를 삽입하는 것은 챕터 이미지, 챕터 텍스트 및 선택적으로 추가 모델 객체(이하의 예에서는 "모니터들"이라고 이름붙여져 나타난, 예를 들어, 모니터들의 움직임 기구)에 대한 이미지 영역과 비디오 프레임(또는 비디오 이미지)으로 구성된다.
만약 선택 가능한 영역(또는 하이라이트된 영역)이 복수의 객체들로 구성된다면, 상기 객체들은 상응하여 이름 붙여진 그룹으로 요약될 수 있다. 상기 스크린 상의 그룹 객체들이 차지한 영역의 경계 상자는 자동적으로 상기 마우스(또는 커서)에 의해 능동적으로 선택 가능한 영역을 정의한다.
이하에서, 메뉴 페이지 및 메뉴 페이지 간의 장면 전환이 어떻게 생성되는지 기술될 것이다. 여기서 3차원 모델러가 장면의 장면 모델(또는 장면 기술)을 생성하는 것으로 간주된다는 점에 주목하여야 한다. 상기 장면 모델은, 예를 들어, 3차원 모델링 언어의 형식으로, 이후에 사용자 제공 컨텐츠로 보충되어 비디오 프레임 시퀀스로 번역되는 장면을 기술한다. 즉, 상기 장면 모델은 객체 및 객체 속성에 기반한 장면의 기술, 장면 모델(예를 들어, 객체의 움직임 및/또는 관찰자 또는 관찰 지점의 움직임)의 일시적인 전개의 기술, 그리고 사용자 제공 컨텐츠의 삽입을 위한 플레이스 홀더 객체 또는 플레이스 홀더 표면의 기술을 포함한다.
이하에서, 상기 모델러는 (되도록이면 3차원) 장면의 장면 모델을 생성하는 사람 또는 장치로 간주된다.
DVD 메뉴에서 사용 가능한 3D(3차원) 장면의 생성을 위하여, 상기 모델러는 일련의 규칙을 준수하여야 한다. 이들 규칙 중 일부는 상기 DVD 메뉴의 논리적 구조 또는 논리적 구성에 의하여 주어진다. 다른 규칙들은 3차원 객체의 추가 속성에 대한 정보를 smart3D 엔진에 전달하기 위해 요구되는데, 예를 들어 버튼 속성, 또는 하이라이트 마스크의 계산을 위해 사용되는 속성과 같은 것이다. 상기 하이라이트 마스크는 선택 단계에서 볼 수 있으며, 메뉴 페이지가 표시될 때, 상기 선택된 버튼을 상기 제작 프로그램의 상기 사용자에 의해 정의되는 색채로 겉칠을 함으로써 식별된다. 상기 규칙의 정의와 관련하여, 도 9, 10, 11 그리고 12를 참조하여 나타낸 바와 같이, smart3D 개념에 의해 지원되는 메뉴 구조를 더욱 상세하게 기술할 필요가 있다.
smart3D 메뉴는 메인 메뉴와 복수의 서브 메뉴를 이용하여 생성될 수 있다. 메인 메뉴 페이지 상에 6개까지 버튼이 놓일 수 있다. 상기 버튼들은 상기 3차원 모델러에 의해 바람직하게 배치되고, 일정한(또는 특징적인) 이름이 부여된다. 예를 들어, 상기 6개 버튼은 "NSG_BS01"에서 "NSG_BS06"까지 이름이 부여될 수 있다. 만약 더 많은 버튼들이 필요하다면, 예를 들어 DVD 제작 과정상 DVD 상에 10개의 비디오가 기록되어야 한다면, 추가적인 메뉴 페이지가 추가될 수 있는데, 상기 메뉴 페이지 사이에는 좌/우 화살표 버튼을 이용하여 수평 방향으로 이동할 수 있다. 상기 DVD 제작 과정상 챕터 마크가 추가적으로 비디오에 삽입되는 경우에는, 서브 메뉴의 하나 또는 복수의 메뉴 페이지가 추가된다. 위 버튼을 이용하여 상기 메뉴의 (위에 놓인) 상위 레벨 페이지로 다시 돌아갈 수 있다. 또한 상기 화살표 버튼은 상기 3차원 장면에서 바람직하게 배치되고, (예를 들어, NSG_Up, NSG_Nxt, NSG_Pre) 이름으로 식별된다.
상술한 요소에 추가하여, 버튼, 헤더 텍스트 그리고 푸터 텍스트의 라벨이 본 발명의 실시예에서 뒷받침된다. 이를 위하여, 상기 3차원 모델러는 텍스트 객체에서 사용되는 것과 같은 지시 이름을 가진 플레이스 홀더 객체를 상기 3차원 장면에 추가한다. 실용적인 이유로, 직육면체가 선호된다(예를 들어, NSG_Hdr, NSG_Ftr).
3차원 객체의 추가적인 이름 정하기 및 그룹 정하기(grouping)는 어느 객체가 하이라이트 마스크의 계산에 고려되어야 하는지 결정한다. 이어서 상기 하이라이트 마스크의 계산은 검정색 그리고 흰색 이미지로 이들 객체의 실루엣을 제공한다. 6개의 메뉴 버튼과 3개의 이동 화살표에 대한 하이라이트 마스크의 예가 도 23에 나타나 있다.
각각의 그룹 정하기는 나아가, 예를 들어 챕터의 사용자 정의 영역에 대하여 색채로 하이라이트되는 객체 정의와 같은, 상기 하이라이트 영역의 정확한 추가 (또는 정의)가 되게 한다. 전형적으로, 이 영역(즉, 하이라이트 영역)은 상기 각각의 챕터 이미지가 위치하는 영역과 일치한다.
이하에서, 하이라이트 마스크의 계산이 간단히 기술될 것이다. 이를 위하여, 도 23은 도 17에서 보여지는 메뉴 구조의 하이라이트 마스크의 도면을 나타낸다.
하이라이트 마스크의 생성은 다음과 같이 이루어진다. 특정 (하이라이트 마스크) 이름을 가진 (또는 특정 객체 그룹에 속하는) 객체들만이 검정색 배경 전면에 최고 밝기의 흰색으로 그려진다.
이로써 (예를 들어 버튼과 같은) 특정 객체를 하이라이트하기 위하여 상기 렌더링된 메인 메뉴 비디오와, 추출물로서, 겹쳐지는 상기 하이라이트 객체의 실루엣이 생성된다.
상기 버튼들의 라벨링은 별도로 하고, 상기 버튼들 상에 부착되거나 그 위 어딘가에 표시되는 이미지(또는 비디오 프레임)는 DVD 사용자가 상기 버튼과 상기 비디오를 연결하는 것을 수월하게 한다. 전형적으로 상기 이미지는 상기 연결된 비디오 또는 비디오 챕터의 프레임 또는 짧은 영화 시퀀스(비디오 프레임 시퀀스)이다. 상기 3차원 모델러는 플레이스 홀더 텍스처을 이용하여 상기 3차원 장면 내에서 상기 이미지가 어떻게 그리고 어디에 부착되는지(또는 표시되는지) 결정한다. 이를 위하여, 상기 3차원 모델러는 식별 이름을 상기 각각의 소재에 부여한다(예를 들어, NSG_BS01 내지 NSG_BS06).
상기 3차원 모델의 논리적 구조로부터 상기 3차원 모델러에 대한 추가 경계 조건이 일어난다. 따라서, (예를 들어, 도 10을 참조하여 보이는 바와 같은) 소개 애니메이션은 되도록이면 검정색 이미지로 시작되어 메뉴 페이지로 끝난다. 메뉴 대 메뉴 애니메이션(또는 메뉴 대 메뉴 장면 전환)과 메뉴 대 서브 메뉴 애니메이션 또는 서브 메뉴 대 메뉴 애니메이션은 메뉴 페이지(또는 서브 메뉴 페이지)로 시작되어 메뉴 페이지(또는 서브 메뉴 페이지)로 끝난다. 메뉴 대 비디오 애니메이션은 메뉴 페이지로 시작되어 전체 화면 크기의 각각의 비디오로 끝난다. 선택 단계 동안(즉, 메뉴 페이지가 보여지고 상기 사용자가 선택할 수 있는 시간 동안) 보여지는 애니메이션은 작은 움직임만을 상기 메뉴에 삽입할 수 있는데, 그렇지 않으면 상기 DVD 사용자가 임의의 시점에서 어느 버튼을 선택할 때, 예를 들어 상기 메뉴 대 비디오 장면 전환의 시작 시점에서 계단 현상(또는 단절)이 인식되기 때문이다. 제1 메뉴 페이지에서부터 제2 메뉴 페이지까지 애니메이션을 로딩할 때, 버튼, 라벨 그리고 화살표가 반드시 교환되어야 한다, 그리고 모든 객체(또는 적어도 버튼, 라벨 그리고 화살표와 연결된 객체)는 상기 3차원 모델러에 의해 두 번 제공되어야 한다(예를 들어 NSG_BS01I~NSG_BS06I, NSG_UpI, 그리고 기타 등등; 접미사 "I"는 "인커밍"을 지시함).
이하에서, DVD 메뉴의 예가 도 14 내지 17을 참조하여 기술될 것이다. 도 14 내지 17의 예는 봉 및 피스톤 시스템에 의해 지원되는 설계된 모니터를 기술하는 (또는 나타내는) 3차원 템플릿에 기반한다. 전형적인 템플릿은 "모니터 템플릿"으로 지시된다.
도 14는 4개의 챕터를 가진 메뉴 예를 나타내는 도면이다. 도 14의 도면은 전반적으로 도면번호 1400으로 지시된다.
도 15는 8개의 메인 챕터를 가진 메뉴 예를 나타내는 도면인데, 상기 사용자는 다음 또는 이전 메뉴 페이지로(또는 제1 그리고 제2 메뉴 페이지로) 이동할 수 있다. 도 15의 도면은 전반적으로 도면번호 1500으로 지시된다.
상기 도면(1400)은 4개의 모니터 화면(1410, 1412, 1414, 1416)을 나타낸다. 상기 모니터 화면 각각은 DVD 상의 비디오 컨텐츠의 챕터 선택에 대한 하나의 메뉴 항목 또는 메뉴 버튼을 나타낸다. 도 14의 메뉴 장면은 전체 6개의 모니터를 기술하는 3차원 장면 모델 또는 3차원 장면 템플릿에 기반하여 생성된다는 점에 주목하여야 한다. 6개의 모니터를 갖는 메뉴 페이지는, 예를 들어, 도 15의 도면(1500)의 왼쪽 메뉴 페이지(1510)에서 보여질 수 있다. 따라서, 상기 도면(1400)에서 마지막 두 개의 모니터(즉, 모니터들의 하단 행의 중간 모니터와 모니터들의 하단 행의 오른쪽 모니터)와 (상응하는) 챕터 지시가 상기 3차원 장면에서 제거된 것을 볼 수 있다. 또한, 도 14의 상기 메뉴 장면을 도 15의 상기 메뉴 장면과 비교해 보면, 도 14의 상기 메뉴 장면이 어떤 화살표도 포함하지 않음을 볼 수 있다. 이것은 도 14의 상기 메뉴 장면으로 표시되는 메뉴의 추가적인 메뉴 페이지가 없기 때문에 상기 화살표가 요구되지 않는 점에 기인한다.
도 15의 상기 도면(1500)을 참조하여, 도 15의 상기 메뉴 장면에 의해 기술되는 상기 메뉴가 두 개의 메뉴 페이지를 포함한다는 점에 주목하여야 한다. 제1 메뉴 페이지는 도면번호 1510으로 지시되는 6개의 메뉴 항목을 포함하고, 제2 메뉴 페이지는 도면번호 1520으로 지시되는 두 개의 메뉴 항목을 포함한다. 즉, 상기 메뉴 장면을 정의하는 템플릿이 6개의 메뉴 항목을 포함한다고 가정한다면, 상기 제1 메인 메뉴 페이지(1510)는 완전하게 채워진다. 상기 제1 메뉴 페이지(1510)는 나아가 이동 화살표(1530)를 포함한다. 상기 이동 화살표(1530)는 이동 요소로서 이용되고, "다음" 화살표로 참조될 수 있다.
(또한 메인 메뉴 페이지 2로 지시되는) 상기 제2 메뉴 페이지(1520) 상에서 전체 8개 중 남은 2개의 비디오와, 대응되는 "돌아가기" 화살표 (또는 "이전" 화살표)만이 포개 놓여진다(또는 표시된다). 상기 "돌아가기" 화살표(1540)는 상기 이전 페이지, 즉 상기 제1 메뉴 페이지(1510)로 가는 이동을 허용한다.
도 16은 8개의 메인 챕터를 가진 메뉴 예를 나타내는 도면이다. 도 16의 도면은 전반적으로 도면번호 1600으로 지시된다. 여기서 도 16의 예에서의 상기 메인 메뉴는 도 15의 예에서의 상기 메인 메뉴와 일치할 수 있다는 점에 주목하여야 한다. 즉, 상기 도면(1600)은 제1 메인 메뉴 페이지(1610)를 나타내는데, 도 15의 상기 제1 메뉴 페이지(1510)와 일치할 수 있다. 상기 도면(1600)은 나아가 서브 메뉴 페이지(1620)를 나타낸다. 여기서 상기 제1 메인 챕터가 5개의 서브챕터를 가진다는 점에 주목하여야 한다. 즉, 상기 제1 메뉴 페이지(1610)의 상기 제1 모니터(1630) (또는 버튼)을 선택하거나 활성화함으로써, 상기 서브 메뉴(1620)가 표시될 수 있다. 상기 제1 모니터 또는 상기 제1 버튼(1630)이 상기 제1 메인 챕터를 나타내기 때문에, 상기 제1 메인 챕터의 상기 네 개 서브 챕터는 상기 메뉴 페이지(1620) 상에서 접근될 수 있다. 나아가 상기 서브 메뉴 페이지(1620)의 "위" 버튼(1640)을 선택함으로써 사용자가 (상기 서브 메뉴 페이지(1620)로부터) 상기 메인 메뉴(또는 상기 메인 메뉴 페이지(1610))로 다시 이동할 수 있다는 점에 주목하 여야 한다. 게다가, 상기 메뉴 페이지(1610)는 (예를 들어, 상기 메뉴 페이지(1520)와 동일한) 다음 메인 메뉴 페이지를 접근하기 위해 "다음" 버튼(1650)을 포함한다.
즉, 도 16의 상기 예에서, 상기 제1 버튼(1630)을 통하여(또는 이용하여) 어드레싱(address)될 수 있는 서브 메뉴가 설정되었다. 짧은 중간 시퀀스 이후, (선택적으로) 애니메이션 실행 중 양 메뉴 모두(즉, 상기 메인 메뉴 페이지(1610)와 상기 서브 메뉴 페이지(1620))가 보여지는 동안, 사용자는 상기 서브 메뉴(또는 서브 메뉴 페이지(1620))를 본다. 전형적인 실시예로서, 상기 메인 메뉴 페이지(1610)의 상기 6개 모니터는 이미지를 벗어나 (또는 볼 수 있는 화면을 벗어나) 위로 이동하고, 새로운 모니터들이, 예를 들어 상기 서브 메뉴 페이지(1620)의 네 개 모니터들이, 밑에서부터 뒤를 잇는다. 상기 서브 메뉴(또는 상기 서브 메뉴 페이지(1620))는 상기 메인 메뉴 또는 상기 메인 메뉴 페이지(1610)로 가는 상향 이동을 허용하는 대응되는 이동 화살표(1660)는 물론 상기 주어진 예에서의 4개의 비디오를 포함한다.
도 17은 상술한 예들이 smart3D 내부 표현으로 렌더링되어 배치되는 상기 메인 메뉴의 템플릿을 나타내는 도면이다.
상기 템플릿에서, 상기 설계자는 최대 사용 가능한 수인 6개 모니터(1710, 1712, 1714, 1716, 1718, 1720)를 제공한다. 그 밖에, 상기 세 개의 이동 요소(1730)인 "이전 화살표", "다음 화살표" 그리고 "위 화살표"가 존재할 것이 요구된다. 상기 챕터 타이틀은 물론 상기 헤더(1740) 및 푸터(1750)는 미리 정하여진 이름 관례(convention)를 준수해야 한다. 나아가, 상기 챕터 이미지(또는 챕터 비디오 프레임)에 대한 상기 이미지 영역은 미리 정하여진 소재 이름(NSG_BS01, NSG_BS02, NSG_BS03, NSG_BS04, NSG_BS05, NSG_BS06)을 가져야 한다.
상기 개별 모니터들은 각각 대응하는 이름으로 정의되는 그룹으로 (즉, 모니터 별로 하나의 그룹으로, 어떤 모니터에 속하는 모든 요소 및/또는 객체들이 상기 특정 모니터에 속하는 그룹에 포함되는 방식으로) 집약되어야 한다. 이러한 조건들이 만족 되면, 상기 예에서 볼 수 있는 바와 같이 smart3D 엔진은 동적으로 상기 장면을 상기 메뉴 내용에 맞게 할 수 있다.
여기서 상기 도면(1700)은 전반적으로 도면번호 1700으로 지시된다는 점에 주목하여야 한다. 상기 템플릿(1700)은 복수의 메뉴 항목을 포함한다는 점에 주목하여야 한다. 전형적인 실시예로서, 대응하는 복수의 기하학적 객체들이 메뉴 항목과 연결된다. 특정 메뉴 항목과 연결되는 상기 기하학적 객체들은 서로 모여 집단이 되는데, 즉 기하학적 객체의 그룹에 포함된다. 따라서, 기하학적 객체들의 그룹을 식별함으로써, 상기 메뉴 항목에 속하는 상기 기하학적 객체들이 식별될 수 있다. 상기 장면 모델 또는 장면 템플릿이 n개의 메뉴 항목을 기술한다고 가정하면, 상기 템플릿은 n개의 그룹들을 포함하고, n개의 그룹 각각은 특정 메뉴 항목에 속하는 객체들을 집약한다. 특정 메뉴 항목에 속하는 상기 객체들은, 예를 들어, 다음을 포함할 수 있다.
- 특정 사용자 제공 컨텐츠를 특정하지 않고서, 표면이 상기 메뉴 항목과 연결되는 사용자 제공 컨텐츠를 표시할 예정임을 지시하는 미리 정하여진 이름 또는 속성을 갖는 표면. 즉, 각각의 표면은 사용자 제공 컨텐츠에 대한 플레이스 홀더 표면인데, 상기 특징적인 이름 또는 속성에 의해 지시된다.
- 사용자 제공 텍스트로 대체될 예정인 텍스트 플레이스 홀더 객체를 식별하는 미리 정하여진 이름을 갖는 플레이스 홀더 객체. 상기 텍스트 플레이스 홀더 객체는, 예를 들어, 상기 메뉴 항목과 연결된 비디오 시퀀스에 관한 "타이틀" 및/또는 정보를 제공할 예정일 수 있다.
따라서, 상기 비디오 프레임 생성기(110)는 얼마나 많은 메뉴 항목이 상기 메뉴 장면 모델에 기반한 메뉴 장면(또는 메뉴 페이지)에 표시되어야 하는지를 식별할 수 있다. 상기 비디오 프레임 생성기는 또한 개별의 또는 별개의 메뉴 항목을 정의하는 그룹들이 얼마나 많이 메뉴 템플릿에 존재하는지를 결정할 수 있다. 상술한 정보에 의하면, 상기 비디오 프레임 생성기(110)는 만약 상기 메뉴 장면 모델 또는 메뉴 템플릿이 실제 필요한 것보다 더 많은 메뉴 항목을 포함하고 있다면 메뉴 항목에 속하는 여분의 객체들을 선택에서 제외하거나 제거할 수 있다. 따라서, 가령 템플릿에 포함된 것보다 적은 메뉴 항목이 요구되더라도, 일정한 수의 비디오 항목을 포함하는 템플릿이 적용된다는 것을 확신할 수 있다.
도 18은 비디오 프레임 시퀀스를 생성하는 방법 발명의 흐름도이다. 도 18의 상기 방법은 전반적으로 도면번호 1800으로 지시된다. 제1 단계(1810)에서, 장면을 정의하는 장면 모델이 수신된다. 상기 장면 모델은 객체 이름 및 객체 속성을 갖는 적어도 하나의 장면 모델 객체를 포함한다.
상기 방법(1800)은 나아가 제2 단계(1820)를 포함하는데, 이때, 사용자 제공 컨텐츠가 수신된다.
제3 단계(1830)에서, 미리 정하여진 객체 이름 또는 미리 정하여진 객체 속성을 갖는 장면 모델 객체가 상기 장면 모델 내에서 식별된다. 따라서, 식별된 장면 모델 객체가 획득된다.
제4 단계(1840)에서, 상기 사용자 제공 컨텐츠가 상기 식별된 장면 모델 객체의 표면상에 표시되도록 또는 식별된 장면 모델 객체를 대체하여 표시되도록 비디오 프레임 시퀀스가 생성된다.
여기서 도 18의 상기 방법(1800)이 상술한 단계 중 어느 것에 의하여도, 예를 들어 본 발명의 상기 비디오 프레임 생성기에 의해 실행되는 단계 중 어느 것에 의하여도, 보충될 수 있다는 점에 주목하여야 한다.
이하에서, DVD(또는, 일반적으로, 비디오 매체)의 메뉴 구조를 생성하는 장치 발명 및 방법 발명의 전형적인 실시예가 기술될 것이다. 이를 위하여, 도 19는 비디오 시퀀스를 선택하거나 임포트하는(import) 사용자 인터페이스를 나타내는 도면이다. 도 19의 상기 도면은 전반적으로 도면번호 1900으로 지시된다. 본 발명의 실시예에 따르면, 제1 단계에서 사용자는 DVD(또는 HD-DVD와 같은 다른 비디오 매체, Blu-ray 디스크 또는 어떤 다른 비디오 매체)에 기록하기를 원하는 비디오 타이틀을 임포트한다. 선택적으로, 각각의 비디오는 챕터 마크가 부여될 수 있다. 만약 챕터 마크가 비디오를 위해 정의된다면, 하나 또는 복수의 서브 메뉴가 이 비디오 타이틀을 위해 생성될 것이다. 상기 서브 메뉴의 각 버튼은 하나의 챕터 위치를 나타낸다. 그러므로 상기 비디오 타이틀은 상기 정의된 챕터 위치에서 시작될 수 있다.
도 20은 템플릿이나 장면 모델을 선택하는 사용자 인터페이스 페이지를 나타내는 도면이다. 즉, 본 발명의 실시예로서, 제2 단계에서 상기 사용자는 미리 정의되거나 미리 정하여진 smart3D 템플릿(즉, 미리 생성된 장면 모델)을 선택한다. 도 21은 DVD 메뉴 구조의 속성의 선택을 위한 사용자 인터페이스의 스크린샷을 나타내는 도면이다.
즉, 본 발명의 실시예에 의하면, 상기 사용자는 제3 단계에서 그의 요구에 맞도록 3차원 템플릿 설정을 조정할 수 있다. 이것은 버튼 텍스트, 헤더 텍스트, 푸터 텍스트 및/또는 백그라운드 음악을 바꿀 수 있게 한다. 즉, 상기 사용자는, 예를 들어, 상기 장면 모델 또는 메뉴 템플릿 내에서 플레이스 홀더 객체 대신 표시되어야 하는 상기 챕터 타이틀과 관련하여 설정 또는 조정을 입력할 수 있다. 유사하게, 상기 헤더 텍스트 및 푸터 텍스트가 상기 템플릿 내에서 텍스트 플레이스 홀더 객체의 대체물로서 정의될 수 있다.
그 밖에, 상기 사용자는 (가능한 메뉴 장면 전환에 대한 다음의 리스트에서) 어느 메뉴 장면 전환이 사용될지 정의할 수 있다.
- 소개 애니메이션;
- 두 메뉴 간의 장면 전환 애니메이션;
- 메뉴와 챕터 메뉴 간의 장면 전환 애니메이션;
- 메뉴와 비디오 타이틀 간의 장면 전환 애니메이션; 그리고
- 비디오 타이틀과 메뉴 간의 장면 전환 애니메이션.
본 발명의 실시예에 따르면, 제4 단계에서 smart3D 엔진에 의해 생성된 메뉴 구조는 프리뷰(preview)에서 가상 원격 제어를 이용하여 관찰될 수 있다. 상기 메뉴 장면 전환은 선택적으로 실시간으로 smart3D 엔진에 의해 계산될 수 있다. 따라서, 도 22는 상기 사용자가 메뉴 장면 전환을 미리 볼 수 있도록 하는 사용자 인터페이스의 스크린샷의 도면을 나타낸다.
본 발명의 실시예에 따르면, (선택적인) 제5 단계에서 DVD(또는 blu-ray 매체, HD-DVD 또는 또 다른 비디오 매체)가 기록되거나 준비된다.
여기서 도 19 내지 22를 참조하여 smart3D 메뉴의 생성 과정이 사용자 관점에서 보여졌다는 점에 주목하여야 한다. 나아가 도 19 내지 22를 참조하여 기술된 상기 사용자 항목은 플레이스 홀더 객체를 사용자 제공 컨텐츠로 대체하는 작업과 플레이스 홀더 표면상에 사용자 제공 컨텐츠를 표시하는 작업을 제어하기 위해 상기 비디오 프레임 생성기로 입력될 수 있다.
따라서, 사용자 입력은 (장면 템플릿 또는 단지 "템플릿"으로 지시되는) 상기 장면 모델과 상기 사용자 제공 컨텐츠에 기반하여 상기 비디오 프레임 시퀀스의 생성을 제어한다.
이하에서, 본 발명의 실시예에 따른 메뉴 생성 개념의 개요가 주어질 것이다.
하나의 DVD는 전형적으로 일정한 수의 비디오를 포함한다는 점에 주목하여야 한다. 이들 비디오는 하나 또는 복수의 메뉴 페이지를 통해 접근할 수 있는데, 각 비디오, 비디오 챕터 마크, 또는 또 다른 메뉴는 선택 버튼에 의하여(예를 들어, 메뉴 페이지의 버튼에 의하여) 표현된다. DVD의 컨텐츠는 상기 버튼들을 상기 메뉴 페이지 또는 비디오와 연결시킴으로써 탐색될 수 있다. 그 때문에, 서로 다른 고정된 짧은 비디오 시퀀스 또는 정지 이미지는 서로 다른 메뉴 페이지를 나타낸다.
(smart3D 기술로 지시되는) 상기 발명 개념은 사용자에 의해 정의된 상당한 양의 비디오로부터 상술한 메뉴 페이지를 자동적으로 생성하는 것을 허용한다. 추가적으로, 상기 사용자에 의해 정의된 두 메뉴 페이지 간이나 상기 메뉴 페이지들과 (또는 적어도 하나의 메뉴 페이지와) 비디오 타이틀 간의 장면 전환 비디오가 계산된다. 이는 상기 사용자에게 이음새 없고, 포개지고, 상호작용하는 비디오 장면을 제공한다. 개개의 메뉴 페이지와 비디오는 더 이상 차례차례 위치한 하드 컷(hard cuts)이 아니라, 가상의 3차원 세계에서 서로 녹아 들어가는 것으로 나타난다.
살아 움직이는 메뉴 구조의 생성은 smart3D 엔진으로 자동적으로 이루어진다. 상기 사용자는 단순히 그/그녀가 어느 컨텐츠(비디오 타이틀 또는 비디오 타이틀들)를 상기 디스크 상에 기록되기를 원하는지를 지정하고, 상기 미리 정의된 smart3D 템플릿(예를 들어, 미리 정하여진 템플릿의 리스트에서 하나의 템플릿)을 선택한다. 그러고 나서 smart3D 엔진은 필요한 양의 메뉴, 메뉴 당 버튼 그리고 두 메뉴 또는 메뉴와 비디오 타이틀 간의 장면 전환 비디오를 계산한다.
각각의 미리 정의된 smart3D 템플릿은 3차원 비디오 장면(또는 적어도 하나의 3차원 비디오 장면)을 명시한다(또는 나타낸다). 예를 들어, 각각의 메뉴 페이 지는 템플릿 내 서로 다른 크기의 방으로 해석될 수 있다. 만약 상기 사용자가 서로 다른 메뉴 사이를 이동한다면, smart3D 엔진에 의해 생성된 비디오 시퀀스는 장면 전환으로 재생된다. 상기 장면 전환은 양 메뉴 장면에 이음새 없이 맞추어진 비디오 장면 전환 장면을 보여준다. 이음새 없이 맞추어진 비디오 장면 전환 장면은 메뉴 페이지와 비디오 타이틀 간에 생성된다.
상기 smart3D 엔진이 상기 제작 애플리케이션과 상기 제작 엔진 사이에 통합되기 때문에, 동일한 상기 살아 움직이는 메뉴 구조가 DVD 비디오, blue-ray 매체 그리고 HD-DVD 매체를 위해 생성될 수 있다.
이하에서, 일반적인 설정과 관련하여 몇몇 요구와 주의사항과 함께 본 발명 시스템의 실시예의 몇몇 특성이 기술될 것이다.
본 발명의 실시예의 몇몇 측면을 요약하면, 다음과 같다.
- 임의의 수의 영화 시퀀스가 유연한 3차원 장면 전환을 통한 연결로서 병합될 수 있다.
- 연결된(또는 병합되거나 이어진) 영화 시퀀스가 공통된 메뉴 구조로 합쳐질 수 있다.
- 메뉴는 인트로(intro) 시퀀스와 하나 또는 복수의 메인 메뉴 페이지로 구성된다. 선택적으로, 상기 메뉴 구조는 영화 스트림(movie stream)의 다양한 챕터를 어드레싱하기 위한 서브 메뉴 페이지를 제공할 수 있다. 상기 메뉴 페이지는 각 영화의 제1 프레임으로의(또는 적어도 하나의 영화의 제1 프레임으로의) 장면 전환을 포함하는 부드러운 장면 전환에 의해 연결된다.
- 메뉴 장면은 컨텐츠를 동적으로 조정한다. 메뉴 버튼(또는 각각 이동 버튼)의 존재 및/또는 외관은 메뉴 챕터의 수에 의존한다. 상기 smart3D 엔진은 메뉴 장면을 동적으로 조정한다.
- 상기 smart3D 엔진은 개별적으로 렌더링되는 비디오 프레임의 형태로 비디오 출력을 제공하기 위해 고차원 컨텐츠(사용자 입력)와 저차원 컨텐츠(동적 해석을 가능하게 하기 위한 특별한 태그(tags)를 가진 메뉴 장면의 일반적인 모델) 및 메타 데이터(일반적인 메뉴 시퀀스 정보, 타임 스탬프)를 결합한다. 추가적으로, 상기 smart3D 엔진은 메뉴 이동에 사용되는 하이라이트된 영역 및 선택 영역에 관한 정보를 제공한다.
- 상술한 데이터는 상기 메뉴 장면의 상기 3차원 모델에서 특별한 태그(예를 들어, 이름 또는 속성)를 이용하여 상기 smart3D 엔진에 의해 자동적으로 생성된다.
- 각 메뉴는 예를 들어 헤더, 푸터 또는 챕터 캡션과 같은 다양한 행의 3차원 텍스트를 가질 수 있다. 상기 텍스트는 편집 가능하고, 즉 상기 폰트 문자의 상기 3차원 메쉬(meshes)이 쉴 사이 없이 생성된다.
- 상기 장면 전환, 3차원 효과 그리고 메뉴의 렌더링은 상호작용적이다. 근래의 그래픽 카드에 의한 하드웨어 가속이 3차원 장면의 고성능 시각화를 위해 이용될 수 있다.
이하에서, 구현의 몇 가지 상세한 내용이 기술될 것이다.
본 발명의 한 실시예에 의하면, smart3D 개념 뒤의 아이디어는 상기 엔진으 로부터의 구조화 정보를 이용하여 상기 3차원 데이터를 분리하는 것인데, 상기 엔진은 상기 구조를 해석하여 동적인 3차원 모델을 렌더링한다. 상기 데이터의 구조화를 위하여, 3차원 데이터를 위한 일반적인 방법이 사용될 것이다.
보다 바람직한 실시예에서, 상기 모든 요소들은 이름을 갖고, 다른 요소들의 그룹핑(grouping)을 허용하는 데이터 요소가 있다. 상기 이름 및 그룹핑은 (예를 들어, 상술한 바와 같이 버튼의 기능과 같은) 3차원 객체 또는 그룹에 대한 특별한 기능을 지정할 수 있다.
smart3D의 구현에 있어서, 상기 엔진은 일반적인 3차원 데이터 포맷을 읽는다. 그 점에서, 한 블록의 메타 데이터가 상기 3차원 모델의 상기 기능을 정의할 것이다. 예를 들어, DVD 메뉴에 대하여 이 메타 데이터는 메뉴 대 비디오 장면 전환과 같은 상기 3차원 장면의 윤곽을 그릴 수 있는데, 이는 상기 선택된 비디오가 보여지기 전에 상기 최종 사용자가 상기 DVD 메뉴에서 비디오 버튼을 선택할 때 재생될 것이다. 상기 메타 데이터 블록에 포함된 다른 정보는 이 장면 전환이 속하는 상기 DVD 메뉴의 버튼 수 또는 이름을 결정할 수 있다.
비디오 컨텐츠 제작을 위한 3차원 데이터의 완벽한 집합은 가능한 메뉴 또는 비디오 효과 부분을 위한 3차원 및 구조화 데이터를 가진 파일로 구성된다. 다른 이도 이러한 컨텐츠 생성 방법에 접근할 수 있게 하기 위해, 상기 일반적인 포맷과 별개의 다른 파일 포맷도 임포트할 수 있다. 추가적인 구성요소로서, 상기 특정 메뉴 부분 또는 비디오 효과 내에(또는 동안에) 재생될 음악 또는 잡음을 지정하는 사운드 파일이 있다.
상기 사용자의 요구에 따라 상기 smart3D 엔진이 유연하게 반응할 수 있게 하기 위해, 상기 3차원 모델에서 상기 3차원 객체 또는 그룹핑 객체를 위한 몇몇 이름 관례가 있다. 예를 들어, 특별한 이름인 "NSG_BS04"는 한 객체를 DVD 메뉴의 네 번째 버튼으로 지정한다. 예를 들어 사용자는 세 개의 비디오 클립만을 삽입했고, 네 번째 버튼이 더 이상 필요하지 않으면 상기 엔진은 그 이름으로 상기 객체를 삭제할 것이다. "NSG_NxtH"(이름의 끝에서 "H"는 "하이라이트"를 나타냄)와 같은 또 다른 이름은 DVD 메뉴에서 가능한 다음 버튼의 하이라이트 영역을 정의하는 객체 또는 그룹을 결정할 수 있다. 그룹핑을 이용하여, 불필요한 경우에 상기 smart3D 엔진에 의해 삭제될 기하학적 구조를 가질 수 있고, 필수적인 것이 아니라면, 상기 하이라이트 영역을 계산시 고려될 더 작은 기하학적 구조를 가질 수 있다. 6개 메뉴 버튼과 3개 이동 화살표를 가진 "모니터들" 메뉴의 하이라이트 마스크의 예가 도 23에 나타나 있다.
외부 데이터 파일에서, 텍스트는 통상의 기하학적 객체로서 해석된다. 따라서, 읽을 수 있는 문자들의 집합으로서의 객체의 의미는 상실되고, 따라서 텍스트를 바꾸기 위해 재해석될 수 없다. 그러나 상기 사용자에게 후에 DVD 메뉴 또는 비디오 컨텐츠의 일부가 될 그들 자신의 텍스트를 3차원 장면에 삽입할 수 있는 수단을 제공하여야 한다.
이를 위하여, "헤더"와 같은 특별한 이름을 가진 객체를 편집가능한 3차원 텍스트로 대체하기 위한 방법이 마련되었는데, 이 예에서는 DVD 메뉴 일부의 표제를 나타낸다.
이런 점에서, 상기 smart3D의 구현은 독립적인 모델러가 소프트웨어 개발을 다룰 필요 없이 임의의 수의 제작 및 비디오 컨텐츠를 생성할 수 있게 한다. 상기 Smart3D 엔진은 상기 3차원 모델의 구조와 메타 데이터를 해석할 수 있고, 따라서 상기 3차원 장면의 각 부분의 기능을 이해하고 있다.
일반적으로, 본 응용은 상호작용적인 메뉴와 비디오 장면을 생성하기 위한 살아 움직이는 장면의 생성 방법, 장치 그리고 컴퓨터 프로그램을 포함한다.
이하에서, 구현의 추가적인 세부 사항이 도 24를 참조하여 기술될 것이다. 도 24는 비디오 매체의 컨텐츠의 제작을 위한 모듈 계층을 나타내는 도면이다. 도 24의 상기 도면은 전반적으로 도면번호 2400으로 지시된다. 비디오 매체의 컨텐츠를 제작하는 과정은 비디오 편집 및 제작 애플리케이션(2410)에 의해 제어된다. 상기 비디오 편집 및 제작 애플리케이션(2410)은 하나 또는 복수의 사용자 비디오 클립(2420)을 수신한다. 상기 비디오 편집 및 제작 애플리케이션은 나아가 도 24의 도면(2400)에 나타나지 않은 사용자 입력도 수신한다. 상기 비디오 편집 및 제작 애플리케이션(2410)으로의 상기 사용자 입력은, 예를 들어, 얼마나 많은 사용자 비디오 클립(2420)이 상기 비디오 매체에 저장되는지에 관한 정보를 포함할 수 있다. 상기 사용자 정보는 나아가 상기 비디오 매체에 포함되는 상기 비디오 클립(또는 비디오 프레임 시퀀스)의 타이틀 이름에 관한 정보를 포함할 수 있다. 상기 사용자 입력은 나아가 상기 메뉴 구조의 세부 항목에 대한 사용자 선택을 포함할 수 있다. 예를 들어, 상기 사용자 입력은 복수의 가능한 메뉴 템플릿(또는 장면 모델) 중 어느 메뉴 템플릿이 상기 비디오 매체의 상기 메뉴 구조의 생성에 사용되어야 하는지 에 관한 정의를 포함할 수 있다. 상기 사용자 정보는 나아가 색채 설정, 백그라운드 이미지의 선택, 음악 타이틀의 선택, 기타 등등과 같은 추가적인 설정을 포함할 수 있다.
상기 비디오 매체에 저장되는 비디오 시퀀스의 렌더링은 소위 smart3D 엔진(2430)에 의해 수행되는데, 이것은 상기 비디오 프레임 생성기(110)과 동등하다. 상기 smart3D 엔진(2430)은 시나리오 및 비디오 효과에 대한 하나 또는 복수의 템플릿 정의를 수신한다. 상기 템플릿 정의(2440)는 상기 장면 모델(112)과 동등하고, 그룹핑 정보 및 속성 정보는 물론 객체에 기반하여 장면을 묘사한다.
상기 smart3D 엔진은 나아가 상기 비디오 편집 및 제작 애플리케이션(2410)으로부터 하나 또는 복수의 비디오 프레임 및 하나 또는 복수의 속성 정보, 상기 비디오 스트림 및 속성 정보 설정(2450)을 수신한다. 여기서 상기 비디오 스트림은 상기 사용자 비디오 클립(2420)과 동일하거나 또는 상기 사용자 비디오 클립에 기반하여 상기 비디오 편집 및 제작 애플리케이션(2410)에 의해 생성된다는 점에 주목하여야 한다. 상기 smart3D 엔진(2430)은 하나 또는 복수의 비디오 스트림(2450)을 생성하고, 상기 하나 또는 복수의 비디오 스트림(2460)을 다시 상기 비디오 편집 및 제작 애플리케이션(2410)으로 보낸다. 상기 비디오 스트림(2460)은 상기 비디오 프레임 시퀀스(116)와 동등하다는 점에 주목하여야 한다.
상기 비디오 편집 및 제작 애플리케이션(2410)은 상기 smart3D 엔진(2430)에 의해 생성되는 상기 비디오 스트림(2460)에 기반하여 상기 비디오 매체에 대한 메뉴 및 컨텐츠 구조를 형성한다. 이를 위하여 상기 비디오 편집 및 제작 애플리케이 션은 (몇몇 메타 정보에 기반하여) 상기 비디오 스트림(2460)이 어떤 타입의 비디오 컨텐츠를 나타내는지 식별한다. 예를 들어, 상기 비디오 편집 및 제작 애플리케이션(2410)은 특정한 비디오 화면(2460)이 메뉴 대 메뉴 장면 전환, 메뉴 대 비디오 프레임 시퀀스 장면 전환, 비디오 프레임 시퀀스 대 메뉴 장면 전환, (검정색 화면과 메뉴 간의) 소개 장면 전환 또는 비디오 프레임 시퀀스 대 비디오 프레임 시퀀스 장면 전환을 나타내는지를 식별할 수 있다. 상기 비디오 스트림의 타입 정보에 기반하여, 상기 비디오 편집 및 제작 애플리케이션(2410)은 상기 비디오 매체의 데이터 구조 내 적절한 위치에 상기 비디오 스트림을 위치시킨다.
만약, 예를 들어, 상기 비디오 편집 및 제작 애플리케이션(2410)이 특정 비디오 스트림(2460)이 메뉴 내 비디오 장면 전환임을 인식한다면, 상기 특정 메뉴 에서 상기 사용자가 특정 영화를 재생하기로 선택한 경우, 상기 비디오 편집 및 제작 애플리케이션(2410)은 메뉴 내 비디오 장면 전환이 특정한, 대응되는 메뉴 및 특정한, 대응되는 비디오(또는 영화) 사이에 재생될 수 있도록 상기 비디오 매체의 구조를 설정한다.
또 다른 예에서, 만약 예를 들어 상기 제1 메뉴 페이지 상의 특정 버튼(다음 버튼)을 선택함으로써 사용자가 제1 메뉴 페이지에서 제2 메뉴 페이지로 변경하기로 선택한다면, 상기 제1 메뉴 페이지와 상기 제2 메뉴 페이지 간의 상기 메뉴 대 메뉴 장면 전환이 상기 사용자에게 보여져야 한다. 그러므로, 상기 비디오 편집 및 제작 애플리케이션(2410)은 상기 사용자가 상기 제1 메뉴 페이지 상에서 상기 버튼을 선택하였을 때 상기 메뉴 대 메뉴 장면 전환이 재생될 수 있도록 상기 비디오 매체 상의 각각의 상기 메뉴 대 메뉴 장면 전환을 조정한다.
상기 비디오 편집 및 제작 애플리케이션(2410)이 구조(특히 상기 비디오 매체의 상기 메뉴 구조)를 생성하였을 때, 상기 비디오 편집 및 제작 애플리케이션은 상기 비디오 매체 상에 저장된 상기 정보를 제작 엔진(2470)으로 전송한다. 상기 제작 엔진(2470)은 데이터가 각각의 비디오 매체, 예를 들어 DVD 매체, blu-ray 디스크, HD-DVD 또는 다른 비디오 매체의 명세를 준수하도록 상기 비디오 편집 및 제작 애플리케이션(2410)에 의해 제공되는 데이터의 포맷을 맞춘다. 또한, 상기 제작 엔진(2470)은 상기 비디오 편집 및 제작 애플리케이션(2410)에 의해 제공되는 데이터를 상기 비디오 매체에 기록하도록 구성된다.
상술한 바를 요약하면, 도 24는 상기 smart3D 엔진의 일반적인 작업 순서를 나타낸다.
이하에서, 상술한 발명에 관한 몇몇 특정한 세부 사항이 주어질 것이다.
먼저, 상기 장면 전환 비디오의 계산에 관한 몇몇 추가적인 세부 사항이 기술될 것이다. 상기 장면 전환 비디오의 계산을 위하여, 상기 비디오 프레임 생성기는 두 개의 비디오 이미지 또는 비디오 프레임, 소멸하는(vanishing) 비디오에서 가져온 하나의 비디오 프레임, 그리고 나타나는(emerging) 비디오에서 가져온 하나의 비디오 프레임을 수신한다는 점에 주목하여야 한다. 상기 이미지 또는 비디오 프레임은 모두 최종 비디오 스트림(또는 최종 비디오 프레임 시퀀스(116))과 시간 상 동일한 지점에 대응된다. 상기 입력 비디오 스트림 내의 두 개의 이미지 또는 비디오 프레임의 일시적인 위치는 상기 개개의 입력 비디오 스트림(또는 입력 비디 오)의 길이, 그리고 겹침(overlap) 또는 장면 전환의 지속 시간에 의존한다. 그러나, 보다 바람직한 실시예에서 상기 3차원 엔진은 절대 시간 정보를 고려하지는 않는다.
상기 두 개의 입력 이미지 또는 입력 비디오 프레임에 기반하여, 단일 출력 이미지 또는 출력 비디오 프레임이 생성된다. 상기 출력 비디오 프레임의 생성에 있어서, (장면 모델에 의해 기술된) 상기 3차원 장면 내에서 각각 이름 붙여진 소재의 텍스처은 상기 입력 비디오 프레임에 의해 대체된다. 따라서, 상기 출력 이미지 또는 출력 비디오 프레임은 상기 제1 입력 비디오 프레임에 의해 대체되는 객체의 텍스처과 상기 제2 입력 비디오 프레임에 의해 대체되는 객체의 또 다른 텍스처을 가지는 3차원 장면의 이미지이다.
나아가, 어느 파일 또는 소프트웨어가 DVD 메뉴의 생성에 사용되는지 기술될 것이다.
- 상기 3차원 애니메이션 내의 3차원 장면을 기술하는 하나 또는 복수의 파일.
- 장면 그래프 및 추가적인 관리 데이터(예를 들어, 상기 3차원 템플릿의 이름, 상기 중간 시퀀스의 타입, 그리고 기타 등등)의 구조를 기술하는 하나 또는 복수의 기술 파일(description files);
- 상기 이미지 데이터 또는 비디오 데이터를 제공하고 상기 비디오 데이터를 재결합하는 비디오 이미지 소프트웨어;
- 상기 이미지 데이터와 텍스트 데이터를 상기 3차원 장면으로 통합하고, 상 기 입력 데이터대로 상기 장면의 포맷을 맞추고, 그리고 이어서 상기 3차원 장면을 렌더링하는 3차원 엔진.
상기 DVD 메뉴의 생성을 위하여, 본 발명의 실시예에 있어서 어떠한 가능한 메뉴 조합 및 메뉴 중간 시퀀스도 상기 DVD를 제작하는 동안 상기 챕터의 수와 분할에 따라 렌더링된다. 나아가, 상기 메뉴 조합 및 메뉴 중간 시퀀스는 비디오 파일로서 상기 DVD 상에 기록된다. 나아가, (파일 이름 확장자 ".ifo"를 가지고, DVD 비디오 디스크의 상기 명세에서 알 수 있는) 이동(navigation) 파일이 생성된다. 상기 이동 파일은 DVD 플레이어가 각각의 시퀀스로 점프할 수 있도록 한다(예를 들어, 상기 장면 전환 비디오의 처음으로 점프).
상기 메뉴 구조를 결정하기 위해, 대응하여 설계된 3차원 장면이 가능한 상기 비디오 챕터의 수와 구조에 따라 조정된다. (예를 들어, 요구되지 않는 메뉴 항목과 같이) 요구되지 않는 상기 설계된 3차원 장면의 일부는 자동적으로 제거되는데, 그 장면들이 최종적으로 생성되는 비디오 프레임 시퀀스에서 나타나지 않도록 하기 위함이다. 나아가, 사용자가 편집 가능한 텍스트 블록이 생성된다.
따라서, 3차원 메뉴가 생성되는데, 살아 움직이는 시퀀스는 상기 메뉴 페이지 간에 재생된다. 게다가, 하이라이트 마스크가 미리 정하여진 이름을 가진 3차원 객체로부터 자동적으로 생성된다. 따라서, 임의 모양의 하이라이트 마스크를 생성하는 것이 가능하다.
본 발명의 실시예의 핵심적인 이점 중의 하나는 (예를 들어, 3차원 모델러와 같은) 메뉴 설계자는 단순히 일반적인 메뉴 시퀀스를 미리 설계해야 한다는 사실이 다. 상기 DVD 제작 소프트웨어의 사용자는 이러한 작업에 참가하지 않는다. 상기 메뉴 비디오 시퀀스의 조정 및 생성은 상기 챕터 배분의 특성에 따라 자동적으로 수행된다.
이하에서, 얼마나 많은 영화 시퀀스가 연쇄(concatenation)로서 연결될 수 있는지(또는 결합될 수 있는지) 기술될 것이다. 하나의 비디오 영화가 30개의 개별 영화 조각으로 구성된다고 가정한다. 따라서, 30개의 개별 영화 조각을 가짐으로써, 상기 전체 영화는, 예를 들어, 29개의 장면 전환 시퀀스를 가질 수 있다. 선택적으로, 만약 영화 시작에서의 서서히 밝아지는 효과와 영화 끝에서의 서서히 어두워지는 효과가 고려된다면, 예를 들어, 31개의 장면 전환 시퀀스가 있게 된다.
상기 3차원 엔진은 단순히 현재 장면 전환의 데이터를 처리한다. 즉, 제1 단계에서 상기 제1 영화 조각과 상기 제2 영화 조각 간의 장면 전환이 처리된다. 이어서, 제2 단계에서, 상기 제2 영화 조각과 제3 영화 조각 간의 장면 전환이 계산되고, 그런 식으로 이루어진다. 상기 편집 소프트웨어의 관점에서, 한 시점의 과정은 다음과 같다.
- 상기 제1 영화 조각의 맨 앞 부분의 코딩, 그리고 상기 코딩된 정보를 완성된 영화의 비디오 스트림에 저장;
- 상기 제1 비디오 조각(비디오 조각 1)의 끝과 상기 제2 비디오 조각(비디오 조각 2)의 시작으로부터 요구되는 상기 이미지 데이터(또는 비디오 데이터, 또는 영화 데이터)를 상기 smart3D 엔진으로 업로딩(상기 제1 비디오 조각의 끝 부분과 상기 제2 비디오 조각의 시작 부분은 상기 사용자 제공 컨텐츠를 구성한다);
- 상기 렌더링된 장면 전환의 상기 이미지 데이터(또는 비디오 데이터, 또는 영화 데이터, 또는 비디오 프레임 시퀀스)를 상기 smart3D 엔진에서 가져오기;
- 상기 각각의 렌더링된 이미지(또는 비디오 프레임)을 코딩하고, 상기 코딩된 정보를 상기 완성된 영화의 상기 비디오 스트림에 저장;
- 상기 제2 비디오 조각의 중간 부분을 코딩하고, 상기 처리된 정보를 상기 완성된 영화의 상기 비디오 스트림에 저장;
- 상기 제2 비디오 조각(비디오 조각 2)의 끝과 상기 제3 비디오 조각(비디오 조각 3)의 시작으로부터 요구되는 상기 이미지 데이터를 상기 smart3D엔진으로 업로딩;
- 상기 렌더링된 장면 전환의 상기 이미지 데이터를 상기 smart3D 엔진에서 가져오기;
- 상기 각각의 렌더링된 이미지(또는 비디오 프레임)을 코딩하고, 상기 렌더링된 정보를 상기 완성된 영화의 상기 비디오 스트림에 저장.
상기 기술된 과정은 요구되는 장면 전환이 계산될 때까지 반복될 수 있다. 상기 장면 전환 시퀀스는 물론 상기 각각의 영화 조각이 단일 비디오 파일에 저장되기 때문에, 단일 비디오 파일이 상술한 연결에 의해 생성될 수 있다는 점에 주목하여야 한다.
상기 메뉴 장면의 동적인 조정과 관련하여, 상기 제작 소프트웨어가 상기 챕터 버튼을 이미지 데이터와 텍스트 데이터에 배정하는 것에 관하여 결정한다는 점에 주목하여야 한다. 또한, 상기 제작 소프트웨어는 (상기 장면 모델의) 어느 객체 가 특정한 장면에 요구되는지, 그리고 어느 객체(예를 들어, 텍스트 컨텐츠)가 조정될 필요가 있는지 결정한다. 상기 각각의 결정은 상기 DVD가 생성될 때, 예를 들어 상기 메뉴 비디오가 렌더링되는 시점에 이루어진다. 본 발명의 바람직한 실시예에서, 상기 메뉴 구조의 수정은 상기 DVD의 생성 이후에는 더 이상 가능하지 않다.
나아가, 본 발명의 범위 내에서, "고차원 컨텐츠"라는 용어는 사용자 제공 데이터, 예를 들어 비디오 스트림, 챕터 이미지, 챕터 타이틀 또는 하이라이트 색채를 지시한다는 점에 주목하여야 한다. 이와 반대로, "저차원 컨텐츠"라는 용어는 일반적으로 설계된 3차원 장면(예를 들어, 사용자 제공 컨텐츠에 맞춰지지 않았지만, 플레이스 홀더 객체 또는 플레이스 홀더 표면을 갖는 장면 모델)을 기술한다. 나아가, "메타 데이터"라는 용어는 어느 3차원 모델 파일이 메뉴를 형성하는지를 기술한다. 완성된 메뉴는 일반적인 선택 페이지에 대한 장면, 그리고 각각의 메뉴 페이지를 각각의 객체의 움직임으로 연결하는 복수의 살아 움직이는 중간 시퀀스를 포함한다. 보다 바람직한 실시예로서, 서로 다른 애니메이션 시퀀스가 제1 챕터 버튼과의 상호작용 및 제2 챕터 버튼과의 상호작용을 위해 정의된다. 상기 메타 데이터는 나아가 각각의 메뉴 시퀀스의 지속 시간, 메뉴 이름에 관한 정보 또는 추가 오디오 트랙의 참조를 포함한다.
하이라이트 영역 및 선택 영역과 관련하여, 하이라이트 영역 및 선택 영역은 상기 포함되는 객체들의 개별 그룹핑과 이름 붙이기에 의해 지시된다는 점에 주목하여야 한다.
폰트 문자의 메쉬의 생성과 관련하여, 폰트 문자의 3차원 메쉬의 생성을 위 하여 폰트 파일에 포함되는 모든 폰트 문자가 3차원 메쉬으로 표시되지는 않는다는 점에 주목하여야 한다. 대신에, 폰트 문자의 메쉬은 상기 폰트 문자가 처음으로 사용될 때 계산된다. 상기 계산된 메쉬은 이어서 상기 특정 폰트 문자의 표현에 사용된다. 한 예로서, 상기 폰트 문자의 상술된 취급은 "Hello World" 텍스트를 3차원 텍스트로 표현할 수 있게 하는데, (10개의 3차원 메쉬보다는) 오직 7개의 3차원 메쉬만이 요구되고, 문자 "l"에 대한 상기 3차원 메쉬이 위치를 바꾸는 방식으로 세 번 이용될 수 있고, 문자 "o"가 두 번 이용될 수 있기 때문이다.
여기서 상기 폰트 문자의 생성은 상기 나머지 비디오 프레임의 생성과 다르다는 점에 주목하여야 한다. 상기 폰트 문자에 대한 상기 3차원 메쉬을 제외하고 어떤 객체 또는 메쉬은 설계자, 예를 들어 (장면 모델러로 지시되는) 장면 모델을 생성한 사람에 의해 제공된다. 상기 폰트 문자의 3차원 메쉬 대신에, 상기 설계자는 사용자에 의해 입력된 텍스트로 실행 시 대체되는(즉, 상기 텍스트의 3차원 표현인) 개별적으로 이름 붙여진 상자(boxes)를 배치한다. 상기 상자의 높이와 두께(보다 일반적으로 상자의 치수)는 상기 3차원 폰트 문자의 치수를 정의한다. 텍스처 속성 및 소재 속성이 또한 상기 상자로부터 획득된다(그리고 상기 텍스트 문자의 도면으로 나타난다). 즉, 상기 사용자에 의해 입력된 상기 텍스트의 상기 3차원 표현은 상기 상자와 동일한 텍스처 및 소재 속성을 가진다.
이하에서, 렌더링 장면 전환에 사용될 수 있는 가능한 사용자 상호작용이 기술될 것이다. 일반적으로, 3차원 장면의 외관은 다이얼로그(dialog)를 통하여 외부로부터(즉, 사용자에 의하여) 영향받을 수 있다. 상술한 기술 파일에서, 각각의 객 체 속성이 편집 가능한 것으로 표시될 수 있다. 이들 속성은 다이얼로그에서 그들의 타입에 따라 표현된다. 사용자가 이들 속성을 변경 하자마자, 상기 변경된 속성이 상기 장면에 고려된다. 이런 식으로, 예를 들어, 미리 정하여진 범위 내에서 객체 색채, 백그라운드 이미지 및/또는 (객체의) 비행 궤적을 변경하는 것이 가능하다.
나아가 본 발명의 실시예에서 상기 렌더링은 표시 속도와 관련하여 상호작용적일 수 있다는 점에 주목하여야 한다. 종래의 편집 프로그램은 전형적으로 효과를 표현하기 위하여 컴퓨터의 중앙처리장치(CPU)를 이용한다. 이것은 전형적으로 매우 느리고, 표현은 부드럽지 않다. 따라서 본 발명 개념(예를 들어, smart3D 엔진)은 (오늘날 거의 어떤 컴퓨터에서도 사용가능한) 3차원 그래픽 하드웨어를 사용한다. 오직 3차원 그래픽 카드가 존재하지 않는 경우에만, 상대적으로 느린 중앙처리장치 기반 해법이 선택된다. 3차원 장면을 표현하기 위한 장면 그래프의 사용이 고성능 표시에 기여한다.
나아가 상기 smart3D 엔진은 종래 2차원 엔진과 유사한 방식으로 외부에서 접근 가능하다는 점에 주목하여야 한다. 그러나, 메뉴 처리에 있어서 추가적인 중간 시퀀스가 고려된다. 그 밖에, 기호 논리학(logistics)의 큰 부분이 상기 smart3D 엔진 내에 들어 있다.
나아가, 본 발명이 컴퓨터 프로그램의 형태로 구현될 수 있다는 점에 주목하여야 한다. 즉, 본 발명 방법의 구현 요건에 의존하여, 상기 발명 방법은 하드웨어 또는 소프트웨어로 구현될 수 있다. 상기 구현은 전기적으로 판독가능한 제어 신호 가 저장된 디지털 저장 매체, 예를 들어 디스크, DVD, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리를 이용하여 이루어질 수 있는데, 본 발명 방법이 수행될 수 있도록 프로그래밍 가능한 컴퓨터 시스템과 함께 동작한다. 일반적으로, 본 발명은 기기가 판독가능한 운반체(carrier)에 저장된 프로그램 코드, 컴퓨터 상에서 동작할 때 본 발명 방법을 수행하도록 동작하는 프로그램 코드를 가진 컴퓨터 프로그램 제품이다. 즉, 본 발명 방법은 상기 컴퓨터 프로그램이 컴퓨터 상에서 동작할 때 적어도 하나의 본 발명 방법을 수행하는 프로그램 코드를 가진 컴퓨터 프로그램이다.
상술한 바를 요약하면, 본 발명은 비디오 장면 전환, 메뉴 대 비디오 장면 전환 그리고 메뉴 대 메뉴 장면 전환을 템플릿 기반으로 생성하는 개념을 생성한다. 나아가, 본 발명은 템플릿 기반으로 상호작용적 메뉴를 생성할 수 있게 한다. 따라서, 본 발명은 비디오 매체의 용이한 생성을 허용한다.