KR20070103464A - 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법 - Google Patents

디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR20070103464A
KR20070103464A KR1020077018965A KR20077018965A KR20070103464A KR 20070103464 A KR20070103464 A KR 20070103464A KR 1020077018965 A KR1020077018965 A KR 1020077018965A KR 20077018965 A KR20077018965 A KR 20077018965A KR 20070103464 A KR20070103464 A KR 20070103464A
Authority
KR
South Korea
Prior art keywords
metadata
block
file
reader
writer
Prior art date
Application number
KR1020077018965A
Other languages
English (en)
Inventor
데이비드 앨버트
프랭크 앨바 크루거
라잣 고엘
피터 에이. 그레비치
안소니 존 롤스 호즈던
라두 씨. 마가린트
토마스 더블유. 올센
라훌 브이. 파틸
사이라 에스 리차드슨
로버트 얼 2세 싱클레어
리차드 에스. 주니어 터너
에릭 반덴버그
로버트 에이. 블로다르지크
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 KR20070103464A publication Critical patent/KR20070103464A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 개선된 시스템 및 방법이 제공된다. 실행가능한 소프트웨어 코드가 이미지 파일 내의 메타데이터를 조작하기 위한 오퍼레이션을 요청하기 위해 메타데이터 쿼리 리더 및 메타데이터 쿼리 라이터에 연동될 수 있다. 메타데이터 쿼리 리더는 이미지 파일 내의 메타데이터 블록을 식별하고, 메타데이터 리더를 각각의 메타데이터 블록에 관련시키기 위한 블록 리더를 갖는 디코더에 연동할 수 있다. 각 메타데이터 리더는 그 후 메타데이터 리더에 관련된 메타데이터 블록 내의 메타데이터를 열거한다. 메타데이터 쿼리 라이터는 각각의 메타데이터 블록을 메타데이터 라이터와 관련시켜 이미지 파일 내에 기입하기 위한 블록 라이터를 갖는 인코더에 연동될 수 있다. 각각의 메타데이터 라이터는 그 후 그 메타데이터 라이터와 관련된 메타데이터 블록에 메타데이터를 기입한다.
메타데이터, 메타데이터 블록, 메타데이터 쿼리 리더, 메타데이터 쿼리 라이터, 이미지 파일

Description

디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR EXTENSIBLE METADATA ARCHITECTURE FOR DIGITAL IMAGES}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것이며, 또한 더욱 구체적으로는 디지털 이미지에 대해 확장가능한 메타데이터를 아키텍처(architecture)하기 위한 개선된 시스템과 방법에 관한 것이다.
디지털 이미지에 대한 이미지 포맷은 디지털 이미지의 인기가 성장함에 따라 진화를 거듭하고 있다. 디지털 이미지에 대한 응용이 확장하면서, 디지털 이미지를 묘사하는 데 쓰이던 메타데이터 포맷의 확장자가 특정한 이미지 포맷에 대한 진화하는 산업 표준 속에서 규칙적으로 나타난다. 그러나, 이미지 포맷을 인코드 및 디코드하는데 쓰이는 코덱의 현존하는 구현은 일반적으로 표준 이미지 타입에 대해 고정된 메타데이터 포맷을 갖는다. 예를 들어, 이미지 파일 내에 메타데이터를 포함시키기 위한 하나의 공통적 접근법은 그 메타데이터를 위한 데이터 블록을 확보하는 것이다. 추가적인 메타데이터가 이미지 포맷 내에 삽입되면, 그 이미지 포맷용으로 구축된 코덱 내에서의 인코더 및 디코더의 구현이 추가의 메타데이터를 다룰 수 있도록 업데이트되어야 한다. 그러나, 불행하게도, 코덱을 업데이트 하기 위한 프로세스는 비싸고 오랜 시간이 걸린다.
또한, 코덱의 현존하는 구현이 제3자 메타데이터 포맷에 대한 지원(support)을 제공하지 않을 수 있다. 또한, 코덱과 특정한 이미지 포맷 사이의 밀접함 및 종속성은, 복수 이미지를 갖는 단일 이미지 파일에 포함될 수 있는 서로 다른 이미지 포맷에 대한 메타데이터를 인코딩 및 디코딩하기 위한 실행가능 코드의 손쉬운 재사용을 방지한다. 필요한 것은, 컴퓨터 시스템에서 이미지 포맷에 대한 추가적인 메타데이터 타입을 지원하기 위하여 코덱의 새로운 구현을 배포할 필요 없이, 이미지 포맷에 대한 추가 메타데이터의 삽입에 쉽게 적응하기 위한 수단이다. 이러한 시스템 및 방법은 또한 이미지 포맷의 제3자 구현 및 현존하는 이미지 포맷으로의 확장을 이용한 애플리케이션을 지원할 수 있어야 한다.
간단하게 기술하자면, 본 발명은 디지털 이미지에 대해 확장가능한 메타데이터 아키텍처에 대한 개선된 시스템 및 방법을 제공한다. 이를 위해서, 실행가능한 소프트웨어 코드가 이미지 파일 내의 메타데이터를 조작하기 위한 오퍼레이션을 요청하기 위해 메타데이터 쿼리 리더 및 메타데이터 쿼리 라이터에 연동될 수 있다. 메타데이터 쿼리 리더는 이미지 파일 내의 메타데이터 블록을 식별하고 메타데이터 리더를 각 메타데이터 블록과 관련시키기 위한 블록 리더를 갖는 디코더에 연동될 수 있다. 그러면 각각의 메타데이터 리더는 그 메타데이터 리더와 관련된 메타데이터 블록 내의 메타데이터를 열거할 수 있다. 메타데이터 쿼리 라이터는 이미지 파일에 기입될 각각의 메타데이터 블록을 메타데이터 라이터와 관련시키기 위한 블록 라이터를 갖는 인코더에 연동될 수 있다. 그러면, 각각의 메타데이터 라이터는 그 메타데이터 라이터와 관련된 메타데이터 블록 내에 메타데이터를 기입할 수 있다.
하나 이상의 내포된(nested) 메타데이터 블록을 갖는 메타데이터 블록을 포함하기도 하는 이미지 파일에, 각 메타데이터 리더와 각 메타데이터 라이터가 연동될 수 있다. 일 실시예에서, 메타데이터 블록은 다양한 타입의 이미지를 위한 내포된 메타데이터 블록을 포함할 수 있다. 각각의 내포된 메타데이터 블록은 또한, 메타데이터 블록들이 임의의 몇 개의 레벨로도 내포될 수 있도록 하나 이상의 내포된 메타데이터 블록을 차례로 포함할 수 있다. 이에 따라, 메타데이터 리더 및/또는 메타데이터 라이터가 내포된 메타데이터 블록의 계층 내의 각각의 메타데이터 블록과 관련될 수 있다.
또한, 메타데이터 쿼리 리더와 메타데이터 쿼리 라이터가 쿼리 스트링을 수신할 수 있도록 본 시스템 및 방법은 쿼리 언어를 지원한다. 만일 지정된 쿼리 스트링이 완전히 검증된 위치에 해당하지 않는다면, 요청은 메타데이터 쿼리 리더 및 메타데이터 쿼리 라이터와 연동할 수 있는 정책 컴포넌트에 의해 분석될 것이다. 정책 컴포넌트는 쿼리 스트링을 메타데이터 계층 내의 지정된 위치에 맵핑함으로써, 쿼리 스트링을 분석할 수 있다.
유리하게는, 본 시스템 및 방법은 새로운 메타데이터 타입의 추가가 이미지 파일에 추가되는 것을 허용하며, 새로운 메타데이터 리더 및 라이터는 그 새로운 메타데이터 타입에 관련된 이미지 파일 내에 메타데이터를 디코딩 및 인코딩하기 위해 쉽게 추가된다. 이에 따라 제공된 프레임워크는 이미지 포맷 및 현존하는 이미지 포맷으로의 확장의 제3자 구현을 지원할 수 있다. 또한, 열거된 메타데이터 항목들은 고속 메타데이터 인코더를 사용하여 쉽게 변경되어, 이미지 파일에 수정된 메타데이터를 기입하기 위해 별도의 이미지 스트림을 사용할 필요없이, 메타데이터의 인플레이스(in-place) 편집을 수행할 수 있다. 기타 장점들은 도면과 관련하는 다음의 자세한 설명으로 명백해 질 것이다.
도 1은 본 발명이 구체화될 수 있는 컴퓨터 시스템을 일반적으로 도시하는 블록도;
도 2는 본 발명의 양태에 따라, 디지털 이미지에 대한 확장가능한 메타데이터 아키텍처의 일 실시예에서 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 도시하는 블록도;
도 3은 본 발명의 양태에 따라, 이미지 파일 내에서 메타데이터를 판독하는 것에 대한 일 실시예에서 착수되는 예시적인 단계를 일반적으로 도시하는 플로우차트;
도 4는 본 발명의 양태에 따라, 이미지 파일 내에 메타데이터를 기입하는 것에 대해 일 실시예에서 착수되는 예시적인 단계를 일반적으로 도시하는 플로우차트;
도 5는 본 발명의 양태에 따라, 이미지 파일 내로의 메타데이터의 고속 기입을 위한, 확장가능한 메타데이터의 아키텍처의 일 실시예에서 시스템 컴포넌트의 예시적인 구조를 일반적으로 도시하는 블록도; 및
도 6은 본 발명의 양태에 따라, 이미지 파일 내로의 메타데이터의 고속 기입을 위한 일 실시예에서 착수되는 예시적인 단계를 일반적으로 도시하는 플로우차트.
예시적인 운영 환경
도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 예제를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 단지 적합한 컴퓨팅 환경의 한가지 일례이며, 본 발명의 사용 범위 또는 기능에 관해 어떠한 제한을 제안하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에서 도시된 임의의 하나의 컴포넌트 또는 컴포넌트들의 조합에 관해 임의의 종속성 또는 요구사항을 가지는 것으로 해석되어서는 안 된다.
본 발명은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 운영할 수 있다. 본 발명에 사용하기에 적합하고 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 타블렛 장치, 헤드리스 서버, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템이나 장치 등의 임의의 것을 포함하는 분산 컴퓨팅 환경이 있지만 이에 제한되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하고 또는 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행되도록 설계된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및/또는 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 1과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110)의 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트는 처리 장치(120), 시스템 메모리(130) 및 시스템 메모리를 포함하는 각종 시스템 컴포넌트를 처리 장치(120)에 결합하는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예제로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 이동불가식 매체를 포함한다. 예제로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매 체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 모든 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동불가식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호내의 정보가 암호화되도록 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예제로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선 접속과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 시 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되 어 있다. RAM(132)은 통상적으로 처리 장치(120)에 즉시 액세스 가능하고 및/또는 현재 처리 장치(120)에 의해 운영되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예제로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예제로서, 도 1은 이동불가식, 비휘발성 자기 매체로의 기입 또는 그로부터의 판독을 위한 하드 디스크 드라이브(141), 이동식, 비휘발성 자기 디스크(152)로의 기입 또는 그로부터의 판독을 위한 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(156)로의 기입 또는 그로부터의 판독을 위한 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 이동불가식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)의 다른 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이 컴포넌트들이 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 주어졌다는 것은 적어도 이들이 서로 다른 사본(copy)이라는 것을 도시한다. 사용자는 전자 디지털라이저인 타블렛(164), 마이크로폰(163), 키보드(162), 마이크(163) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 조이스틱, 게임 패드, 위성 안테나, 스캐너, 또는 바이오메트릭 센서, 환경 센서, 위치 센서 또는 다른 타입의 센서가 들어간 장치를 포함하는 기타 장치 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터(191)는 터치 스크린 인터페이스(192)를 통해 시스템 버스(121)에 연결된 터치 스크린 패널 등과 함께 통합될 수 있다. 모니터 및/또는 터치 스크린 패널은 타블렛-타입 퍼스널 컴퓨터와 같이, 컴퓨팅 장 치(110)가 통합된 하우징에 물리적으로 연결될 수 있다. 또한, 컴퓨팅 장치(110)와 같은 컴퓨터는 스피커(194) 및 프린터(195) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(193)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 운영될 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 비록 도 1에는 단지 메모리 저장 장치(181)만 도시되어 있지만, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 연결로는 LAN(171) 및 WAN(173)이 있지만, 다른 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 회사 전체에 걸친 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다. LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 확립하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 그 예제로서, 도 1은 메모리 장치(181)에 상주하고 있는 원격 애플리케이션 프로그램(185)을 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이의 통신 링크를 확립하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다.
디지털 이미지에 대해 확장가능한 메타데이터를 아키텍처
본 발명은 일반적으로 디지털 이미지에 대해 확장가능한 메타데이터 아키텍처를 위한 시스템 및 방법에 관한 것이다. 본원에 기재된, 메타데이터는 작성자, 생성 데이터, 넓이, 높이, 서텨 속도 등을 포함하지만, 이에만 제한되는 것은 아닌 이미지와 같은 멀티미디어 컨텐츠의 속성을 기술할 수 있는 데이터를 의미할 수 있다. 멀티미디어 컨텐츠는 일반적으로 디지털 이미지나 디지털 비디오를 포함하지만, 이에만 제한되는 것은 아닌 임의의 형태의 비디오 컨텐츠, 디지털 음악을 포함하지만, 이에만 제한되는 것은 아닌 임의의 형태의 오디오 컨텐츠, 또는 비디오 및 오디오 컨텐츠의 조합을 의미할 수 있다. 본 시스템 및 방법은 새로운 메타데이터 타입의 추가가 이미지 파일에 더해지도록 유리하게 허용하며, 새로운 메타데이터 리더 및 라이터는 새로운 메타데이터 타입과 관련된 이미지 파일에 메타데이터를 디코딩 및 인코딩하기 위해 추가된다. 이에 따라 제공된 프레임워크는 이미지 포맷의 제3자 구현 및 현존하는 이미지 포맷으로의 확장을 지원할 수 있다. 이를 위해서, 본 발명은 이미지 파일 내의 메타데이터 블록과 관련된 하나 이상의 메타데이터 블록 리더를 제공할 수 있다. 본원에서 기재된, 메타데이터 블록은 관련될 수도 또는 관련되지 않을 수도 있는 하나 이상의 메타데이터 항목의 모음을 의미할 수 있다. 예를 들어, 어떤 이미징 포맷은 키워드 및 값 페어(pair)로 각각 표현되는 메타데이터 항목의 모음을 지정할 수 있다.
본 발명은 이미지 파일에 기입된 메타데이터 블록과 관련될 수 있는 하나 이 상의 메타데이터 블록 라이터를 또한 제공할 수 있다. 알 수 있는 바와 같이, 열거된 메타데이터 항목들은 고속 메타데이터 인코더를 사용하여 쉽게 변경되어, 이미지 파일에 수정된 메타데이터를 기입하기 위해 별도의 이미지 스트림을 사용할 필요없이, 메타데이터의 인플레이스(in-place) 편집을 수행할 수 있다. 다음에서 이해되듯이, 본원에 설명된 다양한 블록도, 흐름도 및 시나리오는 단지 예시일 뿐이며, 본 발명이 적용될 많은 다른 시나리오가 존재한다.
도 2를 참조하면, 디지털 이미지에 대해 확장 가능한 메타데이터 아키텍처의 일 실시예 내의 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 나타내는 블록도가 도시된다. 도면에 도시된 블록 내에서 구현된 기능이 분리된 컴포넌트로서 구현될 수 있거나 또는 단일한 컴포넌트 내에서 몇몇의 또는 모든 블록의 기능이 구현될 수 있음을 당업자가 인식할 것이다. 예를 들면, 디코더(212)의 기능은 코덱(210)에서 분리된 컴포넌트에서 구현된다.
도 2에 도시된 실행가능한 소프트웨어(202)가 이미지 파일로부터 메타데이터를 판독하는 것과, 이미지 파일에 메타데이터를 기입하는 것을 포함하여, 이미지 파일에 대해 몇 개의 오퍼레이션도 수행할 수 있다. 실행가능한 소프트웨어(202)는 메타데이터가 이미지 파일로부터 판독되도록 요청하기 위해 메타데이터 쿼리 리더(204)에 연동될 수 있고 메타데이터가 이미지 파일에 기입되도록 요청하기 위해 메타데이터 쿼리 라이터(208)에 연동될 수 있다. 일 실시예에서, 메타데이터 쿼리 리더(204)는 쿼리 언어를 사용하여 메타데이터가 이미지 파일로부터 판독되도록 요청하기 위하여, 실행가능한 소프트웨어(202)에 의해 호출될 수 있는 메타데이터쿼 리리더(MetaDataQueryReader) 애플리케이션 프로그램 인터페이스 (API; Application programming interface)를 제공할 수 있으며, 메타데이터 쿼리 라이터(208)는 쿼리 언어를 사용하여 메타데이터가 이미지 파일에 기입되도록 요청하기 위하여 실행가능한 소프트웨어(202)에 의해 호출될 수 있는 메타데이터쿼리라이터(MetaDataQueryWriter) API를 제공할 수 있다. 정책 컴포넌트(206)가 메타데이터 항목에 대해 불완전히 검증된 쿼리를 분석하기 위한 메타데이터 쿼리 리더(204) 및 메타데이터 쿼리 라이터(208)에 또한 연동될 수 있다. 실행가능한 소프트웨어(202), 메타데이터 쿼리 리더(204), 메타데이터 쿼리 라이터(208) 및 정책 컴포넌트(206)는 애플리케이션 프로그램이나 애플리케이션 컴포넌트, 링크된 라이브러리의 컴포넌트, 객체 등을 포함하는 임의의 실행가능한 소프트웨어 코드 각각 일 수 있다. 메타데이터 쿼리 리더(204)는 코덱(210)의 디코더(212)에 또한 연동될 수 있고, 메타데이터 쿼리 라이터(208)는 코덱(210)의 인코더(216)에 또한 연동될 수 있다.
컴퓨터 시스템에 의해 지원되는 이미지 파일 각각의 타입마다 제공되는, 코덱(210)과 같은 코덱이 있을 수 있다. 예를 들어, GIF, JPEG, PNG, TIFF 및 기타 이미지 파일 포맷에 대한 코덱이 있을 수 있다. 각각의 코덱은 이미지를 디코딩하기 위한 디코더(212) 및 이미지를 인코딩하기 위한 인코더(216)를 포함한다. 디코더(212)는 하나 이상의 메타데이터 리더(220)에 연동될 수 있는 메타데이터 블록 리더(214)를 포함할 수 있다. 메타데이터 블록 리더(214)는 이미지 파일(224) 내부에서 인식가능한 메타데이터 블록(226)을 식별한다. 각각의 메타데이터 리 더(220)는 그 후 이미지 파일 내에서 인식된 메타데이터 블록의 타입을 구문 분석하기 위한 기능을 제공할 수 있다. 일 실시예에서, 디코더는 그러므로 이미지 파일 내의 인식가능한 메타데이터 블록을 식별하기 위한 메타데이터 블록 리더를 사용함으로써, 이미지 파일 내의 메타데이터를 판독할 수 있으며, 그리고 나서 각각의 메타데이터 블록 내의 메타데이터 항목을 해독하기 위해 동일한 또는 다른 메타데이터 리더를 사용할 수 있다. 다양한 실시예에서, 디코더는 또한, 내포된 메타데이터 블록(228)을 포함할 수도 있는 메타데이터 블록(226)을 분석하기 위해 하나 이상의 메타데이터 리더를 사용할 수 있다. 같거나 다른 메타데이터 리더 양쪽 중 하나가 각각의 내포된 메타데이터 블록 내의 메타데이터 항목을 해독하기 위해 사용될 수 있다. 이런 방법으로, 디코더는 실행가능한 소프트웨어에 대해 메타데이터 쿼리 리더에 의해 요청된 메타데이터 항목을 제공할 수 있다.
또한 인코더(216)는 하나 이상의 메타데이터 라이터(222)에 연동될 수 있는 메타데이터 블록 라이터(218)를 포함할 수 있다. 메타데이터 블록 라이터(218)는 각 메타데이터 블록(226)이 이미지 파일(224) 내부에 기입되도록 메타데이터 라이터(222)를 각 메타데이터 블록(226)에 대해 식별하고 추가할 수 있다. 각각의 메타데이터 라이터(222)는 그 후 이미지 파일 내부에 기입될 메타데이터 블록의 타입에 대해 메타데이터 항목을 기입하는 기능을 제공할 수 있다. 일 실시예에서, 인코더는 그러므로 각 메타데이터 블록이 이미지 파일에 기입되도록 메타데이터 라이터를 각 메타데이터 블록에 대해 식별하고 추가하기 위한 메타데이터 블록 라이터를 사용함으로써, 이미지 파일에 메타데이터를 기입할 수 있다. 그러므로, 인코더 는 메타데이터 쿼리 라이터를 사용하는 실행가능한 소프트웨어에 의해 요청된 메타데이터 항목을 기입할 수 있다.
메타데이터 리더(220) 및 메타데이터 라이터(222)는 메타데이터 블록(226) 및 이미지 데이터 블록(230)을 포함할 수 있는 이미지 파일(224)에 연동될 수 있다. 메타데이터 블록(226)은 하나 이상의 내포된 메타데이터 블록(228)을 포함할 수 있다. 일 실시예에서, 메타데이터 블록은 다양한 타입의 이미지를 위해 메타데이터 블록보다는 내포된 메타데이터 블록을 포함할 수 있다. 각각의 내포된 메타데이터 블록은 또한, 메타데이터 블록들이 임의의 몇 개의 레벨로도 내포될 수 있도록 하나 이상의 내포된 메타데이터 블록을 차례로 포함할 수 있다. 이에 따라, 메타데이터 리더가 내포된 메타데이터 블록의 계층 내에서 각각의 메타데이터 블록과 관련될 수 있다.
당업자는 도 2에 도시된 메타데이터 구조가 본 발명을 실행하는 하나의 예시적인 실시예일 뿐이며 기타 컴퓨팅 시스템 구성이 본 발명을 구현하기 위해 사용될 수도 있음을 인식할 것이다. 예를 들어, 이미지 파일 내에 메타데이터 정보를 기입하지는 않아도 이미지 파일 내의 메타데이터 정보를 판독할 수 있는 애플리케이션을 위해 디코더가 인코더 없이 제공될 수 있다. 또 다른 예시로서, 메타데이터 블록을 이미지 파일로부터 판독하기 위해 메타데이터 블록 리더를 사용하고, 그 후 이미지 파일에 다시 기입하기 위해 메타데이터 블록 내에 메타데이터 항목의 인플레이스(in-place) 편집을 수행하기 위한 메타데이터 라이터를 사용함으로써, 고속 메타데이터 라이터가 구현될 수 있다. 또 다른 예시로서, 실행가능한 소프트웨어 코드가, 디코더 및/또는 인코더를 필요로 하지 않고 이미지 파일 내의 메타데이터에 대해 오퍼레이션을 수행하기 위한 메타데이터 블록 리더, 메타데이터 블록 라이터, 메타데이터 리더, 및/또는 메타데이터 라이터를 인스턴스화할 수 있다.
도 3은 이미지 파일 내의 메타데이터를 판독하기 위해 일 실시예에서 다뤄지는 예시적인 단계를 일반적으로 나타내는 흐름도를 도시한다. 본 발명의 범위에서 일탈함이 없이 동일한 효과를 달성하는 한, 효율성이나 유연성을 위해 구현이 다른 순서에 따라 이 단계를 수행하도록 선택하거나 이 단계 중 일부분만을 수행하도록 선택할 수 있음을 당업자가 인식할 것이다. 단계(302)에서, 이미지 파일을 열게 하는 요청이 수신될 수 있다. 그 후 단계(304)에서 이미지 파일을 판독하기 위해 디코더를 찾을 수 있다. 컴퓨터 시스템에 의해 지원되는 이미지 파일의 각 타입별로 제공되는 디코더가 존재할 수 있다. 이미지 파일의 타입에 기초하여, 그 이미지 타입에 대해 제공된 디코더는 인스턴스화될 수 있다.
일단 디코더가 발견되면, 단계(306)에서, 이미지 파일 내에 저장되는 이미지 스트림은 디코더가 이미지 파일 내의 메타데이터를 판독할 수 있음을 확인하기 위하여, 예를 들면, 인스턴스화된 디코더에 의해 분석될 수 있다. 단계(308)에서, 이미지 파일에 대한 메타데이터 블록 리더를 찾을 수 있다. 일 실시예에서, 디코더는 이미지 파일의 타입에 기초하여 메타데이터 블록 리더를 발견하고 인스턴스화 하기 위해 API를 사용할 수 있다. 다음으로, 단계(310)에서 메타데이터 블록이 메타데이터 블록 리더에 의해 이미지 파일로부터 판독될 수 있고, 그리고 나서, 단계(312)에서 메타데이터 블록 내의 메타데이터 항목을 해독할 수 있는 메타데이터 리더가 찾아질 수 있다. 예를 들면, 메타데이터 리더는 일 실시예에서 그것이 해독할 수 있는 메타데이터 블록의 타입을 식별할 수 있는 메타데이터 GUID에 의해 등록될 수 있다. 일 실시예에서, 한 메타데이터 블록에 대하여 리더를 찾을 수 없는 경우에는, 그 메타데이터 블록에 대해 알려지지 않은 리더가 그 메타데이터 블록에 대해 인스턴스화될 수 있다.
그 후 단계(314)에서 메타데이터 블록 내의 메타데이터가 열거된다. 일단 메타데이터 블록 내의 메타데이터가 열거되면, 단계(316)에서 메타데이터의 마지막 블록이 이미지 파일로부터 판독되었는지가 판정될 수 있다. 만일 아니라면, 단계(310)로 되돌아감으로써 다른 메타데이터 블록이 판독될 수 있다. 이미지 파일 내의 각각의 메타데이터 블록에 대해, 단계(310 내지 314)가 수행될 수 있다. 그러므로, 일 실시예에서는, 각 메타데이터 블록이 판독될 수 있고, 메타데이터 리더가 발견되며, 메타데이터 블록 내의 메타데이터가 열거될 수 있다. 단계(316)에서 마지막 메타데이터 블록이 판독되었음이 판정되면, 단계(318)에서 열거된 메타데이터는 디스플레이되거나 애플리케이션에 따라 다른 용도로 사용될 수 있으며, 파일로부터 메타데이터를 판독하기 위한 처리가 종료될 수 있다.
일 실시예에서, 메타데이터 계층을 나타내는 비환식 트리가 도 3에서 도시되는 단계를 이용하여 구조화될 수 있다. 각각의 메타데이터 블록은 트리의 노드를 나타낼 수 있으며 메타데이터 블록 내의 내포된 메타데이터 블록은 트리에서 메타데이터 블록을 나타내는 노드의 자식 노드를 의미할 수 있다. 트리의 노드로 나타내어진 각각의 메타데이터 블록과 관련된 메타데이터 리더가 있을 수 있다. 중위 순회(inorder traversal)를 따라 트리를 방문함으로써, 각 노드에서의 메타데이터 블록과 관련된 메타데이터 리더에게 메타데이터 블록의 특성을 열거하도록 하는 요청에 따라, 이미지 파일 내부의 메타데이터가 완벽하게 열거될 수 있다. 일 실시예에서, 트리는 메타데이터 블록에 대한 특성을 판독할 필요가 있을 때까지 그 속성이 판독되지 않을 수 있도록 나태하게 구축될 수 있다. 예를 들어, "작성자"와 같은 메타데이터 항목이 요청될 수 있다. 트리가 나태하게 구축되지만, 트리의 제2 레벨에서 메타데이터 블록을 나타내는 노드와 관련된 메타데이터 리더는 "작성자"에 대한 특성을 열거할 수 있다. 다른 특성이 연달아 요청되지 않는다면, 이미지 파일이 더 판독되거나 다른 임의의 메타데이터 블록이 해독될 필요가 없다.
도 4는 이미지 파일에 메타데이터를 기입하는 것에 대해 일 실시예에서 다뤄지는 예시적인 단계를 일반적으로 표현하는 흐름도를 도시한다. 단계(402)에서, 이미지 파일을 생성하도록 하는 요청이 수신될 수 있다. 그 후 단계(404)에서 이미지 파일 내에 메타데이터를 기입하기 위해 인코더가 발견될 수 있다. 컴퓨터 시스템에 의해 지원되는 이미지 파일의 각 타입별로 인코더가 제공될 수 있다. 이미지 파일의 타입에 기초하여, 그 이미지 타입에 대해 제공된 인코더는 인스턴스화될 수 있다.
인코더가 일단 발견되면, 단계(406)에서 이미지 파일에 대한 메타데이터 블록 라이터를 찾는다. 일 실시예에서, 인코더는 API를 사용하여 이미지 파일의 타입에 기초하는 메타데이터 블록 라이터를 발견하고 인스턴스화 할 수 있다. 다음에, 단계(408)에서 이미지 파일의 포맷에 따라 기입될 수 있는 메타데이터 블록의 배열이, 예를 들면, 인스턴스화된 인코더에 의해 결정될 수 있다.
그 후, 단계(410)에서 메타데이터 블록 내에 메타데이터 항목을 기입할 수 있는 메타데이터 라이터가 발견될 수 있다. 일 실시예에서, 메타데이터 블록에 대한 메타데이터 라이터를 발견하고 인스턴스화하기 위해 API를 불러올 수 있다. 그 후 단계(412)에서 메타데이터 블록은 이미지 파일에 대한 메타데이터 스트림에 기입될 수 있다. 일단 메타데이터 블록이 이미지 파일에 대한 메타데이터 스트림에 기입된다면, 메타데이터 스트림에 기입되기 위한 메타데이터 블록 배열에서의 마지막 메타데이터 블록이 이미지 파일에 대한 메타데이터 스트림에 기입되어있는지가 단계(414)에서 판정될 수 있다. 그렇지 않다면, 단계(410)로 되돌아감으로써 또 다른 메타데이터 라이터를 발견할 수 있다. 이미지 파일에 대한 메타데이터 스트림에 기입되기 위한 메타데이터 블록의 배열 내의 각각의 메타데이터 블록에 대해, 단계(410 내지 412)가 수행될 수 있다.
그러므로, 일 실시예에서, 배열된 각각의 메타데이터 블록에 대하여, 메타데이터 리더가 발견될 수 있고, 메타데이터 블록 내에 메타데이터가 기입될 수 있고, 메타데이터 블록이 순차적으로 이미지 파일에 대한 메타데이터 스트림에 기입될 수 있다. 만일 단계(414)에서 배열의 마지막 메타데이터 블록이 기입된 것으로 판정된다면, 단계(416)에서 기입된 메타데이터 스트림을 포함하는 이미지 파일은 영구히 저장되거나 애플리케이션에 따라 임의의 다른 용도로 사용될 수 있으며, 이미지 파일 내에 메타데이터를 기입하기 위한 처리가 종료될 수 있다.
도 5는 이미지 파일 내에 메타데이터를 고속 기입하는 것으로 확장가능한 메 타데이터 아키텍처의 일 실시예에 있어서, 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 나타내는 블록도를 도시한다. 이 실시예에서, 메타데이터 블록 내 메타데이터 항목의 인플레이스(in-place) 편집은, 이미지 파일로부터 메타데이터 블록을 판독하기 위한 메타데이터 블록 리더의 제1 사용과 그 후 제1 메타데이터 블록 라이터를 사용하여 이미지 파일에 재기입하기 위해 메타데이터 블록 내에 메타데이터 항목의 인플레이스 편집을 수행함으로써 구현될 수 있다. 본원에 기재된, 메타데이터의 인플레이스 편집은 이미지 스트림 내의 메타데이터 블록을 재-인코딩함을 의미할 수 있다.
따라서, 실행가능한 소프트웨어(202)가 도 5에 도시된 TIFF 이미지 파일(504)과 같은 이미지 파일로부터 메타데이터 쿼리 리더(204)가 메타데이터 항목을 판독하도록 요청할 수 있다. 메타데이터 쿼리 리더에 의해 수신된 요청이 메타데이터 항목에 대해 완전히 검증되지 않은 쿼리일 가능성이 있는 경우에는, 정책 컴포넌트(206)가 그 쿼리를 분석하여 메타데이터 항목에 대해 완전히 검증된 쿼리가 되게 할 수 있다. 디코더(212)와 같이 TIFF 이미지 타입에 제공될 수 있는 디코더가 그 후 인스턴스화될 수 있다.
디코더(212)에 연동된 메타데이터 블록 리더(214)가 각각의 메타데이터 블록 내의 메타데이터 항목을 해독하기 위해 메타데이터 블록을 구문 분석하기 위한 하나 이상의 메타데이터 리더(220)를 찾고 인스턴스화한다. 예를 들어, 메타데이터 블록(506)을 구문 분석할 수 있는 하나의 메타데이터 리더가 인스턴스화되며 메타데이터 블록(506)을 가리킬 수 있는 참조(514)를 확립할 수 있다. 메타데이터 블 록(506)은 TIFF 이미지 파일(504) 내부의 IFD A로 레이블링된 이미지 파일 디렉토리(IFD)를 의미할 수 있으며 이미지 데이터 블록(508)에 대해 요청된 메타데이터 정보를 제공할 수 있다. 예를 들면, 팩스의 페이지를 표현할 수 있는 이미지 데이터 블록(508) 및 실행가능한 포프트웨어(202)에 의해 요청되는 메타데이터 항목은 팩스 이미지의 작성자일 수 있다.
요청된 메타데이터 항목을 수신함에 의해, 실행가능한 소프트웨어는 메타데이터 쿼리 라이터(208)가 팩스의 페이지에 대한 Author의 이름을 바꾸도록 요청할 수 있다. 메타데이터 블록(506)의 인플레이스 편집을 수행하기 위하여 고속 메타데이터 인코더(502)가 인스턴스화될 수 있다. 고속 메타데이터 인코더(502)는 TIFF 이미지 파일에 메타데이터를 기입하기 위해 제공되는 인코더 일 수 있다. 고속 메타데이터 인코더(502)는 하나 이상의 메타데이터 라이터(222)와 연동될 수 있는 메타데이터 블록 라이터(218)를 포함할 수 있다.
이를 위해서, 메타데이터 블록 라이터(218)가, 각각의 메타데이터 블록에 대한 참조를 갖고 초기화된, 해당 메타데이터 라이터(222)를 인스턴스화 하도록 메타데이터 블록 리더(214)에 연동된 메타데이터 리더(220)의 목록을 사용할 수 있다. 예를 들어, 메타데이터 블록(506)에 대한 참조(514)를 갖는 메타데이터 리더에 대응할 수 있는 메타데이터 라이터는 메타데이터 블록(506)을 가리키는 참조(516)로 인스턴스화되고 초기화될 수 있다. 또한 메타데이터 블록(510)에 대한 참조(518)를 갖는 메타데이터 리더에 대응할 수 있는 다른 메타데이터 라이터가 메타데이터 블록(510)을 가리키는 참조(520)를 갖고 인스턴스화되고 초기화될 수 있다. 이와 같이, 메타데이터 블록 라이터(218)는 TIFF 이미지 파일(504) 내의 이미지 블록 데이터(508)에 대해 변경되도록 요청된 작성자의 메타데이터 항목을 포함할 수 있는 메타데이터 블록(506)을 식별하여 메타데이터 라이터(222)를 추가할 수 있다. 메타데이터 라이터(222)를 인스턴스화하는 부분으로서, 참조(516)가 메타데이터 블록(506)에 대해 확립되어, TIFF 이미지 파일 스트림(504) 내부에 있는 Author의 메타데이터 항목을 바꾸기 위한 인플레이스 편집을 수행할 있다.
일 실시예에서, 메타데이터가 추가된 메타데이터 블록을 기입하기 위해 이미지 파일 전체를 기입하기보다는, 메타데이터 블록에 패딩을 추가하여 고속 메타데이터 인코더에 대한 충분한 공간을 제공하는 메커니즘이 제공될 수 있다. 예를 들어, 패딩은 이미지 파일에 인코딩을 할 때에 추가될 수 있다. 따라서, 애플리케이션 프로그램처럼 실행가능한 프로그램이, 메타데이터 계층 내에 패딩을 추가할 위치를 식별하기 위한 쿼리 언어를 사용함으로써, 패딩의 크기를 지정할 수 있다. 예를 들어, TIFF 이미지의 경우에서, 애플리케이션 프로그램은 4K의 패딩을 배정하기 위해 4096 값을 갖는 "/ifd/PaddingSchema:padding"과 같은 메타데이터 항목을 지정할 수 있다. 그리고 나서, 메타데이터 라이터가 이미지 파일에 기입할 때에, 미래의 메타데이터 업데이트에 쓰일 4K의 추가적인 공간이 포함될 수 있다.
다양한 실시예에서, 메타데이터 항목이 제거될 수 있을 때에 만들어질 수 있는 이용 가능한 여유 공간을 기록하기 위하여 추적 메커니즘이 또한 사용될 수 있다. 예를 들어, 여유 공간은 데이터 구조 내에 삭제된 데이터의 오프셋 및 크기로 기록될 수 있다. 인플레이스 편집을 하는 동안 새로운 메타데이터가 추가될 때에, 메타데이터는 데이터 구조로부터 배정될 수 있는 이용가능한 여유 공간 내에 기입될 수 있다.
도 6은 이미지 파일 내 메타데이터의 고속 기입에 대해 일 실시예에서 다뤄지는 예시적인 단계를 일반적으로 나타내는 흐름도를 도시한다. 단계(602)에서, 이미지 파일을 열게 하는 요청이 수신될 수 있다. 그리고 나서 단계(604)에서 이미지 파일을 판독하기 위해 디코더를 찾을 수 있다. 이미지 파일의 타입에 기초하여, 그 이미지 타입에 대해 제공되는 디코더가 인스턴스화될 수 있다. 일단 디코더가 발견된다면 이미지 파일에 대하여 메타데이터 블록 리더를 찾을 수 있다. 다음으로, 메타데이터 블록은 메타데이터 블록 리더에 의해 이미지 파일로부터 판독되며, 그리고 나서, 단계(608)에서 메타데이터 블록 내의 메타데이터 항목을 해독할 수 있는 메타데이터 리더가 발견되고 인스턴스화될 수 있다. 메타데이터 블록 내의 메타데이터는 그 후 단계(610)에서 메타데이터 리더에 의해 열거될 수 있다.
일단 메타데이터 블록 내에서 메타데이터가 열거되면, 메타데이터 블록 라이터를 갖는 고속 메타데이터 인코더가 그 후 단계(612)에서 이미지 파일 내에 메타데이터를 기입하기 위해 인스턴스화될 수 있다. 메타데이터 리더에 대응하는 메타데이터 라이터가 단계(614)에서 인스턴스화될 수 있다. 일 실시예에서, 고속 메타데이터 인코더의 메타데이터 블록 라이터가, 각 대응하는 메타데이터 리더에 의해 참조되는 각각의 메타데이터 블록에 대한 참조를 갖고 초기화된, 해당 메타데이터 라이터를 인스턴스화 하도록 메타데이터 블록 리더에 연동된 메타데이터 리더의 목록을 사용할 수 있다. 메타데이터 블록에 대한 참조를 갖고 메타데이터 라이터가 인스턴스화된 후에, 단계(616)에서, 메타데이터는 메타데이터 블록 내에서 수정될 수 있다. 마지막으로, 수정된 메타데이터 블록은 영구적으로 저장되는 이미지 파일에 기입될 수 있으며, 이미지 파일 내로의 메타데이터의 고속 기입을 위한 처리가 종료될 수 있다.
유리하게는, 이미지 파일 내로의 메타데이터의 고속 기입을 위한 시스템 및 방법은, 이미지 파일에 수정된 메타데이터를 기입하기 위해 별도의 이미지 스트림을 사용하지 않은 채 메타데이터의 인플레이스 편집을 허용할 수 있다. 대신에, 고속 메타데이터 인코더가 디코더에 의해 판독되는 동일한 이미지 스트림을 사용할 수 있다. 일 실시예에서, 추후에 추가될 수 있는 메타데이터를 수용하기 위하여 패딩을 메타데이터 블록에 추가하기 위한 메커니즘이 제공될 수 있다. 메타데이터가 추가된 메타데이터 블록을 기입하기 위해 이미지 파일 전체를 기입하기보다는, 메타데이터 블록에 패딩을 추가하여 고속 메타데이터 인코더에 대한 충분한 공간을 제공하는 메커니즘이 제공될 수 있다.
또한, 본 시스템 및 방법은 쿼리 언어를 지원하여 메타데이터 쿼리 리더 및 메타데이터 쿼리 라이터가 쿼리 스트링을 수신하여 그 스트림을 메타데이터 계층 내의 특정한 위치로 분석할 수 있다. 일 실시예에서, 쿼리 스트링은 메타데이터 계층을 통해 내비게이션 경로를 식별하는 네임 리스트에 관련하여 존재할 수 있다. 각각의 네임은 계층 내 특정한 메타데이터 블록일 수 있는 메타데이터 네임스페이스를 참조할 수도 있다. 예를 들어, 쿼리 스트링, "/ifd/exif/xmp/exif:Author"는 내비게이션 경로 => "IFD 리더" -> "EXIF 리더" -> "XMP 리더" ->"exif" 스키마 내 의 속성 "Author"에 대응할 수 있다. 다음의 내비게이션 경로에 의해, 속성 "Author"에 대한 값이 "exif"스키마 내에서 검색될 수 있다. 일 실시예에서, 각각의 메타데이터 네임스페이스는 또한, 네임스페이스 네임 대신에 사용될 수 있는 메타데이터 GUID(global unique identifier), 예를 들면, "/{GUID}/[n]{GUID}/{GUID}:Value"에 의해 고유하게 식별될 수 있다.
만일 지정된 쿼리 스트링이 완전히 검증된 위치에 부합하지 않는다면, 키워드를 완전히 검증된 위치에 맵핑할 수 있는 정책 컴포넌트에 의해 요청이 분석될 수 있다. 정책 컴포넌트는 또한 메타데이터에 대한 고급 요청을 그 아래의 메타데이터 계층 내의 특정한 위치로의 맵핑을 책임질 수 있다. 예를 들면, 메타데이터 항목이 저장될 수 있는 메타데이터 계층 내에 몇 개의 위치가 있을 수 있다. 예를 들어, "Author"는 몇 개의 서로 다른 메타데이터 블록 내에 저장될 수 있다. 정책 컴포넌트는, 특정 메타데이터 항목에 대해 지정된 자리의 선호되는 순서와 같은, 규칙 집합을 사용하므로, 메타데이터 항목에 대한 요청을 메타데이터 내의 특정한 위치에 맵핑할 수 있다.
전술한 자세한 설명으로부터 보이는 바와 같이, 본 발명은 디지털 이미지에 대해 확장가능한 메타데이터 아키텍처에 대해 개선된 시스템 및 방법을 제공한다. 이 시스템 및 방법은 새로운 메타데이터 타입의 추가가 이미지 파일에 더해지고, 새로운 메타데이터 리더 및 라이터가 새로운 메타데이터 타입에 관련된 이미지 파일 내에 메타데이터를 인코딩 및 디코딩하기 위해 쉽게 추가되도록 유리하게 허용할 수 있다. 또한, 열거된 메타데이터 항목은 메타데이터의 인플레이스 편집을 수 행하기 위해 고속 메타데이터 인코더를 사용하여 변경될 수 있다. 본 발명은 메타데이터 항목에 대한 고급 요청을 메타데이터 계층 내에 특정한 위치로 맵핑하기 위해 쿼리 언어를 또한 지원할 수 있다. 여기에서 이해되었듯이, 본 시스템 및 방법은 그러므로 최신 컴퓨팅에 필요한 상당한 이점과 이익을 제공한다.
비록 본 발명은 다양한 수정 및 대안적인 구성을 허용할 수 있지만, 본원에 설명된 몇몇 실시예만이 도면에서 도시되며 위에서 상세히 설명되었다. 그러나, 나타낸 특정한 형태로 본 발명을 제한하고자 하는 의도는 없으며, 도리어, 본 발명의 범위 및 사상 내에 들어가는 모든 수정, 대안적 구조, 및 등가물을 본 발명이 포함하고 있음이 이해되어야 한다. 예를 들어, 본 발명은 어떤 형태의 디지털 비디오, 오디오 등과 같은 메타데이터를 포함할 수 있는 멀티미디어 컨텐츠에 이용될 수 있다.

Claims (20)

  1. 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 컴퓨터 시스템으로서,
    멀티미디어 컨텐츠를 포함하는 파일 내의 메타데이터에 대해 오퍼레이션이 수행되도록 요청하는 실행가능한 소프트웨어 코드;
    상기 실행가능한 소프트웨어 코드에 연동된 디코더로서, 상기 파일 내의 메타데이터 블록을 식별하고 메타데이터 리더를 상기 메타데이터 블록과 관련시키도록 연동된 메타데이터 블록 리더를 갖는 디코더;
    상기 메타데이터 블록 내의 메타데이터를 열거하기 위해 상기 메타데이터 블록 리더에 연동된 메타데이터 리더;
    상기 실행가능한 소프트웨어 코드에 연동된 인코더로서, 메타데이터 라이터를 상기 메타데이터 블록과 관련시키도록 연동된 메타데이터 블록 라이터를 갖는 인코더; 및
    메타데이터를 상기 메타데이터 블록에 기입하기 위해 상기 메타데이터 블록 라이터에 연동된 메타데이터 라이터
    를 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 파일 내의 상기 메타데이터에 대해 오퍼레이션을 수행하기 위한 요청을 수신하기 위해 상기 실행가능한 소프트웨어 코드에 연동된 메타데이터 쿼리 리더를 더 포함하는 시스템.
  3. 제1항에 있어서,
    상기 파일 내의 상기 메타데이터에 대해 오퍼레이션을 수행하기 위한 요청을 수신하기 위해 상기 실행가능한 소프트웨어 코드에 연동된 메타데이터 쿼리 라이터를 더 포함하는 시스템.
  4. 제2항에 있어서,
    상기 파일 내의 상기 메타데이터의 항목에 대한 쿼리를 분석하기 위해 상기 메타데이터 쿼리 리더에 연동된 정책 컴포넌트를 더 포함하는 시스템.
  5. 제1항에 있어서,
    하나 이상의 메타데이터 블록을 가지며, 상기 메타데이터 리더에 연동된 파일을 더 포함하는 시스템.
  6. 제1항에 있어서,
    하나 이상의 메타데이터 블록을 가지며, 상기 메타데이터 라이터에 연동된 파일을 더 포함하는 시스템.
  7. 제1항의 컴퓨터 시스템을 포함하는 컴퓨터-실행가능 컴포넌트를 갖는 컴퓨터-판독가능 매체.
  8. 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 방법으로서,
    멀티미디어 컨텐츠를 포함하는 파일을 열게 하는 요청을 수신하는 단계;
    상기 파일의 타입에 대한 디코더를 찾는 단계;
    상기 파일의 타입에 대한 블록 리더를 찾는 단계;
    상기 파일 내의 메타데이터 블록에 대한 메타데이터 리더를 찾는 단계; 및
    상기 파일 내의 상기 메타데이터 블록 내의 메타데이터를 열거하는 단계
    를 포함하는 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 방법.
  9. 제8항에 있어서,
    상기 파일로부터 컨텐츠의 스트림을 구문 분석하는 단계를 더 포함하는 방법.
  10. 제8항에 있어서,
    상기 메타데이터 리더를 찾는 단계는 상기 메타데이터 블록을 판독하는 단계 및 상기 메타데이터 리더를 상기 메타데이터 블록에 관련시키는 단계를 포함하는 방법.
  11. 제8항에 있어서,
    상기 파일 내의 추가적인 메타데이터 블록에 대한 추가적인 메타데이터 리더를 찾는 단계를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 파일 내의 추가적인 메타데이터 블록에 대한 상기 추가적인 메타데이터 리더를 찾는 단계는 상기 추가적인 메타데이터 블록을 판독하는 단계 및 상기 추가적인 메타데이터 리더를 상기 추가적인 메타데이터 블록에 관련시키는 단계를 포함하는 방법.
  13. 제11항에 있어서,
    상기 파일 내의 상기 추가적인 메타데이터 블록 내의 메타데이터를 열거하는 단계를 더 포함하는 방법.
  14. 제8항의 방법을 수행하기 위한 컴퓨터-실행가능 명령어를 갖는 컴퓨터-판독가능 매체.
  15. 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 방법으로서,
    멀티미디어 컨텐츠를 포함하는 파일을 생성하게 하는 명령을 수신하는 단계;
    상기 파일의 타입에 대해 인코더를 찾는 단계;
    상기 파일의 타입에 대해 블록 라이터를 찾는 단계;
    메타데이터 블록을 상기 파일 내에 기입하기 위한 메타데이터 라이터를 찾는 단계; 및
    상기 파일 내의 상기 메타데이터 블록에 메타데이터를 기입하는 단계
    를 포함하는 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기 위한 방법.
  16. 제15항에 있어서,
    상기 파일에 기입된 메타데이터 블록을 순서화하는 단계를 더 포함하는 방법.
  17. 제15항에 있어서,
    상기 메타데이터 블록에 대한 상기 메타데이터 라이터를 찾는 단계는 상기 파일 내에 기입된 상기 메타데이터 블록에 상기 메타데이터 라이터를 관련시키는 단계를 포함하는 방법.
  18. 제15항에 있어서,
    상기 파일에 기입된 추가적인 메타데이터 블록에 대한 추가적인 메타데이터 라이터를 찾는 단계를 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 파일 내에 기입된 상기 추가적인 메타데이터 블록에 대한 상기 추가적인 메타데이터 라이터를 찾는 단계는 상기 파일 내에 기입된 상기 추가적인 메타데이터 라이터를 상기 추가적인 메타데이터 블록에 관련시키는 단계를 포함하는 방법.
  20. 제19항에 있어서,
    상기 파일 내의 상기 추가적인 메타데이터 블록에 메타데이터를 기입하는 단계를 더 포함하는 방법.
KR1020077018965A 2005-02-17 2005-07-28 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법 KR20070103464A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/062,267 2005-02-17
US11/062,267 US20060184576A1 (en) 2005-02-17 2005-02-17 System and method for extensible metadata architecture for digital images

Publications (1)

Publication Number Publication Date
KR20070103464A true KR20070103464A (ko) 2007-10-23

Family

ID=36816871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077018965A KR20070103464A (ko) 2005-02-17 2005-07-28 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법

Country Status (4)

Country Link
US (1) US20060184576A1 (ko)
KR (1) KR20070103464A (ko)
CN (1) CN101443753A (ko)
WO (1) WO2006088496A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060184554A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images using in-place editing
US7797359B1 (en) * 2005-08-23 2010-09-14 Hewlett-Packard Development Company, L.P. Recursive data naming
US20090006471A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Exposing Specific Metadata in Digital Images
US8775474B2 (en) * 2007-06-29 2014-07-08 Microsoft Corporation Exposing common metadata in digital images
US20100153581A1 (en) * 2008-12-17 2010-06-17 Xerox Corporation Method and system for optimizing network transmission of rendered documents
US8271544B2 (en) 2009-05-01 2012-09-18 Creative Technology Ltd Data file having more than one mode of operation
US8849996B2 (en) * 2011-09-12 2014-09-30 Microsoft Corporation Efficiently providing multiple metadata representations of the same type
KR102380979B1 (ko) * 2015-01-05 2022-04-01 삼성전자 주식회사 이미지의 메타데이터 관리 방법 및 장치
US10187443B2 (en) * 2017-06-12 2019-01-22 C-Hear, Inc. System and method for encoding image data and other data types into one data format and decoding of same

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE59104600D1 (de) * 1990-11-22 1995-03-23 Ascom Tech Ag Empfänger für ein DSSS-Signal.
US6430575B1 (en) * 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
JP4785168B2 (ja) * 2000-01-13 2011-10-05 ディジマーク コーポレイション メタデータの認証および媒体信号の透かしへのメタデータの埋込
US6523046B2 (en) * 2000-02-25 2003-02-18 Microsoft Corporation Infrastructure and method for supporting generic multimedia metadata
US6760721B1 (en) * 2000-04-14 2004-07-06 Realnetworks, Inc. System and method of managing metadata data
US7197158B2 (en) * 2002-06-28 2007-03-27 Microsoft Corporation Generation of metadata for acquired images
KR100511785B1 (ko) * 2002-12-20 2005-08-31 한국전자통신연구원 멀티미디어 컨텐츠 기술 메타데이터 저작 시스템 및 저작방법
US7069270B1 (en) * 2003-02-05 2006-06-27 Oracle International Corporation Automated method and mechanism for converting a single instance application to a multiple instance application
US8374284B2 (en) * 2004-02-12 2013-02-12 Apple, Inc. Universal decoder
US8953908B2 (en) * 2004-06-22 2015-02-10 Digimarc Corporation Metadata management and generation using perceptual features
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
EP1792256B1 (en) * 2004-09-03 2018-03-07 Red Hat, Inc. Methods, systems and computer program products for implementing single-node and cluster snapshots
US7243207B1 (en) * 2004-09-27 2007-07-10 Network Appliance, Inc. Technique for translating a pure virtual file system data stream into a hybrid virtual volume
US7480654B2 (en) * 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US20060184554A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation System and method for extensible metadata architecture for digital images using in-place editing

Also Published As

Publication number Publication date
WO2006088496A2 (en) 2006-08-24
WO2006088496A3 (en) 2009-04-30
CN101443753A (zh) 2009-05-27
US20060184576A1 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
KR102124231B1 (ko) 플레이스홀더 및 콘텐츠 스트리밍 기법
KR102128138B1 (ko) 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법
US6523046B2 (en) Infrastructure and method for supporting generic multimedia metadata
KR102128139B1 (ko) 플레이스홀더에 의한 파일 관리 기법
KR101122841B1 (ko) 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법
KR20070103464A (ko) 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법
US7072983B1 (en) Scheme for systemically registering meta-data with respect to various types of data
KR101130397B1 (ko) 포맷된 문서를 웹 페이지로 변환하는 시스템 및 방법
US7711754B2 (en) System and method for managing data using static lists
US7996427B1 (en) Unified system for accessing metadata in disparate formats
KR20080005491A (ko) 리소스들 간의 효율적 관계 설명
US20060184554A1 (en) System and method for extensible metadata architecture for digital images using in-place editing
US20100217750A1 (en) Archive apparatus, conversion apparatus and conversion program
KR20060094458A (ko) 파일 시스템 항목(들) 및 연관된 엔티티(들)를 직렬화하는시스템 및 방법
CN106648569B (zh) 目标序列化实现方法和装置
JP2005346706A (ja) メディアファイルの移動方法及び装置、並びにその方法を行うためのプログラムが保存された保存媒体
US7421451B2 (en) Padding management for content files
US7548927B2 (en) Abstracted metadata policy component and related architecture
KR101298357B1 (ko) 네트워크를 통해 리소스들에 액세스하는 방법 및 시스템과리소스 식별자 스킴
Harris et al. Bento Specification
KR101201188B1 (ko) 이미지를 위한 확장 가능한 코덱 아키텍처의 제공
KR100631741B1 (ko) 멀티미디어 데이터 처리 방법
JP2009080809A (ja) 携帯用メディア再生装置のデータをアップデートする方法及びこのための装置
JP2008198053A (ja) 仮想フォルダ構築装置及び仮想フォルダ構築方法及びプログラム
CN101350919A (zh) 记录装置、记录方法、计算机程序以及记录介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid