KR100884134B1 - 미디어 샘플을 타임코딩하기 위한 방법 - Google Patents

미디어 샘플을 타임코딩하기 위한 방법 Download PDF

Info

Publication number
KR100884134B1
KR100884134B1 KR1020037002168A KR20037002168A KR100884134B1 KR 100884134 B1 KR100884134 B1 KR 100884134B1 KR 1020037002168 A KR1020037002168 A KR 1020037002168A KR 20037002168 A KR20037002168 A KR 20037002168A KR 100884134 B1 KR100884134 B1 KR 100884134B1
Authority
KR
South Korea
Prior art keywords
time
frame
timecode
media sample
media
Prior art date
Application number
KR1020037002168A
Other languages
English (en)
Other versions
KR20030062316A (ko
Inventor
게리 제이. 술리반
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 KR20030062316A publication Critical patent/KR20030062316A/ko
Application granted granted Critical
Publication of KR100884134B1 publication Critical patent/KR100884134B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • 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
    • G11B27/3036Time code signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Error Detection And Correction (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

일부 실시예에서, 비정수형 프레임 레이트로부터 발생할 수 있는 편이의 양을 포함하는 미디어 샘플로부터 실제 시간을 확인하게 하는 타임코딩 시스템, 방법 및 데이터 구조가 제공된다. 본 발명의 방법은, 타임코드와 미디어 샘플과 관련된 실제 시간 간의 시간차를 기술하는 오프셋 파라미터의 사용을 포함한다. 본 발명의 접근방법은, SMPTE 타임코드 등과 같은 현재의 타임코딩 패러다임과 함께 통합될 수 있고 또는 이와 호환되어 사용될 수 있다. 추가의 실시예는 타임코딩이 프레임의 필드 레벨에서 발생하게 한다. 이렇게 함으로써, 실제 시간 계산이 프레임의 각각의 필드와 관련된 실제 시간을 확인하도록 행해지게 한다. 또한, 다른 실시예는, 비정수 프레임 레이트로 샘플링되는 미디어 샘플과 관련될 수 있는 편이를 감소시키는 것에 관한 새로운 카운팅 보상 방법을 제공한다.
타임코딩, SMPTE, 드롭 카운팅, 톱 드롭, 보톰 드롭

Description

미디어 샘플을 타임코딩하기 위한 방법{METHODS FOR TIMECODING MEDIA SAMPLES}
본 발명은 미디어 샘플을 타임코딩하기 위한 방법, 시스템 및 데이터 구조에 관한 것이다.
타이밍 정보를 기록하고 이용하는 개념은 멀티미디어 응용에 반드시 필요하다. 화상(picture), 비디오, 텍스트, 그래픽 및 사운드는 미디어 스트림의 각각의 샘플과 관련된 시간을 어느 정도 인식하면서 기록될 필요가 있다. 이는, 서로 다른 멀티미디어 스트림을 서로 동기화하기 위해, 사용자가 미디어 스트림을 재생(play)할 때 미디어의 본래 타이밍을 보존하기 위한 정보를 전달하는 데에, 미디어 스트림내의 특정 위치를 식별하는 데에, 또한, 과학적 또는 역사적인 기록을 만들 목적으로 미디어 샘플과 관련된 시간을 기록하는 데에 유용하다. 예를 들어, 오디오 및 비디오가 함께 기록되지만 독립된 미디어 데이터 스트림으로서 취급되면, 이 2개(또는 2 이상)의 스트림의 동기화를 조화시키기 위해 타이밍 정보가 필요하다.
통상, 미디어 스트림(예를 들어, 기록된 오디오 트랙 또는 기록된 비디오 또는 필름 샷(shot))은 각각이 타이밍 정보와 (암시적으로 또는 명시적으로) 관련된 미디어 샘플의 시퀀스로서 나타내어진다. 이러한 미디어 스트림의 좋은 예는, 각각이 소정의 짧은 시간 간격(예를 들어, 통상, 영화 필름의 각각의 프레임에 대해 1/24 초)마다 카메라 뷰를 나타내는 프레임 또는 화상의 시퀀스로서 통상적으로 만들어지는 비디오 및 영화 필름 기록이다. 이러한 화상의 시퀀스가 기록 처리에서 사용된 것과 동일한 초당 프레임 수(프레임 레이트라고 함)로 재생될 때, 그 장면에서 나타내는 물체의 자연적인 움직임의 환영이 시청자에게 생성될 수 있다.
마찬가지로, 사운드는 종종 오디오 파형을 규칙적으로 샘플링하여 디지털 샘플(예를 들어, 48,000 샘플/초를 사용함)의 시퀀스를 생성함으로써, 그리고, 디지털 압축 인코딩 또는 패킷 네트워크 전송(예, 인터넷 전송) 등의 또 다른 처리를 위해 이러한 샘플의 세트를 프레임이라고 하는 처리 단위(예, 64 샘플/프레임)로 그룹핑함으로써 기록된다. 그 후, 오디오 데이터의 수신기는 수신한 오디오의 프레임을 재조합, 디코딩하여, 그 결과 생성된 디지털 샘플의 시퀀스를 전자 음향 기술을 사용하여 사운드로 다시 변환시킨다.
비디오 및 이 비디오와 관련된 오디오 컨텐츠를 동기화하기 위해서와 같이, 미디어 샘플의 다수의 스트림을 조화시키기 위해서는 타이밍 정보를 제대로 기록하고 제어하는 것이 필요하다. 시간에 따른 자연적 샘플의 추이를 나타내지 못하는 미디어를 사용하더라도, 멀티미디어 시스템에서 타이밍 정보를 사용하는 것이 종종 필요하다. 예를 들어, 정지 화상(예를 들어, 사진, 그림 또는 문서)을 어떤 오디오(예, 화상의 컨텐츠 및 이력의 예시적인 설명)와 함께 디스플레이하고자 하면, 정지 화상(시간상 한 프레임 또는 한 샘플만으로 구성된 개체)의 디스플레이의 타이밍은 관련된 오디오 트랙의 타이밍과 조화될 필요가 있다.
이러한 타이밍 정보가 유용한 다른 예는, 사진이 찍힌 일시를 기록할 수 있는 것, 또는 미디어 스트림 내에 편집 또는 뷰잉 포인트 (예를 들어, 카메라가 롤링(rolling)을 시작한지 5 분 후에)를 특정할 수 있는 것을 포함한다.
상술한 각각의 경우, 미디어 스트림의 시간상 샘플 또는 샘플의 그룹은 프레임, 또는 기본 처리 단위로서 식별될 수 있다. 프레임이 시간상 하나 이상의 샘플로 구성되면, 프레임에 대해 표시된 타이밍 정보가 첫째, 마지막 또는 중간 샘플의 시간과 같은 프레임의 어떤 기준점의 시간에 대응한다는 규약이 확립될 수 있다.
어떤 경우, 프레임은 필드라고 하는 더 작은 처리 단위로 더 나뉘어질 수 있다. 이것의 일례는 비월 주사(interlaced-scan) 비디오를 사용하는 경우인데, 화상의 교번 라인의 샘플링은 여기서, 각 화상의 라인의 절반은 한 순간에 한 필드로서 샘플링되고, 그 화상의 라인의 다른 절반은 잠시 후에 제2 필드로서 샘플링되도록 독립적으로 처리된다. 예를 들어, 라인 1, 3, 5 등은 화상의 한 필드로서 샘플링되고, 화상의 라인 0, 2, 4 등은 잠시 후에(예를 들어, 1/50 초 후에) 제2 필드로서 샘플링된다. 이러한 비월 주사 비디오에서, 각각의 프레임은 통상 2개의 필드로 분리된다.
마찬가지로, 데이터 압축 또는 패킷 네트워크 전송의 목적으로 오디오 파형의 64개의 샘플이 한 프레임이 되로록 그룹핑하고, 그 프레임 내의 8개의 샘플 그룹 각각을 한 필드로 그룹핑하는 것을 고려할 수 있다. 이 예에서는, 각각의 프레임은 8개의 필드를 포함하고, 각각의 필드는 8개의 샘플을 포함한다.
당해 기술분야에서 널리 알려진 샘플링된 미디어 스트림을 사용하는 일부 방법에서, 프레임 또는 필드는 샘플의 오버래핑 세트 또는 샘플의 오버래핑 세트의 변환물로 구성될 수 있다. 이러한 행동의 2가지 예는, 겹쳐진(lapped) 직교 변환[1) Henrique Samento Malvar, 겹쳐진 변환을 가지는 신호 처리(Signal Processing with Lapped Transforms), Boston, MA, 아테크 하우스, 1992년, 2) H.S. Malvar 및 D.H. Staelin, "LOT: 블록킹 효과없는 변환 코딩(transform coding without blocking effects)", IEEE 음향, 오디오 및 신호 처리에서의 트랜잭션, 37권, p553~559, 1989년 4월, 및 3) H.S. Malvar, 최소 블록킹 아티팩트를 가지는 블록 처리용 디지털화 신호 처리 시스템을 사용하는 방법 및 시스템(Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts), 미국 특허번호 제4,754,492호, 1988년 6월], 및 오디오 리던던시 코딩[1) J.C. Bolot, H. Crepin 및 A. Vega-Garcia, "인터넷에서의 오디오 패킷 손실의 분석(Analysis of Audio Packet Loss in the Internet)", 디지털 오디오 및 비디오에 대한 네트워크 및 오퍼레이팅 시스템에 관한 제5회 국제 워크샵의 회의록, p163~174, Durham, 1995년 4월, 및 2) C. Perkins, I. Kouvelas, O. Hodson, V. Hardman, M. Handley, J.C. Bolot, A. Vega-Garcia 및 S. Fosse-Parisis, "리던던트 오디어 데이터에 대한 RTP 페이로드(RTP Payload for Redundant Audio Data)", 코멘트 RFC2198에 대한 인터넷 엔지니어링 태스크 포스 요구, 1997년]의 사용이다. 이러한 경우에라도, 시간이 샘플의 프레임 또는 필드와 관련되는 규약을 확립할 수 있다.
어떤 경우에, 정확한 클록 신호에 의해 제어되는 엄격한 계단적 시간으로 모든 샘플이 생성되는 통상의 오디오 처리에서처럼, 샘플링 패턴은 시간상 매우 규칙적일 수 있다. 그러나, 다른 경우, 시퀀스내의 인접 샘플들간의 시간은 시퀀스내에서의 위치에 따라 다를 수 있다.
이러한 행동의 일례는, 패킷 손실을 가지는 패킷 네트워크를 통해 오디오를 전송할 때, 어떤 프레임은 디코더에 의해 수신되지 않는 반면에, 다른 프레임은 본래의 상대 타이밍으로 사용하도록 재생되어야 하는 결과를 가져올 수 있다. 이러한 행동의 다른 예는, 초당 전송되는 프레임의 수가 그 장면의 움직임의 양에 따라 변화하는(작은 변화는 큰 변화보다 전송할 데이터가 작고, 비트/초 단위의 전체 채널 데이터 레이트는 통상적으로 고정되이 있기 때문임) 낮은 비트 레이트의 비디오 회의의 경우이다.
하부 샘플링 구조가 기본 프레임 또는 필드 처리 단위 샘플링 레이트라고 이해되는 그러한 것이라면(일부 처리 단위는 생략될 수 있음), 시간 표현에서 처리 단위를 별개의 카운팅 단위로서 식별할 수 있는 데에 유용하다. 이러한 방식이 설계에 도입되면, 처리 단위의 생략이 발생하는 것은 카운팅 단위의 누락(missing) 값에 의해 인식될 수 있다(예를 들어, 처리 단위 카운트가 1,2,3,4,6,7,8,9,...로서 진행하면, 카운트 번호 5가 누락된 것이 명백함).
하부 샘플링 구조가, 샘플링이 불규칙적이어서 기본적인 처리 단위 샘플링 레이트가 없는 그러한 것일 경우, 필요한 것은 각각의 처리 단위에 대한 실제 시간의 양호한 표현뿐이다. 그러나, 일반적으로, 이러한 경우, 처리 단위 위치의 기준이 될 수 있는 공통 시간 클록이 적어도 존재해야 한다.
(규칙적 또는 불규칙적인 샘플링 시간을 가지는) 다른 경우에도, 멀티미디어 시스템이 미디어 컨텐트의 각각의 처리 단위의 샘플 또는 프레임 또는 필드에 대해 타이밍 정보를 기록, 사용하는 것이 유용하다.
서로 다른 유형의 미디어는 서로 다른 샘플링 레이트를 필요할 수 있다. 그러나, 타이밍 정보가 동일한 정도(precision)로 항상 기억되면, 시간을 표현하는 데에 사용되는 방법에 의해 일정량의 라운딩 오차가 도입될 수 있다. 각각의 샘플과 관련된 기록 시간이 라운딩 오차가 거의 없거나 또는 라운딩 오차가 없는 시스템에서 정확하게 표현되는 것이 바람직하다. 예를 들어, 미디어 스트림이 30,000/1001 프레임/초(북미 표준 NTSC 방송 비디오의 통상적인 프레임 레이트, 즉, 29.97 프레임/초)로 동작하고 시스템에서 사용되는 시간값의 정도가 10-6 초분의 1이면, 이 시간 값은 인간의 관점에서는 매우 정확할 수 있지만, 시스템 내의 처리 소자에는 정확히 규칙적인 샘플 타이밍(예, 1001/30,000 초/샘플)이 그다지 규칙적이지 않는 것으로 보일 수 있다(예를 들어, 샘플들간에서 33,366 클록 증분이 카운팅되고, 이어서 33,367 증분이 카운트되고, 이어서 33,367 증분이 카운트된 후, 다시 33,366 증분이 카운트됨). 이는, 시스템내에서 미디어 샘플을 제대로 취급하는 방법을 결정함에 있어 어려움을 가져온다.
시간을 표현하는 방법을 결정함에 있어 다른 문제점은, 완전히 이상적인 "벽 시계(wall clock)"에 의해 측정될 때 그러하듯이, 그 표현이 실제 시간에 대해 편이(drift)될 수 있다는 것이다. 예를 들어, 시스템이 1001/30,000 초/샘플인 정확하게 규칙적인 샘플 타이밍을 사용하고, 샘플들 간의 시간 간격이 33,367 증분인 것으로 모든 샘플이 표현되면, 이러한 샘플의 긴 시퀀스에 사용되는 전체 시간은 실제 시간 간격 - 하루당 총 한 프레임 정도 -보다 다소 더 길 수 있어, 일 년이 지속된 후에는 5분 이상의 오차가 축적된다.
따라서, 편이는, 샘플의 시퀀스가 진행함에 따라 (수정되지 않으면) 크기가 증가하는 경향이 있는 샘플링 시간의 타임코드 표현에서의 임의의 오차로서 정의된다.
타이밍 정보를 표현하는 방법의 일례는, SMPTE 12M 설계[영화 및 텔레비전 엔지니어 협의회(Society of Motion Picture and Television Engineers), 추천 프랙티스 12M : 1999년](이하, "SMPTE 타임코드"라 함)에 기재되어 있다. 통상, SMPTE 타임코드는, 타이밍이 미국 텔레비전 표준 위원회(NTSC;National Television Standards Committee) 텔레비전 전송 포맷, 또는 유럽의 위상 교번 라인(PAL;Phase Alternation Line) 텔레비전 전송 포맷에 의해 특정되는 텔레비전 비디오 데이터에 사용된다.
SMPTE 타임코드에 대한 배경기술
본래, SMPTE 타임코드는, 비디오 테이프 기술을 다루는 텔레비전 및 영화 업계에서 사용하기 위해 개발된 동기화 시그널링 방법이다. 비디오 테이프에서 처음에 직면한 난관은, 비디오 또는 사운드트랙 편집용 장치를 동기화하는 "프레임 정확한" 방식이 없다는 것이었다. 초기에 다수의 방법이 사용되었지만, 테이프 고유의 편차(slippage) 및 스트레칭 특성 때문에, 프레임 정확한 동기화가 제한적으로만 성공적이었다. SMPTE 타임코드의 도입은 이러한 프레임 정확도 및 이에 통합된 부가적인 기능을 제공하였다. SMPTE에 대한 추가적인 자료는 Cipher Digital 사에 의한 "타임 코드 핸드북(The Time Code Handbook)"에 기재되어 있으며, 이 책에서는, 이 주제에 대한 완전한 처리 및 ANSI 표준 SMPTE 12M-1986을 포함하는 부록을 제공한다. 또한, Yamaha의 Gary Davis 및 Ralph Jones에 의한 "사운드 강화 핸드북(Sound Reinforce Handbook)" 자료에는, 타임코드 이론 및 그 응용에 관한 섹션이 포함되어 있다.
SMPTE 타임코드의 주 목적은 장치의 각종 구성 요소(piece)를 동기화하는 것이다. 이 타임코드 신호는 포맷되어 다른 모든 구성 요소의 기준이 되는 시스템 전반에 걸친 클록을 제공한다. 통상, 이 신호는 비디오 신호와 함께 직접 인코딩되거나 표준 오디오 장치를 통해 분배된다. SMPTE 타임코드가 비디오 용어로부터 다수를 참조하여 사용하지만, 또한 이것은 오디오 응용에서만 사용될 수 있다.
많은 응용에서, 타임코드 소스는 신호를 제공하고, 시스템의 나머지 장치는 이 신호에 동기화하고 이 신호에 따른다. 이 소스는 전용 타임코드 발생기일 수 있거나, 또는 (종종) 주요 기능 외에 타임코드를 제공하는 발생 장치의 한 구성 요소일 수 있다. 이 소스의 일례는, 한 트랙에는 타임코드를 제공하고 다른 트랙에 는 발생 사운드를 제공하는 멀티트랙 오디오 테이프 데크일 수 있다. 종종, 비디오 테이프는 큐 트랙 또는 오디오 사운드 트랙 중 하나를 유사하게 사용하여 타임코드를 기록, 재생한다.
다른 응용, 즉, 비디오에서, 장치는 타임코드를 내부적으로 사용하여 다수의 타임코드 소스를 하나로 동기화한다. 이것의 일례는, 다수의 미리 기록된 장면으로부터 타임코드로 동기화하는 비디오 편집기일 수 있다. 각각의 장면이 다른 장면들과 결합하여 완성품을 만들게 되므로, 그 각각의 타임코드는 완성품에 기록되는 새로운 타임코드로 동기화된다.
SMPTE 타임 어드레스
SMPTE 타임코드는 비디오 신호의 각각의 프레임에 고유의 어드레스를 제공한다. 이 어드레스는 24시간 클록 및 비디오 프레임 레이트에 기초한 8 자리의 수이며, 다음과 같은 포맷으로 Hours, Minutes, Seconds, 및 Frame을 나타낸다.
HH:MM:SS:FF
이러한 필드의 값은, HH에 대해 00 내지 23, MM에 대해 00 내지 59, SS에 대해 00 내지 59, FF에 대해 0 내지 24 또는 29(여기서, 24는 PAL 25 프레임/초 비디오에 대한 최대값이고, 29는 NTSC 30,000/1001 프레임/초 비디오에 대한 최대값임)의 범위이다. 규정에 의해, 하루 중에서 제1 프레임은 00:00:00:01로 표시되고, 최종 프레임은 00:00:00:00(PAL의 경우에는 23:59:59:24, NTSC의 경우에는 23:59:59:29로 표시된 프레임의 후속 프레임)으로 표시된다. 이러한 포맷은 형식상의 클록 시간, 장면의 형식상의 지속 기간 또는 프로그램 소재를 나타내고, 대략적인 시간 계산을 용이하고 직접적이게 한다.
SMPTE 프레임 레이트
프레임은 SMPTE 타임코드 내에서의 최소 측정 단위이고, 필름 또는 비디오의 각각의 "화상"에 대한 직접적인 기준이다. 레이트는, 화상이 움직임의 연출을 제공하기 위해 디스플레이되는 초당 횟수이다. 통상, SMPTE 타임코드를 사용하는 2개의 표준 프레임 레이트(프레임/초), 즉, 25 프레임/초 및 30,000/1001 프레임/초(약 29.97 프레임/초)가 있다. 25 프레임/초 레이트는, SMPTE EBU(PAL/SECAM 컬러 및 b&w)라고 알려진 유럽의 비디오 방식에 기초한다. 30,000/1001 프레임/초 레이트(종종, 근사하여 30 프레임/초라고 함)는 미국의 NTSC 컬러 비디오 방송 방식에 기초한다. 29.97 프레임/초를 사용하면, SMPTE 타임코드를 사용하는 2개의 방법, 즉, "비-드롭(Non-Drop)" 및 "드롭 프레임(Drop Frame)"이 있다.
필름 또는 비디오의 모든 프레임에 대해, 프레임 숫자는 한 카운트씩 진행하여, 사용자가 1/25 또는 1001/30,000 초까지 이벤트의 시간을 늦추게 한다.
또한, 종종, SMPTE 타임코드는 정확히 30 프레임/초의 프레임 레이트로 사용된다. 그러나, 사용자는 이러한 사용을 미국 NTSC 컬러 방송 비디오 방식의 약간 느린 30,000/10001 프레임/초 레이트와는 구별하도록 주의하여야 한다(1000/1001의 조정 계수는, 텔레비전 신호가 최근의 컬러 비디오와 30 프레임/초의 흑백 비디오의 방송을 위한 이전의 설계 간의 호환성을 제공하도록 조정된 방법으로부터 비롯된다).
따라서, SMPTE 타임코드는 비디오 화상에 대한 다음과 같은 파라미터, 즉, Hours, Minutes, Seconds, 및 Frames 각각에 대한 정수의 기록으로 구성된다. 프레임 번호의 각각의 증가는, NTSC 시스템에서는 1001/30,000 초, 및 PAL 시스템에서는 1/25 초의 시간의 증가를 나타낸다.
그러나, NTSC 시스템에서의 초당 프레임의 수(30,000/1001)가 정수가 아니기 때문에, 시간의 SMPTE 12M 타임코드 표현과 실제 "벽 시계" 시간 간에 편이가 발생하는 문제점이 있다. 이 편이는 SMPTE "드롭 프레임" 카운팅으로서 알려진 특별한 프레임 카운팅 방법에 의해 크게 감소될 수 있다. SMPTE 드롭 프레임 카운팅이 없으면, Hours, Minutes, 및 Seconds의 SMPTE 타임코드의 값과 실제 "벽 시계"에 의해 측정된 값 간의 편이는 하루에 86초 이상의 오차를 축적시킨다. SMPTE 드롭 프레임 카운팅을 사용하면, 편이 축적 크기를 약 1,000분의 1만큼 감소시킬 수 있다(그러나, 편이가 완전히 제거되지 않고, 나머지 편이는 여전히 2 이상의 프레임 샘플링 기간임).
SMPTE 타임코드는 비디오 제작 업계에 널리 사용되고 있다(예를 들어, 많은 비디오 테이프 리코더의 설계에 도입됨). 따라서, 일반적인 임의의 미디어 타임코드 설계가 SMPTE 타임코드와 최대로 호환가능하다면, 이것은 매우 유용하다. 이러한 호환성이 달성될 수 있으면, 이것을 이용하여 미디어 타임코드용으로 설계된 장치는 SMPTE 타임코드 전용으로 설계된 다른 장치와 양호하게 작동할 수 있다.
이 명세서내에서, 다음과 같은 용어가 사용된다. 타임코드는 미디어 샘플, 프레임 또는 필드와 관련된 시간을 나타내는 데에 사용되는 데이터를 포함한다. 타임코드의 데이터를 2개의 별도의 유형, 즉, 타임베이스 및 타임스탬프로 구분하는 것이 유용하다. 타임스탬프는 특정 처리 단위(샘플, 프레임 또는 필드)에 대한 타이밍을 나타내는데 사용되는 정보를 포함한다. 타임베이스는 타임스탬프에 사용되는 측정 단위의 기초를 확립하는 정보를 포함한다. 달리 말하면, 타임베이스는 타임스탬프를 정확하게 해석하는데 필요한 정보이다. 통상, 미디어 스트림에 대한 타임베이스는 샘플의 시퀀스 전체에 대해, 또는 적어도 매우 큰 샘플 세트에 대해, 항상 동일하다.
예를 들어, SMPTE 타임코드를 이하의 것들록 이루어진 타임베이스를 가지는 것으로 해석할 수 있다.
Figure 112006058268212-pct00001
시스템이 NTSC 방식인지 또는 PAL 방식인지의 인식(또는 표시), 및
Figure 112006058268212-pct00002
편이를 부분적으로 보상하기 위해, 시스템이 SMPTE "드롭 프레임" 카운팅을 사용하는지의 여부의 인식(또는 표시).
이것이 주어지면, 타임스탬프는 특정 비디오 프레임 각각에 대해 Hours, Minutes, Seconds, 및 Frames 파라미터의 표현으로 이루어진다.
본 발명은, 각종 미디어와 관련하여 향상된 타이밍 시스템, 방법 및 구조를 제공하기 위한 관심에서부터 비롯되었다. 또한, 본 발명은, 현재 사용중인 타임코드, 및 특히, SMPTE 타임코드와 호환가능한 향상된 타이밍 시스템, 방법 및 구조를 제공하기 위한 관심에서부터 비롯되었다.
타임코딩 시스템, 방법 및 데이터 구조는, 일부 실시예에서, 그 타임코드가 비정수형 프레임 레이트로부터 발생할 수 있는 상당한 양의 편이를 포함하는 미디어 샘플로부터 실제 시간을 확인하게 한다. 본 발명의 방법은, 타임코드와 미디어 샘플과 관련된 실제 시간간의 시간차를 설명하는 오프셋 파라미터의 사용을 포함한다. 본 발명의 접근방법은, SMPTE 등과 같은 현재의 타임코딩 패러다임과 함께 통합되어 호환가능하게 사용될 수 있다. 다른 실시예는 타임코딩이 프레임의 필드 레벨에서 발생하게 한다. 이렇게 함으로써, 수행될 실제 시간 계산이 프레임의 필드와 관련된 실제 시간을 확인하게 한다.
또한, 다른 실시예는, 비정수 프레임 레이트로 샘플링되는 미디어 샘플과 결합될 수 있는 편이를 감소시키는 새로운 카운팅 보상 방법을 제공한다.
도 1은 초 및 프레임 파라미터를 가지는 예시적인 타임코드 카운터를 나타내는 도면.
도 2는 오프셋, 초 및 프레임 파라미터를 가지는 예시적인 타임코드 카운터를 나타내는 도면.
도 3은 일 실시예에 따른 방법의 단계를 설명하는 흐름도.
도 4는 일 실시예에 따른 방법의 단계를 설명하는 흐름도.
도 5는 미디어 샘플 프레임에 속하는 필드의 개념을 나타내는 도면.
도 6은 필드 카운터, 오프셋, 초 및 프레임 파라미터를 가지는 예시적인 타임코드 카운터를 나타내는 도면.
도 7은 미디어 샘플 프레임에 속하고 2:3 풀다운에 관련된 필드의 개념을 나타내는 도면.
도 8은 일 실시예에 따른 방법의 단계를 설명하는 흐름도.
도 9는 일 실시예에 따른 방법의 단계를 설명하는 흐름도.
개요
각종 미디어와 함께 사용하기 위한 타이밍 시스템, 방법 및 구조를 설명한다. 각종 실시예는, 미디어 샘플과 관련된 타임코드에 "실제 시간"에 대한 정확한 기준을 제공할 수 있는 수단을 제공한다. 아래에서 설명하는 각종 실시예는, 기존의 타임코드와 함께 사용되여 소정의 샘플, 프레임 또는 필드와 관련된 실제 시간을 확인할 수 있는 오프셋 파라미터를 포함한다.
우선, 아래의 설명은 일 실시예에 따른 예시적인 타임베이스를 설명한 후, 본 발명의 일 실시예에 관련된 예시적인 타임스탬프 파라미터를 설명한다.
타임코드 설계를 위한 타임베이스 파라미터
[표 1]은 일 실시예에 따라 타임코드내에서 사용하기 위한 타임베이스를 특정하기 위한 설계에 사용되는 예시적인 파라미터의 전체 세트를 나타낸다.
이러한 파라미터의 일부는 헤더에서만 특정될 수 있거나, 또는 소정의 시스템 설계에 대해 특정값으로 고정될 수 있다. 다른 방법으로는, 이러한 파라미터의 일부 또는 전체는 모든 타임스탬프와 함께 전송될 수 있다(필드 기반 타임베이스가 시스템에서 필요하지 않다면, BaseFPF 파라미터는 생략될 수 있고 1의 함축값을 가질 수 있다).
타임코드 타임베이스 파라미터
파라미터명 파라미터형 크기(비트) 값의 범위
MaxDays 정수 1 이상 > 0
BaseUPS 정수 16 이상 > 0
BaseUPF 정수 16 이상 > 0
BaseFPF 정수 2 이상 > 0
CountComp ENUM 2 이상 '00','01','10','11'
이러한 파라미터를 사용하여, 파생된 중요 파라미터는 다음과 같이 정의된다.
MaxFPS=ceil(BaseUPS/(BaseFPF·BaseUPF))
여기서, ceil(x)는 인수 x의 수학적 함수로서 정의되고, 음수가 아닌 값 x에 대해, x가 정수이면 x이고, x가 정수가 아니면 x보다 큰 수 중 가장 작은 정수와 같다.
[표 1]에 도시된 파라미터 및 MaxFPS 파라미터는 의미상 다음과 같이 정의된다.
Figure 112006058268212-pct00003
MaxDays: 타임코드 기간이 정의된 최대 일수.
Figure 112006058268212-pct00004
BaseUPS: 초당 타임베이스내의 시간의 기본 단위(클록 틱(clock tick)이라 함)의 수(예, 초당 120,000 틱 또는 초당 50 틱). 이 파라미터는 통상의 정수값을 가질 수 있다. 또한, 이 파라미터는 통상의 정수값으로 나뉘어진 특정 고정 정수 상수로서 정의될 수 있다. 이 정수 상수는 30,000의 정수 배일 수 있다. 또한, 이 파라미터는 하나 이상의 값을 가질 수 있고, 그 중 적어도 하나는 30,000의 정수 배이다.
Figure 112006058268212-pct00005
BaseUPF: 각각의 필드 카운트 증가에 대해 더해지는 시간의 기본 단위(클록 틱이라 함)의 수(예, 필드당 2,002 틱 또는 필드당 1 틱). 이 파라미터는 통상의 정수값을 가질 수 있다. 또한, 이 파라미터는 여러 값을 가질 수 있고, 그 중 적어도 하나는 1001의 정수 배이다.
Figure 112006058268212-pct00006
BaseFPF: 각각의 프레임에 대해 정의된 필드의 수(예, 비월 비디오에서는 프레임당 2 필드, 또는 순차 주사(progressive-scan) 비디오에서는 프레임당 1 필드). 미디어 샘플이 동일한 수의 필드로 각각 나뉘어지지 않으면, BaseFPF 파라미터는 1이다. 이 파라미터는 통상의 정수값을 가질 수 있다.
Figure 112006058268212-pct00007
CountComp: 프레임 카운팅 증가를 보상하여 실제 "벽 시계" 시간과 타임코드 타임스탬프 간의 편이를 감소 또는 제거하는데 사용되는 방법을 나타낸다. 이에 대해서는, 다음과 같이 정의된다.
Figure 112006058268212-pct00008
'00': 카운팅 보상 없음. 편이는, 만약 있다면, 타임코드의 Offset 파라미터에 축적된다. Frames 파라미터는 0부터 MaxFPS-1까지 카운팅하고, 0에서 다시 시작한다.
Figure 112006058268212-pct00009
'01': SMPTE "드롭 프레임" 카운팅 보상. 연속 프레임에 대한 타임스탬프가 각각의 일 분 마크를 지나 증가하므로, 00, 10, 20, 30, 40 및 50인 분을 제외하고, Frames 파라미터 카운팅은 0보다는 2에서 시작한다. Frames 파라미터는 항상 MaxFPS-1까지 카운팅한다. 이 보상을 행한 후에 남아 있는 임의의 편이는 Offset 파라미터에 축적된다.
Figure 112006058268212-pct00010
'10': "톱-드롭(top-drop)" 카운팅 보상. 시간에 대한 편이를 제거하기 위해, Frames 파라미터는 때로는 0부터 MaxFPS-1까지 카운팅하고, 때로는 0부터 MaxFPS-2까지 카운팅한다(톱 카운트를 드로핑함). 톱-드롭 카운팅 보상은 가장 직관적인 방법이다 -예를 들어, 기본 프레임 레이트가 7.3 프레임/초이면, 때로는 1 초에 7개의 프레임이 카운팅되고, 때로는 8개의 프레임이 카운팅된다(따라서, 프레임은 때로는 0부터 6까지 카운팅하고 때로는 7까지 카운팅함).
Figure 112006058268212-pct00011
'11': "보톰-드롭(bottom-drop)" 카운팅 보상. 시간에 대한 편이를 제거하기 위해, Frames 파라미터는 때로는 0부터 MaxFPS-1까지 카운팅하고, 때로는 1부터 MaxFPS-1까지 카운팅한다(보톰 카운트를 드로핑함). 이 카운팅 방법은 톱-드로핑의 카운팅 방법과 유사하지만, 이 경우 생략되는 값은 Frames 파라미터의 가장 큰 값이 아니라 Frames 파라미터값 0이다.
BaseUPS/(BaseFPF·BaseUPF)가 정수이면(이 경우, 어떠한 편이도 축적되지 않으므로), CountComp는 '00'일 것이다. BaseUPS/(BaseFPF·BaseUPF)가 1보다 작으면(이 경우, Frames 파라미터가 0을 초과할 수 없으므로), CountComp는 '01' 또는 '11'이 아닐 것이다. CountComp의 사용에 대한 상세한 정보는 아래에서 제공된다.
타임코드 설계를 위한 타임스탬프 파라미터
[표 2]는 위의 [표 1]에 의해 정의된 타임베이스를 사용하여 특정 타임스탬프의 예시적인 파라미터 전체 세트를 나타낸다. 이러한 파라미터의 일부는, 헤더내에서만 특정될 수 있거나, 또는 소정의 시스템 설계에 대한 특정값으로 고정될 수 있다. 또한, 일부 시스템 설계에서는, 미전송된 파라미터의 일부에 대한 값을 기억 또는 추론하는 수신기에 따라, 일부 파라미터를 다른 파라미터보다 더욱 빈번하게 전송하는 것이 바람직하다(필드 기반 타임코드가 이 시스템에 필요하지 않다면, 필드 파라미터는 생략될 수 있고 0의 함축값을 가질 수 있음).
타임코드 타임스탬프 파라미터
파라미터명 파라미터형 크기(비트) 값의 범위
Discont ENUM 2 '00','01','10','11'
Hours 정수 5 이상 0 내지 24·MaxDays-1
Minutes 정수 7 이상 -59 내지 59
Seconds 정수 7 이상 -59 내지 59
Frames 정수 7 이상 0 내지 MaxFPS-1
Fields 정수 1 이상 0 내지 BaseFPF-1
Offset 정수 16 이상 임의의 정수값
초단위의 실제(실수값) "벽 시계" 시간으로의 변환은, 상술한 표의 정보를 사용하여, 다음과 같이 정의될 수 있다.
t=60·(60·Hours+)+Seconds+(BaseUPF/(BaseFPF·Frames+Fields)+Offset)/BaseUPS
이러한 타임코드 정의는, Hours 및 MaxDays만을 사용하여 최대 범위를 특정하기 보다는, 타임스탬프 정의가 Day 파라미터를 특정하고 Hours가 0 내지 23의 범위로 한정되도록, 직접적인 방법으로 확장될 수 있다. 또는, 타임코드는 DayOfMonth, Month 및 Year을 포함할 수도 있고, 타임베이스는 Year 파라미터의 범위를 (내적으로 또는 외적으로) 특정할 수 있다. 그러나, 윤일(leap days), 윤초(leap seconds) 등을 설명하는 방법에 의문이 생기기 때문에 이러한 정의의 최종 형은 더욱 복잡해질 수 있다.
불연속(discontinuity)은, 2개의 샘플 각각에 대해 나타낸 시간값들간의 차가 이러한 샘플들 간의 실제 시간 간격의 정확한 표현으로서 해석될 수 없는 2개의 연속 샘플들간의 연결이다(타임코드값을 변화시키지 않으면서 스트림을 함께 언제 스플라이싱(splicing)하는가를 지시하는데 유용함).
[표 2]에 도시된 파라미터는 의미상 다음과 같이 정의된다.
Figure 112006058268212-pct00012
Discont: 특정 샘플과 인접 샘플 간의 경계에서 불연속이 있는지의 여부를 특정한다. 고유의 타임스탬프를 각각 가지는 미디어 샘플의 2개의 스트림을 스플라이싱하게 하므로, 이 파라미터는 편집 목적으로 포함하는데 유용하다. 다음과 같이 정의된다.
Figure 112006058268212-pct00013
'00': (인접 샘플 타임코드 상에 표시되지 않으면) 표시된 불연속 없음
Figure 112003005133942-pct00014
'01': 현재 샘플과 후속 샘플간의 불연속
Figure 112003005133942-pct00015
'10': 이전 샘플과 현재 샘플간의 불연속
Figure 112003005133942-pct00016
'11': 이전 샘플, 현재 샘플 및 후속 샘플간의 불연속
다른 방법으로는, '1'의 값이 이전 샘플과 현재 샘플 간의 불연속을 나타낸다는 관례(또는 '1'의 값이 이전 샘플과 후속 샘플 간의 불연속을 나타낸다는 관례)에 따라, Discont 파라미터는 1 비트일 수 있다.
Figure 112006058268212-pct00017
Hours: 3,600으로 승산될 때, 타임스탬프의 콤포넌트로서 추가될 시간의 양(초 단위)을 특정하는 정수 파라미터.
Figure 112006058268212-pct00018
Minutes: 60으로 승산될 때, 타임스탬프의 콤포넌트로서 추가될 시간의 양(초 단위)을 특정하는 정수 파라미터.
Figure 112006058268212-pct00019
Seconds: 타임스탬프의 콤포넌트로서 추가될 시간의 초의 수를 특정하는 정수 파라미터.
Figure 112006058268212-pct00020
Frames: BaseUPF 및 BaseFPF으로 승산되고 BaseUPS로 제산될 때, 타임스탬프의 콤포넌트로서 추가될 시간의 양(초 단위)을 특정하는 정수 파라미터. Frames 파라미터는 미디어 샘플 프레임 각각에 대해 증가되고, 증가된 값이 MaxFPS-1을 초과하면 0으로 설정되고, CountComp 파라미터에 의해 표시된 편이에 대해 조정된다. 이 Frames 파라미터는 MaxFPS-1을 초과하지 않는다.
Figure 112006058268212-pct00021
Fields: BaseUPF로 승산되고 BaseUPS로 제산될 때, 타임스탬프의 콤포넌트로서 추가될 시간의 양(초 단위)을 특정하는 정수 파라미터. Fields 파라미터는 미디어 샘플 필드 각각에 대해 증가되고, 증가된 값이 MaxFPS-1을 초과하면 0으로 설정된다.
Figure 112006058268212-pct00022
Offset: BaseUPS로 제산될 때, 타임스탬프의 콤포넌트로서 추가될 시간의 양(초 단위)을 특정하는 정수 파라미터. Offset 파라미터는, 다른 파라미터가 나타내는 시간과 미디어 샘플 필드의 실제 "벽 시계" 시간 간의 정확한 차를 특정하는 데에 사용된다.
프레임 레이트 카운팅 보상
초당 프레임의 미디어 샘플 레이트가 정수가 아닐 때마다(즉, BaseUPS/(BaseFPF·BaseUPF)가 정수가 아닐 때마다), 샘플링 시퀀스가 진행함에 따라, Hours, Minutes 및 Seconds 파라미터와 Frames 카운트간의 편이에 대해 조정할 필요가 있다. Offset 파라미터는 일정 양의 편이를 설명하는데 사용될 수 있지만, 이러한 목적으로 Offset 파라미터를 사용함에 있어 2가지 문제점이 있다.
Figure 112006058268212-pct00023
너무 많은 편이가 축적되도록 허용된다면, Offset 파라미터에 의해 나타내어질 수 있는 값의 범위를 초과할 수 있다.
Figure 112006058268212-pct00024
너무 많은 편이가 축적되도록 허용된다면, Hours, Minutes 및 Seconds 파라미터는, 통상의 "벽 시계" 시간의 샘플의 근사 배치에 따라 통상의 해석을 잃기 시작한다.
CountComp 파라미터는 카운팅 처리가 편이를 보상하는 방법을 나타낸다.
축적된 편이를 나타내기 위해 필요한 Offset값을 포함하는 변수를 Drift라고 정의하면, 이것이 CountComp 변수와 관계가 있으므로, 카운팅 처리를 특정할 수 있다. 이 기본 샘플링 타이밍의 어떠한 변화도 표시되지 않으면, Offset값은 Drift와 동일하게 설정될 수 있다(그러나, 서로 다른 샘플(아래에서 제공되는 2개의 예)의 타이밍을 표시하기 위해, 필요하다면, Offset은 Drift 이외의 어떤 값으로 설정될 수 있다).
Field 파라미터의 각각의 증가에 대한 카운팅 처리 및 편이 보상은 이하의 C++ 프로세스 정의에 의해 정의될 수 있다. 일부 필드 샘플이 생략된다면(전송되지 않으면), 후속 샘플의 Field 파라미터는 한 추가 시간만큼 증가되어 누락된(missing) 샘플로부터의 시간의 갭을 나타낸다. 이하의 C++ 코드 일부에서, 모든 파라미터는 임의의 길이의 정수 변수를 사용하여 처리된다고 상정한다(즉, 파라미터는 상술한 표에서 정의된 범위를 초과하는 값을 일시적으로 가질 수 있다)
Figure 112006058268212-pct00067
Figure 112006058268212-pct00068
다른 유사한 카운팅 보상 방법은, Hours, Minutes, Seconds 및 Frames 파라미터로 표시된 시간과 프레임의 실제 "벽 시계" 시간 간의 축적된 편이의 계산에 기초하여, 축적된 편이가 최소 BaseFPF·BaseUPF의 일부 임계치를 초과할 때, 일부 프레임 카운트를 생략하는 방법으로서 정의될 수 있다.
예 1
이하의 예는 SMPTE 비-드롭(Non-drop) 카운팅을 가지는 NTSC(약 29.97 프레임/초)의 관점으로 주어진다.
SMPTE NTSC 비-드롭 타임코드는 실질적인 변화없이 CountComp, Hours, Minutes, Seconds 및 Frames의 타임코드 데이터 구조 필드로 표시될 수 있다. 타임코드의 다른 파라미터는 다음과 같이 특정될 수 있다.
Figure 112006058268212-pct00069
Offset 파라미터는 "프레임 레이트 카운팅 보상" 절에서 계산된 바와 같이 Drift의 값으로 설정되어야 한다(초기에 0으로 설정하고, Seconds의 값이 증가할 때마다 30(프레임 기반) 또는 60(필드 기반)만큼 증가함).
SMPTE 타임코드는, 그 파라미터값이 변화없이 유지되어 왔으므로, CountComp, Hours, Minutes, Seconds 및 Frames 파라미터로부터 이후 직접 추출될 수 있다는 것을 유의한다.
일례로서, 다음과 같은 점을 고려하여야 한다.
미국의 비디오 시스템은 본래 30 프레임/초로 설계되었다. 그러나, 비디오 기술의 발전(컬러 텔레비전의 발명)으로 인해, 이것이 약간 변경되었다. 이 프레임 레이트는 1001/1000의 비율만큼 변경되었다. 따라서, 현재, 미국의 표준 비디오의 초당 프레임의 수는 30,000/1001 또는 29.97이다(즉, 29.97 프레임/초).
이것은, Hours, Minutes, Seconds 및 Frames을 카운팅하거나 또는 이것으로 레이블링된 타임코드가 있으면, 약간의 시간이 지난 후, 0부터 29까지 반복적으로 카운팅하면, 타임코드가 나타낼 것 같은 시간과, 실제 시간 또는 한 프레임과 늦게 도달한 일부 다른 프레임간의 실제-시간 또는 시간 경과 간에 편이가 있음을 의미한다. 30 프레임/초라면, 정확한 클록으로 측정하는 실제 시간과 타임코드가 Hours, Minutes, Seconds 및 Frames으로 나타내는 시간 간에 상당한 편이가 축적된다.
"초" 열 및 "프레임" 열을 가지는 예시적인 타임코드 카운터(100)를 도시하는 도 1을 참조한다. "초" 열은 초 단위의 시간 측정치를 나타낸다. "프레임" 열은 카운팅된 프레임의 측정치를 나타낸다(이 예에서는, 간단히 하기 위해 "시" 및 "분"은 생략되었음). 프레임 카운트에 의해 표시되는 실제 시간 경과는 1001/30,000 초/프레임이다. 타임코드는 0에서 시작하고, 즉, 시, 분, 초는 0이다. 프레임 카운트는 1이다. 각각의 프레임이 통과할 때(예를 들어, 타임코드 인코더에서), 프레임은 카운팅되고 타임스탬프로 지정될 수 있다. 이 예에서, 제1 프레임은 (초, 프레임)에 대해 (s=0, f=1)의 타임스탬프로 지정될 수 있다. 후속 증가에서, 초는 여전히 0이지만, 프레임 카운트는 이제 2, 즉, (s=0, f=2)이다. 1초당 다수의 비정수의 프레임이 있으므로, 편이는 타임스탬프에서 축적되기 시작한다.
프레임이 카운팅 업됨에 따라, 프레임 카운터는 29까지 카운팅한 후, 롤링 오버(rolling over)하여 s=1 및 f=0이 된다. s=0, f=0과 s=1, f=0 간의 명목적인 시간 경과는 이상적으로는 1초이어야 한다고 상정한다. 그러나, 실제로는 그렇지 않다. 실제로 발생하는 것은, 1001/30,000의 30 증가 또는 30,001/30,000 초이며, 1초보다 약간 길다. 따라서, 경과한 실제 시간 간격은 타임스탬프 파라미터로부터 확인할 수 있는 것보다 약간 길다. 따라서, s=1, f=0인 시점은, 30,030/30,000 초가 경과한 후에 실제로 발생한다. 30/30,000 초의 차는 오프셋을 사용하여 보상할 수 있는 편이이다.
상술한 실시예에서, 프레임 카운트의 증가에 의해 얼마나 많은 시간 경과가 표시되는지를 이해하는 것이 바람직하다. 카운팅 클록에 있는 초당 단위의 수를 이해하는 것이다. 이 경우, 1/30,000 단위/초로 카운팅한다. 이 값은, 상술한 UPS(단위/초) 파라미터에 의해 표현된다. 따라서, UPS 파라미터는 30,000으로 설정된다. 이제, 프레임 카운트의 증가에 의해 이 단위에서 표시되는 시간 경과의 양을 결정할 수 있다. 이 값은 UPF 파라미터에 의해 표현된다. 이 예에서, UPF 파라미터는 1001이다. 즉, 프레임 카운트가 증가할 때마다, 1/30,000 초의 1001 단위가 있다. 따라서, 프레임 카운트의 증가는 1001/30,000 초와 관련된다.
이들 2개의 파라미터가 주어지면, 실제 시간 경과는 프레임 카운트에 UPF/UPS를 승산하여 확인할 수 있다. 즉,
(프레임 카운트)×(UPF/UPS)=프레임 카운트에 의해 표시되는 실제 시간 경과
제1 간격(여기서, s=0)에서, 제2 파라미터를 취하고, 제2 파라미터에 (프레임 카운트)×(UPF/UPS)를 가산함으로써, 실제 시간을 계산할 수 있다. 즉,
실제 시간=s+(프레임 카운트)×(UPF/UPS), 여기서, s=0
시스템이 후속 초(즉, s=1)로 롤링 오버하면, 이 계산은 더 이상 유효하지 않다. 비정수 프레임 레이트와 정수 카운터의 관련으로 인한 경과한 시간의 차를 고려하여야 하기 때문이다. 이 때, 이 예에서, Offset 파라미터를 사용하여야 한다.
도 2는 "초" 열, "프레임" 열 및 오프셋 열을 가지는 예시적인 타임코드 카운터(200)를 도시한다. 이 예에서, 오프셋 파라미터에 대해 사용되는 특정 값은 특정 비정수 프레임 레이트와 관련된다. 프레임 레이트가 변화하면, 오프셋 파라미터의 특정 값도 변할 수 있다. 따라서, 상술한 예들은 특정 상황에 대한 특정 해결책임을 이해하여야 한다. 따라서, 청구된 범위는, 특정되는 경우를 제외하고는, 이러한 특정 예들에만 한정하는 것으로 해석되어서는 안된다.
또한, Offset 파라미터는, 동일한 클록을 기준으로 할 수 있도록 동일한 단위(단위/초)에 있다. Offset 파라미터는 초기에 0으로 설정된다. 제2 카운터가 후속 값(즉, 1)으로 롤링 오버하면, Offset 파라미터는 30만큼 증가된다. 실제 시간을 계산하는 공식은 다음과 같다.
실제 시간=s+(프레임 카운트×UPF+Offset)/UPS
따라서, s=1, f(프레임 카운트)=0 및 Offset=30일 때, 실제 시간을 계산하면, 1+(0+30/30,000)=30,030/30,000 초가 된다. Offset 파라미터를 가산함으로써, 종래의 카운팅 방법(SMPTE 타임코드)을 사용할 수 있지만, 샘플과 관련된 정확한 시간을 또한 계산할 수 있다.
오프셋은 실제 프레임 레이트의 함수로서 선택된다. 통상, 실제 프레임 레이트는 어떤 분수인 프레임/초라는 것을 상기하자. 이 수의 역수는 초/프레임이다.
상술한 예가 몇 초 동안 진행함에 따라, s=2, f=0인 시점에 도달할 수 있다. 여기서, 오프셋을 30만큼 더 증가시키면, 오프셋은 60이 된다. 실제로는, 오프셋은 시간이 지남에 따라 더욱 증가한다. 각각의 경우, 오프셋이 하는 것은, 종래의 SMPTE 타임코드에 있는 파라미터에서 그 샘플과 관련된 실제 시간을 얻을 수 있는 방법을 알려 주는 것이다.
그러나, 본 발명의 기술의 응용은, 분수 프레임 레이트인 경우에만 한정되어서는 안된다. 구체적으로 말하면, 초당 정수 개의 프레임이 있는 경우,(예, 유럽의 시스템에서는, 25 프레임/초임), 어떠한 편이도 없기 때문에, 오프셋은 항상 0일 수 있다. 그러나, 오프셋을 사용하여 SMPTE 타임코드에서 표시되는 명목상의 시간과는 다를 수 있는 시간을 나타내는 기능은, 예를 들어, 본래 샘플의 샘플링이 SMPTE 타임코드로 표시되는 명목상의 시간에 의해 표시되는 타이밍과는 다르다는 것을 나타내는 기능을 제공하는 것과 같은 다른 용도를 가진다.
대부분은, SMPTE와 같은 기존의 타임코드와 관련된 문제점은, 실제 시간이 어디에서 타임코드와 관련된 클록과 관계있다는 것을 명확하게 이해하지 못한다는 것이다. 상술한 원리를 사용하여, Offset 파라미터가 제공되고, 각각의 프레임, 또는, 아래에서 알 수 있는 바와 같이, 프레임의 일부와 관련된 실제 시간을 확인하는데 사용될 수 있다.
도 3은 일 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적당한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수 있다. 상술한 예에서, 이 방법은 소프트웨어로 구현된다.
단계 300은 하나 이상의 미디어 샘플을 제공한다. 미디어 샘플은 임의의 적당한 미디어 샘플일 수 있다. 또한, 미디어 샘플은 임의의 적당한 포맷으로 제공될 수 있다. 예를 들어, 단지 두 걔를 든다면 미디어 샘플은 프레임, 필드 등을 구비할 수 있다. 단계 302는 타임코드에 오프셋 파라미터를 제공하도록 구성된 타임코드 인코더를 제공한다. 상술한 바와 같이, 오프셋 파라미터를 사용하는 것은, 실제 시간을 정확하게 인식하지 못하는 기존의 타임코드를 사용하게 하고, 어떤 의미에서는 기존의 타임코드 데이터로부터 샘플과 관련된 실제 시간을 확인하는데 사용될 수 있는 파라미터로 리트로피팅되게(retrofitted) 한다는 점에서 이점이 있다.
단계 304는 타임코드 인코더를 사용하여 미디어 샘플을 처리한다. 이 단계는 하나 이상의 샘플에 오프셋 파라미터를 가지는 타임코드를 제공함으로써 구현될 수 있다. 샘플이 처리되면, 단계 306은 미디어 샘플을 수신기에 제공한다. 이 단계는 임의의 적당한 방법으로 구현될 수 있지만, 타임코드가 미디어 샘플에 제공됨과 동시에 반드시 구현될 필요는 없다. 예를 들어, 특정 영화가 초기에 제작될 때, 타임코드가 제공될 수 있다. 단계 306은 영화를 수신하는 데에 관심이 있는 각종 실체, 주목적인 각종 실제, 즉, 편집자, 벤더 등에 영화가 배급될 때 분배될 수 있다.
단계 308은 오프셋 파라미터를 갖춘 타임코드를 가지는 미디어 샘플을 수신한다. 이 단계는 임의의 적당한 방법으로 구현될 수 있다. 예를 들어, 이 단계는 샘플을 편집하는 것에 관심이 있는 편집자에게 미디어 샘플을 제공함으로써 구현될 수 있다. 단계 310은 오프셋 파라미터를 사용하여 하나 이상의 샘플과 관련된 시간을 계산한다. 계산된 시간은 편이가 없는 것이 바람직하다.
도 4는 타임코드에서 오프셋 파라미터를 제공하는 한 방법을 설명하는 흐름도이다. 이하에 설명된 방법은, 어떤 측면에서는, 단계 304를 개선한 것이다. 단계 400은 다수의 미디어 샘플을 제공한다. 단계 402는 오프셋 파라미터를 가지는 타임코드를 제공한다. 단계 404는 제1 미디어 샘플을 획득한다. 그 후, 단계 406은 오프셋 파라미터를 가지는 타임코드를 미디어 샘플과 통합한다. 단계 408은 소정의 조건이 발생하였는지의 여부를 판정한다. 임의의 적당한 조건이 사용될 수 있다. 상술한 예에서, 이 조건은 타임코드의 초 카운터가 반전되었는지의 여부에 관련되어 있다. 이하의 일부 예에서, 소정의 수의 프레임이 드로핑되면, 소정의 조건이 발생한다.
단계 408에서, 이 조건이 발생하지 않았다고 판정하면, 단계 410은 후속 타임코드(Offset 파라미터를 포함하거나 포함하지 않을 수 있음)를 획득하고 단계 404로 되돌아간다. 한편, 단계 408에서, 이 조건이 발생하였다고 판정하면, 단계 412는 Offset 파라미터를 조정하고 단계 410으로 되돌아가 후속 타임코드를 획득한다. Offset 파라미터의 조정은, 처리되는 미디어의 소정의 형태에 따라, 적당한 방법으로 구현될 수 있다. 상술한 예에서, Offset 파라미터는, 소정의 양만큼 증가시킴으로써 조정되었다. 어떤 상황에서는, Offset 파라미터가 감소될 수 있다. 이러한 예는 아래에서 설명한다.
일단 Offset 파라미터가 조정되면, 단계 410은 후속 타임코드(조정된 Offset 파라미터를 포함하는 것이 바람직함)를 획득하고 단계 404로 되돌아간다.
이러한 방법으로, 다수의 미디어 샘플에 샘플과 관련된 시간 측정치를 확인하는데 사용될 수 있는 오프셋 파라미터가 제공될 수 있다. 이 시간 측정치는, 타임코드가 비정수 프레임 레이트와 결합되기 때문에, 일부 편이를 반드시 포함하는 타임코드와 관련된 것보다 더 정확한 시간 측정치인 것이 바람직하다.
예 2
이하의 예는, SMPTE 드롭 카운팅을 가지는 NTSC(약 29.97 프레임/초)의 관점에서 주어진다.
미국의 NTSC 컬러 비디오는 약 29.97 프레임/초로 운영된다. 30 프레임/초로 프로그램 소재와 동기화되면, 매초 0.03 프레임이 남게 되고, 한 시간이 되면 3.6 초 즉 108 초과 프레임으로 늘어난다. 드롭 프레임 타임코드는 동기화 문제를 일으킬 수 있는 이러한 편이를 감소시키기 위해 개발되었다. 타임코드의 시퀀스에서 일부 특정 타임코드를 "드로핑"함으로써, 편이를 감소시킨다. SMPTE 드롭 프레임 타임코드에서 사용되는 조정 방법은, 매 10분(00, 10, 20, 30, 40, 50분)을 제외하고는 매분 2개의 타임코드 값을 드로핑한다. 예를 들어, 01:22:59:29에서, 01:23:00:00, 01:23:00:01 및 01:23:00:02 순으로 진행하는 대신에, 01:23:00:02로 바로 진행한다. 코드 01:23:00:00 및 01:23:00:01을 드로핑한다. 이렇게 함으로써, 타임코드는 상당한 기간 동안 실제 시간에 훨씬 가깝게 운영될 수 있다.
SMPTE NTSC 드롭 프레임 타임코드는, 실질적인 변화없이 CountComp, Hours, Minutes, Seconds 및 Frames의 타임코드 데이터 구조 필드로 표현될 수 있다. 타임코드의 다른 파라미터는 다음과 같이 특정되어야 한다.
Figure 112006058268212-pct00070
Offset 파라미터는 상술한 C++ 코드에 의해 계산된 Drift 값으로 설정되어야 한다(즉, 초기에 0으로 설정하고, 초의 값이 증가할 때마다 30(프레임-기반) 또는 60(필드-기반)만큼 증가하지만, 상술된 유사 C 코드에 나타나 있는 바와 같이 2개의 프레임 카운트가 일시 위치에서 드롭핑하는 것과 함께 발생하지 않으면, 대신 1972(프레임-기반) 또는 3944(필드-기반)만큼 감소됨).
SMPTE 타임코드는, 그 파라미터 값이 변화없이 유지되었으므로, CountComp, Hours, Minutes, Seconds 및 Frames 파라미터로부터 이후에 직접 추출할 수 있다는 것을 유의한다.
본질적으로, 드롭 프레임 카운팅에서 Offset 파라미터를 결정하는 것은, Offset 파라미터가 드롭핑된 값을 보상하도록 조정되는 것을 제외하고는, 상술한 예와 많이 동일한 방법으로 동작한다. 구체적으로 말하면, 초 카운터가 초기의 카운트로 롤링 오버할(즉, 29에서 0으로) 때마다, 오프셋은 30만큼 증가된다. 그러나, 드롭핑된 값이 발생할 때, 오프셋 파라미터를 조정하기 위한 특정 규칙이 있다. 구체적으로 말하면, 프레임 카운트가 생략될 때, 오프셋을 30만큼 증가시키는 대신에, 소정의 값만큼, 이 경우 1972만큼 감소된다.
Offset 파라미터를 감소시키는데 사용되는 값은 다음과 같이 결정된다. 초 카운터가 롤링 오버할 때, 통상, 30을 가산한다. 그러나, 2개의 프레임 카운트가 드롭핑된다는 사실을 고려하여야 한다. 이는, 2002/30,000의 네거티브 오프셋을 구성한다. 즉, 2002-30=1972-소정치이다.
예 3
이하의 예는, SMPTE 타임코드를 가지는 PAL(50 필드/초)의 관점에서 주어진다. SMPTE PAL 타임코드는 실질적인 변화없이 CountComp, Hours, Minutes, Seconds 및 Frames의 타임코드 데이터 구조 필드로 표현될 수 있다. 타임코드의 다른 파라미터는 다음과 같이 특정되어야 한다.
Figure 112006058268212-pct00071
오프셋 파라미터는 상술한 C++ 코드에 의해 설명된 프로세스에 의해 계산된 Drift 값으로 설정되어야 한다(이 경우, 항상 0).
SMPTE 타임코드는, 파라미터값이 변화없이 유지되었으므로, CCountComp, Hours, Minutes, Seconds 및 Frames 파라미터로부터 이후 직접 추출할 수 있다는 것을 유의한다.
예 4
미국에서 필름이 방송될 때, 통상, 필름 소재는 24 프레임/초로 촬영된다. 그러나, 통상, 방송은 30,000/1001 프레임/초로 행한다. 따라서, 비디오의 각각의 필드를 주기적으로 반복하여 내용을 조정하는 "2:3 풀다운"("3:2 풀다운"이라고도 함)이라고 하는 관행이 있다. 이 실시예의 한 목적은, 24 프레임/초로 촬영되어 비디오가 30,000/1001 프레임/초로 방송될 때, 적당히 구성된 수신기가 각각의 비디오 프레임을 구비하는 각각의 필드의 본래 필름 프레임으로의 본래 관련을 확인할 수 있고, 각각의 필드의 근사 상대 타이밍을 확인할 수 있도록, 비디오를 타임스탬핑하는 방법을 제공하는 것이다.
예를 들어, 도 5 및 이하의 설명을 생각해보자. 예를 들어, 비디오 프레임은 2개의 필드, 즉, 하나의 지정 F1 및 다른 지정 F2를 가질 수 있다. 비디오 프레임이 24 프레임/초로 촬영될 때, 각각의 필드는 동시에 촬영된다(2개의 필드를 포함하는 프레임이 동시에 촬영되기 때문임). 즉, 촬영된 본래의 비디오에 F1 및 F2와 관련된 타임코드가 있다면, 동일한 타임코드 값을 가져야 한다.
그러나, 2:3 풀다운 처리는 방송될 때 이러한 필드를 소정의 방법으로 반복하고, 상이한 시간에 필드를 방송한다. 예를 들어, 시각 1에 필드 F1을 방송하고, 이어서 다른 시각 2에 필드 2를 방송하고, 이어서 또 다른 시각 3에 필드 3을 방송한다. 공통 프레임의 각각의 필드가 반복될 때, 이 필드들이 사실상 동시에 샘플링되었지만, 상이한 시간에 방송되고 있다는 것을 명심한다.
NTSC 비디오에서 사용하기 위해 "2:3 풀다운"을 사용하여 변환되고, 1001/1000의 비율만큼 스트레칭된 24 화상/초 필름의 각각의 필드에 대한 타임코드는, 오프셋 파라미터를 통해, NTSC 필드-지향 방송에 대한 변환된 비월 타이밍의 기초가 되는 화상의 순차-샘플링 특성 및 스트레칭된 타이밍을 나타내도록 생성된다.
통상, 24 화상/초의 필름 소재 샷은, 각각의 화상을 주사하여 교번 라인의 2개의 필드를 생성하고, 4개의 화상의 모든 시퀀스에서, 화상의 제1 및 제2 필드를 전송한 후 제2 및 제4 화상마다 제1 필드의 전송을 반복하여, 모든 4개의 필름-프레임 24 프레임/초 화상을 30,000/1001 프레임/초 비디오의 10개 필드로 변환함으로써, NTSC 비디오로 변환된다. 이는, 1001/1000 정도로 전체 타이밍을 느리게 하고, 필름이 비월 비디오의 필드로서 디스플레이되도록 한다. 그러나, 어떤 필드가 실제로 샘플링된 타이밍에 함께 속하는지를 식별함으로써, 하부의 비-인터레이스드(non-interlaced) 화상을 복구할 수 있는 것이 유용하다.
이상적으로 발생하여야 하는 것은, 특정 필드가 다른 관련된 필드와 정확히 동시에 샘플링되었다는 것이 표시되어야 한다는 것이다. 상술한 실시예에 따르면, 필드 반복이 방송 필름에서 발생할 때, 비디오의 각각의 필드에서 실제 시간을 볼 수 있는 방법이 있다. 이 방법은, 상술한 Offset 파라미터 및 필드 카운터를 사용하여 행해진다. 그러나, 행해지는 방법을 구체적으로 설명하기 전에, 다음과 같은 점을 고려하여야 한다.
디스플레이가 약 60 회/초 미만의 레이트로 리플레싱되면, 인간의 눈은 디스플레이의 밝기에 따라 플리커를 감지할 수 있다. 인간에게 디스플레이되고 있는 것의 플리커 레이트가 매우 높다면, 당신의 눈은 플리커를 감지할 수 없다.
동작을 나타내는 것과 플리커를 없애는 것 간에 흥미로운 타협점(trade off)이 있다. 초창기의 텔레비전에서는, 디스플레이는 동작을 보여주기 위해 여러 번 다시 채색되어야 했다. 동작을 보여주기 위해 전체 디스플레이를 다시 채색하여야 하는 것을 피하기 위해, 인터리브드(interleaved) 디스플레이의 개념이 개발되었다. 이 개념은, 한 번에 비디오의 라인의 반을 디스플레이하고, 1/60 초 후에 라인의 나머지 반을 디스플레이하는 단계를 포함한다. 이렇게 함으로써, 시청자는 동작을 정상적으로 감지할 수 있고, 플리커도 제거할 수 있다.
그러나, 이러한 접근방법을 사용하면, 1 초에 30개의 실제 전체 화상만을 얻을 수 있고, 즉, 더 정확하게 말하자면, 1 초에 60개의 반의 화상을 얻을 수 있다. 따라서, 디스플레이상에 수직으로 보여지고 있는 것을 본다면, 0을 상부 라인이라고 하고 1을 후속 라인이라고 하는 등 카운팅하면, 시각 1에서 볼 수 있는 것은 라인 0, 2, 4, 6, 8 등이고, 1/60 초 후에는, 라인 1, 3, 5, 7, 9 등을 볼 수 있다.
비디오의 프레임은 디스플레이상에 전체 라인의 세트를 구비한다. 비디오의 필드는, 상술한 바와 같이, 디스플레이상에 홀수 개 또는 짝수 개의 라인을 구비한다. 일 실시예에 따르면, 프레임상에만이 아니라 각각의 특정 필드 상에 타임 태그를 가지는 기능을 제공하는 타임코드 표현이 제공된다. 이 타임 태그는, 일반적으로 샘플링된 다른 필드와는 다른 시간에 방송된다는 사실에도 불구하고, 각각의 필드가 샘플링된 실제 시간을 제공하도록 처리될 수 있다. 이는, 단지 프레임에만 타임코드 표현을 제공하는 SMPTE 기술에 대한 개선례이다.
각각의 필드가 타임 스탬핑되는 일례로서, 예시적인 타임코드 카운터(600)를 도시하는 도 6을 참조한다. 이 특정 타임코드 카운터에서, 상술한 콤포넌트는 프레임 카운터(602), 초 카운터(604), 오프셋 카운터(606) 및 필드 카운터(608)를 포함한다. SMPTE 타임코드 카운터에 포함될 수 있는 다른 표준 콤포넌트(즉, 시, 분)는 본 설명에서는 생략되었다.
이 예에서, 비디오의 프레임당 2개의 필드가 있다. 비디오에서, 각각의 필드가 짝수 개 또는 홀수 개의 라인과 관련되어 있다. 따라서, 필드 카운터(608)는 0과 1을 카운팅함으로써 각각의 필드를 카운팅한다. 어떤 측면에서는, 이것은 프레임 카운터가 프레임을 카운팅하는 방식과 유사하다. 구체적으로 말하면, 필드 카운터(608)는 필드 카운팅을 프레임의 서브-단위로서 다루도록 구성된다.
따라서, 필드-기반 타임코드를 구축하려고 하면, 이 예에서, 프레임에는 2개의 필드가 있다. 이는, 초당 단위의 수가 2배가 되는 것을 의미하며, 각각의 프레임이 1001/30,000 초가 되는 대신에, 각각의 필드가 시간의 절반, 즉, 1001/60,000 초가 될 필요가 있기 때문이다. 따라서, 프레임에는 2개의 필드가 있고, 프레임의 제1 필드가 발생하고 1001/60,000 초 후에 제2 필드가 발생한다.
이것이 그 경우이며, 도 6을 다시 참조한다. 프레임 카운터(602)가 증가할 때마다. 필드 카운터(608)는 2배 증가한다. 즉, "0:0:0:0"(즉, 제1 행) 후에, 필드 카운터는 증가하여 타임코드 값이 "1:0:0:0"이 된다. 따라서, 필드과 관련된 실제 시간을 계산하기 위해, 상술한 프레임 카운터만을 사용하여 시간을 계산하는 대신에, 이하의 방정식에 의해 실제 시간이 주어진다.
t=s+((필드_카운터+FPF*프레임_카운터)UPField+오프셋)/UPS
이 방정식은, 예를 들어, 30,000/1001 프레임/초로 비디오를 수신하지만 24 프레임/초 필름과 관련된 본래 타이밍 정보를 추출하고자 하는 수신기를 프로그래밍하는데 사용될 수 있다. 이는, 1001/1000 정도로 시간 지속 기간의 작은 스트레칭을 포함할 수 있지만, 오프셋 계수 없이 동작하므로, 전송되는 필드의 규칙적-이격 특성을 왜곡시키지 않는다.
이러한 접근방법은, 프레임에 정수 개의 필드가 있고, 프레임 카운터만 있는 대신에, 각각의 필드가 그 필드와 관련된 실제 시간을 계산하는데 사용할 수 있는 정보를 제공하는 고유의 타임스탬프를 갖는 것을 가능하게 하는 추가의 필드 카운터가 제공된다는 것을 인식한다.
SMPTE 비-드롭 카운팅 방식의 NTSC의 23.976 프레임/초
24,000/1001(약 23.976) 프레임/초로 스트레칭되는 하부 화상 샘플링 타이밍은, 다음과 같이, SMPTE 비-드롭 타임코드의 기초가 되는 것으로서 나타내어질 수 있다.
Figure 112006058268212-pct00072
우선, 5개의 구성 요소를 갖는 어레이를 다음과 같이 정의한다. Z[5]={0, -2002, 1001, -1001, -3003}. 다음, Offset을, 제1 전송 필드에 대해 Drift+Z[0]으로, 제2 전송 필드에 대해 Drift+Z[1]로, 제3 전송 필드(제2 전송 화상의 제1 필드)에 대해 Drift+Z[2]로, 제4 전송 필드에 대해 Drift+Z[3]으로, 제5 전송 필드에 대해 Drift+Z[4]로, 제6 전송 필드에 대해 Drift+Z[5]로, 제7 전송 필드에 대해 Drift+Z[0]으로, 제8 전송 필드에 대해 Drift+Z[1] 등으로 설정하고, 여기서, Drift는 각각의 필드에 대해서 상술한 C++에서 설명한 바와 같이 계산된다(초기에 0이고, Seconds 파라미터가 증가할 때마다 120만큼 증가함).
하부 화상 샘플링 타이밍을 나타내는 상술한 접근방법의 일례로서, 24 프레임/초로 촬영되었지만, 2:3 풀다운을 사용하여 30,000/1001 프레임/초로 방송되는 비디오의 그래픽 표현을 도시하는 도 7을 참조한다. y축은 각각의 프레임의 수직축을 나타내고, 제1 필드를 나타내는 "상부 필드", 및 제2 필드를 나타내는 "하부 필드"로 나뉘어진다. x축은 시간축이고, 각각의 프레임으로부터의 각각의 필드가 30,000/1001 프레임/초 풀다운 구성으로 수신될 때의 시간을 나타낸다.
이 예에서, 프레임 A, B, C 및 D로 지정된 의 4개의 비디오 프레임이 있다. 상술한 그래픽 표현을 얻기 위해, 필름의 한 프레임(예, 프레임 A)이 취해지고, "상부 필드"내의 라인이 전송된다. 이 필드는 700에 도시되어 있다. 그 후, 전송되지 않은 라인(즉, "하부 필드"(702))이 전송된다. 그 후, 후속 프레임, 즉, 프레임 B가 처리되고, 상부 필드(704) 및 하부 필드(706)를 전송하고 상부 필드(704)를 반복 전송함으로써, 3개의 필드가 전송된다. 다음, 프레임 C에 대한 하부 필드(708)를 전송하고, 이어서 프레임 C에 대한 상부 필드(710)를 전송한다. 최종적으로, 하부 필드(712) 및 상부 필드(714)를 전송하고 하부 필드(712)를 반복 전송함으로써, 프레임 D에 대한 3개의 필드가 전송된다.
그 후, 한 프레임의 2개의 필드를 다른 프레임의 3개의 필드로 교체하는 프로세스가 반복된다. 한 프레임을 구비하는 필드의 모든 라인이 동시에 샘플링되었다. 그러나, 이들 라인 또는 필드는 상이한 시간에 전송된다. 그 결과, 하나 걸러 24 프레임/초 프레임은, 예를 들어, 영화를 샷으로서 시청하는 경우 통상적으로 지속될 수 있는 것보다 더 길게 지속되고, 나머지 프레임은 본래 타이밍이 나타내는 것보다 다소 적은 시간 동안 디스플레이되어, 평균하여, 대략 정확한 프로그램 전체 지속 기간을 만들어낸다.
구체적으로 말하면, 이 프로세스가 제공하는 것은, 24 프레임/초에서 4개의 프레임 시간(1/24 초의 4개의 간격=0.166666) 동안, 10*(1001/60,000) = 10,010/60,000=0.16683333인 비디오의 10개의 필드를 얻을 수 있다. 이러한 2개의 값은 대략 동일하고, 1001/1000 정도만 다르다.
그러나, 여기에 문제점이 있다. 구체적으로 말하면, 상술한 실시예 전에 2:3 풀다운 형식으로 비디오를 수신하고, 그 비디오를 샘플링된 본래 시간으로 재생하려고 하면, 그렇게 할 수 없다. 즉, 샘플(여기서, 각각의 필드는 상이한 타임스탬프를 가짐)의 실제 방송 시간을 보려고 하는 대신에, 샘플(여기서, 예를 들어, 동일한 프레임의 각각의 필드는 동일한 스탬프를 가짐)의 본래 타이밍을 보기를 원한다.
따라서, 이상적으로는, 원하는 것, 및 사실 상술한 실시예가 제공하는 것은, 필드의 실제 샘플 시간을 가지는 각각의 필드 상의 타임스탬프이고, 또는 필드가 상이한 시간에 전송됨에도 불구하고, 필드의 실제 샘플 시간을 확인하는데 사용될 수 있다.
이 실시예는, 근본적으로 부정확한 시간 간격의 세트(비디오의 각각의 필드의 방송 시간과 일치하는 시간 간격의 세트)를 나타내는 대신에, 각각의 필드가 1001/1000 정도로 약간 스트레칭된 본래의 필름 프레임과 관련된 시간을 나타내는 필드에 타임코드를 두는 방법을 제공한다. 따라서, 비디오 수신기는, 서로에 대해 정확한 시간에 샘플링될 때, 데이터를 본래의 형태로 되돌아가게 할 수 있는 방법을 알 수 있다.
이것을 행하는 방법의 일례로서, 아래의 방정식, 도 6 및 아래의 예를 상정한다.
t=s+((필드_카운터+FPF*프레임_카운터)UPField+오프셋)/UPS
이 경우, UPField=2002이고(계산하는 시간들간에 절반인 시간을 나타낼 필요가 있기 때문에), UPS=120,000이고(24 프레임/초 및 30 프레임/초 간의 상호작용 때문), FPF=2이다.
제1 필드에 대해서는, s=0이고, 필드_카운터=0이고, 프레임_카운터=0이고, 오프셋=Z[0] 또는 0이다. 따라서, 예측한 바와 같이, 시각 t=0이다. 또한, 제2 필드(제1 필름 프레임의 제2 필드)에 대해서는, 그 필드가 제1 필드와 동시에 포착되었으므로, 시각 t=0이라고 예측할 수 있다. 이 경우, s=0이고, 필드_카운터=1이고, 프레임_카운터=0이고, 오프셋=Z[1] 또는 -2002이다. 상술한 방정식에 이 수들을 대입하면, 예측한 바와 같이, t=0+((1+2*0)*2002-2002)/120,000=0이다. 제3 필드(제2 필름 프레임의 제1 필드)에 대해서는, 시간 t=1001/24,000이라고 예측할 수 있고, 이는 후속 필름 프레임에 있다는 것을 나타낸다. 이 경우, s=0이고, 필드_카운터=0이고, 프레임_카운터=1이고, 오프셋=Z[2] 또는 1001이다. 상술한 방정식에 이 수들을 대입하면, 예측한 바와 같이, t=0+((0+2*1)*2002+1001)/120,000=3003/120,000 =1001/24,000이다.
SMPTE 드롭-프레임 카운팅 방식의 NTSC의 23.976 프레임/초
24,000/1001(약 23.976) 프레임/초로 스트레칭되는 하부 화상 샘플링 타이밍은, 다음과 같이, SMPTE 드롭 프레임 타임코드의 기초가 되는 것으로서 나타내어질 수 있다.
Figure 112006058268212-pct00073
5개의 구성 요소를 갖는 어레이 Z[5]={0, -2002, 1001, -1001, -3003}를 정의한다. 오프셋을, 제1 전송 필드에 대해 Drift+Z[0]으로, 제2 전송 필드에 대해 Drift+Z[1]로, 제3 전송 필드(제2 전송 프레임의 제1 필드)에 대해 Drift+Z[2]로, 제4 전송 필드에 대해 Drift+Z[3]으로, 제5 전송 필드에 대해 Drift+Z[4]로, 제6 전송 필드에 대해 Drift+Z[5]로, 제7 전송 필드에 대해 Drift+Z[0]으로, 제8 전송 필드에 대해 Drift+Z[1] 등으로 설정하고, 여기서, Drift는 상술한 C++에서 도시된 바와 같이 계산된다(즉, 초기에 0이고, Seconds 파라미터가 증가할 때마다 120만큼 증가하지만, 이것이 일시 위치에서 2개의 프레임 카운트 드롭핑에 따라 발생하지 않으면, 그 경우 Drift는 대신 7888만큼 감소함).
사실상, 상술한 2개의 실시예는, 상이한 포맷, 여기서는, 30,000/1001 프레임/초로 스트레칭된 프레임의 타임스탬프를, 적당한 상대적 샘플링 시간을 가지는 프레임으로의 필드 서로간의 본래 결합을 1001/1000 정도로 본래 타이밍을 소량 조정하면서 제공하도록 처리할 수 있도록, 각각의 필드를 타임-스탬핑하는 방법을 제공한다. 이 실시예들에 따르면, 공통 프레임을 구비하는 필드는, 실제 방송 시간과 관련된 시간값보다는, 동일한 샘플링된 시간 값으로 평가될 수 있다.
다른 타임코드에 대한 설계 개선례
상술한 실시예들은 다른 타임코드를 명확하게 개선할 수 있는 특성을 가진다. 이러한 특성의 구체적 예는 아래에서 설명한다.
SMPTE 타임코드에 대한 개선례
비디오 제작 업계에 널리 사용되는 타임코드는 SMPTE 타임코드로 알려져 있고, 일반적으로 표 3에 도시된 것과 동일한 방식으로 나타내어진다. 이것은 아주 일반적으로 사용되므로, 비디오 제작 업계에서 SMPTE 타임코드와 상호작용하는 것은 필수이다.
SMPTE 타임코드
파라미터명 파라미터형 크기(비트) 값의 범위
DropFlag 부울 1 0 또는 1
NTSCvsPAL 부울 1 0 또는 1
Hours 정수 5 이상 0 내지 23
Minutes 정수 6 이상 0 내지 59
Seconds 정수 6 이상 0 내지 59
Frames 정수 5 이상 0 내지 29 / 0 내지 24
NTSCvsPAL이 0 이면, BaseUPF=1001 및 BaseUPS=30,000 이고, NTSCvsPAL이 1 이면, BaseUPF=1 및 BaseUPS=25 이다. BaseFPF는 암시적으로 1 이지만, SMPTE 타임코드는 사실 비월 주사 비디오(프레임당 2개의 비월 필드를 가짐)와 함께 통상 사용된다.
SMPTE 타임코드가 실제 시간과 직접 1:1 대응하지 않으므로, SMPTE 타임코드와 실제 시간간의 변환은 정확하게 표현될 수 없다. DropFlag 플래그는, 상술한 카운팅 보상 없음 및 SMPTE 드롭-프레임 카운팅 보상 중의 선택을 나타낸다.
이러한 타임코드의 결점은 다음과 같이 열거할 수 있다.
Figure 112006058268212-pct00032
실제 "벽 시계" 시간과 정확하게 관련되지 않으며, 대신, 정확하게 알려지지 않은(일시 해결방법의 프레임 증가에만 알려진) 시각에서 시작하고, 진행함에 따라 "벽 기계" 시간에 대한 "편이"("드롭 프레임" 카운팅을 사용함으로써 감소하지만 제거되지 않는 편이)를 축적한다.
Figure 112006058268212-pct00033
비월 비디오 환경에서 주로 사용되는 사실에도 불구하고, 비월 비디오에 대해 단일-필드 시간 증가를 특정하지 않는다.
Figure 112006058268212-pct00034
SMPTE 타임코드가 Hours, Minutes, Seconds, Frames 및 DropFlag 파라미터 모두를 가지지 않는 "벽 시계" 시간으로 직접 변환되면, 시간 측정치는 다시 SMPTE 타임코드로 용이하고 명확하게 변환될 수 없다.
Figure 112003005133942-pct00035
BaseUPF 및 BaseUPS의 등가물이 2개의 고정값만을 허용하므로, 일부 프레임 레이트를 정확하게 나타낼 수 없다.
Figure 112006058268212-pct00036
프레임당 2개의 비월 필드로 비디오에 주로 적용됨에도 불구하고, 필드 카운트 파라미터의 표현을 포함하지 않는다(또한, BaseUPS는 각 프레임당 2개의 인터레이스드 필드의 타이밍을 정확하게 나타내기에 충분한 일시 정확도를 가지지 못한다).
이와는 반대로, 상술한 설계는 타임코드를 변화시키지 않으면서 SMPTE 타임코드를 갖고 있을 수 있고, 샘플의 시간과 실제 "벽 시계" 시간 간의 정확한 관계를 나타낼 수도 있다. SMPTE 시간과의 호환성으로 인해 타임코드를 비디오 제작 업계에서 널리 사용할 수 있고, 이것은 또한 SMPTE 타임코드를 사용함으로써 야기되는 일시 모호성을 수정한다.
MPEG-2:2000 N3438 수정안 1에 대한 개선례
MPEG-2:2000 N3438 수정안 1[국제 표준화 기구 및 국제 전기기술 위원회 합동 기술 위원회 번호 1 워킹 그룹 번호 11 영화 전문가 그룹 문서 N3438 비디오 기초 스트림 보충 정보: 2000년 6월]은 [표 4]에 도시된 것과 등가인 타임코드 포맷을 포함한다.
MPEG-2:2000 N3438 타임코드 설계
파라미터명 파리미터형 크기(비트) 값의 범위
Discont 부울 1 0 또는 1
Hours 정수 5 이상 0 내지 23
Minutes 정수 6 이상 0 내지 59
Seconds 정수 6 이상 0 내지 59
Offset 정수 7 이상 ≥0
등가인 타임스탬프는 다음과 같이 계산한다.
t=(60·(60·Hours+Minutes)+Seconds+Offset/27,000,000
이러한 타임코드와 관련된 단점은 다음과 같다.
Figure 112006058268212-pct00037
프레임 또는 필드 카운터의 개념이 없고, 절대 시간 개념만 있다.
Figure 112006058268212-pct00038
프레임간 또는 필드간 간격과 관련된 시간 증가의 개념이 없다.
Figure 112006058268212-pct00039
프레임 카운터가 없으므로, 프레임의 드롭-프레임 카운팅을 나타낼 수 없다.
Figure 112006058268212-pct00040
SMPTE 타임코드를 직접 가질 수 없다.
Figure 112003005133942-pct00041
SMPTE 타임코드가 이 포맷으로 타임스탬프로 변환되면, SMPTE 타임코드로 다시 용이하게 변환될 수 없다.
Figure 112003005133942-pct00042
BaseUPS의 등가물(상수 27,000,000)이 고정값을 가지므로, 일부 프레임 레이트를 정확하게 나타낼 수 없다.
당업자에게 명백한 바와 같이, 상술한 실시예는 이러한 단점들을 개선시킬 수 있다.
ITU-T H.263+ 프레임 시간에 대한 개선례
H.263+(국제 전기 통신 연합-전기 통신 표준화 섹터, ITU-T 권고 H.263 버젼 2: 1998년)에서, 시간은 [표 5]에 도시된 것과 등가인 방식으로 나타내어진다.
H.263+ 시간 표현
파라미터명 파라미터형 크기(비트) 값의 범위
CloclBaseAdd1 부울 1 0 또는 1
ClockDivisor 정수 7 1 내지 127
Frames 정수 8 또는 10 ≥0
등가인 타임스탬프는 다음과 같이 계산된다.
t=Frames·(ClockDivisor·(1000+ClockBaseAdd1)/1,800,000
이 타임코드에 관련된 단점은 다음과 같다.
Figure 112006058268212-pct00043
SMPTE 타임코드를 직접 가질 수 없다.
Figure 112003005133942-pct00044
SMPTE 타임코드가 이 포맷으로 타임스탬프로 변환되면, SMPTE 타임코드로 다시 용이하게 변환될 수 없다.
Figure 112006058268212-pct00045
BaseUPS의 등가물(상수 1,800,000)이 고정값을 가지므로, 일부 프레임 레이트를 정확하게 나타낼 수 없다.
Figure 112006058268212-pct00046
필드 카운터가 없으므로, 프레임의 필드로의 분할을 위해 타임스탬프를 나타낼 수 없다.
당업자에게 명백한 바와 같이, 상술된 본 발명의 접근방법은 이러한 하나 이상의 단점들을 개선시킬 수 있다.
MPEG-4 비쥬얼 VOP 시간에 대한 개선례
MPEG-4 비쥬얼 표준[국제 표준 기구 및 국제 전기 기술 협의회, 국제 표준 14496-2: 1999년]은 [표 6]에 도시된 것과 등가인 방법으로 타임코드를 나타낸다.
MPEG-4 비쥬얼 VOP 시간
파라미터명 파라미터형 크기(비트) 값의 범위
BaseUPS 정수 16 ≥0
Hours 정수 5 이상 0 내지 23
Minutes 정수 6 이상 0 내지 59
Seconds 정수 6 이상 0 내지 59
AddSec 정수 1 이상 ≥0
Offset 정수 1 내지 16 0 내지 BaseUPS-1
FixedIncrement 정수 1 내지 16 0 내지 BaseUPS-1
FixedRateFlag 부울 1 0 또는 1
등가인 타임스탬프는 다음과 같이 계산된다.
t=60·(60·Hours+Minutes)+Seconds+AddSec+Offset/BaseUPS
FixedRateFlag가 1일 때, 샘플의 모든 인접하는 쌍의 타임스탬프들간의 시간 차는 FixedIncrement와 동일하여야 한다.
이 타임코드에 관련된 단점은 다음과 같다.
Figure 112006058268212-pct00047
FixedRateFlag가 0일 때, 프레임 카운터의 개념이 없고 절대 시간 개념만 있다.
Figure 112006058268212-pct00048
FixedRateFlag가 1일 때, 생략된 샘플을 나타내는 기능이 없고, 샘플의 쌍들간에 표시되는 시간에 양에 대해 유연성이 없다.
Figure 112006058268212-pct00049
프레임 카운트를 증가시키기 위해 BaseUPF를 사용하지 않으므로, 1초 간격 내에서 샘플 타임스탬프의 위치를 나타내기 위해 필요한 비트의 수는, BaseUPF를 사용하는 경우(예를 들어, H.263+ 설계는 대조적으로) 필요한 수보다 크다. 대신 BaseUPF를 사용하면, 각 샘플에서 1만큼 증가하는 작은 수의 비트를 사용하는 프레임 또는 필드 카운터를 가지는 것은, 프레임 시간 증가를 나타내기 위해 필요한 모든 것일 수 있고, 2만큼의 단순 증가는 생략된 프레임 샘플을 나타낼 수 있다.
Figure 112006058268212-pct00050
프레임간 간격과 관련된 시간 증가의 개념이 없다.
Figure 112006058268212-pct00051
프레임 카운터가 없으므로, 프레임의 드롭-프레임 카운팅을 나타낼 수 없다.
Figure 112006058268212-pct00052
SMPTE 타임코드를 직접 가질 수 없다.
Figure 112003005133942-pct00053
SMPTE 타임코드가 이 포맷으로 타임스탬프로 변환되면, SMPTE 타임코드로 다시 용이하게 변환될 수 없다.
당업자에게 명백한 바와 같이, 상술한 본 발명의 접근방법은 하나 이상의 이 단점들을 개선시킬 수 있다.
타임코드 객체(Timecode Object:TCO) 드래프트에 대한 개선례
텔레비젼, 오디오 및 필름 제작에 사용하기 위한 타임코드의 드래프트 규격에 대한 "타임코드 객체"의 예비 설계[Brooks Harris, 제안된 SMPTE 표준 S22.TCOx1-1999, 1999년 11월 18일]가 비디오 제작 업계에서 유포되어 왔다. 유포된 설계는, 드래프트 형식이고, 일부 오류를 포함하는 것으로 보이지만, 이것은 본질적으로 [표 7]에 도시된 것과 등가인 것으로 보인다.
타임코드 객체(TCO) 드래프트
파라미터명 파라미터형 크기(비트) 값의 범위
NTSCvsPAL 부울 1 0 또는 1
CountComp ENUM 2 3 ENUM 값
SampleRate ENUM 5 16 ENUM 값
Frames 정수 5 ≥0
Fields 정수 1 0 또는 1
NTPtime 정수 64 ≥0
이것은 Frames 카운터, Field 표시 및 벽 기계 시간의 표현을 포함한다. 이것은 다수의 특정 샘플링 레이트 중에서 선택함으로써, 샘플링 레이트의 규격을 사용한다. 이것은 SMPTE "드롭 프레임" 카운팅을 사용할지 또는 1000일 기간의 특정 카운팅 패턴을 사용하여 편이 오차를 감소시키는 "1000일 보상 카운트"라고 알려진 특정 카운팅 방법을 사용할지에 대한 표시기를 포함한다. "1000일 보상 카운트"는, 편이 축적의 계산을 사용하지 않는 특정 카운팅 방법이다(대신, 이것은 SMPTE 12M 타임코드의 "드롭 프레임" 방법과 유사하지만 이보다 더 복잡한 고정 카운팅 패턴을 사용함). 이것은 윤일, 윤초 및 타임 존을 다루는 일부 특정 프로비전을 포함한다. 이것은 프레임-기반 타임코드를 오프세팅하여 이것이 초당 단위로 통상의 타임베이스에 기초한 실제 벽 기계 시간을 기준으로 하는 방법을 포함하지 않는다. 이것은 "벽 시계" 날짜 및 시간 파라미터를 포함하지만, 이것은 네크워크 시간 프로토콜(NTP;network time protocol)[코멘트 번호 1305에 대한 인터넷 엔지니어링 태스크 포스 요구] 단위(샘플링 레이트와 주문형(customizable) 관계를 가지는 단위/초 단위가 아님)로 나타내어진다. 시간의 NTP 단위는 약 2-32 초의 고정 측정 단위(즉, BaseUPS의 그 등가물이 232의 고정값을 가지고, 이 수는 30,000 또는 25와 같은 종래의 타임베이스 샘플링 단위의 정수 배가 아님)를 사용하므로, 이러한 표현은 공통 샘플링 레이트와 호환가능하지 않는 고정의 정도를 사용하고, 라운딩 오차를 포함하고, 샘플링 타이밍에 기초하지 않는다. 시간의 SMPTE 12M 표현과 이 타임코드의 NTP 시간 파라미터에 표시된 시간간의 편이 때문에, 이것은 항상 변화없이 SMPTE 12M 타임코드를 가질 수는 없다. 이러한 타임코드 객체 설계의 단점은 다음과 같다.
Figure 112006058268212-pct00054
이것은 BaseUPS 단위 수/초 및 BaseUPF 단위 수/프레임을 사용하여 시간을 통상적으로 나타내지 않고, 선택된 특정 샘플링 레이트의 목록을 사용하여 샘플링 레이트만을 특정한다.
Figure 112006058268212-pct00055
이것은 단위/초의 주문형 BaseUPS 수를 사용하여 라운딩 오차 없이 샘플의 실제 시간을 나타낼 수 없다(실제 시간은 고정된 증가 수/초를 가지는 NTP 단위만으로 나타내어짐).
Figure 112006058268212-pct00056
SMPTE 12M 타임코드에서 볼 수 있는 Hours, Minutes, Seconds 파라미터와 동일한 값에 직접 대응하는 표현을 포함하지 않으므로, (NTP를 사용하는) 시간의 표현과 종래의 SMPTE 12M 타임코드간의 변환은 잘 정의되지 않는다(NTP 시간이 종래의 SMPTE 12M 시간과 NTP 시간간의 편이로 인해 종래의 SMPTE 12M 타임코드에서 볼 수 있는 Hours, Minutes, Seconds 파라미터의 값에 직접 기초하지 않기 때문임).
Figure 112006058268212-pct00057
이것은 축적된 편이의 직접 계산에 기초하는 카운팅 보상 방법을 포함하지 않는다. 대신, 이것은 특정 "1000일 카운트"를 사용하여 편이를 감소시키는 새롭고 복잡한 특정 카운팅 방법을 포함한다.
당업자에게 명백한 바와 같이, 상술한 본 발명의 접근방식은 하나 이상의 단점을 개선시킨다.
카운팅 보상
또 다른 실시예에 따라, 시간에 따른 편이를 제거하기 위한 각종 방법이 제공된다. 제1 실시예는 "톱 드롭" 카운팅이라 하고, 제2 실시예는 "보톰 드롭" 카운팅이라 한다.
톱 드롭 카운팅
상술한 일 실시예에 따라, 시, 분, 초 및 프레임 카운트로 표현된 시간과 샘플의 실제 "벽 시계" 시간 간의 편이를 계산하고, 과도한 편이를 방지해야 할 경우 최대 프레임 번호를 생략함으로써, 미디어 샘플 프레임 카운트 시간 표현과 실제 "벽 시계" 시간 간의 편이를 보상하는 방법이 제공된다. 예를 들어, 최대 프레임 번호는, 축적된 편이가 프레임 카운트 증가로 표현되는 시간을 초과할 때마다 생략될 수 있다.
도 8은 한 톱 드롭 카운팅 방법에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적당한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있다. 도시된 예에서, 이 방법은 소프트웨어로 구현된다.
단계 800은 프레임 카운트 증가와 관련된 시간값을 결정한다. 상술한 예로부터, 미디어 샘플이 타임코딩될 때, 미디어 샘플의 각각의 프레임이 그것과 관련된 시간의 증가를 갖는다는 것을 상기하라. 예를 들어, 각각의 프레임 카운트 증가는 1/24 초의 증가로 이루어질 수 있다. 이 단계는 프레임 카운트 증가와 관련된 시간값을 결정한다. 단계 802는 미디어 샘플과 관련된 타임코드와 그 미디어 샘플과 관련된 실제 "벽 시계" 시간 또는 실제 샘플 시간간의 축적된 편이를 계산한다. 단계 804는, 축적된 편이가 프레임 카운트 증가에 의해 표현된 시간을 초과할 때, 최대 프레임 번호를 생략한다.
일례로서, 다음과 같은 점을 고려하여야 한다. 시간에 대한 편이를 제거하기 위해, 프레임 파라미터(상술한 바와 같음)는, 때로는 0부터 MaxFPS-1까지 카운팅하고, 때로는 0부터 MaxFPS-2까지만 카운팅한다(톱 카운트를 드로핑함) (MaxFPS은 위에서 정의됨). 기본 프레임 레이트가 7.3 프레임/초이면, 때로는 초당 7개의 프레임이 카운팅되고, 때로는 8개의 프레임이 카운팅된다(따라서, 프레임 카운트는, 때로는 0부터 6까지 카운팅하고, 때로는 0부터 7까지 카운팅함).
보톰 드롭 카운팅
상술한 일 실시예에 따라, 시, 분, 초 및 프레임 카운트로 표현된 시간과 샘플의 실제 "벽 시계" 시간 간의 편이를 계산하고, 과도한 편이를 방지해야 할 경우 최소 프레임 번호를 생략함으로써, 미디어 샘플 프레임 카운트 시간 표현과 실제 "벽 시계" 시간 간의 편이를 보상하는 방법이 제공된다. 예를 들어, 최소 프레임 번호는, 축적된 편이가 프레임 카운트 증가로 표현되는 시간을 초과할 때마다, 생략될 수 있다.
도 9는 보톰 드롭 카운팅 방법에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있다. 상술한 예에서, 이 방법은 소프트웨어로 구현된다.
단계 900은 프레임 카운트 증가와 관련된 시간값을 결정한다. 이 단계는 상술한 단계 800과 본질적으로 동일하다. 단계 902는 미디어 샘플과 관련된 타임코드와 그 미디어 샘플과 관련된 실제 "벽 시계" 시간 또는 실제 샘플 시간간의 축적된 편이를 계산한다. 이 단계는 상술한 단계 802와 본질적으로 동일하다. 단계 904는, 축적된 편이가 프레임 카운트 증가로 표현된 시간을 초과할 때, 최소 프레임 번호를 생략한다.
일례로서, 다음과 같은 점을 고려하여야 한다. 시간에 대한 편이를 제거하기 위해, 프레임 파라미터는, 때로는 0부터 MaxFPS-1까지 카운팅하고, 때로는 1부터 MaxFPS-1까지만 카운팅한다(보톰 카운트를 드로핑함). 이 카운팅 방법은 상술한 톱-드로핑 방법과 유사하지만, 이 경우, 프레임 파라미터중에서 최대값 대신에 0의 프레임 파라미터값이 생략된다.
결론
상술한 각종 실시예들은, "실제 시간"에 대한 정확한 기준이 미디어 샘플과 관련된 타임코드에서 제공될 수 있는 수단을 제공한다. 이 실시예들은, 변화없이 기존의 타임코드 설계의 필드를 포함하여 기존의 타임코드 패러다임과 호환가능하지만, 하나 이상의 추가적인 파라미터를 추가하여 설계의 성능을 향상시킬 수 있다. 또한, 새로운 카운팅 보상 방법의 형태로 개선례가 달성된다.
본 발명을 구조적 특성 및/또는 방법상의 단계에 특정적인 언어로 설명하였지만, 첨부된 청구 범위에 정의된 본 발명은 반드시 상술한 특성 또는 단계에 한정되지 않는다고 이해되어야 한다. 대신, 특정 특성 및 단계는 본 발명을 구현하는 바람직한 형태로서 개시되어 있다.

Claims (90)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 타임코드를 제공하는 방법에 있어서,
    관련된 타임코드를 갖는 복수의 미디어 샘플을 특정 프레임 레이트로 제공하는 단계; 및
    상기 관련된 타임코드에 의해 정의된 시간 측정치와, 상기 미디어 샘플과 관련된 표현 시간 간의 차를 특정하는 오프셋 파라미터를 사용하여, 상기 미디어 샘플과 관련된 편이를 오프셋하는 단계
    를 포함하는 타임코드 제공 방법.
  30. 제29항에 있어서,
    상기 프레임 레이트는 정수의 프레임 레이트가 아닌 방법.
  31. 컴퓨터 판독가능 명령어를 가지는 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    관련된 타임코드를 갖는 복수의 미디어 샘플을 특정 비-정수의 프레임 레이트로 제공하고; 및
    상기 관련된 타임코드에 의해 정의된 시간 측정치와 상기 미디어 샘플과 관련된 표현 시간 간의 차를 특정하는 오프셋 파라미터를 사용하여, 상기 미디어 샘플과 관련된 편이를 오프셋하도록 하게 하는 컴퓨터 판독가능 매체.
  32. 미디어 샘플을 처리하는 방법에 있어서,
    타임코드를 각각 가지는 하나 이상의 미디어 샘플을 제공하는 단계; 및
    상기 하나 이상의 미디어 샘플과 관련된 표현 시간을,
    시간=x+(프레임 카운트*UPF+오프셋)/UPS로 계산하는 단계를 포함하며,
    여기서, x는 상기 미디어 샘플과 관련되고 상기 미디어 샘플의 타임코드로부터 확인된 시간의 측정치이고,
    "프레임 카운트"는 상기 미디어 샘플의 프레임 수와 관련된 값이고,
    "UPF"는 각각의 필드 카운트 증가에 대해 추가되는 시간 기본 단위의 수를 포함하고,
    "오프셋"은 상기 미디어 샘플과 관련된 타임코드에 의해 표현되는 시간과 표현 시간 간의 차를 특정하고,
    "UPS"는 타임베이스에서의 시간 기본 단위/시간 단위의 수를 포함하는 미디어 샘플 처리 방법.
  33. 제32항에 있어서,
    상기 "x"는, 초의 전체 수로서, 또는 시, 분 및 초를 나타내는 파라미터로서, SMPTE 타임코드로 표현된 전체 초의 수에 의해 특정된 초의 수와 관련되는 방법.
  34. 제32항에 있어서,
    상기 "오프셋"은, 상기 미디어 샘플의 실제 프레임 레이트의 함수로서 선택되는 방법.
  35. 제34항에 있어서,
    실제 프레임 레이트는 프레임/시간 단위의 분수를 포함하는 방법.
  36. 제35항에 있어서,
    상기 시간 단위는 초를 포함하는 방법.
  37. 미디어 샘플을 타임코딩하는 방법에 있어서,
    비-정수 프레임 레이트를 갖는 하나 이상의 미디어 샘플을 제공하는 단계;
    상기 비-정수 프레임 레이트를 갖는 상기 미디어 샘플로 인한 편이 양을 표함하는 타임코드로 상기 미디어 샘플을 타임코딩하는 단계; 및
    상기 타임코드로부터 직접 얻은 시간 측정치보다 더 정확한 편이 감소된 시간 측정치를 계산하는 데에 사용될 수 있는 오프셋 파라미터를 상기 타임코드에 도입하는 단계
    를 포함하는 미디어 샘플 타임코딩 방법.
  38. 제37항에 있어서,
    상기 타임코딩하는 단계는, 미디어 샘플 프레임을 포함하는 하나 이상의 필드와 관련된 필드 파라미터를 포함하는 단계를 포함하는 방법.
  39. 제37항에 있어서,
    상기 오프셋 파라미터는 편이 제거된 시간 측정치를 계산하는 데에 사용될 수 있는 방법.
  40. 제37항에 있어서,
    상기 미디어 샘플의 적어도 일부에 대해 상기 오프셋 파라미터를 조정하는 단계를 더 포함하는 방법.
  41. 제40항에 있어서,
    상기 조정하는 단계는, 소정의 조건이 발생하였는지의 여부를 판정하는 단계, 및 상기 판정하는 단계에 응답하여 상기 오프셋 파라미터를 조정하는 단계를 포함하는 방법.
  42. 제41항에 있어서,
    상기 소정의 조건은 초 카운터 롤링 오버와 관련된 방법.
  43. 제41항에 있어서,
    상기 소정의 조건은 임의의 프레임이 드로핑되는지의 여부에 관련된 방법.
  44. 제41항에 있어서,
    상기 조정하는 단계는, 상기 오프셋 파라미터를 규정의 양만큼 증가시키는 단계를 포함하는 방법.
  45. 제41항에 있어서,
    상기 조정하는 단계는, 상기 오프셋 파라미터를 규정의 양만큼 감소시키는 단계를 포함하는 방법.
  46. 제41항에 있어서,
    상기 조정하는 단계는, 상기 오프셋 파라미터를 규정의 양만큼 증가시키고, 상이한 시각에 상기 오프셋 파라미터를 상이한 규정의 양만큼 감소시키는 단계를 포함하는 방법.
  47. 제37항에 있어서,
    상기 타임코드는 SMPTE 비-드롭 카운팅 타임코드를 포함하는 방법.
  48. 제37항에 있어서,
    상기 타임코드는 SMPTE 드롭 카운팅 타임코드를 포함하는 방법.
  49. 미디어 샘플을 처리하는 방법에 있어서,
    비정수의 프레임 레이트를 가지는 다수의 미디어 샘플에 기인한 편이 양을 포함하는 타임코드로 타임코딩된 다수의 미디어 샘플을 수신하는 단계 -상기 타임코드는 그것으로부터 직접 얻어진 시간 측정치보다 정확한 편이 감소된 시간 측정치를 계산하는 데에 사용될 수 있는 있는 오프셋 파라미터를 포함함- ; 및
    상기 오프셋 파라미터를 사용하여, 상기 타임코드로부터 직접 얻어진 시간 측정치보다 더 정확한 시간 측정치를 계산하는 단계
    를 포함하는 미디어 샘플 처리 방법.
  50. 제49항에 있어서,
    상기 타임코드는 SMPTE 타임코드 파라미터를 포함하는 방법.
  51. 미디어 샘플을 처리하는 방법에 있어서,
    미디어 샘플 타임코드와 관련된 다수의 비정수 프레임/시간 단위인 프레임 레이트로 다수의 미디어 샘플을 제공하는 단계;
    상기 타임코드와 관련되고, 타임코드에 의해 나타낸 시간과 표현 시간 간의 차를 기술하는 오프셋 파라미터를 제공하는 단계; 및
    상기 오프셋 파라미터를 사용하여, 상기 미디어 샘플들 중 하나 이상과 관련된 표현 시간을 계산하는 단계
    를 포함하는 미디어 샘플 처리 방법.
  52. 제51항에 있어서,
    상기 미디어 샘플들 중 적어도 하나에 대해 상기 오프셋 파라미터를 조정하는 단계를 더 포함하는 방법.
  53. 제51항에 있어서,
    소정의 조건의 발생에 따라 상기 미디어 샘플들 중 적어도 하나에 대해 상기 오프셋 파라미터를 조정하는 단계를 더 포함하는 방법.
  54. 미디어 샘플을 처리하는 방법에 있어서,
    다수의 미디어 샘플을 제공하는 단계;
    상기 미디어 샘플과 관련된 프레임을 카운팅하여 프레임 카운트를 제공하는 단계;
    상기 미디어 샘플과 관련된 필드를 카운팅하여 필드 카운트를 제공하는 단계;
    상기 미디어 샘플과 관련되고, 상기 미디어 샘플과 관련된 표현 시간을 계산하는 데에 사용하도록 구성된 오프셋 파라미터를 계산하는 단계; 및
    상기 미디어 샘플들 중 하나 이상을 프레임 카운트, 필드 카운트 및 오프셋 파라미터를 포함하는 타임스탬프로 타임스탬핑하는 단계
    를 포함하는 미디어 샘플 처리 방법.
  55. 제54항에 있어서,
    각각의 미디어 샘플마다 프레임당 2개의 필드가 있는 방법.
  56. 제54항에 있어서,
    상기 타임스탬핑하는 단계는, 상기 미디어 샘플을 SMPTE 타임코드 파라미터로 타임스탬핑하는 단계를 포함하는 방법.
  57. 제54항에 있어서,
    상기 계산하는 단계는, 오프셋 파라미터값을 적어도 한번 조정하는 단계를 포함하는 방법.
  58. 제54항에 있어서,
    상기 계산하는 단계는, 오프셋 파라미터값을 적어도 한번 그리고 하나 이상의 드로핑된(dropped) 프레임에 따라 조정하는 단계를 포함하는 방법.
  59. 제54항에 있어서,
    상기 계산하는 단계는, 오프셋 파라미터값을 적어도 한번 그리고 초 카운터 롤링 오버에 따라 조정하는 단계를 포함하는 방법.
  60. 제54항에 있어서,
    상기 표현 시간은,
    t=x((필드_카운터+FPF*프레임_카운터)UPField+오프셋)/UPS
    에 따라 계산될 수 있으며,
    여기서, x는 미디어 샘플과 관련된 시간의 측정치이고,
    "프레임_카운터"는 상기 미디어 샘플과 관련된 프레임 번호이고,
    "UPField"는 각각의 필드 카운트 증가에 대해 추가되는 시간 기본 단위의 수를 포함하고,
    "오프셋"은 상기 미디어 샘플과 관련된 타임코드가 나타내는 시간과 상기 표현 시간 간의 차를 특정하고,
    "UPS"는 타임베이스에서의 시간 기본 단위/시간 단위의 수를 포함하는 방법.
  61. 미디어 샘플을 처리하는 방법에 있어서,
    프레임 카운트, 필드 카운트 및 오프셋 파라미터를 포함하는 타임스탬프로 타임스탬핑된 다수의 미디어 샘플 각각을 수신하는 단계 -상기 프레임 카운트는 한 미디어 샘플에 대응하는 프레임 번호에 관련되어 있고, 상기 필드 카운트는 특정 프레임에 대응하는 필드 번호에 관련되어 있고, 상기 오프셋 파라미터는 한 미디어 샘플과 관련된 표현 시간과 관련되어 있음-; 및
    상기 오프셋 파라미터를 사용하여 한 미디어 샘플과 관련된 표현 시간을 계산하는 단계
    를 포함하는 미디어 샘플 처리 방법.
  62. 제61항에 있어서,
    상기 계산하는 단계는,
    t=x((필드_카운터+FPF*프레임_카운터)UPField+오프셋)/UPS
    에 따라 표현 시간을 계산하는 단계를 포함하며,
    여기서, x는 미디어 샘플과 관련된 시간 측정치이고,
    "프레임_카운터"는 상기 미디어 샘플과 관련된 프레임 번호이고,
    "UPField"는 각각의 필드 카운트 증가에 대해 추가되는 기본 시간 단위 수를 포함하고,
    "오프셋"은 상기 미디어 샘플과 관련된 타임코드가 나타내는 시간과 상기 표현 시간 간의 차를 특정하고,
    "UPS"는 타임베이스에서의 시간 기본 단위/시간 단위의 수를 포함하는 방법.
  63. 미디어 샘플을 처리하는 방법에 있어서,
    제1 포맷을 사용하여 샘플링되고 상기 제1 포맷의 프레임으로부터 필드를 분리하여 이루어지는 제2 포맷을 사용하여 방송된 미디어 샘플을 수신하는 단계 - 상기 미디어 샘플은 다수의 필드를 각각 가지는 각각의 프레임을 포함하고, 상기 미디어 샘플은 각각의 필드와 관련된 타임코드값을 더 포함하고, 상기 타임코드는 상기 미디어 샘플과 관련된 타임코드값이 나타내는 시간과 표현 시간 간의 차를 특정하는 오프셋 파라미터를 포함함-; 및
    상기 제2 포맷의 상기 미디어 샘플로, 상기 제1 포맷의 하나 이상의 필드와 관련된 표현 시간을 계산하는 단계
    를 포함하는 미디어 샘플 처리 방법.
  64. 카운팅 보상 방법에 있어서,
    미디어 샘플에 대해 프레임 카운트 증가와 관련된 시간값을 결정하는 단계;
    다수의 미디어 샘플과 관련된 타임코드와 실제 시간간의 축적된 편이(drift)를 계산하는 단계; 및
    최대 프레임 번호를 종종 생략하면서 프레임을 카운팅하는 동안, 상기 축적된 편이를 감소시키는 단계
    를 포함하는 카운팅 보상 방법.
  65. 제64항에 있어서,
    상기 축적된 편이가 상기 프레임 카운트 증가가 나타내는 시간을 초과하는 경우, 최대 프레임 번호가 생략되는 카운팅 보상 방법.
  66. 카운팅 보상 방법에 있어서,
    미디어 샘플에 대해 프레임 카운트 증가와 관련된 시간값을 결정하는 단계;
    다수의 미디어 샘플과 관련된 타임코드와 실제 시간 간의 축적된 편이를 계산하는 단계; 및
    최소 프레임 번호를 종종 생략하면서 프레임을 카운팅하여 상기 축적된 편이를 감소시키는 단계
    를 포함하는 카운팅 보상 방법.
  67. 제66항에 있어서,
    상기 축적된 편이가 상기 프레임 카운트 증가가 나타내는 시간을 초과하는 경우, 최소 프레임 번호가 생략되는 카운팅 보상 방법.
  68. 미디어 샘플을 제공하는 단계;
    상기 미디어 샘플과 관련된 복수의 타임코드 파라미터를 결정하는 단계; 및
    상기 복수의 타임코드 파라미터를 시그널링하는 단계
    를 포함하며,
    상기 복수의 타임코드 파라미터는,
    상기 미디어 샘플과 관련된 타임스탬프를 적어도 부분적으로 특정하는 하나 이상의 시간 측정 파라미터, 및
    오프셋을 특정하는 오프셋 파라미터
    를 포함하고,
    상기 오프셋은, 상기 오프셋을 단위/초 계수로 나눈 결과가 상기 미디어 샘플에 대한 실제 시간 측정과 상기 타임스탬프 사이의 편이를 감소하는데 사용될 수 있는 시간의 양을 정의하도록 스케일(scale)되며, 상기 단위/초 계수는 30,000의 정수 배를 통상의 정수값으로 나눈 값을 가질 수 있는,
    미디어 샘플 처리 방법.
  69. 제68항에 있어서,
    상기 오프셋 파라미터는 다수의 서로 다른 샘플링 레이트를 가지는 미디어 샘플들에 대한 편이를 감소하는데 사용될 수 있는 미디어 샘플 처리 방법.
  70. 제69항에 있어서,
    상기 샘플링 레이트는, 24,000/1001 프레임/초, 24 프레임/초, 30,000/1001 프레임/초, 30 프레임/초, 60,000/1001 프레임/초, 60 프레임/초, 25 프레임/초를 포함하는 그룹 중에서 선택된 레이트를 포함하는 미디어 샘플 처리 방법.
  71. 미디어 샘플을 제공하는 단계;
    상기 미디어 샘플과 관련된 복수의 타임코드 파라미터를 결정하는 단계; 및
    상기 복수의 타임코드 파라미터를 시그널링하는 단계
    를 포함하며,
    상기 복수의 타임코드 파라미터는,
    상기 미디어 샘플과 관련된 타임스탬프를 적어도 부분적으로 특정하는 하나 이상의 시간 측정 파라미터, 및
    오프셋을 특정하는 오프셋 파라미터
    를 포함하고,
    상기 오프셋은, 상기 오프셋을 단위/초 계수로 나눈 결과가 상기 미디어 샘플에 대한 실제 시간 측정과 상기 타임스탬프 사이의 편이를 감소시키는데 사용될 수 있는 시간의 양을 정의하도록 스케일(scale)되며, 상기 단위/초 계수는 하나 이상의 값을 가질 수 있고, 상기 값들 중 적어도 하나는 30,000의 정수 배인,
    미디어 샘플 처리 방법.
  72. 미디어 샘플을 제공하는 단계;
    상기 미디어 샘플과 관련된 복수의 타임코드 파라미터를 결정하는 단계; 및
    상기 복수의 타임코드 파라미터를 시그널링하는 단계
    를 포함하며,
    상기 복수의 타임코드 파라미터는,
    상기 미디어 샘플과 관련된 타임스탬프를 적어도 부분적으로 특정하는 하나 이상의 시간 측정 파라미터, 및
    오프셋을 특정하는 오프셋 파라미터
    를 포함하고,
    상기 오프셋은, 상기 오프셋을 단위/초 계수로 나눈 결과가 상기 미디어 샘플에 대한 실제 시간 측정과 상기 타임스탬프 사이의 편이를 감소시키는데 사용될 수 있는 시간의 양을 정의하도록 스케일(scale)되며, 상기 단위/초 계수는 단 하나의 값만 가질 수 있고, 상기 값은 30,000의 정수 배인,
    미디어 샘플 처리 방법.
  73. 제68항에 있어서,
    상기 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 통상의 정수값을 가질 수 있는 단위/프레임 계수를 더 포함하는 미디어 샘플 처리 방법.
  74. 제68항에 있어서,
    상기 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 하나 이상의 값을 가질 수 있는 단위/프레임 계수를 더 포함하며, 상기 값 중 적어도 하나는 1001의 정수 배인 미디어 샘플 처리 방법.
  75. 제68항에 있어서,
    상기 타임코드 파라미터는, 필드 번호를 나타내는 필드 번호 파라미터, 및 프레임당 필드 수를 특정하는 필드/프레임 파라미터를 더 포함하는 미디어 샘플 처리 방법.
  76. 제75항에 있어서,
    상기 프레임당 필드 수는 통상의 정수값을 가질 수 있는 미디어 샘플 처리 방법.
  77. 제75항에 있어서,
    상기 프레임당 필드 수는 하나 이상의 값을 가질 수 있고, 상기 값 중 적어도 하나는 2인 미디어 샘플 처리 방법.
  78. 제71항에 있어서,
    상기 오프셋 파라미터는 다수의 서로 다른 샘플링 레이트를 가지는 미디어 샘플들에 대한 편이를 감소하는데 사용될 수 있는 미디어 샘플 처리 방법.
  79. 제78항에 있어서,
    상기 샘플링 레이트는, 24,000/1001 프레임/초, 24 프레임/초, 30,000/1001 프레임/초, 30 프레임/초, 60,000/1001 프레임/초, 60 프레임/초, 25 프레임/초를 포함하는 그룹 중에서 선택된 레이트를 포함하는 미디어 샘플 처리 방법.
  80. 제71항에 있어서,
    상기 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 통상의 정수값을 가질 수 있는 단위/프레임 계수를 더 포함하는 미디어 샘플 처리 방법.
  81. 제71항에 있어서,
    상기 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 하나 이상의 값을 가질 수 있는 단위/프레임 계수를 더 포함하며, 상기 값 중 적어도 하나는 1001의 정수 배인 미디어 샘플 처리 방법.
  82. 제71항에 있어서,
    상기 타임코드 파라미터는, 필드 번호를 나타내는 필드 번호 파라미터, 및 프레임당 필드 수를 특정하는 필드/프레임 파라미터를 더 포함하는 미디어 샘플 처리 방법.
  83. 제82항에 있어서,
    상기 프레임당 필드 수는 통상의 정수값을 가질 수 있는 미디어 샘플 처리 방법.
  84. 제82항에 있어서,
    상기 프레임당 필드 수는 하나 이상의 값을 가질 수 있고, 상기 값 중 적어도 하나는 2인 미디어 샘플 처리 방법.
  85. 제72항에 있어서,
    상기 오프셋 파라미터는 다수의 서로 다른 샘플링 레이트를 가지는 미디어 샘플들에 대한 편이를 감소하는데 사용될 수 있는 미디어 샘플 처리 방법.
  86. 제85항에 있어서,
    상기 샘플링 레이트는, 24,000/1001 프레임/초, 24 프레임/초, 30,000/1001 프레임/초, 30 프레임/초, 60,000/1001 프레임/초, 60 프레임/초, 25 프레임/초를 포함하는 그룹 중에서 선택된 레이트를 포함하는 미디어 샘플 처리 방법.
  87. 제72항에 있어서,
    상기 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 통상의 정수값을 가질 수 있는 단위/프레임 계수를 더 포함하는 미디어 샘플 처리 방법.
  88. 미디어 샘플을 수신하는 단계;
    상기 미디어 샘플과 관련된 복수의 타임코드 파라미터를 수신하는 단계; 및
    상기 미디어 샘플과 관련된 타임스탬프와 상기 미디어 샘플에 대한 실제 시간 측정 사이의 편이를 감소시키도록 조정되는 시간값을 계산하는 단계
    를 포함하며,
    상기 복수의 타임코드 파라미터는,
    상기 타임스탬프를 적어도 부분적으로 특정하는 하나 이상의 시간 측정 파라미터, 및
    오프셋을 특정하는 오프셋 파라미터
    를 포함하고,
    상기 오프셋은, 상기 오프셋을 단위/초 계수로 나눈 결과가 상기 실제 시간 측정과 상기 타임스탬프 사이의 편이를 감소시키는데 사용될 수 있는 시간의 양을 정의하도록 스케일(scale)되며, 상기 단위/초 계수는 하나 이상의 값을 가질 수 있고, 상기 값들 중 적어도 하나는 30,000의 정수 배인,
    미디어 샘플 처리 방법.
  89. 제88항에 있어서,
    상기 계산된 시간값에 따라 상기 미디어 샘플을 제공하는 단계를 더 포함하는 미디어 샘플 처리 방법.
  90. 제88항에 있어서,
    상기 복수의 타임코드 파라미터는, 프레임 번호를 나타내는 프레임 번호 파라미터, 및 통상의 정수값을 가질 수 있는 단위/프레임 계수를 더 포함하는 미디어 샘플 처리 방법.
KR1020037002168A 2000-08-15 2001-08-15 미디어 샘플을 타임코딩하기 위한 방법 KR100884134B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22549800P 2000-08-15 2000-08-15
US60/225,498 2000-08-15
PCT/US2001/025946 WO2002015583A1 (en) 2000-08-15 2001-08-15 Methods, systems and data structures for timecoding media samples

Publications (2)

Publication Number Publication Date
KR20030062316A KR20030062316A (ko) 2003-07-23
KR100884134B1 true KR100884134B1 (ko) 2009-02-17

Family

ID=22845121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037002168A KR100884134B1 (ko) 2000-08-15 2001-08-15 미디어 샘플을 타임코딩하기 위한 방법

Country Status (6)

Country Link
US (7) US7024097B2 (ko)
EP (2) EP1310097B1 (ko)
JP (2) JP4690635B2 (ko)
KR (1) KR100884134B1 (ko)
AU (1) AU2001286554A1 (ko)
WO (1) WO2002015583A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2814027B1 (fr) * 2000-09-14 2003-01-31 Cit Alcatel Procede de synchronisation d'un fichier multimedia
US20020145622A1 (en) * 2001-04-09 2002-10-10 International Business Machines Corporation Proxy content editing system
JP2003087733A (ja) * 2001-09-13 2003-03-20 Matsushita Electric Ind Co Ltd タイムコード演算方法、およびタイムコード演算装置
JP4703114B2 (ja) * 2002-01-22 2011-06-15 マイクロソフト コーポレーション 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム
US8671213B2 (en) * 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7142250B1 (en) 2003-04-05 2006-11-28 Apple Computer, Inc. Method and apparatus for synchronizing audio and video streams
DE10322722B4 (de) * 2003-05-20 2005-11-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Synchronisieren eines Audiossignals mit einem Film
US8135261B1 (en) 2003-12-09 2012-03-13 Apple Inc. Insertion and usage of metadata in digital video
US8064752B1 (en) * 2003-12-09 2011-11-22 Apple Inc. Video encoding
US7448061B2 (en) 2004-06-21 2008-11-04 Dolby Laboratories Licensing Corporation Frame synchronization in an ethernet NTP time-keeping digital cinema playback system
US8228956B2 (en) * 2005-04-19 2012-07-24 Alcatel Lucent Time stamp offset in data packet bundling
US7827479B2 (en) * 2007-01-03 2010-11-02 Kali Damon K I System and methods for synchronized media playback between electronic devices
WO2008103170A1 (en) * 2007-02-20 2008-08-28 Symmetricom, Inc. Assisted wall-clock
CN101415249B (zh) * 2007-10-16 2011-02-16 华为技术有限公司 会话初始化协议数据业务信令协商的方法、系统及装置
USD795390S1 (en) 2008-08-08 2017-08-22 Kx Technologies Llc. Reverse osmosis push filter
US8137551B1 (en) 2008-08-08 2012-03-20 Kx Technologies, Llc Push filter with floating key lock
US9901852B2 (en) 2008-08-08 2018-02-27 Kx Technologies Llc Push filter with floating key lock
US11426685B2 (en) 2008-08-08 2022-08-30 Kx Technologies Llc Push filter with floating key lock
US9233322B1 (en) 2008-08-08 2016-01-12 Kx Technologies Llc Push filter with floating key lock
US9060201B2 (en) * 2008-10-28 2015-06-16 Cisco Technology, Inc. Stream synchronization for live video encoding
US8265450B2 (en) * 2009-01-16 2012-09-11 Apple Inc. Capturing and inserting closed captioning data in digital video
US20100195978A1 (en) * 2009-02-03 2010-08-05 Ekchian Gregory J System to facilitate replay of multiple recordings of a live event
US8423314B2 (en) * 2009-11-18 2013-04-16 National Instruments Corporation Deterministic reconfiguration of measurement modules using double buffered DMA
US8428959B2 (en) * 2010-01-29 2013-04-23 Polycom, Inc. Audio packet loss concealment by transform interpolation
US8588575B2 (en) * 2010-04-26 2013-11-19 Eldon Technology Limited Apparatus and methods for high-speed video presentation
US8621355B2 (en) 2011-02-02 2013-12-31 Apple Inc. Automatic synchronization of media clips
CA2773924C (en) 2011-04-11 2020-10-27 Evertz Microsystems Ltd. Methods and systems for network based video clip generation and management
JP5748553B2 (ja) * 2011-05-13 2015-07-15 キヤノン株式会社 撮像装置
US9871842B2 (en) 2012-12-08 2018-01-16 Evertz Microsystems Ltd. Methods and systems for network based video clip processing and management
CN104159168A (zh) * 2014-09-02 2014-11-19 尚斌 一种适用于音视频时间格式转换的计算方法
CA2912461C (en) 2014-11-17 2020-11-24 Skotel Corporation Method and apparatus for deterministic date and time alignment of media signals and generation of time-related labels
US10614856B2 (en) 2015-01-28 2020-04-07 Roku, Inc. Audio time synchronization using prioritized schedule
JP6219330B2 (ja) * 2015-03-11 2017-10-25 株式会社東芝 送信システム、多重化装置及びうるう秒補正対応方法
US10255947B2 (en) * 2015-08-31 2019-04-09 Netflix, Inc. Mitigating drift in audiovisual assets
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
US11146608B2 (en) * 2017-07-20 2021-10-12 Disney Enterprises, Inc. Frame-accurate video seeking via web browsers
US11273397B2 (en) 2018-09-13 2022-03-15 Electrolux Home Products, Inc. Filter base for electronic connection to mating filter housing assembly
US11315606B1 (en) * 2019-09-25 2022-04-26 Amazon Technologies, Inc. Timecode generation and assignment
USD946700S1 (en) 2019-11-18 2022-03-22 Electrolux Home Products, Inc. Filter cartridge
USD946703S1 (en) 2019-11-18 2022-03-22 Electrolux Home Products, Inc. Filter cartridge
USD948659S1 (en) 2019-11-18 2022-04-12 Electrolux Home Products, Inc. Filter cartridge
USD948660S1 (en) 2019-11-18 2022-04-12 Electrolux Home Products, Inc. Filter cartridge
US11413560B2 (en) 2019-11-18 2022-08-16 Electrolux Home Products, Inc. Push filter with floating key lock
USD969270S1 (en) 2019-11-18 2022-11-08 Electrolux Home Products, Inc. Filter cartridge
USD946702S1 (en) 2019-11-18 2022-03-22 Electrolux Home Products, Inc. Filter cartridge
USD946701S1 (en) 2019-11-18 2022-03-22 Electrolux Home Products, Inc. Filter cartridge
USD946699S1 (en) 2019-11-18 2022-03-22 Electrolux Home Products, Inc. Filter cartridge
US11138970B1 (en) * 2019-12-06 2021-10-05 Asapp, Inc. System, method, and computer program for creating a complete transcription of an audio recording from separately transcribed redacted and unredacted words
EP4002853B1 (en) * 2020-11-11 2023-07-19 Milestone Systems A/S Video surveillance system
US11521639B1 (en) 2021-04-02 2022-12-06 Asapp, Inc. Speech sentiment analysis using a speech sentiment classifier pretrained with pseudo sentiment labels
US20220394645A1 (en) * 2021-06-02 2022-12-08 Corning Research & Development Corporation Synchronization of frames in multiple streams in a wireless communications system (wcs)
US11763803B1 (en) 2021-07-28 2023-09-19 Asapp, Inc. System, method, and computer program for extracting utterances corresponding to a user problem statement in a conversation between a human agent and a user

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547877A (en) * 1983-06-09 1985-10-15 At&T Bell Laboratories System for switching multirate digitized voice and data
US4754492A (en) 1985-06-03 1988-06-28 Picturetel Corporation Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts
JPS627276A (ja) * 1985-07-04 1987-01-14 Pioneer Video Kk ビデオデイスク並びにその記録装置
US4847877A (en) 1986-11-28 1989-07-11 International Business Machines Corporation Method and apparatus for detecting a predetermined bit pattern within a serial bit stream
EP0352338B1 (en) * 1988-02-04 1994-04-27 Matsushita Electric Industrial Co., Ltd. Apparatus for recording or reproducing time code and time code convertor
JP2711352B2 (ja) * 1988-02-04 1998-02-10 松下電器産業株式会社 時間情報記録再生装置
US5097364A (en) * 1988-12-12 1992-03-17 Mitsubishi Denki Kabushiki Kaisha Magnetic recording and reproducing apparatus and method of recording and reproducing
JP2719836B2 (ja) * 1988-12-12 1998-02-25 三菱電機株式会社 磁気記録装置、磁気再生装置および磁気記録再生装置
GB9417138D0 (en) * 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
JPH08205170A (ja) * 1995-01-23 1996-08-09 Matsushita Electric Ind Co Ltd 動画像復号化装置及び動画像符号化装置
EP1755258A3 (en) 1996-03-18 2008-04-02 Kabushiki Kaisha Toshiba Coding and decoding system
US5870444A (en) 1996-04-23 1999-02-09 Scientific-Atlanta, Inc. Method and apparatus for performing very fast message synchronization
US5661665A (en) * 1996-06-26 1997-08-26 Microsoft Corporation Multi-media synchronization
DE69719828T2 (de) * 1996-07-05 2003-12-24 Matsushita Electric Ind Co Ltd Verfahren zum Anzeigezeitstempeln und zur Synchronisation mehrerer Videoobjektebenen
JPH1066036A (ja) * 1996-08-15 1998-03-06 Oki Electric Ind Co Ltd Tv方式変換装置
US5898897A (en) 1996-10-18 1999-04-27 Samsung Electronics Company, Ltd. Bit stream signal feature detection in a signal processing system
KR100436649B1 (ko) 1996-12-20 2004-09-08 소니 일렉트로닉스 인코포레이티드 초당24프레임필름으로부터취해진비디오프로그램재료의상태를변화시키기위한방법및장치
JP4013286B2 (ja) * 1997-01-22 2007-11-28 松下電器産業株式会社 画像符号化装置と画像復号化装置
US5955977A (en) 1997-03-31 1999-09-21 Sharp Laboratories Of America, Inc. System for avoiding start code emulation and long carry-over propagation
JPH11110915A (ja) * 1997-09-30 1999-04-23 Sony Corp 信号記録再生装置及び方法
US5946043A (en) * 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
GB9807208D0 (en) 1998-04-03 1998-06-03 Nds Ltd Method and apparatus for detecting a sequence in a bitstream
WO1999056472A1 (en) 1998-04-24 1999-11-04 Rockwell Science Center, Llc N-bit video coder and method of extending an 8-bit mpeg video coder
JP4069524B2 (ja) * 1998-11-10 2008-04-02 ソニー株式会社 伝送方法及び装置
EP1018840A3 (en) 1998-12-08 2005-12-21 Canon Kabushiki Kaisha Digital receiving apparatus and method
WO2000046995A1 (en) 1999-02-05 2000-08-10 Sony Corporation Encoding system, encoding method, decoding system, decoding method, multiplexing device, multiplexing method, display system and display method
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP4292654B2 (ja) 1999-03-19 2009-07-08 ソニー株式会社 記録装置および方法、再生装置および方法、並びに記録媒体
EP1166566A2 (en) 1999-04-01 2002-01-02 Ravisent Technologies, Inc. Memory management method for high speed streaming data processing in a computer device
GB2353653B (en) 1999-08-26 2003-12-31 Sony Uk Ltd Signal processor
JP3694888B2 (ja) 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ADOBE MAGAZINES, RICHARD WILLIAMS, "ALL IN GOOD TIMECODE", 1999.12.*

Also Published As

Publication number Publication date
WO2002015583A1 (en) 2002-02-21
EP1310097B1 (en) 2019-07-31
JP2011083008A (ja) 2011-04-21
US20060078291A1 (en) 2006-04-13
JP4700762B2 (ja) 2011-06-15
EP2364025B1 (en) 2015-09-16
JP4690635B2 (ja) 2011-06-01
AU2001286554A1 (en) 2002-02-25
JP2004507176A (ja) 2004-03-04
EP2364025A3 (en) 2013-04-17
US7167633B2 (en) 2007-01-23
US20020116361A1 (en) 2002-08-22
US7187845B2 (en) 2007-03-06
US7142775B2 (en) 2006-11-28
US20050111828A1 (en) 2005-05-26
US20050111826A1 (en) 2005-05-26
US20050111827A1 (en) 2005-05-26
US7024097B2 (en) 2006-04-04
US20050117879A1 (en) 2005-06-02
EP2364025A2 (en) 2011-09-07
EP1310097A1 (en) 2003-05-14
US7171107B2 (en) 2007-01-30
US7181124B2 (en) 2007-02-20
KR20030062316A (ko) 2003-07-23
US7248779B2 (en) 2007-07-24
US20050111839A1 (en) 2005-05-26

Similar Documents

Publication Publication Date Title
KR100884134B1 (ko) 미디어 샘플을 타임코딩하기 위한 방법
US7633551B2 (en) Compressed timing indicators for media samples
US7274862B2 (en) Information processing apparatus
US6078725A (en) Apparatus for a synchronized playback of audio-video signals
CN101419827B (zh) 在音频视频交叉文件中进行音频与视频数据同步的方法
JPH11513222A (ja) 多重ビデオ対象画の表示時間スタンピング方法と同期化方法
KR101533174B1 (ko) 코딩된 비디오 프레임들의 시퀀스를 처리하는 방법
CA2501331A1 (en) Methods and apparatus to present survey information
US6754273B1 (en) Method for compressing an audio-visual signal
Han et al. DTV lip-sync test using time-indexed audio and video signals without effect on program
JP3401505B2 (ja) Vopの時刻符号化方法
JP3421024B2 (ja) Vopの時刻復号化方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130121

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 12