KR20060073921A - Dv 메타데이터 추출 - Google Patents

Dv 메타데이터 추출 Download PDF

Info

Publication number
KR20060073921A
KR20060073921A KR1020067000026A KR20067000026A KR20060073921A KR 20060073921 A KR20060073921 A KR 20060073921A KR 1020067000026 A KR1020067000026 A KR 1020067000026A KR 20067000026 A KR20067000026 A KR 20067000026A KR 20060073921 A KR20060073921 A KR 20060073921A
Authority
KR
South Korea
Prior art keywords
pack
byte
field
data
unpacked
Prior art date
Application number
KR1020067000026A
Other languages
English (en)
Inventor
찰스 알랜 러드위그
에이치. 4세 둘리 제임스
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060073921A publication Critical patent/KR20060073921A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/107Programmed access in sequence to addressed parts of tracks of operating record carriers of operating tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/91Helical scan format, wherein tracks are slightly tilted with respect to tape direction, e.g. VHS, DAT, DVC, AIT or exabyte

Abstract

DV 비디오 입력 소스(104)는 예를 들어, 휴대 저장 장치(104(1))(예를 들어, 자기 디스크, 미디어 카드, 광 디스크), DV 비디오 기록 장치(104(2))(예를 들어, 디지털 캠코더), 또는 네트워크(104(3))(예를 들어, 인터넷, 기업 네트워크 또는 홈 네트워크)를 포함하여, DV 비디오 컨텐츠를 컴퓨터(102)에 전송할 수 있는 임의의 유형의 장치 또는 통신 네트워크일 수 있다. 컴퓨터(102)는 일반적으로 다양한 소스(104)로부터 비디오 컨텐츠를 수신할 수 있고, 상주 멀티미디어 아키텍처를 통해 편집 및 재생하기 위해 비디오 컨텐츠를 조작할 수 있는 다양한 컴퓨팅 장치로서 구현될 수 있다.
DV 데이터 스트림, DV 메타데이터, 컨테이너

Description

DV 메타데이터 추출{DV METADATA EXTRACTION}
본 발명은 일반적으로 멀티미디어 데이터를 프로세싱하는 것에 관한 것이며, 보다 상세하게는, DV 포맷화된 멀티미디어 데이터로부터 메타데이터를 추출하는 것에 관한 것이다.
DV는 디지털 비디오 카메라에 대해 세계적으로 사용되는 디지털 비디오 포맷이다. DV 포맷은 전형적으로 DV 컨소시엄이라 불리는 기업들의 컨소시엄에 의해 생성된 국제 표준이다. 본래 DVC(Digital Video Cassette)라 알려진 DV는 매우 높은 품질의 디지털 비디오를 기록하기 위하여 금속 기화 테이프(metal evaporate tape)를 사용한다. DV 비디오 규격인 IEC 61834는 디지털 테이프에 나선형 레코드를 형성하는 데이터 블럭의 컨텐츠, 포맷 및 기록 방법을 명시한다. 6.35mm(1/4 인치) 자기 테이프를 사용하는 디지털 비디오 카세트 기록 시스템에 대해, 카세트, 변조 방법, 자기화 및 기본 시스템 데이터에 대한 공통 규격, 및 기록된 카세트의 상호교환성을 제공하는 장비의 전기적 및 기계적 특징 또한 기술된다.
DV 비디오 정보는 초당 약 29메가비트의 속도(3.7MByte/sec)의 데이터 스트림으로 전달된다. DV 비디오 프레임은 전형적으로 10DIF 시퀀스를 포함하며, 이들 각각은 각각 80바이트의 데이터를 갖는 150개의 DIF 블럭으로 구성된다. 비디오 및 오디오 데이터 이외에, 각 DV 비디오 프레임은 DV 메타데이터라 불리는 비디오 및 오디오 데이터에 관련된 별도의 데이터를 포함한다.
DV 메타데이터는 DV 프레임 내의 비디오 데이터에 관련된 광범위한 데이터를 포함할 수 있다. 예를 들어, DV 메타데이터는 비디오가 기록된 시각 및 날짜, 비디오가 기록된 시각에서의 캠코더의 다양한 설정 등을 포함할 수 있다. IEC 61834-4에 따르면, DV 메타데이터는 256개의 개별적인 "팩(pack)"으로 나누어진다. 256개의 팩이 DV 메타데이터에 대해 보유되지만, 팩 중 다수는 아직 정의되어야 한다. 각 팩은 5바이트로 구성된다. 각 DV 메타데이터 팩의 첫번째 바이트는 팩 ID이고, 다음의 4바이트는 이진 필드로 구성된다.
DV 포맷은 각 DV 비디오 프레임이 앞 프레임 또는 다음 프레임으로부터의 어떠한 데이터에도 의존할 필요없이 자신에게만 의존하도록 허용한다. 예를 들어, 동일한 메타데이터가 하나의 DV 프레임 내에서 여러 회 반복된다. 각 DV 프레임에 형성된 중복성, 및 DV 포맷에 내재된 추가의 데이터(즉, 메타데이터)의 풍부성이 DV 비디오를 편집을 위한 이상적인 포맷으로 만든다. 그러나, 여러 어려움으로 인해, 현재의 DV 편집 어플리케이션은 그것을 편집에 이상적으로 적합하게 하는 DV 비디오의 고유 특성을 완전히 이용하지 못한다.
전형적인 DV 시나리오에서, 비디오가 캠코더에 기록되고 디지털 형태로 변환된다. 디지털 테이프 상의 비디오 데이터는 캠코더, DVCR, 또는 독립형 유닛에서의 것과 같이 디지털 테이프 드라이브에서 재생될 수 있다. DV 데이터는 파이어와이어(firewire)를 통해 컴퓨터의 하드 디스크에 전기적으로 전달될 수 있다. 전달 프로세스는 전형적으로 캡쳐 드라이버, 독립형 유틸리티, 또는 데스크탑 개인용 컴퓨터와 같은 컴퓨터에서 실행되는 편집 어플리케이션의 컴포넌트에 의해 수행된다. 전달 프로세스 동안, DV 데이터는 윈도우즈에 대한 AVI, 또는 맥(Mac)에 대한 퀵타임(Quicktime)과 같이 컴퓨터에 의해 일반적으로 이해되는 파일 포맷으로 "랩(wrap)"된다. 그러므로, 전달 프로세스가 종료되면, 컴퓨터 하드 드라이브 상의 DV 데이터는 표준 편집 어플리케이션이 프로세싱할 수 있는 파일 포맷으로 랩된다. Adobe® Premiere® Pro와 같은 다양한 편집 어플리케이션은 실시간 비디오 및 오디오 편집 툴을 통한 비선형 비디오 편집을 가능하게 한다.
그러나, 상기 나타난 바와 같이, 현재의 DV 편집 어플리케이션은 편집에 이상적으로 적합하게 하는 DV 비디오 포맷으로 제공된 풍부한 정보를 거의 또는 전혀 이용하지 않는다. 이것에 대한 주요 이유는 DV 비디오 프레임 내로부터 DV 메타데이터를 추출하는 것이 어렵기 때문이다. DV 메타데이터 추출은 현재 구체적으로 원하는 메타데이터를 추출하기 위해 어플리케이션 개발자가 자신의 커스텀 코드를 작성할 것을 필요로 한다. 또한, DV 편집 어플리케이션에 의해 구현된 추출 프로세스는 매우 프로세서 집약적일 것이며, 그것은 어플리케이션의 기타 편집 기능의 성능을 방해할 것이다. 이러한 어려움의 한 결과로, DV 메타데이터는 일반적으로 대부분의 DV 편집 어플리케이션에 의해 이용되지 않는다.
따라서, DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 방식이 필요하다.
DV 데이터 스트림으로부터의 DV 메타데이터 추출이 본원에 기술된다.
한 구현에 따라, DV 데이터 스트림으로부터 추출될 추가의 프레임별 DV 메타데이터를 지정하는 명령어가 수신된다. DV 데이터 스트림의 DV 프레임으로부터 메타데이터가 추출된다.
또 다른 구현에 따라, 메타데이터는 컨테이너(container)에 저장되고, 컨테이너는 DV 프레임의 DV 샘플에 첨부된다. 컨테이너는 그 안에 추가의 DV 메타데이터 구조가 저장되고, 그 안에 저장되었던 메타데이터 항목의 검색(retrieval)을 제공하도록 관리가능하다.
또 다른 구현에 따라, DV 메타데이터 구조가 컨테이너 내에 저장된다. DV 메타데이터 구조는 DV 메타데이터 팩의 언팩 버전(unpacked version)이다. DV 메타데이터 구조는 DV 메타데이터 팩으로부터 언팩된 이진 값, 및 각 이진 값에 관련된 상이한 변수 이름을 포함한다.
동일한 컴포넌트 및 특성을 참조하기 위하여 동일한 참조 번호가 도면 곳곳에서 사용된다.
도 1은 DV 메타데이터 추출에 적합한 예시적인 환경을 도시하는 도면.
도 2는 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기에 적합한 컴퓨터의 예시적인 실시예를 도시하는 도면.
도 3은 다양한 프로세싱 컴포넌트를 통해 프로세싱되는 DV 데이터의 예를 도시하는 도면.
도 4는 DV 메타데이터 추출 툴의 컴포넌트를 도시하는 도면.
도 5는 하나 이상의 DV 메타데이터 팩, 및 하나 이상의 언팩된 DV_METADATA 구조를 갖는 컨테이너를 도시하는 도면.
도 6은 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 예시적인 방법의 블럭도.
도 7은 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 또 다른 예시적인 방법의 블럭도.
도 8은 도 2에서와 같은 컴퓨터를 구현하기에 적합한 예시적인 컴퓨팅 환경을 도시하는 도면.
개요
다음 논의는 DV 메타데이터 추출 툴을 표현하기 위한 인터페이스, 데이터 구조 및 이벤트의 집합에 관한 것이다. DV 메타데이터 추출 툴은 DV 데이터 스트림으로부터 추출될 DV 메타데이터 팩을 기술하기 위한 API(어플리케이션 프로그래밍 인터페이스)를 포함한다. 추출 API는 IMFExtractDVMetadata라 불리며, 그것은 DV 프레임으로부터 추출될 DV 메타데이터 팩을 명시 및 삭제하기 위한 방법을 지원한다. 추출 API는 또한 추출 리스트에 있는 DV 메타데이터 팩의 수를 결정하고 추출 리스트의 주어진 인덱스에서 DV 메타데이터 팩의 ID를 결정하기 위한 방법을 지원한다.
DV 메타데이터 추출 툴은 또한 일단 DV 프레임으로부터 추출되면 DV 메타데 이터를 보유하는 컨테이너를 기술하기 위한 API를 포함한다. 컨테이너 API는 IMFDVMetadataContainer라 불리며, 그것은 컨테이너에 DV 구조를 추가 및 삭제하고, 컨테이너로부터 데이터를 검색하며, 컨테이너로부터 데이터를 삭제하고, 컨테이너를 통해 반복하기 위한 방법을 지원한다. DV 메타데이터 추출 툴은 또한 언팩된 DV 메타데이터 팩을 표현하는 고레벨 구조의 컬렉션을 포함한다.
DV 메타데이터 추출 툴은 일반적으로 마이크로소프트® 코포레이션에 의한 Media Foundation 아키텍처의 문맥 내에 기술된다. 그러나, DV 메타데이터 추출 툴은 임의의 적합한 멀티미디어 아키텍처에서 사용할 수 있는 방식으로 본원에 설계 및 기술됨을 유의해야 한다.
예시적인 환경
도 1은 DV 메타데이터 추출에 적합한 예시적인 환경(100)을 도시한다. 도 1의 예시적인 환경(100)은 컴퓨터(102) 및 하나 이상의 DV 비디오 입력 소스(104)를 포함한다.
DV 비디오 입력 소스(104)는 DV 비디오 컨텐츠를 컴퓨터(102)에 전달할 수 있는 임의의 타입의 장치 또는 통신 네트워크일 수 있으며, 예를 들어 휴대용 저장 매체(104(1))(예를 들어, 자기 디스크, 미디어 카드, 광 디스크), DV 비디오 기록 장치(104(2))(예를 들어, 디지털 캠코더), 또는 인터넷, 기업 네트워크, 또는 홈 네트워크와 같은 네트워크(104(3))를 포함한다.
비디오 기록 장치(104(2))는 예를 들어 DVCR, 캠코더, 또는 컴퓨터(102)와 같은 개인용 컴퓨터에서 디지털 테이프 드라이브를 통해 나중에 다시 재생하기 위 하여 라이브-동작 비디오 및 오디오를 DV 포맷(즉, 디지털 테이프에)으로 기록할 수 있는 다양한 디지털 기록 장치 중 임의의 것일 수 있다. 비디오 기록 장치(104(2))는 전형적으로 i.LINK(IEEE 1394) 또는 FireWire 디지털 인터페이스를 사용하여 컴퓨터(102)에 직접 연결될 수 있으며, 따라서 DV 비디오 컨텐츠가 컴퓨터(102)에서 직접 편집될 수 있다.
컴퓨터(102)는 일반적으로 다양한 소스(104)로부터 비디오 컨텐츠를 수신하고, 예를 들어 마이크로소프트 코포레이션의 Media Foundation 아키텍처와 같은 상주 멀티미디어 아키텍처를 통해 편집 및 재생하기 위해 비디오 컨텐츠를 조작할 수 있는 다양한 컴퓨팅 장치로서 구현될 수 있다. 그렇지 않으면 컴퓨터(102)는 전형적으로 이메일, 달력, 작업 조직화, 워드 프로세싱, 웹 브라우징 등과 같은 일반적인 컴퓨팅 기능을 수행할 수 있다. 기술된 실시예에서, 컴퓨터(102)는 마이크로소프트®의 윈도우즈® 브랜드 운영 시스템과 같은 오픈 플랫폼 운영 시스템을 실행한다. 컴퓨터(102)는 예를 들어 데스크탑 컴퓨터, 서버 컴퓨터, 랩탑 컴퓨터, 또는 기타 형태의 개인용 컴퓨터(PC)로서 구현될 수 있다. 컴퓨터(102)의 하나의 예시적인 구현이 도 8을 참조하여 하기에 보다 상세히 기술된다.
예시적인 실시예를 참조하여 하기에 보다 상세히 논의된 바와 같이, 컴퓨터(102)는 일반적으로 DV 데이터로부터 DV 메타데이터의 추출을 가능하게 하는 DV 메타데이터 추출 툴을 포함하는 멀티미디어 아키텍처로 구성된다.
예시적인 실시예
도 2는 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기에 적합한 컴퓨 터(102)의 예시적인 실시예를 도시한다. DV 메타데이터 추출을 용이하게 하는 멀티미디어 아키텍처 및 관련 컴포넌트가 개인용 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터/프로세서-실행가능한 명령어의 일반적인 문맥으로 본 출원 도처에 기술된다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 게다가, 본 분야에서 숙련된 기술을 가진 자들은 그러한 프로그램 모듈이 포켓형 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍가능 가전기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 기타 컴퓨터 시스템 구성을 사용하여 구성될 수 있음을 잘 알 것이다. 게다가, 그러한 프로그램 모듈은 또한 통신 네트워크를 통해 연결되는 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 모두에 위치될 수 있다. 도 2의 현재의 컴퓨팅 환경에서, 컴퓨터(102)는 일반적으로 프로그램 모듈이 로컬 메모리(도시되지 않음)에 위치되는 것으로 설명된다. 상기에 나타난 바와 같이, 컴퓨터(102)의 예시적인 구현은 도 8을 참조하여 하기에 보다 상세히 기술된다.
도 2에 도시된 DV 메타데이터 추출 툴(200)은 마이크로소프트의 Media Foundation과 같은 멀티미디어 아키텍처(202)의 문맥으로 동작할 수 있다. 그러나, DV 메타데이터 추출 툴(200)은 그러한 아키텍처(202)의 동작으로 제한되지 않는다. 따라서, DV 메타데이터 추출 툴(200)은 또한 예를 들어 독립형 컴포넌트, 또는 또 다른 어플리케이션 프로그램의 서브컴포넌트로서 구현될 수 있다. DV 메 타데이터 추출 툴(200)을 기술하기 이전에, 멀티미디어 아키텍처(202)의 간략한 설명이 도 2를 참조하여 제공될 것이다.
도 2에 도시된 바와 같이, 멀티미디어 아키텍처(202)는 다양한 컴포넌트 계층을 포함한다. 또한, 멀티미디어 아키텍처(202)는 또한 일반적으로 지원 또는 관련 미디어 어플리케이션(204)을 포함한다. 그러한 어플리케이션(204)은 멀티미디어 아키텍처(202)와 별도로 도 2에 도시되지만, 아키텍처(202)의 일부로서 보여질 수도 있다. 멀티미디어 아키텍처(202)의 컴포넌트 계층은 제어 컴포넌트 계층(206), 코어 컴포넌트 계층(208), 베이스 컴포넌트 계층(210), 개발 플랫폼 계층(212) 및 정의 계층(214)을 포함한다.
제어 컴포넌트 계층(208)의 컴포넌트들은 미디어 프로세서(234), 기본 편집기(218), 기본 인코더(220), 미디어 세션(222), 위상 로더(224), 미디어 엔진(226), 및 소스 리졸버(228)를 포함한다. 이러한 컴포넌트들은 일반적으로 완전히 관리될 수 있거나 관리되지 않을 수 있는 태스크 지향(task oriented) API(어플리케이션 프로그래밍 인터페이스)를 구성한다. 제어 컴포넌트(206)는 일반적으로 미디어를 프로세싱하기 위한 적합한 코어 계층 컴포넌트(208)들을 함께 링크하는 것과 같은 태스크를 수행하는 관리 기능을 제공한다. 예를 들어, 위상 로더(224)는 인커밍 미디어 파일의 멀티미디어 데이터 타입을 검사하고, 코어 계층 컴포넌트(208)의 프로세싱 컴포넌트들(즉, 230, 232, 234, 236, 238)이 데이터 타입을 적절히 렌더링하기 위하여 프로세싱 체인으로 링크될 필요가 있는지를 결정한다. 본 개시의 목적을 위해, 미디어 데이터 타입은 DV 데이터임을 유의해야 한다. 제어 계층(206)의 미디어 엔진 컴포넌트(226)는 위상 로더(224)에 의해 만들어진 프로세싱 컴포넌트들(즉, 230, 232, 234, 236, 238)의 체인을 통해 데이터의 프로세싱을 관리한다. 예를 들어, 미디어 엔진(226)은 재생 중지, 재생 시작, 역방향 재생, 특정 시각으로 점프 등을 할 때를 제어하여 프로세싱 체인을 통해 데이터를 푸시한다.
코어 계층 컴포넌트(208)는 미디어 소스(230), 메타데이터 판독/기입(232), MUX/Dmux(234), 변환(236) 및 미디어 싱크(238)를 포함한다. 미디어 소스(230)는 일반적인 잘 정의된 인터페이스를 통해 멀티미디어 데이터를 제공한다. 미디어 소스(230)는 액세스될 비디오 데이터 스트림을 포함하는 표현을 설명한다. 상이한 멀티미디어 파일 타입 또는 장치로부터 멀티미디어 데이터를 제공하기 위한 미디어 소스들의 여러 구현이 존재한다. 그러나, 본 개시는 DV 포맷의 멀티미디어에 관한 것이다.
코어 계층(208)의 변환(236) 각각은 일반적인 잘 정의된 인터페이스를 통해 멀티미디어 데이터에 대해 소정 타입의 변환 동작을 수행한다. 변환 예는 코덱, DSP, 비디오 리사이저(video resizer), 오디오 리샘플러(audio resampler), 통계적 프로세서, 컬러 리샘플러 등을 포함한다. MUX/Dmux(234)(이하 Dmux(234))는 코어 계층(208) 내에 별도로 도시되지만, 그것은 인터리빙된 멀티미디어 데이터를 입력으로서 이용하고, 데이터를 멀티미디어 데이터의 개별적으로 유용한 미디어 스트림으로 분리하는 변환(236)의 한 표현이다. 따라서, 본 개시의 문맥에서, Dmux(234)는 특히 DV 미디어 소스(230)로부터 DV 프레임 또는 샘플의 비디오 및 오디오 컴포 넌트들을 분리하는 DV Dmux(234)이다.
Dmux(234)는 또한 도 2의 멀티미디어 아키텍처(202) 내에서 DV 메타데이터 추출 툴(200)을 포함하는 것으로서 도시된다. 하기에 보다 상세히 기술된 바와 같이, Dmux(234)는 DV 메타데이터 추출 툴(200)을 통해 DV 메타데이터 추출을 지원한다. DV 메타데이터 추출 툴(200)은 일반적으로 사용자가 DV 데이터 스트림으로부터 추출될 DV 메타데이터 팩의 추출 리스트를 생성 및 관리하도록 한다. DV 메타데이터 팩 ID가 추출 리스트에 추가되면, DV Dmux(234)는 DV 프레임의 비디오 및 오디오 컴포넌트들을 분리할 때 각 DV 프레임으로부터 관련 DV 메타데이터 팩을 추출한다. DV Dmux(234)는 DV 메타데이터 팩을 컨테이너에 저장하고, 컨테이너를 확장된 속성으로서 아웃고잉 비디오 샘플에 첨부한다. DV 메타데이터 추출 툴(200)이 Dmux(234)와 관련하여, 또는 그 일부로서 본원에서 논의되지만, 이것은 DV 메타데이터 추출 툴(200)이 코어 계층(208) 또는 다른 곳에서 구현될 수 있다는 것으로의 제한을 의도하는 것은 아니다. Dmux(234) 내에서 DV 메타데이터 추출 툴(200)을 구현하는 것은 Dmux(234)의 분리 기능에 의해 제공된 효율성의 이점으로 인해 바람직한 실시예이다. 따라서, DV 메타데이터 추출 툴(200)은 쉽게 미디어 소스(230), DMO(DirectX Media Object), 또는 DV 데이터 스트림에 대한 액세스를 갖는 다른 어떠한 곳에 있는 독립형 소프트웨어 컴포넌트의 일부일 수 있다. DV 메타데이터 추출 프로세스는 후속 도면들을 참조하여 하기에 보다 상세히 논의된다.
미디어 싱크(싱크)(238)는 또한 컴포넌트들을 프로세싱하는 코어 계층(208)에 포함된다. 싱크(238)는 일반적으로 일반적인 잘 정의된 인터페이스를 통해 입 력으로서 멀티미디어 데이터를 수락한다. 멀티미디어 데이터를 주어진 파일 타입 또는 네트워크에 기입하거나, 비디오 카드를 사용하여 비디오 모니터에 멀티미디어 데이터를 디스플레이하는 것과 같이 멀티미디어 데이터를 이용하여 여러 기능을 수행하기 위한 미디어 싱크의 여러 구현이 존재한다.
멀티미디어 아키텍처(202)의 베이스 컴포넌트(210) 및 개발 플랫폼(212)은 일반적으로 대부분의 관리되지 않은 API를 구성한다. 베이스 컴포넌트(210)는 미디어 컨테이너(240), 네트워킹(242), DRM(244), MPEG 포맷 지원(246), 및 오디오/비디오 엔진(248)을 포함한다. 이러한 컴포넌트들은 일반적으로 멀티미디어 아키텍처(202)를 지지하여 개개의 기능을 수행한다. 개발 플랫폼(212)은 일반적으로 자원 관리 기반구조, 및 샘플, 클럭, 이벤트, 버퍼 등과 같은 일반적인 프리미티브 타입을 포함한다. 멀티미디어 아키텍처(202)의 정의 계층은 스키마, 프로토콜 및 포맷에 관련된 정의 및 정책(예를 들어, 메타데이터, 장치 모델, 타입 등)을 포함한다.
도 3은 상기 간략히 논의된 Dmux(234)의 DV 메타데이터 추출 툴(200)을 포함하여 코어 계층(208)의 다양한 프로세싱 컴포넌트를 통해 프로세싱되는 DV 데이터의 예를 도시한다. DV 데이터 샘플(DV 프레임)(300)은 그들이 비디오 샘플(302) 및 오디오 샘플(304)로 분리되는 Dmux(234)에 입력된다. 비디오 샘플(302)은 프로세싱 체인을 통해 비디오 코덱(308) 및 비디오 렌더링기(310)와 같은 다양한 프로세싱 컴포넌트들로 진행하며, 그 후 비디오 디스플레이(312)에 디스플레이될 수 있다. 오디오 샘플(304)은 프로세싱 체인을 통해 오디오 렌더링기(314)와 같은 다양 한 프로세싱 컴포넌트로 진행하며, 그 후 오디오 스피커(316)를 통해 재생될 수 있다. Dmux(234)가 DV 샘플(300)들을 분리하고 있는 동안, 그것은 추출 리스트로부터의 DV 메타데이터 팩 ID(DVPackID)에 따라(도 4 참조) DV 샘플(300) 내에 위치하는 DV 메타데이터 팩 또한 추출한다. 추출 리스트에 있는 DVPackID를 갖는 DV 메타데이터 팩을 찾으면, Dmux(234)는 그 DV 메타데이터 팩을 추출하여, 그것을 컨테이너(306)에 저장하며, 대응하는 아웃고잉 비디오 샘플(302)에 확장된 속성으로서 컨테이너(306)를 첨부한다.
DV 메타데이터 팩의 특정 부분집합에 대해, DV 메타데이터 추출 툴(200)은 또한 DV_METADATA 구조(도 5 참조)라고 불리는 DV 팩-특유 데이터 구조의 확장된 지원을 제공한다. 이러한 확장된 지원 팩에 대한 컨테이너(306)에 DV 메타데이터를 저장하는 것 이외에, Dmux(234)는 언팩된 DV_METADATA 구조도 컨테이너(306)에 저장한다. 따라서, 특정 확장된 지원 DV 메타데이터 팩에 대해, DV 메타데이터 추출 툴(200)은 팩된 데이터를 사용가능한 DV 팩-특유 데이터 구조 또는 DV_METADATA 구조로 나눈다. 도 5는 DV 메타데이터 팩(500)에 대응하는 하나 이상의 DV 메타데이터 팩(500) 및 하나 이상의 언팩된 DV_METADATA 구조(502)를 갖는 컨테이너(306)를 도시한다.
IEC 61834-4에 따라, DV 포맷의 256개의 DV 메타데이터 팩이 존재한다. 256개의 DV 메타데이터 팩이 인터페이스 정의 언어라는 제목을 갖는 본 발명의 참조 섹션에서 하기에 보여진다. 256 팩이 DV 메타데이터에 대해 보유되지만, 팩들 중 다수가 아직 정의되어야 한다. 다양한 DV 메타데이터 팩에 대한 이진 팩 레이아웃 은 인터페이스 정의 언어 참조 섹션에서 보여진다. 포함된 DV 메타데이터 팩 이진 레이아웃은 구체적으로 언팩된 DV 팩-특유 데이터 구조(즉, DV_METADATA 구조)로서 지원되는 DV 메타데이터 팩에 대한 것이다. 따라서, 인터페이스 정의 언어 섹션은 또한 구체적으로 지원된 DV 메타데이터 팩에 대한 언팩된 DV_METADATA 구조를 포함한다. 일반적으로, 각 DV 메타데이터 팩은 이진 레이아웃에서 5바이트로 구성된다. 각 DV 메타데이터 팩의 첫번째 바이트는 DVPackID이고, 다음 4바이트는 이진 필드로 구성된다.
다시 도 3 및 4를 참조하면, DV 메타데이터 추출 툴(200)은 다양한 메소드를 통해 추출 리스트(404)를 유지하는 추출 API(400)(어플리케이션 프로그래밍 인터페이스)를 지원한다. DV 메타데이터 추출 툴(200)은 또한 하기에 논의될 컨테이너 API(402)를 지원한다. 도 4는 자신이 지원하는 추출 API(400) 및 컨테이너 API(402)와 함께 DV 메타데이터 추출 툴(200)을 도시한다. 다양한 DVPackID를 포함할 수 있는 추출 리스트(404)도 도 4에 도시된다. 추출 API(400)는 IMFExtractDVMetadata API라 불리며, 그것이 지원하는 메소드는 AddPack, RemovePack, RemoveAllPacks, GetCount 및 GetPack을 포함한다.
AddPack 메소드는 다음 신택스에 따라 각 DV 프레임(300)에서 추출될 DV 팩의 추출 리스트(404)에 명시된 팩을 추가한다.
HRESULT AddPack(
BYTE DVPackID
);
DVPackID는 DV 메타데이터 팩에 대한 PackID를 명시하는 입력 파라미터이다. 이것은 DVPACKID enum의 한 멤버이다. 결과 DV_METADATA 구조에서, PackID는 DvMetadata.Pack[0]에 있다. 추출 리스트(404)에 추가될 수 없는 유일한 팩은 DVPAC_NO_INFO(0xFF)(인터페이스 정의 언어 섹션 참조)이다.
AddPack 메소드가 성공하면, S_OK를 리턴한다. 그러나, DVPackID가 DVPACK_NO_INFO라면, E_INVALIDARG가 리턴될 것이다. 기타 에러 또한 리턴될 수 있다.
예를 들어, 편집 어플리케이션(204)으로부터 AddPack으로의 호출은 DVPackID를 추출 리스트(404)에 추가한다. 팩(즉, DVPackID)이 이전에 추가되었더라도 함수는 성공할 것이다. 팩은 참조 카운트(reference count)되지 않으며 따라서 팩이 두 번 추가된 경우에도 한 번만 삭제되면 된다.
RemovePack 메소드는 다음 신택스에 따라 각 DV 프레임(300)에서 추출될 팩의 추출 리스트(404)로부터 명시된 팩을 삭제한다.
HRESULT RemovePack(
BYTE DVPackID
);
DVPackID는 DV 메타데이터 팩에 대한 PackID를 명시하는 입력 파라미터이다. 이것은 DVPACKID enum의 한 멤버이다. 결과 DV_METADATA 구조에서, PackID는 DvMetadata.Pack[0]에 있다.
RemovePack 메소드가 성공하면, S_OK를 리턴한다. 팩이 추출 리스트(404)에 있지 않으면, 함수는 E_ITEM_NOT_FOUND를 리턴한다. 기타 에러 코드 또한 리턴될 수 있다.
예를 들어, 편집 어플리케이션(204)으로부터 RemovePack에의 호출은 명시된 팩을 추출 리스트(404)로부터 삭제한다.
RemoveAllPack 메소드는 다음 신택스에 따라 Dmux(234)가 추출할 DV 팩의 추출 리스트(404)를 클리어(clear)한다.
HRESULT RemoveAllPacks();
RemoveAllPack 메소드에 입력되는 어떠한 파라미터도 존재하지 않는다. 메소드가 성공하면, S_OK를 리턴한다. 기타 에러 코드 또한 리턴될 수 있다. 예를 들어, 편집 어플리케이션(204)에 의한 RemoveAllPack 호출은 추출 리스트(404) 전체를 클리어한다.
GetCount 메소드는 다음 신택스에 따라 추출 리스트(404)에 있는 DV 팩의 수를 리턴한다.
HRESULT GetCount(
DWORD* pCount
);
pCount 파라미터는 추출 리스트(404)에 있는 팩의 수를 명시하는 출력 파라미터이다. 메소드가 성공하면, S_OK를 리턴한다. GetCount 호출은 추출 리스트(404)에 있는 항목(즉, DVPackID)들의 수를 검색(retrieve)한다.
GetPackID 메소드는 다음 신택스에 따라 추출 리스트(404)의 주어진 인덱스 에 있는 팩의 DVPackID를 리턴한다.
HRESULT GetPack(
DWORD Index,
BYTE* pDVPackID
);
인덱스 파라미터는 원하는 DVPackID의 추출 리스트(404)에 있는 인덱스인 입력 파라미터이다. pDVPackID는 객체가 명시된 인덱스에서 발견된 항목의 DVPackID를 복사할 바이트에 대한 포인터인 출력 파라미터이다.
GetPackID 메소드가 성공하면, S_OK를 리턴한다. Index가 범위 밖이면, 메소드는 에러 코드 MF_E_INVALIDINDEX를 리턴한다. 에러가 리턴되면, pDVPackID의 값은 DVPACK_NO_INFO(0xFF)이다.
GetPackID 메소드는 E_INVALIDARG가 리턴될 때까지 GetPackID를 반복적으로 호출하고 인덱스를 증가시킴으로써 호출자(예를 들어, 어플리케이션(204))가 추출될 항목들의 전체 리스트를 검색하도록 한다.
상기 언급된 바와 같이, DV 메타데이터 추출 툴(200)은 또한 컨테이너 API(402)(도 4 참조)를 지원한다. 컨테이너(306)(도 3)는 Dmux(234)에 의해 분리되는 비디오 샘플(302)의 샘플 속성으로서 배치된다. 컨테이너 API(400)는 IMFDVMetadataContainer API라 불리고, 그것이 지원하는 메소드는 Add, Remove, RemoveAll, GetCount, Lock, Unlock, GetFirst 및 GetNext를 포함한다. 일반적으로, IMFDVMetadataContainer API는 리스트에 속성을 추가, 리스트로부터 속성을 삭 제, 컨테이너(306)를 클리어, 및 컨테이너(306)를 통해 반복하기 위한 일반적인 메커니즘을 제공한다.
Add 메소드는 다음 신택스에 따라 DV 팩-특유 데이터 구조 또는 DV_METADATA 구조를 컨테이너(306)에 추가한다.
HRESULT Add(
Const DV_METADATA* pMetadata,
UINT32* puIndex
);
pMetadata 파라미터는 DV_METADATA 구조에 대한 상수 포인터인 입력 파라미터이다. pMetadata->cbSize는 컨테이너(306) 내의 메모리, 및 새로 할당된 메모리 내에 위치한 DV_METADATA 구조 전체의 복사본을 할당하기 위해 이용된다.
ulIndex는 새로 추가된 DV_METADATA 구조의 인덱스는 리턴하는 출력 파라미터이다. 추가적인 구조들이 추가되거나 컨테이너(306)로부터 삭제되면, 인덱스는 수정될 수 있다.
Add 메소드가 성공하면, S_OK가 리턴된다. 또한 새로운 항목에 대한 충분한 공간이 할당될 수 없으면, E_OUTOFMEMORY가 리턴될 수 있다. 이 동작은 일정한 시간 O(k) 내에 완료될 것이다. 컨테이너가 다른 스레드에 의해 잠겨있으면, 이 동작은 잠금이 풀릴 때까지 차단될 것이다(다음의 Lock 및 Unlock 메소드 참조).
Remove 메소드는 다음의 신택스에 따라 컨테이너(306)로부터 DV 팩-특유 데이터 구조 또는 DV_METADATA 구조를 제거한다.
HRESULT Remove(
UNIT32 uIndex
);
uIndex 파라미터는 컨테이너(306)로부터 제거될 항목의 인덱스를 나타내는 출력 파라미터이다. 항목이 컨테이너(306)로부터 제거되면, 컨테이너(306) 내에 남아있는 항목의 인덱스는 수정될 수 있다.
메소드가 성공하면, S_OK가 리턴된다. 또한, 매칭되는 인덱스를 갖는 항목을 찾지 못하면, E_INVALIDARG가 리턴될 수 있다. 이는 컨테이너(306)가 비어있을 경우를 포함한다. 이 동작은 선형 시간 O(n) 내에 완료될 것이며, 여기서 n은 리스트 내에 저장된 항목들의 개수이다. 컨테이너가 다른 스레드에 의해 잠겨있으면, 이 동작은 잠금이 해제될 때까지 차단될 것이다(다음의 Lock 및 Unlock 메소드 참조).
RemoveAll 메소드는 다음 신택스에 따라 컨테이너(306)로부터 모든 항목(예를 들어, DV 메타데이터 팩 및 DV 팩-특유 데이터 구조)들을 클리어(clear)한다.
HRESULT RemoveAll();
RemoveAll 메소드에는 입력 파라미터가 없다. 메소드가 성공하면, S_OK가 리턴되고, 컨테이너(306) 내에는 항목이 하나도 없을 것이다. 그러나, 그 후 반드시 메모리가 비워지지는 않는다. 컨테이너(306)는 반복되는 소형의 할당을 피하기 위해 풀링 스킴(pooling scheme)을 구현할 수 있다. 이 동작은 선형 시간 O(n) 내에 완료될 것이며, 여기서 n은 컨테이너(306) 내의 항목들의 개수이다. 잠금이 또 다른 스레드 상에서 획득되었으면, 이 동작은 잠금이 해제될 때까지 차단될 것이다(다음의 Lock 및 Unlock 메소드 참조).
GetCount 메소드는 다음의 신택스에 따라 컨테이너(306) 내의 항목들의 카운트를 리턴한다.
HRESULT GetCount(
UNIT32* puCount
);
puCount 파라미터는 현재 컨테이너(306) 내에 있는 항목들의 개수를 리턴하는 출력 파라미터이다. 메소드가 성공하면, S_OK가 리턴된다.
이 동작은 일정한 시간 O(k) 내에 완료될 것이다. 리턴된 카운트는 오직 호출이 생성되었을 때에만 유효하다. 객체들은 다른 스레드에 의해 추가 또는 제거될 수 있다. 객체를 잠그면, 잠금이 해제되기 전까지는, 다른 스레드들이 컨테이너로부터 항목을 추가 또는 제거하지 못할 것이다(다음의 Lock 및 Unlock 메소드 참조).
Lock 메소드는 배타적인 액세스를 위해 컨테이너(306)를 잠그는 데 이용된다. 이는, 컨테이너(306)가 반복이용될 수 있으며, 잠금 소유자가 항목을 추가 또는 제거하지 않는 한 DV_METADATA 구조에 대한 리턴된 포인터가 유효하게 남아있을 것을 보장한다. 이 메소드에 대한 신택스는 다음과 같다.
HRESULT Lock();
Lock 메소드에는 입력 파라미터가 없다. 메소드가 성공하면, S_OK가 리턴된 다. 이것은 다른 에러 코드도 리턴할 수도 있다. Lock을 이용할 수 없으면, 잠금이 획득될 수 있을 때까지 호출은 차단될 것이다.
Unlock 메소드는 다음의 신택스에 따라 Lock 메소드를 통해 획득된 잠금을 해제한다.
HRESULT Unlock()
UNIT32* puIndex,
const DV_METADATA** pMetadata
);
Unlock 메소드에는 입력 파라미터가 없다. 메소드가 성공하면, S_OK가 리턴된다. 이것은 다른 에러 코드를 리턴할 수도 있다.
GetFirst 메소드는 다음의 신택스에 따라 컨테이너(306)의 시작부에서부터 반복하기 시작한다.
HRESULT GetFirst(
UNIT32* puIndex,
Const DV_METADATA** ppMetadata
);
puIndex 파라미터는 컨테이너(306)로부터 검색된 항목의 인덱스를 지정하는 출력 파라미터이다. ppMetadata 파라미터는 메타데이터를 포함하는 객체 내부 데이터 구조에 대한 포인터를 지정하는 출력 파라미터이다. 항목이 추가되거나 컨테이너(306)로부터 제거되면, 이 포인터는 무효해질 수 있다.
메소드가 성공하면, S_OK가 리턴된다. 인덱스가 범위 밖에 있거나, GetFirst()에 대한 마지막 호출 이후 컨테이너(306)가 추가되거나 그것으로부터 제거된 항목을 갖고 있으면, 메소드는 E_INVALIDARG를 리턴할 수 있다. 객체가 잠겨있지 않았으면, 메소드는 MF_E_INVALIDREQUEST를 리턴할 것이다. Lock 메소드를 호출하면, 리스트를 반복하는 동안 다른 스레드에 의해 항목이 추가되거나 컨테이너(306)로부터 제거되지 않을 것이 보장된다.
GetNext 메소드는 다음의 신택스에 따라 컨테이너(306) 내의 항목 각각에 걸쳐 반복한다.
HRESULT GetNext(
UNIT32* puIndex,
Const DV_METADATA** ppMetadata
);
puIndex 파라미터는 컨테이너(306)로부터 검색되는 항목의 인덱스를 지정하는 출력 파라미터이다. ppMetadata 파라미터는 메타데이터를 포함하는 객체 내부 데이터 구조에 대한 포인터를 지정하는 출력 파라미터이다. 항목이 추가되거나 컨테이너(306)로부터 제거되면, 이 포인터는 무효해질 수 있다.
메소드가 성공하면, S_OK가 리턴된다. 인덱스가 범위 밖에 있거나, GetFirst()에 대한 마지막 호출 이후 컨테이너(306)가 추가되거나 그것으로부터 제거된 항목을 갖고 있으면, 메소드는 E_INVALIDARG를 리턴할 수 있다. 객체가 잠겨있지 않았으면, 메소드는 MF_E_INVALIDREQUEST를 리턴할 것이다. Lock 메소드를 호출하면, 리스트를 반복하는 동안 다른 스레드에 의해 항목이 추가되거나 컨테이너(306)로부터 제거되지 않을 것이 보장된다.
예시적인 메소드
DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 예시적인 메소드가 이제 도 6 내지 도 7의 흐름도를 주로 참조하여 설명될 것이다. 이 메소드는 일반적으로, 도 2 내지 도 5에 관련하여 전술된 실시예들에 적용된다. 설명된 메소드의 구성요소들은, 예를 들어 ASIC 상의 하드웨어 논리 블럭, 또는 프로세서 판독가능 매체 상에 정의된 프로세서 판독가능 명령어들의 실행을 포함한 임의의 적절한 수단에 의해 수행될 수 있다.
본원에 사용된 "프로세서 판독가능 매체"는 프로세서에 의해 사용 또는 실행되는 명령어들을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 수단일 수 있다. 프로세서 판독가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장비, 장치 또는 전파 매체일 수 있지만, 이에 한정되지는 않는다. 프로세서 판독가능 매체의 보다 구체적인 예는 다른 것들 중에서, 하나 이상의 전선을 갖는 전기적 접속(전자), 휴대용 컴퓨터 디스켓(자기), RAM(자기), ROM(자기), EPROM(EPROM 또는 플래시 메모리), 광섬유(광학), CD-RW(광학), 및 휴대용 CDROM(광학)을 포함한다.
도 6은 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 예시적인 방법(600)을 나타낸다. 블럭(602)에서, DV 데이터 스트림으로부터 추출할 추가의 프레임별 DV 메타데이터를 지정하는 명령어가 수신된다. 명령어는 컴퓨터(102) 상 의 멀티미디어 아키텍처(202)의 일부일 수 있는 DV 메타데이터 추출 툴(200)에 의해 수신된다. 명령어는 전형적으로 컴퓨터(102) 상에서 실행되는 DV 편집 어플리케이션과 같은 어플리케이션(204)으로부터 수신된다. 명령어는 추출 인터페이스(400)가 지원하는 메소드 호출의 형태로 DV 메타데이터 추출 툴(200)의 추출 인터페이스(400)에 전달된다. 명령어는 메소드 호출 내에 포함된 DVPackID로 DV 메타데이터를 식별한다. 추출 인터페이스(400)에 의해 지원되는 메소드 호출은 DV 메타데이터 추출 리스트(404)에 DVPackID를 추가하기 위한 AddPack 메소드 호출, 추출 리스트(404)로부터 DVPackID를 제거하기 위한 RemovePack 메소드 호출, 및 추출 리스트(404)로부터 모든 DVPackID를 제거하기 위한 RemoveAllPack 메소드 호출을 포함한다. 추출 인터페이스(400)가 지원하는 추가적인 메소드 호출은 추출 리스트(404) 내에 존재하는 DVPackID의 양을 나타내는 수를 리턴하는 GetCount 메소드 호출, 및 추출 리스트(404) 내의 지정된 인덱스에서 DVPackID를 리턴하는 GetPackID 메소드 호출을 포함한다.
블럭(604)에서, 명령어에서 지정된 DV 메타데이터는 DV 데이터 스트림의 DV 프레임으로부터 추출된다. 일 구현에서, 멀티미디어 아키텍처(202)의 코어 계층(208) 내의 Dmux(234)는 DV 프레임(300)을 컴포넌트 비디오(302) 및 오디오(304) 샘플로 분리할 때 지정된 DV 메타데이터를 추출한다. 추출은 어느 DV 메타데이터가 추출을 위해 팩되는지를 판정하기 위해 DV 메타데이터 추출 리스트(404)를 살펴 보는 Dmux(234)를 포함한다. 블럭(606)에서, DV 메타데이터는 컨테이너(306) 내에 저장된다. 블럭(608)에서, 컨테이너는 Dmux(234)에 의해 DV 프레임(300)의 분리된 비디오 샘플(302)에 첨부된다.
블럭(610)에서, 컨테이너는 DV 메타데이터 추출 툴(200)에 의해 관리된다. DV 메타데이터 추출 툴(200)은 어플리케이션(204)이 컨테이너(306) 내의 데이터에 액세스하고 그 데이터를 관리할 수 있는 메소드를 지원하는 컨테이너 인터페이스(402)를 포함한다. 컨테이너 인터페이스(402)에 의해 지원되는 메소드 호출은 DV_METADATA 구조를 컨테이너에 추가하는 Add 메소드 호출, 컨테이너로부터 DV_METADATA 구조를 제거하는 Remove 메소드 호출, 컨테이너로부터 모든 항목을 제거하는 RemoveAll 메소드 호출, 컨테이너 내에 존재하는 항목들의 양을 나타내는 수를 리턴하는 GetCount 메소드 호출, 배타적인 액세스를 위해 컨테이너를 잠그는 Lock 메소드 호출, 컨테이너를 잠금 해제하는 Unlock 메소드 호출, 컨테이너의 시작 인덱스에서 컨테이너로부터 항목을 검색하는 GetFirst 메소드 호출, 및 컨테이너의 다음 인덱스에의 컨테이너에서부터 항목을 검색하는 GetNext 메소드 호출이다.
도 7은 DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 또 다른 예시적인 방법(700)을 나타낸다. 블럭(702)에서, DV 메타데이터 추출 리스트(404)가 관리된다. 추출 리스트(404)는 DV 메타데이터 추출 툴(200)에 의해 관리된다. DV 메타데이터 추출 툴(200)은 다양한 메소드를 통해 추출 리스트를 관리하기 위한 추출 인터페이스(400)를 지원한다. 추출 인터페이스(400)가 지원하는 메소드는 DVPackID를 DV 메타데이터 추출 리스트(404)에 추가하는 AddPack 메소드 호출, 추출 리스트(404)로부터 DVPackID를 제거하는 RemovePack 메소드 호출, 및 추출 리스 트(404)로부터 모든 DVPackID를 제거하는 RemoveAllPacks 메소드 호출을 포함한다. 추출 인터페이스(404)에 의해 지원되는 추가적인 메소드는 추출 리스트(404) 내에 존재하는 DVPackID들의 양을 나타내는 수를 리턴하는 GetCount 메소드 호출, 및 추출 리스트(404) 내의 지정된 인덱스에서 DVPackID를 리턴하는 GetPackID 메소드 호출을 포함한다.
블럭(704)에서, DV 메타데이터 팩은 추출 리스트(404) 내의 DVPackID에 기초하여 DV 프레임(300)으로부터 추출된다. 일 구현에서, 멀티미디어 아키텍처(202)의 코어 계층(208) 내의 Dmux(234)는 DV 프레임(300)을 컴포넌트 비디오(302) 및 오디오(304) 샘플들로 분리할 때, 지정된 DV 메타데이터를 추출한다. 추출은 어느 DV 메타데이터가 추출을 위해 팩되는지를 판정하기 위해 DV 메타데이터 추출 리스트(404)를 살펴 보는 Dmux(234)를 포함한다. 블럭(706)에서, DV 메타데이터 팩은 IMFDVMetadataContainer(306) 내에 저장된다.
블럭(708)에서, DV 메타데이터 팩은 DV 팩-특유 데이터 구조에 언팩된다. DV 팩-특유 데이터 구조는 DV 메타데이터 팩으로부터 팩된 이진 데이터를 뽑아내고, 이진 값을 대응하는 변수 이름에 할당하여, 어플리케이션 프로그램(204)이 DV 메타데이터 팩으로부터 데이터를 용이하게 이용할 수 있게 한다. 블럭(710)에서, DV 팩-특유 데이터 구조는 IMFDVMetadataContainer(306) 내에 저장되며, 블럭(712)에서, IMFDVMetadataContainer(306)는 Dmux(234)에 의해 DV 프레임(300)의 분리된 DV 비디오 샘플(302)에 첨부된다.
블럭(714)에서, IMFDVMetadataContainer(306)는 DV 메타데이터 추출 툴(200) 에 의해 관리된다. DV 메타데이터 추출 툴(200)은 어플리케이션(204)이 컨테이너(306) 내의 데이터에 액세스하고 그 데이터를 관리할 수 있는 메소드를 지원하는 컨테이너 인터페이스(402)를 포함한다. 컨테이너 인터페이스(402)가 지원하는 메소드 호출은 DV 팩-특유 데이터 구조(DV_METADATA 구조라 불림)를 컨테이너에 추가하는 Add 메소드 호출, 컨테이너로부터 DV_METADATA 구조를 제거하는 Remove 메소드 호출, 컨테이너로부터 모든 항목을 제거하는 RemoveAll 메소드 호출, 컨테이너 내에 존재하는 항목의 양을 나타내는 수를 리턴하는 GetCount 메소드 호출, 배타적인 액세스를 위해 컨테이너를 잠그는 Lock 메소드 호출, 컨테이너를 잠금 해제하는 Unlock 메소드 호출, 컨테이너의 시작 인덱스에서 컨테이너로부터 항목을 검색하는 GetFirst 메소드 호출, 및 컨테이너의 다음 인덱스에서 컨테이너로부터 항목을 검색하는 GetNext 메소드 호출을 포함한다.
흐름도, 및 흐름도의 블럭에 관련된 텍스트에 의해 하나 이상의 방법들이 개시되었지만, 이 블럭들은 반드시 나타낸 순서대로 수행될 필요는 없으며, 대안적인 다른 순서로도 유사한 장점을 이끌어낼 수 있다는 것을 이해해야 한다. 또한, 본원의 방법은 배타적이지 않으며, 단독으로 또는 다른 것들과 조합되어 수행될 수 있다.
예시적인 컴퓨터
도 8은 컴퓨터(802)를 구현하는데 적절한 예시적인 컴퓨팅 환경(800)을 예시한다. 하나의 특정 구성만이 도시되어 있지만, 클라이언트 컴퓨터(802)는 다른 컴퓨팅 구성으로도 구현될 수 있다.
컴퓨팅 환경(800)은 컴퓨터(802) 형태의 범용 컴퓨팅 시스템을 포함한다. 컴퓨터(802)의 컴포넌트들에는, 하나 이상의 프로세서 또는 프로세싱 유닛(804), 시스템 메모리(806), 및 프로세서(804)를 포함하는 다양한 시스템 컴포넌트를 시스템 메모리(806)에 연결시키는 시스템 버스(808)가 포함될 수 있지만, 이에 한정되는 것은 아니다.
시스템 버스(808)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스 또는 프로세서, 고속 그래픽 포트, 주변 버스, 및 메모리 버스 또는 메모리 제어기를 포함하는 몇 가지 유형의 버스 구조 중 하나 이상의 임의의 것을 나타낸다. 시스템 버스(808)의 예는 메자닌(Mezzanine) 버스로도 알려진 주변 컴포넌트 상호접속(PCI) 버스일 수 있다.
컴퓨터(802)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 이러한 매체는 컴퓨터(802)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 둘 다 포함한다. 시스템 메모리(806)는 RAM(810)과 같은 휘발성 메모리 및/또는 ROM(812)과 같은 비휘발성 메모리의 형태의 컴퓨터 판독가능 매체를 포함한다. 시동중과 같은 때에 컴퓨터(802) 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(814; BIOS)은 ROM(812)에 저장된다. RAM(810)은 전형적으로 프로세싱 유닛(804)에 즉시 액세스할 수 있고 및/또는 프로세싱 유닛(804)에 의해 현재 작동되는 데이터 및/또는 프로그램 모듈을 포함한다.
컴퓨터(802)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매 체를 포함할 수 있다. 예를 들어, 도 8에는 비분리형 비휘발성 자기 매체(도시하지 않음)로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(816), 분리형 비휘발성 자기 디스크(820)(예를 들어, "플로피 디스크")로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(818), 및 CD-ROM, DVD-ROM 또는 다른 광학 매체 등의 분리형 비휘발성 광학 디스크(824)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(822)가 예시되어 있다. 하드 디스크 드라이브(816), 자기 디스크 드라이브(818) 및 광학 디스크 드라이브(822)는 각각 하나 이상의 매체 인터페이스(826)에 의해 시스템 버스(808)에 접속된다. 대안적으로, 하드 디스크 드라이브(816), 자기 디스크 드라이브(818) 및 광학 디스크 드라이브(822)는 SCSI 인터페이스(도시되지 않음)에 의해 시스템 버스(808)에 접속될 수 있다.
디스크 드라이브 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터(802)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터의 비휘발성 저장을 제공한다. 본 예는 하드 디스크(816), 분리형 자기 디스크(820) 및 분리형 광학 디스크(824)만을 예시하고 있지만, 자기 카세트 또는 다른 자기 저장 장치, 플래시 메모리 카드, CD-ROM, DVD 또는 다른 광학 저장소, RAM, ROM, EEPROM 등과 같은 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 컴퓨터 판독가능 매체의 다른 유형들도 예시적인 컴퓨팅 시스템 및 환경을 구현하는 데 이용될 수 있다는 것을 인식해야 한다.
임의의 개수의 프로그램 모듈은, 예를 들어 오퍼레이팅 시스템(826), 하나 이상의 어플리케이션 프로그램(828), 다른 프로그램 모듈(830), 및 프로그램 데이터(832)를 포함하는 하드 디스크(816), 자기 디스크(820), 광학 디스크(824), ROM(812) 및/또는 RAM(810) 상에 저장될 수 있다. 각각의 이러한 오퍼레이팅 시스템(826), 하나 이상의 어플리케이션 프로그램(828), 다른 프로그램 모듈(830), 및 프로그램 데이터(832)(또는 몇몇 이들의 조합)는 사용자 네트워크 액세스 정보에 대한 캐싱 스킴의 실시예를 포함할 수 있다.
컴퓨터(802)는 통신 매체로 식별되는 다양한 컴퓨터/프로세서 판독가능 매체를 포함할 수 있다. 통신 매체는 전형적으로 반송파 또는 다른 전송 메커니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내의 정보를 인코딩하는 방식으로 하나 또는 그 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 다른 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들의 임의의 조합 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
사용자는 키보드(834)와 같은 입력 장치 및 포인팅 장치(836)(예를 들어, "마우스)를 통해 컴퓨터 시스템(802)에 코맨드 및 정보를 입력할 수 있다. (구체적으로 도시되지 않은) 다른 입력 장치(838)는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 직렬 포트, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 입출력 인터페이스(840)를 통해 프로세싱 유닛 (804)에 접속되지만, 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다.
모니터(842) 또는 다른 유형의 디스플레이 장치는 또한 비디오 어댑터(844) 등의 인터페이스를 통해 시스템 버스(808)에 접속될 수 있다. 모니터(842) 외에도, 다른 출력 주변 장치는 입출력 인터페이스(840)를 통해 컴퓨터(804)에 접속될 수 있는 스피커(도시되지 않음) 및 프린터(846) 등의 컴포넌트를 포함할 수 있다.
컴퓨터(802)는 원격 컴퓨팅 장치(848)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워킹된 환경에서 동작할 수 있다. 예를 들어, 원격 컴퓨팅 장치(848)는 개인용 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 다른 공통 네트워크 노드 등일 수 있다. 원격 컴퓨팅 장치(848)는 컴퓨터 시스템(802)에 관하여 본원에 설명된 구성요소 및 특징 중 다수 또는 모두를 포함할 수 있는 휴대용 컴퓨터로 예시된다.
컴퓨터(802)와 원격 컴퓨터(804) 간의 논리적 접속은 LAN(850) 및 일반적인 WAN(852)로 나타내진다. 이러한 네트워킹 환경은 사무실, 기업 광역 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 일반적이다. LAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(802)는 네트워크 인터페이스 또는 어댑터(854)를 통해 로컬 네트워크(850)에 접속된다. WAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(802)는 전형적으로 WAN(852)을 통해 통신을 구축하기 위한 모뎀(856) 또는 다른 수단을 포함한다. 컴퓨터(802)에 대해 내장형 또는 외장형일 수 있는 모뎀(856)은 입출력 인터페이스(840) 또는 다른 적절한 메커니즘을 통해 시스템 버스(808)에 접속될 수 있 다. 예시된 네트워크 접속은 예시적인 것이고, 컴퓨터(802, 848)들 간의 통신 링크(들)를 구축하는 다른 수단들이 채용될 수 있다는 것을 인식해야 한다.
컴퓨팅 환경(800)과 함께 예시된 것과 같은 네트워킹된 환경에서, 컴퓨터(802)에 관련하여 제시된 프로그램 모듈 또는 그 부분은 원격 메모리 저장 장치에 저장될 수 있다. 예를 들어, 원격 어플리케이션 프로그램(858)은 원격 컴퓨터(848)의 메모리 장치 상에 상주한다. 예시를 위해, 프로그램 및 오퍼레이팅 시스템와 같은 다른 실행가능 프로그램 컴포넌트들은 본원에 개별적인 블럭으로 예시되었지만, 이러한 프로그램 및 컴포넌트들은 다양한 시간에 컴퓨터 시스템(802)의 상이한 저장 컴포넌트에 상주하며, 컴퓨터의 데이터 프로세서(들)에 의해 실행된다.
인터페이스 정의 언어
전술된 바와 같이, 이 IDL(Interface Definition Language) 섹션은 256개의 DVD 메타데이터 팩뿐만 아니라, DV 메타데이터 추출 툴(200)에 의해 DV 팩-특유 데이터 구조(즉, DV_METADATA 구조)로서 특히 확장된 방식으로 지원된 다양한 그 팩들에 대한 이진 팩 레이아웃(binary pack layout)을 리스팅한다. 이 섹션은 또한, 지원된 DV_METADATA 구조에 대한 언팩된 DV 메타데이터 팩의 특정 레이아웃을 포함한다. 확장된 지원을 갖는 DV 메타데이터 팩은 다음 표에서 식별된다.
Figure 112006000072302-PCT00001
Figure 112006000072302-PCT00002
DV 메타데이터 추출 툴(200)에 의한 확장된 지원을 갖는 각각의 DV 팩-특유 데이터 구조(즉, DV_METADATA 구조)는 크기 및 DV 팩으로 시작한다. 그 크기 멤버는 완전한 DV_METADATA 구조의 크기를 포함한다. DVPack(5 바이트 어레이)은 미가공의 DV 메타데이터이다. 각각의 팩은 5 바이트로 구성된다. 제1 바이트는 상기 표 1로부터의 팩 ID이다. 다음 4 바이트는 데이터를 포함하는 비트 필드들을 포함한다. 확장된 지원 팩들 각각은 비트-필드가 팩되지 않고 더 용이한 형태로 약간 처리되는 관련 구조를 갖는다. DV 팩의 완전한 정의는 IEC 61834-4에 나타나 있다.
DV 메타데이터 추출 툴(200)에 의해 지원된 256개의 DV 메타데이터 팩 및 DV 팩-특유 데이터 구조(즉, DV_METADATA 구조)는 다음과 같다.
Figure 112006000072302-PCT00003
Figure 112006000072302-PCT00004
Figure 112006000072302-PCT00005
Figure 112006000072302-PCT00006
Figure 112006000072302-PCT00007
Figure 112006000072302-PCT00008
Figure 112006000072302-PCT00009
Figure 112006000072302-PCT00010
Figure 112006000072302-PCT00011
Figure 112006000072302-PCT00012
Figure 112006000072302-PCT00013
Figure 112006000072302-PCT00014
Figure 112006000072302-PCT00015
Figure 112006000072302-PCT00016
Figure 112006000072302-PCT00017
Figure 112006000072302-PCT00018
Figure 112006000072302-PCT00019
Figure 112006000072302-PCT00020
Figure 112006000072302-PCT00021
Figure 112006000072302-PCT00022
Figure 112006000072302-PCT00023
Figure 112006000072302-PCT00024
Figure 112006000072302-PCT00025
Figure 112006000072302-PCT00026
결론
본 발명은 구조적 특징 및/또는 방법의 단계에 특정적인 언어로 설명되었지만, 첨부된 청구범위에 정의된 본 발명이 반드시, 설명된 특정 특징 또는 단계로 제한되지 않음을 이해해야 한다. 오히려, 개시된 특정 특징 및 단계는 청구된 본 발명을 구현하는 예시적인 형태로 개시된다.

Claims (54)

  1. DV 데이터 스트림으로부터 추출할 추가의 프레임별 DV 메타데이터를 지정하는 명령어를 수신하는 단계, 및
    상기 명령어에 응답하여 상기 DV 데이터 스트림의 DV 프레임으로부터 메타데이터를 추출하는 단계
    를 수행하도록 구성된 프로세서 실행가능 명령어들을 포함하는 프로세서 판독가능 매체.
  2. 제1항에 있어서,
    상기 메타데이터를 컨테이너 내에 저장하는 단계, 및
    상기 컨테이너에 상기 DV 프레임의 비디오 샘플을 첨부하는 단계
    를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  3. 제1항에 있어서,
    상기 명령어를 수신하는 단계는,
    DVPackID를 추출 리스트에 추가하기 위한 AddPack 호출을 수신하는 단계,
    상기 추출 리스트로부터 DVPackID를 제거하기 위한 RemovePack 호출을 수신하는 단계, 및
    상기 추출 리스트로부터 모든 DVPackID를 제거하기 위한 RemoveAllPacks 호출을 수신하는 단계
    를 포함하는 프로세서 판독가능 매체.
  4. 제3항에 있어서,
    GetCount 호출에 응답하여 상기 추출 리스트 내에 존재하는 DVPackID의 양을 나타내는 숫자를 리턴하는 단계, 및
    상기 인덱스를 지정하는 GetPackID 호출에 응답하여 상기 추출 리스트 내의 인덱스에서 DVPackID를 리턴하는 단계
    를 수행하도록 구성된 컴퓨터 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  5. 제1항에 있어서,
    상기 추출하는 단계는,
    추출 리스트로부터 DVPackID를 결정하는 단계, 및
    상기 DVPackID에 기초하여 상기 DV 프레임 내의 메타데이터를 식별하는 단계
    를 포함하는 프로세서 판독가능 매체.
  6. 제2항에 있어서,
    상기 컨테이너를 관리하는 단계를 수행하도록 구성된 프로세서 실행가능 명 령어들을 더 포함하는 프로세서 판독가능 매체.
  7. 제6항에 있어서,
    상기 컨테이너를 관리하는 단계는,
    Add 호출에 응답하여 DV_METADATA 구조를 상기 컨테이너에 추가하는 단계,
    Remove 호출에 응답하여 상기 컨테이너로부터 DV_METADATA 구조를 제거하는 단계,
    RemoveAll 호출에 응답하여 상기 컨테이너로부터 모든 항목을 삭제하는 단계,
    GetCount 호출에 응답하여 상기 컨테이너 내에 존재하는 항목의 양을 나타내는 숫자를 리턴하는 단계,
    Lock 호출에 응답하여 배타적인 액세스(exclusive access)에 대하여 상기 컨테이너를 잠그는 단계,
    Unlock 호출에 응답하여 상기 컨테이너를 잠금해제하는 단계,
    GetFirst 호출에 응답하여 상기 컨테이너의 시작 인덱스에서 상기 컨테이너로부터의 항목을 검색하는 단계, 및
    GetNext 호출에 응답하여 상기 컨테이너의 다음 인덱스에서 상기 컨테이너로부터의 항목을 검색하는 단계
    를 포함하는 프로세서 판독가능 매체.
  8. 제7항에 있어서,
    상기 DV_METADATA 구조는 DV 메타데이터 팩의 언팩 버전(unpacked version)을 포함하는 프로세서 판독가능 매체.
  9. 제8항에 있어서,
    상기 DV_METADATA 구조는,
    상기 DV 메타데이터 팩으로부터 언팩된 이진값들, 및
    각각의 이진값에 관련된 상이한 변수 이름
    을 포함하는 프로세서 판독가능 매체.
  10. 제2항에 있어서,
    상기 비디오 샘플 및 오디오 샘플을 생성하기 위해 상기 DV 프레임을 역다중화하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  11. 제1항에 따른 프로세서 판독가능 매체를 포함하는 컴퓨터.
  12. DV 메타데이터 추출 리스트를 관리하는 단계, 및
    상기 추출 리스트 내의 DVPackID에 기초하여 DV 프레임으로부터 DV 메타데이터 팩을 추출하는 단계
    를 수행하도록 구성된 프로세서 실행가능 명령어들을 포함하는 프로세서 판독가능 매체.
  13. 제12항에 있어서,
    상기 DV 메타데이터 팩을 IMFDVMetadataContainer에 저장하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  14. 제13항에 있어서,
    상기 IMFDVMetadataContainer를 상기 DV 프레임의 DV 샘플에 첨부하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  15. 제13항에 있어서,
    상기 DV 메타데이터 팩을 DV 팩-특유 데이터 구조로 언팩하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  16. 제15항에 있어서,
    상기 DV 팩-특유 데이터 구조를 상기 IMFDVMetadataContainer에 저장하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어들을 더 포함하는 프로세서 판독가능 매체.
  17. 제15항에 있어서,
    상기 DV 팩-특유 데이터 구조는,
    상기 DV 메타데이터 팩으로부터 언팩된 이진값들, 및
    각각의 이진값에 관련된 상이한 변수 이름
    을 포함하는 프로세서 판독가능 매체.
  18. 제12항에 있어서,
    상기 관리하는 단계는,
    AddPack 호출에 응답하여 DVPackID를 상기 추출 리스트에 추가하는 단계,
    RemovePack 호출에 응답하여 상기 추출 리스트로부터 DVPackID를 제거하는 단계,
    RemoveAllPacks 호출에 응답하여 상기 추출 리스트로부터 모든 DVPackID를 제거하는 단계,
    GetCount 호출에 응답하여 상기 추출 리스트 내에 존재하는 DVPackID의 양을 나타내는 숫자를 리턴하는 단계, 및
    인덱스를 지정하는 GetPackID 호출에 응답하여 상기 추출 리스트 내의 상기 인덱스에 DVPackID를 리턴하는 단계
    를 포함하는 프로세서 판독가능 매체.
  19. 제12항에 있어서,
    상기 추출하는 단계는,
    상기 DVPackID를 포함하는 DV 메타데이터 팩 내의 헤더를 통해 상기 DV 프레임 내의 상기 DV 메타데이터 팩을 식별하는 단계, 및
    상기 DV 메타데이터 팩을 상기 DV 프레임으로부터 뽑아내는 것을 포함하는 프로세서 판독가능 매체.
  20. 제13항에 있어서,
    상기 IMFDVMetadataContainer를 관리하는 단계를 수행하도록 구성된 프로세서 실행가능 명령어를 더 포함하는 프로세서 판독가능 매체.
  21. 제20항에 있어서,
    상기 IMFDVMetadataContainer를 관리하는 단계는,
    Add 호출에 응답하여, DV_METADATA 구조를 상기 IMFDVMetadataContainer에 추가하는 단계,
    Remove 호출에 응답하여, DV_METADATA 구조를 상기 IMFDVMetadataContainer로부터 제거하는 단계,
    RemoveAll 호출에 응답하여, 상기 IMFDVMetadataContainer로부터 모든 항목을 제거하는 단계,
    GetCount 호출에 응답하여, 상기 IMFDVMetadataContainer 내에 존재하는 항 목의 양을 나타내는 숫자를 리턴하는 단계,
    Lock 호출에 응답하여, 배타적인 액세스에 대하여 상기 IMFDVMetadataContainer를 잠그는 단계,
    Unlock 호출에 응답하여, 상기 IMFDVMetadataContainer를 잠금해제하는 단계,
    GetFirst 호출에 응답하여, 상기 IMFDVMetadataContainer의 시작 인덱스에서 상기 IMFDVMetadataContainer로부터의 항목을 검색하는 단계, 및
    GetNext 호출에 응답하여, 상기 IMFDVMetadataContainer의 다음 인덱스에서 상기 IMFDVMetadataContainer로부터의 항목을 검색하는 단계
    를 포함하는 프로세서 판독가능 매체.
  22. 제12항에 따른 프로세서 판독가능 매체를 포함하는 컴퓨터.
  23. DV 데이터 스트림으로부터 DV 메타데이터를 추출하기 위한 명령어를 수신하는 단계,
    상기 명령어에 응답하여, 상기 DV 데이터 스트림으로부터 메타데이터를 추출하는 단계,
    상기 메타데이터를 컨테이너에 저장하는 단계, 및
    상기 DV 데이터 스트림의 비디오 샘플을 상기 컨테이너에 첨부하는 단계
    를 포함하는 방법.
  24. 제23항에 있어서,
    컨테이너 API(어플리케이션 프로그래밍 인터페이스) 상에서의 메소드 호출에 따라, 상기 컨테이너로의 액세스를 관리하는 단계를 더 포함하는 방법.
  25. 메타데이터 추출 API(어플리케이션 프로그래밍 인터페이스) 상에서의 메소드 호출에 기초하여 DV 메타데이터 추출 리스트 내의 DVPackID들을 관리하는 단계, 및
    상기 추출 리스트 내의 DVPackID에 기초하여 DV 프레임으로부터 DV 메타데이터 팩을 추출하는 단계
    를 포함하는 방법.
  26. 제25항에 있어서,
    상기 DV 메타데이터 팩을 DV 팩-특유 데이터 구조로 언팩하는 단계, 및
    상기 DV 메타데이터 팩 및 상기 DV 팩-특유 데이터 구조를 컨테이너 내에 저장하는 단계
    를 더 포함하는 방법.
  27. 제26항에 있어서,
    상기 DV 프레임의 비디오 샘플을 상기 컨테이너에 첨부하는 단계를 더 포함하는 방법.
  28. 제27항에 있어서,
    컨테이너 API 상에서의 메소드 호출에 기초하여 상기 컨테이너로의 액세스를 관리하는 단계를 더 포함하는 방법.
  29. DV 프레임으로부터 메타데이터를 추출하고 상기 메타데이터에 대한 액세스를 가능하게 하도록 구성된 DV 메타데이터 추출 도구를 포함하는 컴퓨터.
  30. 제29항에 있어서,
    상기 DV 메타데이터 추출 도구는,
    어플리케이션으로부터의 메소드 호출들에 응답하여 DVPackID들의 추출 리스트를 유지하고 상기 DVPackID들의 추출 리스트에 기초하여 DV 팩들을 컨테이너에 저장하도록 구성된 추출 인터페이스, 및
    DV 팩-특유 데이터 구조를 상기 컨테이너에 저장하고 상기 어플리케이션으로부터의 메소드 호출에 응답하여 DV 팩 및 DV 팩-특유 데이터 구조로의 액세스를 관리하도록 구성된 컨테이너 인터페이스
    를 포함하는 컴퓨터.
  31. 제29항에 있어서,
    상기 DV 메타데이터 추출 도구를 포함하는 멀티미디어 아키텍쳐를 더 포함하 는 컴퓨터.
  32. DV 메타데이터 추출 리스트를 관리하기 위한 수단, 및
    상기 추출 리스트 내의 DVPackID에 기초하여 DV 프레임으로부터 DV 메타데이터 팩을 추출하기 위한 수단
    을 포함하는 컴퓨터.
  33. 제32항에 있어서,
    상기 DV 메타데이터 팩을 IMFDVMetadataContainer에 저장하기 위한 수단을 더 포함하는 컴퓨터.
  34. 제33항에 있어서,
    상기 DV 프레임의 DV 샘플에 상기 IMFDVMetadataContainer를 첨부하기 위한 수단을 더 포함하는 컴퓨터.
  35. 제33항에 있어서,
    상기 DV 메타데이터 팩을 DV 팩-특유 데이터 구조로 언팩하기 위한 수단, 및
    상기 DV 팩-특유 데이터 구조를 상기 IMFDVMetadataContainer에 저장하기 위한 수단
    을 더 포함하는 컴퓨터.
  36. 5 바이트의 DV_METADATA_CONTROL_CASSETTE_ID 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 MicError 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 MultiBytes 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 MemoryType 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 MemorySizeOfSpace() 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 MemorySizeOfLastBlankInSpace1 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 MemoryBankNumberOfSpace1 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TapeThickness 필드
    를 포함하는 프로세서 판독가능 매체.
  37. 5 바이트의 DV_METADATA_CONTROL_TAPE_LENGTH 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는 상기 팩의 제2 내지 제4 바이트로부터 언팩된 데이터를 갖는 TapeLength 필드를 포함하는 프로세서 판독가능 매체.
  38. 5 바이트의 DV_METADATA_TEXT_HEADER 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 및 제3 바이트로부터 언팩된 데이터를 갖는 TotalTextData 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 TextType 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 OptionNumber 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 TextCode 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 AreaNumber 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TopicTag 필드
    를 포함하는 프로세서 판독가능 매체.
  39. 5 바이트의 DV_METADATA_TAG 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2, 제3 및 제4 바이트로부터 언팩된 데이터를 갖는 AbsoluteTrackNumber 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 BlankFlag 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TextFlag 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TemporaryTrue 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 HoldFlag 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TagID 필드
    를 포함하는 프로세서 판독가능 매체.
  40. 5 바이트의 DV_METADATA_TITLE_TIME_CODE 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 BlankFlag 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Tens of Frame 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Units of Frame 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Tens of Seconds 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Units of Seconds 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Tens of Minutes 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Units of Minutes 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Tens of Hours 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Units of Hours 필드
    를 포함하는 프로세서 판독가능 매체.
  41. 5 바이트의 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 BinaryGroup2 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 BinaryGroup1 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 BinaryGroup4 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 BinaryGroup3 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 BinaryGroup6 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 BinaryGroup5 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 BinaryGroup8 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 BinaryGroup7 필드
    를 포함하는 프로세서 판독가능 매체.
  42. 5 바이트의 DV_METADATA_PROGRAM_REC_DTIME 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 RecordingMode 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Minutes 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Week 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Hours 필드,
    상기 팩의 제4 및 제5 바이트로부터 언팩된 데이터를 갖는 Year 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Day 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Month 필드
    를 포함하는 프로세서 판독가능 매체.
  43. 5 바이트의 DV_METADATA_AAUX_SOURCE 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 LockedFlag 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 AudioFrameSize 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 StereoMode 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Channel 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 PairBit 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 AudioMode 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 MultiLanguage 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 FiftySixty 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 SystemType 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Emphasis 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 TimeConstant 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 SamplingFrequency 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Quantization 필드
    를 포함하는 프로세서 판독가능 매체.
  44. 5 바이트의 DV_METADATA_AAUX_SOURCE_CONTROL 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 CopyGenerationManagementSystem 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 InputSource 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Compression 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 SourceSituation 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 RecordingStart 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 RecordingEnd 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 RecordMode 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 InsertChannel 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 DirectionFlag 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 PlaybackSpeed 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 GenreCategory 필드
    를 포함하는 프로세서 판독가능 매체.
  45. 5 바이트의 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 DaylightSavingsTime 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 ThirtyMinutesFlag 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Tens of Time Zone 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Units of Time Zone 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Tens of Day 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Units of Day 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Week 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Tens of Month 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Units of Month 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Tens of Year 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Units of Year 필드
    를 포함하는 프로세서 판독가능 매체.
  46. 5 바이트의 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Tens of Frames 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Units of Frames 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Tens of Seconds 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Units of Seconds 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Tens of Minutes 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Units of Minutes 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Tens of Hours 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Units of Hours 필드
    를 포함하는 프로세서 판독가능 매체.
  47. 5 바이트의 DV_METADATA_AAUX_CLOSED_CAPTION 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 MainAudioLanguage 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 MainAudioType 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 SecondAudioLanguage 필드, 및
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 SecondAudioType 필드
    를 포함하는 프로세서 판독가능 매체.
  48. 5 바이트의 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 내지 제5 바이트로부터 언팩된 데이터를 갖는 Data 필드, 및
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 DataType 필드
    를 포함하는 프로세서 판독가능 매체.
  49. 5 바이트의 DV_METADATA_VAUX_SOURCE 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Tens of TV Channel 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Units of TV Channel 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 B/W 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Enable Color 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Color Frames Identification 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 Hundreds of TV Channel 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Source Code 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 50/60 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Signal Type 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 Tuner Category 필드
    를 포함하는 프로세서 판독가능 매체.
  50. 5 바이트의 DV_METADATA_VAUX_SOURCE 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 CopyGenerationManagementSystem 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 JustPreviousInput 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Compression 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 SourceSituation 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 RecordStart 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 RecordMode 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 DisplaySelect 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Framefield 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 FirstSecond 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 FrameChange 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 Interlace 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 StillField 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 StillCamera 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 BroadcastSystem 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 GenreCategory 필드
    를 포함하는 프로세서 판독가능 매체.
  51. 5 바이트의 DV_METADATA_VAUX_CLOSED_CAPTION 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 FirstFieldFirstByte 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 FirstFieldSecondByte 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 SecondFieldFirstByte 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 SecondFieldSecondByte 필드
    를 포함하는 프로세서 판독가능 매체.
  52. 5 바이트의 DV_METADATA_CAMERA_CONSUMER_CAMERA_1 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 Iris 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 AEMode 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 AGC 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 WBMode 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 WhiteBalance 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 FocusMode 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 FocusPosition 필드
    를 갖는 프로세서 판독가능 매체.
  53. 5 바이트의 DV_METADATA_CAMERA_CONSUMER_CAMERA_2 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 VerticalPanningDirection 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 VerticalPanningSpeed 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 ImageStabilizer 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 HorizontalPanningDirection 필드,
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 HorizontalPanningSpeed 필드,
    상기 팩의 제4 바이트로부터 언팩된 데이터를 갖는 FocalLength 필드,
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 ZoomEnable 필드, 및
    상기 팩의 제5 바이트로부터 언팩된 데이터를 갖는 ElectricZoom 필드
    를 포함하는 프로세서 판독가능 매체.
  54. 5 바이트의 DV_METADATA_CAMERA_SHUTTER 팩을 표현하는 데이터 구조가 저장되어 있는 프로세서 판독가능 매체로서,
    상기 데이터 구조는,
    상기 팩의 제4 및 제5 바이트로부터 언팩된 데이터를 갖는 ShutterSpeed 필드,
    상기 팩의 제2 바이트로부터 언팩된 데이터를 갖는 UpperLineSpeed 필드, 및
    상기 팩의 제3 바이트로부터 언팩된 데이터를 갖는 LowerLinerSpeed 필드
    를 포함하는 프로세서 판독가능 매체.
KR1020067000026A 2003-10-01 2003-10-02 Dv 메타데이터 추출 KR20060073921A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/676,979 US8165449B2 (en) 2003-10-01 2003-10-01 DV metadata extraction
US10/676,979 2003-10-01

Publications (1)

Publication Number Publication Date
KR20060073921A true KR20060073921A (ko) 2006-06-29

Family

ID=34393647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067000026A KR20060073921A (ko) 2003-10-01 2003-10-02 Dv 메타데이터 추출

Country Status (7)

Country Link
US (1) US8165449B2 (ko)
EP (1) EP1668434A1 (ko)
JP (1) JP2007521695A (ko)
KR (1) KR20060073921A (ko)
CN (1) CN100517151C (ko)
AU (1) AU2003279867A1 (ko)
WO (1) WO2005043263A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792806B2 (en) * 2003-06-27 2010-09-07 Microsoft Corporation Rate change
US8041186B1 (en) 2003-12-09 2011-10-18 Apple Inc. Propagating metadata associated with digital video
US8064752B1 (en) 2003-12-09 2011-11-22 Apple Inc. Video encoding
US8135261B1 (en) 2003-12-09 2012-03-13 Apple Inc. Insertion and usage of metadata in digital video
US7596561B2 (en) * 2004-01-30 2009-09-29 Adgiants, Llc Web-based marketing management system
US8271507B2 (en) * 2004-01-30 2012-09-18 Adgiants, Llc Web-based marketing management system
WO2005074537A2 (en) * 2004-02-02 2005-08-18 University Of South Florida High performance serial bus data recorder device
CN1790419A (zh) * 2005-10-21 2006-06-21 曲建明 一种将医疗数字图像信息按所需格式标准化的方法及应用
US20080215169A1 (en) * 2007-03-02 2008-09-04 Lisa Debettencourt Audio System
CN101542450B (zh) * 2007-05-28 2012-05-23 松下电器产业株式会社 元数据记录装置以及元数据记录方法
US20090132462A1 (en) * 2007-11-19 2009-05-21 Sony Corporation Distributed metadata extraction
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US8789168B2 (en) * 2008-05-12 2014-07-22 Microsoft Corporation Media streams from containers processed by hosted code
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8265140B2 (en) * 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
FR2948792B1 (fr) * 2009-07-30 2011-08-26 Oberthur Technologies Procede de traitement de donnees protege contre les attaques par faute et dispositif associe
IL219499B (en) 2012-04-30 2019-02-28 Verint Systems Ltd A system and method for detecting malicious software
IL226057A (en) * 2013-04-28 2017-07-31 Verint Systems Ltd System and method for automatic configuration of intrusion detection systems
IL226747B (en) 2013-06-04 2019-01-31 Verint Systems Ltd A system and method for studying malware detection
US9684594B2 (en) 2014-07-16 2017-06-20 ClearSky Data Write back coordination node for cache latency correction
US9430387B2 (en) 2014-07-16 2016-08-30 ClearSky Data Decoupling data and metadata in hierarchical cache system
US9652389B2 (en) 2014-07-16 2017-05-16 ClearSky Data Hash discriminator process for hierarchical cache system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570728B2 (en) * 1992-12-28 2003-05-27 Sony Corporation Tape cassette including memory unit storing reproduction control instructions
JP3297743B2 (ja) * 1993-02-04 2002-07-02 ソニー株式会社 磁気記録再生装置
US5646796A (en) * 1993-05-10 1997-07-08 Sony Corporation Apparatus and method for recording and reproducing topic data with digital video and audio data
JP3561930B2 (ja) * 1993-08-14 2004-09-08 ソニー株式会社 画像検索用id信号の記録方法、画像検索方法、及び記録画像再生装置
JP3428020B2 (ja) * 1993-09-30 2003-07-22 ソニー株式会社 ディジタル記録再生装置及びインデックス記録方法
JP3577733B2 (ja) * 1994-02-15 2004-10-13 ソニー株式会社 画像記録装置
JP3477818B2 (ja) * 1994-05-12 2003-12-10 ソニー株式会社 ディジタルオーディオ信号伝送装置
MY114287A (en) * 1994-12-26 2002-09-30 Sony Corp Digital video recorder
JP3674095B2 (ja) * 1995-08-31 2005-07-20 ソニー株式会社 カメラ設定データの記録再生方法及び記録再生装置
KR19990044590A (ko) * 1996-07-15 1999-06-25 니시무로 타이죠 디지탈 인터페이스를 구비하는 장치, 이 장치를 이용한 네트워크 시스템 및 카피 방지 방법
US6130726A (en) * 1997-03-24 2000-10-10 Evolve Products, Inc. Program guide on a remote control display
US6061692A (en) 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6351471B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
US6516029B1 (en) * 1998-03-06 2003-02-04 Divio, Inc. Method and apparatus for adaptive video encoding
US6611812B2 (en) 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
US6833865B1 (en) * 1998-09-01 2004-12-21 Virage, Inc. Embedded metadata engines in digital capture devices
JP3252282B2 (ja) * 1998-12-17 2002-02-04 松下電器産業株式会社 シーンを検索する方法及びその装置
US6624843B2 (en) * 1999-12-10 2003-09-23 Jerry W. Lennon Customer image capture and use thereof in a retailing system
KR100844816B1 (ko) 2000-03-13 2008-07-09 소니 가부시끼 가이샤 간결한 트랜스코딩 힌트 메타데이터를 생성하는 방법 및장치
JP2001291323A (ja) * 2000-03-31 2001-10-19 Sony Corp 記録装置及び方法、再生装置及び方法並びに情報処理装置及び方法
US6611845B1 (en) 2000-07-21 2003-08-26 International Business Machines Corporation Method and system for storing and managing sets of objects
GB0029880D0 (en) * 2000-12-07 2001-01-24 Sony Uk Ltd Video and audio information processing
US7295755B2 (en) 2001-06-22 2007-11-13 Thomson Licensing Method and apparatus for simplifying the access of metadata
US7882510B2 (en) * 2003-08-06 2011-02-01 Microsoft Corporation Demultiplexer application programming interface

Also Published As

Publication number Publication date
WO2005043263A1 (en) 2005-05-12
JP2007521695A (ja) 2007-08-02
CN100517151C (zh) 2009-07-22
CN1826566A (zh) 2006-08-30
US8165449B2 (en) 2012-04-24
US20050076039A1 (en) 2005-04-07
AU2003279867A1 (en) 2005-05-19
EP1668434A1 (en) 2006-06-14

Similar Documents

Publication Publication Date Title
US8165449B2 (en) DV metadata extraction
CN100520773C (zh) 用于封装媒体对象的代表性样本的系统和方法
US6523046B2 (en) Infrastructure and method for supporting generic multimedia metadata
US20050267894A1 (en) XML metabase for the organization and manipulation of digital media
EP1492022A2 (en) Multimedia processor
US20010049691A1 (en) Middleware and media data audiovisual apparatus using middleware
US20070294311A1 (en) Application program interface to manage media files
KR20080024137A (ko) 대형 재생 리스트를 위한 재생 리스트 구조
US20150052159A1 (en) File name display method and system, and computer storage medium
US20170084309A1 (en) Video file creation device and video file creation method
Hunter et al. Implementing preservation strategies for complex multimedia objects
EP1899823A2 (en) Retrieving graphics from slow retrieval storage devices
US20060271855A1 (en) Operating system shell management of video files
CN100545842C (zh) 服务器设备、数据处理方法、程序、及通信方法
CN106790558B (zh) 一种影片多版本整合存储和提取系统
US8046341B2 (en) Information processing apparatus for reproducing metadata and method, program, and recording medium
JP2004129200A (ja) 情報マテリアル作成システム及び方法
JP2004129199A (ja) 情報マテリアル作成システム及び方法
KR20050015930A (ko) 디멀티플렉서 애플리케이션 프로그래밍 인터페이스
RU2351002C2 (ru) Программный интерфейс приложения демультиплексора
Viana Media asset management in broadcasting: new approaches to enable the effective management of physical resources and media objects
de Moura Gomes Media asset management in broadcasting: New approaches to enable the effective management of physical resources and media objects
De Sutter et al. Architecture for embedding audiovisual feature extraction tools in archives

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application