KR20040106414A - 미디어 파일에서 진보된 코딩 포맷의 지원 - Google Patents

미디어 파일에서 진보된 코딩 포맷의 지원 Download PDF

Info

Publication number
KR20040106414A
KR20040106414A KR10-2004-7017400A KR20047017400A KR20040106414A KR 20040106414 A KR20040106414 A KR 20040106414A KR 20047017400 A KR20047017400 A KR 20047017400A KR 20040106414 A KR20040106414 A KR 20040106414A
Authority
KR
South Korea
Prior art keywords
sample
multimedia data
metadata
sub
parameter set
Prior art date
Application number
KR10-2004-7017400A
Other languages
English (en)
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
Priority claimed from US10/371,464 external-priority patent/US20030163477A1/en
Priority claimed from US10/425,685 external-priority patent/US20040006575A1/en
Application filed by 소니 일렉트로닉스 인코포레이티드 filed Critical 소니 일렉트로닉스 인코포레이티드
Publication of KR20040106414A publication Critical patent/KR20040106414A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

멀티미디어 데이터에 관련된 하나 이상의 디스크립션이 식별되고(도 1) 멀티미디어 데이터와 연관된 추가 향상 정보(SEI)에 포함된다(도 24). 이어서, 하나 이상의 디스크립션을 포함하는 SEI가 멀티미디어 데이터의 디코딩시 선택적 이용을 위해 디코딩 시스템에 송신된다(도 2).

Description

미디어 파일에서 진보된 코딩 포맷의 지원{SUPPORTING ADVANCED CODING FORMATS IN MEDIA FILES}
네트워크, 멀티미디어, 데이터베이스 및 다른 디지털 용량에 대한 요구가 급속하게 증가함에 따라, 다수의 멀티미디어 코딩 및 저장 스킴이 개발되었다. 오디오비주얼 데이터를 인코딩하고 저장하기 위한 주지된 파일 포맷들 중 하나는 애플 컴퓨터 사에 의해 개발된 QuickTime파일 포맷이다. QuickTime 파일 포맷은 국제 표준화 기구(ISO) 멀티미디어 파일 포맷, ISO/IEC 14496-12, 정보 기술-오디오-비주얼 오브젝트의 코딩 - 파트 12: ISO 미디어 파일 포맷(ISO 파일 포맷으로도 알려짐)을 생성하기 위한 개시 포인트로서 이용되었고, 이는 역으로 2개의 표준 파일 포맷, 즉 (1) 동화상 전문가 그룹에 의해 개발되고 MP4(ISO/IEC 14496-14, 정보 기술-오디오-비주얼 오브젝트의 코딩 - 파트 14: MP4 파일 포맷)로서 알려진 MPEG-4 파일 포맷, 및 (2) 합동 사진 전문가 그룹(JPEG)에 의해 개발된 JPEG 2000(ISO/IEC15444-1)을 위한 파일 포맷에 대한 템플레이트로서 이용되었다.
ISO 미디어 파일 포맷은 박스(또는 아톰(atom) 또는 오브젝트)로 지칭되는 오브젝트-지향 구조로 구성된다. 2개의 중요한 최상위-레벨 박스는 미디어 데이터 또는 메타데이터 중 하나를 포함한다. 대부분의 박스들은 실제 미디어 데이터에 관한 선언적, 구조적 및 일시적 정보를 제공하는 메타데이터의 계층구조를 기술한다. 이러한 박스 집합은 무비 박스라고 알려진 박스에 포함된다. 미디어 데이터 자체는 미디어 데이터 박스 내부에 또는 외부에 위치될 수 있다. 특정 미디어 데이터에 관한 정보를 제공하는 메타데이터 박스의 집합적 계층구조는 트랙으로서 알려져 있다.
주요한 메타데이터는 무비 오브젝트이다. 무비 박스는 일시적으로 제공된 미디어 데이터를 기술하는 트랙 박스를 포함한다. 트랙에 대한 미디어 데이터는 다양한 타입(예를 들면, 비디오 데이터, 오디오 데이터, 이진 포맷 스크린 표현(BIFS), 등)이 될 수 있다. 각 트랙은 샘플들(또는 액세스 유닛 또는 픽쳐로서 알려짐)로 더 분할된다. 하나의 샘플은 특정 시점에서의 미디어 데이터의 유닛을 표현한다. 샘플 메타데이터는 샘플 박스 세트에 포함된다. 각 트랙 박스는 샘플 테이블 박스 메타데이터 박스를 포함하는데, 이는 각 샘플에 대한 시간, 바이트 단위의 그 크기를 제공하는 박스들을 포함한다. 샘플은 타이밍, 위치 및 다른 메타데이터 정보를 표현할 수 있는 최소 데이터 실체이다. 샘플들은 연속적인 샘플 세트를 포함하는 청크로 그룹화될 수 있다. 청크들은 다른 크기를 가질 수 있고 다른 크기의 샘플들을 포함할 수 있다.
최근, 국제 전기통신 연합(ITU)의 MPEG 비디오 그룹 및 비디오 코딩 전문가 그룹(VCEG)은 합동 비디오 팀(JVT)로서 함께 연구하기 시작하여, ITU 추천 H.264 또는 MPEG-4-파트 10, 진보된 비디오 코덱(AVC) 또는 JVT 코덱으로 지칭되는 새로운 비디오 코딩/디코딩(코덱) 표준을 개발했다. 이들 용어들 및 H.264, JVT 및 AVC와 같은 약어들은 상호교환가능하게 여기에서 이용된다.
JVT 코덱 설계는 2개의 다른 이론적 레이어, 즉 비디오 코딩 레이어(VCL) 및 네트워크 추상화 레이어(NAL) 간을 구별시켜 준다. VCL은 모션 보상, 계수의 변환 코딩, 및 엔트로피 코딩과 같은 코덱의 코딩 관련된 부분을 포함한다. VCL의 출력은 슬라이스들로서, 이들 각각은 매크로 블록 열 및 연관된 헤더 정보를 포함한다. NAL은 VCL 데이터를 운반하는데 이용되는 트랜스포트 레이어의 세부사항으로부터 VCL을 추상화한다. NAL은 슬라이스 레벨의 위에서 정보에 대한 일반적 및 트랜스포트 독립적 표현을 정의한다. NAL은 비디오 코덱 자체와 외부 세계간의 인터페이스를 정의한다. 내부적으로, NAL은 NAL 패킷을 이용한다. NAL 패킷은 페이로드의 타입 플러스 페이로드내의 비트 세트를 나타내는 타입 필드를 포함한다. 단일 슬라이스 내의 데이터는 다른 데이터 파티션들로 추가 분할될 수 있다.
다수의 현재 비디오 코딩 포맷에서, 코딩된 스트림 데이터는 디코딩 프로세스를 제어하는 파라미터를 포함하는 다양한 종류의 헤더를 포함한다. 예를 들면, MPEG-2 비디오 표준은 시퀀스 헤더, 향상된 픽쳐 그룹(GOP), 및 이들 아이템에 대응하는 비디오 데이터 이전의 픽쳐 헤더를 포함한다. JVT에서, VCL 데이터를 디코딩하는데 필요한 정보는 파라미터 세트들로 그룹화된다. 각 파라미터 세트에는 슬라이스로부터의 기준으로서 후속적으로 이용되는 식별자가 제공된다. (대역내) 스트림 내부에 파라미터 세트를 전송하는 대신에, 이들은 (대역외) 스트림 외부로 전송될 수 있다.
현재의 파일 포맷들은 코딩된 미디어 데이터와 연관된 파라미터 세트를 저장하기 위한 설비를 제공하지 않으며, 또한 파라미터 세트가 효율적으로 검색되고 송신되도록 미디어 데이터(즉, 샘플 또는 서브-샘플)를 파라미터에 효율적으로 링크하기 위한 수단을 제공하지도 않는다.
ISO 미디어 파일 포맷에서, 미디어 데이터를 파싱하지 않고 액세스될 수 있는 최소 유닛은 샘플, 즉 AVC에서 전체 픽쳐이다. 다수의 코딩된 포맷에서, 샘플은 서브-샘플(또는 샘플 프래그먼트 또는 액세스 유닛 프래그먼트로도 지칭됨)이라 불리는 더 작은 유닛으로 더 분할될 수 있다. AVC의 경우에, 서브-샘플은 슬라이스에 대응한다. 현재의 파일 포맷은 샘플의 서브-부분들을 액세스하는 것을 지원하지 않는다. 파일에 저장된 데이터를 스트리밍을 위한 파일로 유연하게 형성하는데 필요한 시스템들에 대해, 이러한 서브-샘플로의 액세스 부족은 스트리밍을 위한 JVT 미디어 데이터의 유연한 패킷화를 방해한다.
현재의 저장 포맷의 다른 한계는 미디어 데이터를 스트리밍할 때 네트워크 조건을 변경하는데 응답하여 다른 대역폭을 가지는 저장된 스트림들간의 스위칭과 관련을 가지고 있다. 전형적인 스트리밍 시나리오에서, 핵심 요구조건들 중 하나는 네트워크 조건을 변경하는데 응답하여 압축된 데이터의 비트 레이트를 스케일링하는 것이다. 이것은 통상 대표적인 네트워크 조건에 대해 다른 대역폭 및 품질세팅을 가지는 복수의 스트림들을 인코딩하고 이들을 하나 이상의 파일들에 저장함으로써 달성된다. 그리고나서, 서버는 네트워크 조건에 응답하여 이들 미리-코딩된 스트림들 사이에서 스위칭할 수 있다. 현재의 파일 포맷에서, 스트림들간 스위칭은 재구성을 위한 이전 샘플에 의존하지 않는 샘플에서만 가능하다. 그러한 샘플들은 I-프레임들로서 지칭된다. 재구성을 위해 이전 샘플들에 의존하지 않는 샘플들에서의 스트림들(즉, 기준을 위해 복수의 샘플들에 의존하는 P-프레임 또는 B-프레임) 사이를 스위칭하기 위한 지원은 현재 제공되지 않는다.
AVC 표준은 스위칭 픽쳐(SI- 및 SP-픽쳐로 불림)로서 알려진 툴을 제공하여, 다른 특징들뿐만 아니라 스트림, 스트림간 효율적인 스위칭, 랜덤 액세스, 및 에러 복구(resilience)을 가능하게 한다. 스위칭 픽쳐는 그 재구성된 값이 스위칭할 것으로 예상되는 픽쳐에 정확하게 등가인 특별한 픽쳐 타입이다. 스위칭 픽쳐는 이들이 매칭하는 픽쳐를 예측하는데 이용되는 것들과 다른 기준 픽쳐를 이용할 수 있으므로, I-프레임을 이용하는 것보다 더 효율적인 코딩을 제공한다. 파일에 저장된 스위칭 픽쳐를 효율적으로 이용하려면, 어느 픽쳐 세트가 등가이고 어느 픽쳐가 예측에 이용되는지를 아는 것이 필요하다. 현재의 파일 포맷은 이러한 정보를 제공하지 않으며, 그러므로 이러한 정보는 코딩된 스트림을 파싱함으로써 추출되어야만 하고, 이는 비효율적이고 느리다.
그러므로, 신생 비디오 코딩 표준에 의해 제공되는 새로운 성능에 대처하는 저장 방법을 향상시키고, 이들 저장 방법의 현재의 한계에 대처할 필요가 있다.
본 발명은 일반적으로는 멀티미디어 파일 포맷에서 오디오비주얼 컨텐트의 저장 및 검색에 관한 것으로, 특히 ISO 미디어 파일 포맷과 호환가능한 파일 포맷에 관한 것이다.
도 1은 인코딩 시스템의 하나의 실시예의 블록도이다.
도 2는 디코딩 시스템의 하나의 실시예의 블록도이다.
도 3은 본 발명을 실시하는데 적합한 컴퓨터 환경의 블록도이다.
도 4는 인코딩 시스템에서 서브-샘플 메타데이터를 저장하기 위한 방법의 플로우 다이어그램이다.
도 5는 디코딩 시스템에서 서브-샘플 메타데이터를 활용하기 위한 방법의 플로우 다이어그램이다.
도 6은 서브-샘플을 가지는 확장된 MP4 미디어 스트림 모델을 예시하고 있다.
도 7a-7k는 서브-샘플 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 8은 인코딩 시스템에서 파라미터 세트 메타데이터를 저장하기 위한 방법의 플로우 다이어그램이다.
도 9는 디코딩 시스템에서 파라미터 세트 메타데이터를 활용하기 위한 방법의 플로우 다이어그램이다.
도 10a-10e는 파라미터 세트 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 11은 향상된 픽쳐 그룹(GOP)의 예를 예시하고 있다.
도 12는 인코딩 시스템에서 시퀀스 메타데이터를 저장하기 위한 방법의 플로우 다이어그램이다.
도 13은 디코딩 시스템에서 시퀀스 메타데이터를 활용하기 위한 방법의 플로우 다이어그램이다.
도 14a-14e는 시퀀스 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 15a 및 15b는 비트 스트림 스위칭을 위한 스위치 샘플 세트의 이용을 예시하고 있다.
도 15c는 2개의 비트 스트림들간 스위치가 수행되어야 할 포인트를 결정하기 위한 방법의 하나의 실시예의 플로우 다이어그램이다.
도 16은 인코딩 시스템에서 스위치 샘플 메타데이터를 저장하기 위한 방법의 플로우 다이어그램이다.
도 17은 디코딩 시스템에서 스위치 샘플 메타데이터를 활용하기 위한 방법의 플로우 다이어그램이다.
도 18은 스위치 샘플 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 19a 및 19b는 비트 스트림으로의 랜덤 액세스 엔트리 포인트를 용이하게 하는 스위치 샘플 세트의 이용을 예시하고 있다.
도 19c는 샘플에 대한 랜덤 액세스 포인트를 결정하기 위한 방법의 하나의 실시예의 플로우 다이어그램이다.
도 20a 및 20b는 에러 복구를 용이하게 하는 스위치 샘플 세트의 이용을 예시하고 있다.
도 20c는 샘플을 전송할 때 에러 복구를 용이하게 하기 위한 방법의 하나의 실시예의 플로우 다이어그램이다.
도 21 및 22는 본 발명의 일부 실시예에 따른 파라미터 세트 메타데이터의 저장을 예시하고 있다.
도 23-26은 본 발명의 일부 실시예에 따른 추가 향상 정보(SEI)의 저장을 예시하고 있다.
멀티미디어 데이터와 관련된 하나 이상의 디스크립션이 식별되어 멀티미디어 데이터와 연관된 추가 향상 정보(SEI)에 포함된다. 이어서, 디스크립션을 포함하는 SEI는 멀티미디어 데이터의 디코딩에 선택적 이용을 위해 디코딩 시스템에 송신된다.
본 발명은 한정이 아니라 예로서, 유사한 참조부호가 유사한 구성요소를 지칭하는 첨부된 도면에 예시되어 있다.
본 발명의 실시예의 이하의 상세한 설명에서, 유사한 참조부호는 유사한 구성요소를 나타내고 본 발명이 실시될 수 있는 특정 실시예들을 예시로서 도시된 첨부된 도면들을 참조한다. 이들 실시예들은 본 기술분야의 숙련자들이 본 발명을 실시할 수 있을 만큼 충분히 상세하게 기술되고, 다른 실시예들이 이용될 수도 있고 본 발명의 범주에서 벗어나지 않고서도 논리적, 기계적, 전기적, 기능적 및 다른 변경이 가해질 수 있다는 것은 자명하다. 그러므로, 이하의 상세한 설명은 제한적인 의미로 받아들여서는 안되고, 본 발명의 범주는 첨부된 청구의 범위에 의해서만 정의된다.
개요
본 발명의 동작의 개요로 시작하여, 도 1은 인코딩 시스템(100)의 하나의 실시예를 예시하고 있다. 인코딩 시스템(100)은 미디어 인코더(104), 메타데이터 발생기(106) 및 파일 생성기(108)를 포함한다. 미디어 인코더(104)는 비디오 데이터(예를 들면, 자연적인 소스 비디오 장면으로부터 생성된 비디오 오브젝트 및 다른 외부 비디오 오브젝트), 오디오 데이터(예를 들면, 자연적인 소스 오디오 장면으로부터 생성된 오디오 오브젝트 및 다른 외부 오디오 오브젝트), 합성 오브젝트, 또는 상기의 임의의 조합을 포함하는 미디어 데이터를 수신한다. 미디어 인코더(104)는 다수의 개별적인 인코더로 구성되거나, 다양한 타입의 미디어 데이터를 처리하는 서브-인코더를 포함한다. 미디어 인코더(104)는 미디어 데이터를 코딩하여 메타데이터 발생기(106)에 패싱한다. 메타데이터 발생기(106)는 미디어 파일 포맷에 따라 미디어 데이터에 관한 정보를 제공하는 메타데이터를 발생시킨다. 미디어 파일 포맷은 ISO 미디어 파일 포맷(또는 MPEG-4, JPEG 2000 등과 같은 그 파생 포맷들 중 임의의 하나), QuickTime 또는 임의의 다른 미디어 파일 포맷으로부터 도출되고, 또한 일부 추가 데이터 구조를 포함한다. 하나의 실시예에서, 미디어 데이터내의 서브-샘플들에 관련된 메타데이터를 저장하는 추가 데이터 구조가 정의된다. 다른 실시예에서, 미디어 데이터의 일부(예를 들면, 샘플 또는 서브-샘플)를, 미디어 데이터에 전통적으로 저장되었던 디코딩 정보를 포함하는 대응하는 파라미터 세트에 결합시키는 메타데이터를 저장하는 추가 데이터 구조가 정의된다. 또 다른 실시예에서, 미디어 데이터내의 샘플들의 상호-종속성에 기초하여 생성된 메타데이터내의 다양한 샘플 그룹에 관한 메타데이터를 저장하는 추가 데이터 구조가 정의된다. 또 다른 실시예에서, 미디어 데이터와 연관된 스위치 샘플 세트와 관련된 메타데이터를 저장하는 추가 데이터 구조가 정의된다. 스위치 샘플 세트는 동일한 디코딩 값을 가지지만 다른 샘플들에 의존하는 샘플 세트를 지칭한다. 또 다른 실시예에서, 다양한 추가 데이터 구조의 조합이 이용되는 파일 포맷에서 정의된다. 이들 추가 데이터 구조 및 그 기능이 이하에 더 상세하게 설명된다.
파일 생성기(108)는 코딩된 미디어 데이터 및 메타데이터를 저장하는 것을 담당한다. 하나의 실시예에서, 코딩된 미디어 데이터 및 연관된 메타데이터(예를 들면, 서브-샘플 메타데이터, 파라미터 세트 메타데이터, 그룹 샘플 메타데이터, 또는 스위치 샘플 메타데이터)는 동일한 파일에 저장된다. 이러한 파일의 구조는 미디어 파일 포맷에 의해 정의된다.
다른 실시예에서, 모든 또는 일부 타입의 메타데이터가 미디어 데이터와 분리되어 저장된다. 예를 들면, 파라미터 세트 메타데이터는 미디어 데이터와 분리되어 저장된다. 구체적으로는, 파일 생성기(108)는 코딩된 미디어 데이터로 파일을 형성하는 미디어 데이터 파일 생성기(114), 메타데이터로 파일을 형성하는 메타데이터 파일 생성기(112), 및 미디어 데이터와 대응하는 메타데이터를 동기화하는 동기화기(116)를 포함한다. 분리된 메타데이터의 저장 및 미디어 데이터와의 동기화는 이하에 더 상세하게 설명될 것이다.
하나의 실시예에서, 메타데이터 파일 생성기(112)는 미디어 데이터와 연관된 추가 향상 정보(SEI) 메시지를 미디어 데이터로부터 분리된 메타데이터로서 저장하는 것을 담당한다. SEI 메시지는 미디어 데이터의 디코딩시 이용하기 위한 선택적 데이터를 나타낸다. 그 SEI 데이터의 결여가 디코딩 동작을 방해하지 않으므로, 디코더는 SEI 데이터를 반드시 이용할 필요는 없다. 하나의 실시예에서, SEI 메시지는 미디어 데이터의 디스크립션을 포함하는데 이용된다. 디스크립션은 MPEG-7 표준에 따라 정의되고, 디스크립터 및 디스크립션 스킴으로 구성된다. 디스크립터는 오디오비주얼 컨텐트의 특징을 표현하고 각 특징 표현의 구문 및 의미를 정의한다. 디스크립터의 예는 컬러 디스크립터, 텍스처 디스크립터, 모션 디스크립터 등을 포함한다. 디스크립션 스킴(DS)은 이들 컴포넌트들간의 관계의 구조 및 의미를 지정한다. 이들 컴포넌트들은 모두 디스크립터 및 디스크립션 스킴이 될 수 있다. 디스크립션의 이용은 일단 디코딩된다면 미디어 데이터의 검색 및 뷰잉을 개선한다. SEI 메시지의 선택적 본성으로 인해, 디코더는 그 이용을 허용하는 성능 및 특정 구성을 가지지 않는 한 SEI 메시지를 이용할 필요가 없으므로, SEI 메시지로의 디스크립션의 포함은 디코딩 동작에 악영향을 미치지 않는다. SEI 메시지의 메타데이터로서의 저장은 이하에 더 상세하게 설명된다.
파일 생성기(108)에 의해 생성된 파일들은 저장 또는 송신을 위해 채널(110) 상에서 가용하다.
도 2는 디코딩 시스템(200)의 하나의 실시예를 예시하고 있다. 디코딩 시스템(200)은 메타데이터 추출기(204), 미디어 데이터 스트림 프로세서(206), 미디어디코더(210), 컴포지터(212, compositor), 및 렌더러(214, renderer)를 포함한다. 디코딩 시스템(200)은 클라이언트 디바이스 상에서 상주하고 로컬 재생에 이용된다. 다르게는, 디코딩 시스템(200)은 데이터를 스트리밍하는데 이용될 수 있고, 네트워크(예를 들면, 인터넷, 208)를 통해 서로 통신하는 서버 부 및 클라이언트 부를 가지고 있다. 서버 부는 메타데이터 추출기(204) 및 미디어 데이터 스트림 프로세서(206)를 포함할 수 있다. 클라이언트 부는 미디어 디코더(210), 컴포지터(212) 및 렌더러(214)를 포함한다.
메타데이터 추출기(204)는 데이터베이스(216)에 저장되거나 네트워크를 통해 수신된(예를 들면, 인코딩 시스템(100)으로부터) 파일로부터 메타데이터를 추출하는 것을 담당한다. 파일은 추출되는 메타데이터와 연관된 미디어 데이터를 포함하거나 포함하지 않을 수도 있다. 파일로부터 추출된 메타데이터는 상기 설명된 추가 데이터 구조들 중 하나 이상을 포함한다.
추출된 메타데이터는 연관된 코딩된 미디어 데이터를 수신하는 미디어 데이터 스트림 프로세서(206)에 패싱된다. 미디어 데이터 스트림 프로세서(206)는 메타데이터를 이용하여 미디어 디코더(210)에 전송될 미디어 데이터 스트림을 형성한다. 하나의 실시예에서, 미디어 데이터 스트림 프로세서(206)는 서브-샘플에 관련된 메타데이터를 이용하여 미디어 데이터내의 서브-샘플들을 로케이팅한다(예를 들면, 패킷화를 위해). 다른 실시예에서, 미디어 데이터 스트림 프로세서(206)는 파라미터 세트와 관련된 메타데이터를 이용하여 미디어 데이터의 일부를 그 대응하는 파라미터 세트에 링크한다. 또 다른 실시예에서, 미디어 데이터 스트림 프로세서(206)는 메타데이터내의 다양한 샘플 그룹을 정의하는 메타데이터를 이용하여 특정 그룹의 샘플들에 액세스한다(예를 들면, 범위성을 위해, 다른 어떠한 샘플도 의존하지 않는 샘플들을 포함하는 그룹을 드롭하고 송신 조건에 응답하여 송신된 비트 레이트를 낮춤). 또 다른 실시예에서, 미디어 데이터 스트림 프로세서(206)는 스위치 샘플 세트를 정의하는 메타 데이터를 이용하여, 스위칭하기로 되어 있지만 이 결과적인 샘플이 의존할 샘플에 의존하지 않는 샘플과 동일한 디코딩 값을 가지는 스위치 샘플을 로케이팅한다(예를 들면, P-프레임 또는 B-프레임에서 다른 비트 레이트를 가지는 스트림으로 스위칭하는 것을 허용함).
일단 미디어 데이터 스트림이 형성되면, 디코딩을 위해, 바로(예를 들면, 로컬 재생을 위해) 또는 네트워크(208, 예를 들면 데이터를 스트리밍하기 위해)를 통해 미디어 디코더(210)에 전송된다. 컴포지터(212)는 미디어 디코더(210)의 출력을 수신하여, 렌더러(214)에 의해 사용자 표시 디바이스에 렌더링되는 장면을 구성한다.
도 3의 이하의 설명은 본 발명을 구현하는데 적합한 컴퓨터 하드웨어 및 다른 동작 컴포넌트의 개요를 제공하려는 것으로, 적용가능한 환경을 제한하려고 하는 것은 아니다. 도 3은 도 1의 메타데이터 발생기(106) 및/또는 파일 생성기(108) 또는 도 2의 메타데이터 추출기(204) 및/또는 미디어 데이터 스트림 프로세서(206)으로 이용하기에 적합한 컴퓨터 시스템의 하나의 실시예를 예시하고 있다.
컴퓨터 시스템(340)은 시스템 버스(365)에 결합되는 프로세서(350), 메모리(355), 및 입출력 장비(capability, 360)를 포함한다. 메모리(355)는 프로세서(350)에 의해 실행될 때 여기에 설명된 방법들을 수행하는 명령을 저장하도록 구성된다. 입/출력(360)은 프로세서(350)에 의해 액세스가능한 임의의 타입의 저장 디바이스를 포함한 다양한 타입의 컴퓨터-판독가능 매체를 포함한다. 본 기술분야의 숙련자라면, 용어 "컴퓨터-판독가능 매체/매체들"은 데이터 신호를 인코딩한 반송파를 더 포함한다는 것을 잘 알고 있을 것이다. 또한, 시스템(340)은 메모리(355)에서 실행되는 오퍼레이팅 시스템 소프트웨어에 의해 제어된다. 입출력 및 관련 매체(360)는 본 발명의 오퍼레이팅 시스템 및 방법에 대한 컴퓨터-실행가능 명령을 저장한다. 도 1 및 도 2에 도시된 메타데이터 발생기(106), 파일 생성기(108), 메타데이터 추출기(204), 및 미디어 데이터 스트림 프로세서(206) 각각은 프로세서(350)에 결합된 분리된 컴포넌트이거나, 프로세서(350)에 의해 실행되는 컴퓨터-실행가능 명령으로 실시될 수 있다. 하나의 실시예에서, 컴퓨터 시스템(340)은 ISP(Internet Service Provider)의 일부이거나, 입출력(360)을 통해 ISP에 결합되어 인터넷을 통해 미디어 데이터를 수신하거나 송신한다. 본 발명은 인터넷 액세스 및 인터넷 웹-기반 사이트로 제한되지 않고, 직접 결합되고 사설 네트워크도 가능하다는 것은 자명하다.
컴퓨터 시스템(340)은 다른 아키텍쳐를 가지는 다수의 가능한 컴퓨터 시스템들 중 하나의 예라는 것은 자명하다. 전형적인 컴퓨터 시스템은 통상 적어도 프로세서, 메모리 및 메모리를 프로세서에 결합시키는 버스를 포함한다. 본 기술분야의 숙련자라면, 본 발명은 멀티프로세서 시스템, 미니컴퓨터, 메인프레임컴퓨터 등을 포함한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 바로 알 수 있을것이다. 본 발명은 통신 네트워크를 통해 링크된 원격 처리 디바이스에 의해 태스크들이 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다.
서브-샘플 청크
도 4 및 5는 인코딩 시스템(100) 및 디코딩 시스템(200)에 의해 각각 수행되는 서브-샘플 메타데이터를 저장하고 검색하기 위한 프로세스를 예시하고 있다. 프로세스들은 하드웨어(예를 들면, 회로, 전용 로직, 등), 소프트웨어(예를 들면, 범용 컴퓨터 시스템 또는 전용 머신 상에서 운용됨), 또는 양쪽의 조합을 포함하는 처리 로직에 의해 수행될 수 있다. 소프트웨어-구현된 프로세스에 대해, 플로우 다이어그램의 기술은 본 기술분야의 숙련자가 적절하게 구성된 컴퓨터(메모리를 포함한 컴퓨터-판독가능 매체로부터 명령을 실행하는 컴퓨터의 프로세서) 상에서 명령을 수행하는 명령을 포함하는 그러한 프로그램을 개발할 수 있게 한다. 컴퓨터-실행가능 명령은 컴퓨터 프로그래밍 언어로 저작되거나 펌웨어 로직으로 실시될 수 있다. 인식된 표준에 일치하는 프로그래밍 언어로 저작된 경우, 그러한 명령은 다양한 하드웨어 플랫폼 상에서 실행되고 다양한 오퍼레이팅 시스템으로의 인터페이스에 대해 실행될 수 있다. 뿐만 아니라, 본 발명의 실시예들은 임의의 특정 프로그래밍 언어를 참조하여 기술되지 않는다. 여기에 설명된 사상을 구현하는데 다양한 프로그래밍 언어가 이용될 수 있다는 것은 자명하다. 또한, 하나의 형태 또는 다른 형태(예를 들면, 프로그램, 절차, 프로세스, 어플리케이션, 모듈, 로직,...)의 소프트웨어를 액션을 취하거나 결과를 유발하는 것으로 말하는 것은 본 기술분야에서 흔한 것이다. 그러한 표현은, 컴퓨터에 의한 소프트웨어의 실행이 컴퓨터의 프로세서가 액션을 수행하거나 결과를 생성하도록 유발하는 것을 말하는 것을 간단하게 말하는 것에 불과하다. 본 발명의 범주에서 벗어나지 않고서도 도 4 및 5에 예시된 프로세스에 더 많거나 더 적은 오퍼레이션들이 포함될 수 있고, 여기에 도시되고 기재된 블록의 배열로 특정 순서가 암시되어 있는 것이 아니라는 것은 자명하다.
도 4는 인코딩 시스템(100)에서 서브-샘플 메타데이터를 생성하기 위한 방법(400)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(400)은 인코딩된 미디어 데이터를 가지는 파일을 수신하는 로직을 처리하는 것으로 시작한다(처리 블록 402). 다음으로, 처리 로직은 미디어 데이터의 서브-샘플의 경계를 식별하는 정보를 추출한다(처리 블록 404). 이용되는 파일 포맷에 따라, 시간 속성이 부착될 수 있는 데이터 스트림의 최소 단위가 샘플(ISO 미디어 파일 포맷 또는 QuickTime에 의해 정의됨), 액세스 유닛(MPEG-4에 의해 정의됨), 또는 픽쳐(JVT에 의해 정의됨), 등으로 지칭된다. 서브-샘플은 샘플 레벨 이하의 데이터 스트림의 연속 부분을 표현한다. 서브-샘플의 정의는 코딩 포맷에 좌우되지만, 일반적으로 서브-샘플은 단일 실체 또는 샘플의 부분적인 구성을 획득하는 서브-유닛의 조합으로서 디코딩되는 샘플의 의미있는 서브-유닛이다. 서브-샘플은 액세스 유닛 프래그먼트로서 불려지기도 한다. 종종, 서브-샘플은 각 서브-샘플이 동일한 샘플 내의 다른 서브-샘플들에 대한 소수의 종속성을 가지거나 또는 어떠한 종속성도 가지지 않도록 샘플의 데이터 스트림의 분할을 표현한다. 예를 들면, JVT에서, 서브-샘플은 NAL 패킷이다. 유사하게, MPEG-4 비디오에 대해, 서브-샘플은 비디오 패킷이 될 수 있다.
하나의 실시예에서, 인코딩 시스템(100)은 상기 설명된 바와 같이 JVT에 의해 정의된 네트워크 추상화 레이어에서 동작한다. JVT 미디어 데이터 스트림은 NAL 패킷 열로 구성되고, 각 NAL 패킷(또는 NAL 유닛으로 지징됨)은 헤더 부분과 페이로드 부분을 포함한다. 하나의 NAL 패킷 타입은 각 슬라이스에 대한 코딩된 VCL 데이터, 또는 슬라이스의 단일 데이터 파티션을 포함하는데 이용된다. 뿐만 아니라, NAL 패킷은 SEI 메시지를 포함하는 정보 패킷이 될 수 있다. JVT에서, 서브-샘플은 헤더 및 페이로드 모두를 가지는 완전한 NAL 패킷이 될 수 있다.
처리 블록 406에서, 처리 로직은 미디어 데이터에서 서브-샘플을 정의하는 서브-샘플 메타데이터를 생성한다. 하나의 실시예에서, 서브-샘플 메타데이터는 선정된 데이터 구조 세트(예를 들면, 박스 세트)로 조직화된다. 선정된 데이터 구조 세트는 각 서브-샘플의 크기에 관한 정보를 포함하는 데이터 구조, 각 샘플의 전체 서브-샘플의 개수에 관한 정보를 포함하는 데이터 구조, 각 서브-샘플을 기술하는 정보(예를 들면, 서브-샘플로서 정의되어 있는 것)를 포함하는 데이터 구조, 각 청크내의 서브-샘플의 전체 개수에 관한 정보를 포함하는 데이터 구조, 각 서브-샘플의 우선권에 관한 정보를 포함하는 데이터 구조, 또는 서브-샘플에 관한 데이터를 포함하는 임의의 다른 데이터 구조를 포함할 수 있다.
다음으로, 하나의 실시예에서, 처리 로직은 임의의 데이터 구조가 반복된 데이터 시퀀스를 포함하는지 여부를 결정한다(결정 박스 408). 이 결정이 긍정이라면, 처리 로빅은 각 반복된 데이터 시퀀스를 시퀀스 발생으로의 참조 및 반복된 시퀀스가 발생하는 회수로 변환한다(처리 블록 410).
그리고나서, 처리 블록 412에서, 처리 로직은 특정 미디어 파일 포맷(예를 들면, JVT 파일 포맷)을 이용하여 미디어 데이터와 연관된 파일로 서브-샘플 메타데이터를 포함한다. 미디어 파일 포맷에 따라, 서브-샘플 메타데이터는 샘플 메타데이터로 저장되거나(예를 들면, 서브-샘플 데이터 구조가 샘플 데이터 구조를 포함하는 샘플 테이블 박스에 포함됨), 샘플 메타데이터와 독립적으로 저장될 수 있다.
도 5는 디코딩 시스템(200)에서 서브-샘플 메타데이터를 활용하기 위한 방법(500)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(500)은 인코딩된 미디어 데이터와 연관된 파일을 수신하는 처리 로직으로 시작한다(처리 블록 502). 파일은 데이터베이스(로컬 또는 외부), 인코딩 시스템(100), 또는 네트워크 상의 임의의 다른 디바이스로부터 수신될 수 있다. 파일은 미디어 데이터의 서브-샘플을 정의하는 서브-샘플 메타데이터를 포함한다.
다음으로, 처리 로직은 파일로부터 서브-샘플 메타데이터를 추출한다(처리 블록 504). 상기 설명된 바와 같이, 서브-샘플 메타데이터는 데이터 구조 세트(예를 들면, 박스 세트)로 저장될 수 있다.
또한, 처리 블록 506에서, 처리 로직은 추출된 메타데이터를 이용하여, 인코딩된 미디어 데이터(동일 파일 또는 다른 파일에 저장됨)의 서브-샘플을 식별하고 다양한 서브-샘플들을 미디어 디코더에 전송될 패킷으로 조합함으로써, 스트리밍을 위해 미디어 데이터에 대한 유연한 패킷화를 가능하게 한다(예를 들면, 에러 복구력, 범위성, 등을 지원함).
예로 든 서브-샘플 메타데이터 구조가 이제 확장된 ISO 미디어 파일 포맷(확장된 MP4로 지칭됨)을 참조하여 설명된다. 본 기술분야의 숙련자라면, 다른 미디어 파일 포맷이 서브-샘플 메타데이터를 저장하기 위한 유사한 데이터 구조를 포함하도록 용이하게 확장될 수 있다는 것을 잘 알고 있을 것이다.
도 6은 서브-샘플을 가지는 확장된 MP4 미디어 스트림 모델을 예시하고 있다. 프리젠테이션 데이터(예를 들면, 동기화된 오디오 및 비디오를 포함하는 프리젠테이션)는 무비(602)에 의해 표현된다. 무비(602)는 트랙 세트(604)를 포함한다. 각 트랙(604)은 미디어 데이터 스트림을 참조한다. 각 미디어 데이터 스트림은 샘플(606)들로 분할된다. 각 샘플(606)은 특정 시점에서 미디어 데이터의 유닛을 표현한다. 샘플(606)은 서브-샘플(608)로 더 분할된다. JVT 표준에서, 서브-샘플(608)은 픽쳐의 단일 슬라이스, 복수의 데이터 파티션을 가지는 슬라이스의 하나의 데이터 파티션, 대역내 파라미터 세트, 또는 SEI 정보 패킷과 같은 NAL 패킷 또는 유닛을 나타낸다. 다르게는, 서브-샘플(606)은 미디어에서 공간 또는 시간적 영역을 나타내는 코딩된 데이터와 같은 샘플의 임의의 다른 구조화된 요소를 나타낼 수 있다. 하나의 실시예에서, 일부 구조적 또는 의미론적 기준에 따른 코딩된 미디어 데이터의 임의의 파티션은 서브-샘플로서 다루어질 수 있다.
트랙 확장 박스는 무비 프래그먼트가 각 샘플의 지속기간 및 크기에 대한 정보를 제공하고, 각 샘플의 저하(degradation) 우선권을 지정하며, 및 다른 샘플 정보를 제공하는데 이용되는 경우에, 트랙 프래그먼트내의 샘플들을 식별하는데 이용된다. 저하 우선권은 샘플의 중요성을 정의하고, 즉 샘플의 부재(예를 들면, 송신 동안에 그 손실로 인함)가 무비의 품질에 어떻게 영향을 미칠 수 있는지를 정의한다. 하나의 실시예에서, 트랙 확장 박스는 트랙 프래그먼트 박스내의 서브-샘플들에 대한 디폴트 정보를 포함하도록 확장된다. 이러한 정보는 예를 들면 서브-샘플 크기 및 서브-샘플 디스크립션에 대한 참조를 포함할 수 있다.
트랙은 프래그먼트로 분할될 수 있다. 각 프래그먼트는 제로 이상의 연속적인 샘플 런(run)을 포함할 수 있다. 트랙 프래그먼트 런 박스는 트랙 프래그먼트의 샘플을 식별하고, 트랙 프래그먼트의 각 샘플의 지속기간 및 크기에 관한 정보 및 트랙 프래그먼트에 저장된 샘플들에 관한 다른 정보를 제공한다. 트랙 프래그먼트 헤더 박스는 트랙 프래그먼트 런 박스에 이용되는 디폴트 데이터 값들을 식별한다. 하나의 실시예에서, 트랙 프래그먼트 런 박스 및 트랙 프래그먼트 헤더 박스는 트랙 프래그먼트내의 서브-샘플에 관한 정보를 포함하도록 확장된다. 트랙 프래그먼트 런 박스내의 확장된 정보는 예를 들면, 트랙 프래그먼트에 저장된 각 샘플의 서브-샘플의 개수, 각 서브-샘플의 크기, 서브-샘플 디스크립션으로의 참조, 및 플래그 세트를 포함할 수 있다. 플래그 세트는 트랙 프래그먼트가 샘플 또는 서브-샘플의 청크에 미디어 데이터를 저장하는지 여부, 서브-샘플 데이터가 트랙 프래그먼트 런 박스에 존재하는지 여부, 및 각 서브-샘플이 트랙 프래그먼트 런 박스에 존재하는 크기 데이터 및/또는 디스크립션 참조 데이터를 가지고 있는지 여부를 나타낸다. 트랙 프래그먼트 헤더 박스내의 확장된 정보는 예를 들면, 각 서브-샘플이 존재하는 크기 데이터 및/또는 디스크립션 참조 데이터를 가지고 있는지여부를 나타내는 플래그의 디폴트 값들을 포함할 수 있다.
도 7a-7l은 서브-샘플 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 7a를 참조하면, ISO 미디어 파일 포맷에 의해 정의된 샘플 메타데이터 박스를 포함하는 샘플 테이블 박스(700)는 서브-샘플 크기 박스(702), 서브-샘플 디스크립션 연관 박스(704), 서브-샘플 대 샘플 박스(706) 및 서브-샘플 디스크립션 박스(708)와 같은 서브-샘플 액세스 박스를 포함하도록 연장된다. 하나의 실시예에서, 서브-샘플 액세스 박스는 또한 서브-샘플 대 청크 박스 및 우선권 박스를 포함한다. 하나의 실시예에서, 서브-샘플 액세스 박스의 이용은 선택사항이다.
도 7b를 참조하면, 샘플(710)은 예를 들면 슬라이스(712)와 같은 슬라이드, 파티션(714)과 같은 데이터 파티션, 및 ROI(716)와 같은 관심 영역(ROI, region of interest)으로 분할 가능하다. 이들 각 예들은 다른 종류의 샘플의 서브-샘플들로의 분할을 나타낸다. 단일 샘플내의 서브-샘플들은 다른 크기를 가질 수 있다.
서브-샘플 크기 박스(718)는 서브-샘플 크기 박스(718)의 버전을 지정하는 버전 필드, 디폴트 서브-샘플 크기를 지정하는 서브-샘플 크기 필드, 트랙내의 서브-샘플의 개수를 제공하는 서브-샘플 카운트 필드, 및 각 서브-샘플의 크기를 지정하는 엔트리 크기 필드를 포함한다. 서브-샘플 크기 필드가 0으로 설정된 경우, 서브-샘플은 서브-샘플 크기 테이블(720)에 저장된 다른 크기를 가지고 있다. 서브-샘플 크기 필드가 0으로 설정되지 않는 경우, 일정한 서브-샘플 크기를 지정하고, 이는 서브-샘플 크기 테이블(720)이 비어있다는 것을 나타낸다. 테이블(720)은 서브-샘플 크기를 나타내기 위한 32비트 또는 가변 길이 필드의 고정된 크기를 가질 수 있다. 필드가 가변 길이인 경우, 서브-샘플 테이블은 길이를 서브-샘플 크기 필드의 바이트로 나타내는 필드를 포함한다.
도 7c를 참조하면, 서브-샘플 대 샘플 박스(722)는 서브-샘플 대 샘플 박스(722)의 버전을 지정하는 버전 필드, 및 테이블(723)내의 엔트리의 개수를 제공하는 엔트리 카운트 필드를 포함한다. 서브-샘플 대 샘플 테이블의 각 엔트리는 샘플당 서브-샘플의 동일한 개수를 공유하는 샘플들의 런에서 제1 샘플의 인덱스를 제공하는 제1 샘플 필드, 및 샘플들의 런 내에서 각 샘플의 서브-샘플의 개수를 제공하는 샘플당 서브-샘플 필드를 포함한다.
테이블(723)은 하나의 런에 얼마나 많은 샘플들이 있는지를 계산하고 이 숫자를 적절한 샘플당 서브-샘플로 승산하고 모든 런들의 결과를 함께 가산함으로써, 트랙내의 서브-샘플의 전체 개수를 구하는데 이용될 수 있다.
다른 실시예들에서, 서브-샘플들은 샘플들보다는 청크들로 그룹화될 수 있다. 그리고나서, 서브-샘플 대 청크 박스가 청크 내의 서브-샘플들을 식별하는데 이용된다. 서브-샘플 대 청크 박스는 서브-샘플의 동일한 개수를 공유하는 청크들의 런에서 제1 청크의 인덱스, 각 청크의 서브-샘플의 개수 및 서브-샘플 디스크립션에 대한 인덱스에 관한 정보를 저장한다. 서브-샘플 대 청크 박스는 특정 서브-샘플을 포함하는 청크, 청크내에서 서브-샘플의 위치, 및 이 서브-샘플의 디스크립션을 구하는데 이용될 수 있다. 하나의 실시예에서, 서브-샘플들이 청크로서 그룹화되는 경우에, 서브-샘플 대 샘플 박스(722)는 존재하지 않는다. 유사하게, 서브-샘플들이 샘플들로 그룹화되는 경우, 서브-샘플 대 청크 박스가 제공되지 않는다.
상기 설명된 바와 같이, 서브-샘플 액세스 박스는 각 서브-샘플에 대한 저하 우선권을 지정하는 우선권 박스를 포함한다. 저하 우선권은 서브-샘플의 중요성을 정의하고, 즉 서브-샘플의 부재(예를 들면, 송신 동안의 손실로 인함)가 디코딩된 미디어 데이터의 품질에 어떻게 영향을 미칠 수 있는지를 정의한다. 우선권 박스의 크기는 서브-샘플 대 샘플 박스(722) 또는 서브-샘플 대 청크 박스로부터 결정될 수 있는 바와 같이, 트랙내의 서브-샘플의 개수에 의해 정의될 것이다.
도 7d를 참조하면, 서브-샘플 디스크립션 연관 박스(724)는 서브-샘플 디스크립션 연관 박스(724)의 버전을 지정하는 버전 필드, 기술되고 있는 서브-샘플의 타입(예를 들면, NAL 패킷, 관심 영역, 등)을 나타내는 디스크립션 타입 식별자, 및 테이블(726)내의 엔트리의 개수를 제공하는 엔트리 카운트 필드를 포함한다. 테이블(726) 내의 각 엔트리는 서브-샘플 디스크립션 ID를 나타내는 서브-샘플 디스크립션 타입 식별자 필드, 및 동일한 서브-샘플 디스크립션 ID를 공유하는 서브-샘플들의 런에서 제1 서브-샘플의 인덱스를 제공하는 제1 서브-샘플 필드를 포함한다.
서브-샘플 디스크립션 타입 식별자는 서브-샘플 디스크립션 ID 필드의 이용을 제어한다. 즉, 디스크립션 타입 식별자에 지정된 타입에 따라, 서브-샘플 디스크립션 ID 필드는 ID 자체 내부의 서브-샘플 디스크립션을 바로 인코딩하는 디스크립션 ID를 스스로 지정하거나, 서브-샘플 디스크립션 ID 필드는 다른 테이블에 대한 인덱스로서 기능할 수 있다(즉, 이하에 설명되는 서브-샘플 디스크립션 테이블). 예를 들면, 디스크립션 타입 식별자가 JVT 디스크립션을 나타내는 경우, 서브-샘플 디스크립션 ID 필드는 JVT 서브-샘플의 특성을 지정하는 코드를 포함할 수 있다. 이 경우에, 서브-샘플 디스크립션 ID 필드는 32비트 필드로서, 최하위 8비트가 서브-샘플 내부의 선정된 데이터 파티션의 존재를 나타내는 비트-마스크로서 이용되고, 최상위 24비트는 NAL 패킷 타입을 나타내거나 또는 장래의 확장에 이용된다.
도 7e를 참조하면, 서브-샘플 디스크립션 박스(728)는 서브-샘플 디스크립션 박스(728)의 버전을 지정하는 버전 필드, 테이블(730)내의 엔트리 갯수를 제공하는 엔트리 카운트 필드, 서브-샘플의 특정에 관한 정보를 제공하는 서브-샘플 디스크립션 필드의 디스크립션 타입을 제공하는 디스크립션 타입 식별자 필드, 및 하나 이상의 서브-샘플 디스크립션 엔트리(730)를 포함하는 테이블을 포함한다. 서브-샘플 디스크립션 타입은 기술적인 정보가 관련되고 서브-샘플 디스크립션 연관 테이블(724)내에서 동일한 필드에 대응하는 타입을 식별한다. 테이블(730)내의 각 엔트리는 이러한 디스크립션 엔트리와 연관된 서브-샘플의 특성에 관한 정보를 가지는 서브-샘플 디스크립션 엔트리를 포함한다. 디스크립션 엔트리의 정보 및 포맷은 디스트립션 타입 필드에 좌우된다. 예를 들면, 디스크립션 타입이 파라미터 세트인 경우, 각 디스크립션 엔트리는 파라미터 세트의 값을 포함할 것이다.
기술적인 정보는 파라미터 세트 정보, ROI에 관한 정보 또는 서브-샘플을 특성화하는데 필요한 임의의 다른 정보와 관련된다. 파라미터 세트에 대해, 서브-샘플 디스크립션 연관 테이블(724)은 각 서브-샘플에 연관된 파라미터 세트를 나타낸다. 그러한 경우에, 서브-샘플 디스크립션 ID는 파라미터 세트 식별자에 대응한다. 유사하게, 서브-샘플은 이하와 같이 다른 관심-영역(ROI)을 나타낼 수 있다. 하나 이상의 코딩된 매크로블록으로 서브-샘플을 정의한 후, 서브-샘플 디스크립션 연관 테이블을 이용하여 비디오 프레임 또는 이미지의 코딩된 매크로블록의 다른 영역으로의 분할을 나타낸다. 예를 들면, 하나의 프레임의 코딩된 매크로블록은 포그라운드 및 백그라운드 영역으로의 할당을 각각 나타내는 2개의 서브-샘플 디스크립션 ID(예를들면, 서브-샘플 디스크립션 ID 1 및 2)를 가지는 포그라운드 및 백그라운드 매크로블록으로 분할될 수 있다.
도 7f는 다른 서브-샘플의 타입을 예시하고 있다. 서브-샘플은 파티션이 없는 슬라이스(732), 복수의 데이터 파티션을 가지는 슬라이스(734), 슬라이스내의 헤더(736), 슬라이스 중간의 데이터 파티션(738), 슬라이스의 최종 데이터 파티션(740), SEI 정보 패킷(742), 등을 나타낸다. 이들 서브-샘플 타입 각각은 도 7c에 도시된 8비트 마스크(744)의 특정 값과 연관된다. 8-비트 마스크는 상기 설명된 바와 같이 32비트 서브-샘플 디스크립션 ID 필드의 8 최하위 비트를 형성한다. 도 7h는 "jvtd"와 동일한 디스크립션 타입 식별자를 가지는 서브-샘플 디스크립션 연관 박스(724)를 예시하고 있다. 테이블(726)은 도 7g에 예시된 값들을 저장하는 32비트 서브-샘플 디스크립션 ID 필드를 포함한다.
도 7h-7k는 서브-샘플 디스크립션 연관 테이블의 데이터의 압축을 예시하고 있다.
도 7i를 참조하면, 미압축된 테이블(726)은 시퀀스(748)를 반복하는 서브-샘플 디스크립션 ID의 시퀀스(750)를 포함한다. 압축된 테이블(746)에서, 반복된 시퀀스(750)는 시퀀스(748) 및 이 시퀀스가 발생하는 회수로의 참조로 압축되었다.
도 7j에 예시된 하나의 실시예에서, 시퀀스 발생은 그 최상위 비트를 시퀀스 플래그(754)의 런으로, 그 다음 23비트를 발생 인텍스(756)로, 그 최하위 비트를 발생 길이(758)로 이용함으로써, 서브-샘플 디스크립션 ID 필드로 인코딩될 수 있다. 플래그(754)가 1로 설정된 경우, 이 엔트리가 반복된 시퀀스의 발생이라는 것을 나타낸다. 그렇지 않으면, 이 엔트리는 서브-샘플 디스크립션 ID이다. 발생 인덱스(756)는 시퀀스의 제1 발생의 서브-샘플 디스크립션 연관 박스(724)의 인덱스이고, 길이(758)는 반복된 시퀀스 발생의 길이를 나타낸다.
도 7k에 예시된 또 다른 실시예에서, 반복된 시퀀스 발생 테이블(760)은 반복된 시퀀스 발생을 나타내는데 이용된다. 서브-샘플 디스크립션 ID 필드의 최상위 비트는 엔트리가 서브-샘플 디스크립션 ID이거나 서브-샘플 디스크립션 연관 박스(724)의 일부인 반복된 시퀀스 발생 테이블(760)의 엔트리의 시퀀스 인덱스(764)인지 여부를 나타내는 시퀀스 플래그(762)의 런으로서 이용된다. 반복된 시퀀스 발생 테이블(760)은 반복된 시퀀스의 제1 아이템의 서브-샘플 디스크립션 연관 박스(724)의 인덱스를 지정하는 발생 인덱스 필드, 및 반복된 시퀀스의 길이를 지정하는 길이 필드를 포함한다.
파라미터 세트
JVT와 같은 특정 미디어 포맷에서, 미디어 데이터의 적절한 디코딩에 필요한 핵심적인 제어값을 포함하는 "헤더"정보는 코딩된 데이터의 나머지로부터 분리되거나 디커플링되어 파라미터 세트에 저장된다. 그리고나서, 코딩된 데이터와 함께 스트림에 이들 제어값들을 혼합하기 보다는, 코딩된 데이터는 고유 식별자와 같은 메커니즘을 이용하여 필요한 파라미터 세트를 참조할 수 있다. 이러한 접근법은 코딩된 데이터로부터 더 높은 레벨의 코딩 파라미터의 송신을 디커플링한다. 동시에, 이것은 제어값의 공통 세트를 파라미터 세트로서 공유함으로써 리던던시(redundancy)를 줄인다.
파라미터 세트를 이용하는 저장된 미디어 스트림의 효율적인 송신을 지원하기 위해, 파라미터 세트가 송신되거나 액세스되어야 하는 때와 장소를 알기 위해 전송자 또는 플레이어가 코딩된 데이터를 대응하는 파라미터에 신속하게 링크할 수 있어야만 한다. 본 발명의 하나의 실시예는 파라미터 세트와 미디어 데이터의 대응하는 부분간의 연관을 지정하는 데이터를 파라미터 세트 메타데이터로서 미디어 파일 포맷으로 저장함으로써 이러한 성능을 제공한다.
도 8 및 9는 인코딩 시스템(100) 및 디코딩 시스템(200)에 의해 각각 수행되는 파라미터 세트 메타데이터를 저장하고 검색하기 위한 프로세스를 예시하고 있다. 프로세스는 하드웨어(예를 들면, 회로, 전용 로직, 등), 소프트웨어(예를 들면, 범용 컴퓨터 시스템 또는 전용 머신에서 운용됨), 또는 양쪽의 조합을 포함하는 처리 로직에 의해 수행될 수 있다.
도 8은 인코딩 시스템(100)에서 파라미터 세트 메타데이터를 생성하기 위한 방법(800)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(800)은 인코딩된 미디어 데이터를 가지는 파일을 수신하는 처리 로직으로 시작한다(처리 블록802). 파일은 미디어 데이터의 일부를 디코딩하는 방법을 지정하는 인코딩 파라미터 세트를 포함한다. 다음으로, 처리 로직은 파라미터 세트로서 참조되는 인코딩 파라미터 세트와 미디어 데이터의 대응하는 부분간의 관계를 조사하고(처리 블록 804), 파라미터 세트 및 미디어 데이터 부분과의 연관을 정의하는 파라미터 세트 메타데이터를 생성한다(처리 블록 806). 미디어 데이터 부분은 샘플 또는 서브-샘플에 의해 표현될 수 있다.
하나의 실시예에서, 파라미터 세트 메타데이터는 선정된 데이터 구조 세트(예를 들면, 박스 세트)로 조직화될 수 있다. 선정된 데이터 구조 세트는 파라미터 세트에 관한 기술적 정보를 포함하는 데이터 구조 및 샘플과 대응하는 파라미터 세트간의 연관을 정의하는 정보를 포함하는 데이터 구조를 포함한다. 하나의 실시예에서, 선정된 데이터 구조 세트는 서브-샘플과 대응하는 파라미터 세트간의 연관을 정의하는 정보를 포함하는 데이터 구조를 포함한다. 서브-샘플 대 파라미터 세트 연관 정보를 포함하는 데이터 구조는 샘플 대 파라미터 세트 연관 정보를 포함하는 데이터 구조를 무시하거나 무시하지 않을 수도 있다.
다음으로, 하나의 실시예에서, 처리 로직은 임의의 파라미터 세트 데이터 구조가 반복된 데이터 시퀀스를 포함하는지 여부를 결정한다(결정 박스 808). 이 결정이 긍정이라면, 처리 로직은 데이터의 각 반복된 시퀀스를 시퀀스 발생 및 시퀀스가 발생하는 회수에 대한 참조로 변환한다(처리 블록 810).
그리고나서, 처리 블록 812에서, 처리 로직은 특정 미디어 파일 포맷(예를 들면, JVT 파일 포맷)을 이용하여 미디어 데이터와 연관된 파일로 파라미터 세트메타데이터를 포함시킨다. 미디어 파일 포맷에 따라, 파라미터 세트 메타데이터는 트랙 메타데이터 및/또는 샘플 메타데이터로 저장되거나(예를 들면, 파라미터 세트에 관한 기술적 정보를 포함하는 데이터 구조는 트랙 박스에 포함되고 연관 정보를 포함하는 데이터 구조(들)는 샘플 테이블 박스에 포함된다), 트랙 메타데이터 및/또는 샘플 메타데이터로부터 독립적으로 저장된다.
도 9는 디코딩 시스템(200)에서 파라미터 세트 메타데이터를 활용하기 위한 방법(900)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(900)은 인코딩된 미디어 데이터와 연관된 파일을 수신하는 처리 로직으로 시작한다(처리 블록 902). 파일은 데이터베이스(로컬 또는 외부), 인코딩 시스템(100), 또는 네트워크 상의 임의의 다른 디바이스로부터 수신될 수 있다. 파일은 미디어 데이터에 대한 파라미터 세트를 정의하는 파라미터 세트 메타데이터 및 파라미터 세트와 미디어 데이터의 대응하는 부분(예를 들면, 대응하는 샘플 또는 서브-샘플)간의 연관을 포함한다.
다음으로, 처리 로직은 파일로부터 파라미터 세트 메타데이터를 추출한다(처리 블록 904). 상기 설명된 바와 같이, 파라미터 세트 메타데이터는 데이터 구조 세트(예를 들면, 박스 세트)로 저장될 수 있다.
또한, 처리 블록 906에서, 처리 로직은 추출된 메타데이터를 이용하여, 어느 파라미터 세트가 특정 미디어 데이터 부분(예를 들면, 샘플 또는 서브-샘플)과 연관되는지를 결정한다. 그리고나서, 이러한 정보는 미디어 데이터 부분 및 대응하는 파라미터 세트의 송신 시간을 제어하는데 이용될 수 있다. 즉, 특정 샘플 또는서브-샘플을 디코딩하는데 이용될 수 있는 파라미터 세트는 샘플 또는 서브-샘플을 포함하는 패킷에 앞서서 또는 샘플 또는 서브-샘플을 포함하는 패킷과 함께 전송되어야 한다.
따라서, 파라미터 세트 메타데이터의 이용은 더 신뢰성있는 채널 상에서의 파라미터 세트의 독립적인 송신을 가능하게 함으로써, 미디어 스트림의 부분이 손실되도록 유발하는 에러 또는 데이터 손실의 가능성을 줄여준다.
예로 든 파라미터 세트 메타데이터 구조가 확장된 ISO 미디어 파일 포맷(확장된 ISO로 지칭됨)을 참조하여 설명된다. 그러나, 유의할 점은 다른 미디어 파일 포맷이 파라미터 세트 메타데이터를 저장하기 위한 유사한 데이터 구조를 포함하도록 확장될 수 있다는 점이다.
도 10a-10e는 파라미터 세트 메타데이터를 저장하기 위한 데이터 구조 예를 예시하고 있다.
도 10a를 참조하면, ISO 파일 포맷에 의해 정의된 트랙 메타데이터 박스를 포함하는 트랙 박스(1002)는 파라미터 세트 디스크립션 박스(1004)를 포함하도록 확장된다. 뿐만 아니라, ISO 파일 포맷에 의해 정의되는 샘플 메타데이터 박스를 포함하는 샘플 테이블 박스(1006)는 샘플 대 파라미터 세트 박스(1008)를 포함하도록 확장된다. 하나의 실시예에서, 샘플 테이블 박스(1006)는 이하에 상세하게 설명되는 바와 같이 샘플 대 파라미터 세트 박스(1008)를 무시하는 서브-샘플 대 파라미터 세트 박스를 포함한다.
하나의 실시예에서, 파라미터 세트 메타데이터 박스(1004, 1008)는 필수적이다. 다른 실시예에서는, 파라미터 세트 디스크립션 박스(1004)만이 필수적이다. 또 다른 실시예에서, 모든 파라미터 세트 메타데이터 박스가 선택적이다.
도 10b를 참조하면, 파라미터 세트 디스크립션 박스(1010)는 파라미터 세트 디스크립션 박스(1010)의 버전을 지정하는 버전 필드, 테이블(1012)내의 엔트리의 개수를 제공하는 파라미터 세트 디스크립션 카운트 필드, 및 파라미터 세트 자체에 대한 엔트리를 포함하는 파라미터 세트 엔트리 필드를 포함한다.
파라미터 세트는 샘플 레벨 또는 서브-샘플 레벨로부터 참조될 수 있다. 도 10c를 참조하면, 샘플 대 파라미터 세트 박스(1014)는 샘플 레벨로부터 파라미터 세트로의 참조를 제공한다. 샘플 대 파라미터 세트 박스(1014)는 샘플 대 파라미터 세트 박스(1014)의 버전을 지정하는 버전 필드, 디폴트 파라미터 세트 ID를 지정하는 디폴트 파라미터 세트 ID 필드, 및 테이블(1016)내의 엔트리의 개수를 제공하는 엔트리 카운트 필드를 포함한다. 테이블(1016)의 각 엔트리는 동일한 파라미터 세트를 공유하는 샘플들의 런에서 제1 샘플의 인덱스 및 파라미터 세트 디스크립션 박스(1010)로의 인덱스를 지정하는 파라미터 세트 인덱스를 제공하는 제1 샘플 필드를 포함한다. 디폴트 파라미터 세트 ID가 0이라면, 샘플들은 테이블(1016)에 저장된 다른 파라미터 세트를 가지고 있다. 그렇지 않으면, 일정한 파라미터 세트가 이용되고 어떠한 어레이도 뒤따르지 않는다.
하나의 실시예에서, 상기 서브-샘플 디스크립션 연관 테이블과 관련하여 상세하게 설명된 바와 같이, 테이블(1016)의 데이터는 각 반복된 시퀀스를 초기 시퀀스 및 이 시퀀스가 발생하는 회소로의 참조로 변환함으로써 압축된다.
파라미터 세트는 파라미터 세트와 서브-샘플간의 연관을 정의함으로써 서브-샘플 레벨로부터 참조될 수도 있다. 하나의 실시예에서, 파라미터 세트와 서브-샘플간의 연관은 상기 설명된 서브-샘플 디스크립션 연관 박스를 이용하여 정의된다. 도 10d는 파라미터 세트를 참조하는 디스크립션 타입 식별자를 가지는 서브-샘플 디스크립션 연관 박스(1018)를 도시하고 있다(예를 들면, 디스크립션 타입 식별자는 "pars"와 같다). 이러한 디스크립션 타입 식별자에 따라, 테이블(1020)내의 서브-샘플 디스크립션 ID는 파라미터 세트 디스크립션 박스(1010)의 인덱스를 나타낸다.
하나의 실시예에서, 파라미터 세트를 참조하는 디스크립션 타입 식별자를 가지는 서브-샘플 디스크립션 연관 박스(1018)가 존재하는 경우, 샘플 대 파라미터 세트 박스(1014)를 무시한다.
파라미터 세트는 파라미터 세트가 생성되는 시간과 파라미터 세트가 대응하는 미디어 데이터의 부분을 디코딩하는데 이용되는 시간 사이에서 변경될 수 있다. 그러한 변경이 발생하는 경우, 디코딩 시스템(200)은 변경 대 파라미터 세트를 지정하는 파라미터 업데이트 패킷을 수신한다. 파라미터 세트 메타데이터는 업데이트 이전 및 업데이트 이후 양쪽에서 파라미터 세트의 상태를 식별하는 데이터를 포함한다.
도 10e를 참조하면, 파라미터 세트 디스크립션 박스(1010)는 시각 t0에서 생성된 초기 파라미터 세트(1022)에 대한 엔트리 및 시각 t1에서 수신된 파라미터 업데이트 패킷(1026)에 응답하여 생성된 업데이트된 파라미터 세트(1024)에 대한 엔트리를 포함한다. 서브-샘플 디스크립션 연관 박스(1018)는 2개의 파라미터 세트를 대응하는 서브-샘플에 연관시킨다.
샘플 그룹
트랙내의 샘플들은 미디어 데이터의 하이-레벨 구조를 나타내는 시퀀스(비연속적일 수 있음)로의 샘플들의 다양한 논리적 그룹화(파티션)를 가질 수 있지만, 현재의 파일 포맷은 그러한 그룹화를 표현하고 저장하기 위한 편리한 메커니즘을 제공하지 않는다. 예를 들면, JVT와 같은 진보된 코딩 포맷은 단일 트랙내의 샘플들을 그 상호-종속성에 기초하여 그룹들로 조직화한다. 이들 그룹들(여기에서는 시퀀스 또는 샘플 그룹으로 지칭됨)은 네트워크 조건에 의해 요구되는 경우에 처분가능한 샘플의 체인을 식별하는데 이용되어, 시간적 범위성을 지원한다. 파일 포맷에서 샘플 그룹을 정의하는 메타데이터를 저장하는 것은 미디어의 전송자가 상기 특징들을 용이하게 효율적으로 구현할 수 있도록 한다.
샘플 그룹의 예는 그 프레임간 종속성이 이들이 다른 샘플과는 독립적으로 디코딩될 수 있도록 하는 샘플 세트이다. JVT에서, 그러한 샘플 그룹은 향상된 픽쳐 그룹(향상된 GOP)으로서 지칭된다. 향상된 GOP에서, 샘플들은 서브-시퀀스로 분할된다. 각 서브-시퀀스는 서로에 좌우되고 유닛으로서 처분될 수 있는 샘플 세트를 포함한다. 뿐만 아니라, 향상된 GOP의 샘플들은 상위 레이어의 샘플들이 하위 레이어의 샘플들로부터만 예측되도록 계층적으로 구조화되어, 최상위 레이어의 샘플들이 다른 샘플을 디코딩하는 성능에 영향을 미치지 않고 처분될 수 있도록 한다. 임의의 다른 레이어의 샘플들에 의존하지 않는 샘플들을 포함하는 최하위 레이어는 베이스 레이어로 지칭된다. 베이스 레이어가 아닌 임의의 다른 레이어는 향상 레이어로서 지칭된다.
도 11은 샘플들이 2개의 레이어, 베이스 레이어(1102) 및 향상 레이어(1104) 및 서브-시퀀스(1106, 1108)로 분할되는 향상된 GOP의 예를 예시하고 있다. 2개의 서브-시퀀스(1106, 1108) 각각은 서로에 독립적으로 드롭될 수 있다.
도 12 및 13은 인코딩 시스템(100) 및 디코딩 시스템(200)에 의해 각각 수행되는 샘플 그룹 메타데이터를 저장하고 검색하기 위한 프로세스를 예시하고 있다. 프로세스는 하드웨어(예를 들면, 회로, 전용 로직, 등), 소프트웨어(예를 들면, 범용 컴퓨터 시스템 또는 전용 머신에서 운용됨), 또는 양쪽의 조합을 포함하는 처리 로직에 의해 수행될 수 있다.
도 12는 인코딩 시스템(100)에서 샘플 그룹 메타데이터를 생성하기 위한 방법(1200)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(1200)은 인코딩된 미디어 데이터를 가지는 파일을 수신하는 처리 로직으로 시작한다(처리 블록 1202). 미디어 데이터의 트랙내의 샘플은 특정 상호-종속성을 가지고 있다. 예를 들면, 트랙은 임의의 다른 샘플에 의존하지 않는 I-프레임, 하나의 이전 샘플에 종속하는 P-프레임, 및 I-프레임, P-프레임 및 B-프레임의 임의의 조합을 포함하는 2개의 이전 샘플에 종속하는 B-프레임을 포함한다. 이들 상호-종속성에 기초하여, 트랙의 샘플들은 논리적으로 샘플 그룹(예를 들면, 향상된 GOP, 레이어, 서브-시퀀스, 등)으로 조합될 수 있다.
다음으로, 처리 로직은 메타데이터를 조사하여 각 트랙의 샘플 그룹을 식별하고(처리 블록 1204), 샘플 그룹을 기술하고 어느 샘플이 각 샘플 그룹에 포함되는지를 정의하는 샘플 그룹 메타데이터를 생성한다.(처리 블록 1206). 하나의 실시예에서, 샘플 그룹 메타데이터는 선정된 데이터 구조 세트(예를 들면, 박스 세트)로 조직화될 수 있다. 선정된 데이터 구조 세트는 각 샘플 그룹에 관한 기술적 정보를 포함하는 데이터 구조, 각 샘플 그룹에 포함된 샘플을 식별하는 정보를 포함하는 데이터 구조, 서브-시퀀스를 기술하는 정보를 포함하는 데이터 구조, 레이어를 기술하는 정보를 포함하는 데이터 구조를 포함한다. 다음으로, 하나의 실시예에서, 처리 로직은 임의의 샘플 그룹 데이터 구조가 반복된 데이터 시퀀스를 포함하는지 여부를 결정한다(결정 박스 1208). 이 결정이 긍정이라면, 처리 로직은 데이터의 각 반복된 시퀀스를 시퀀스 발생 및 시퀀스가 발생하는 회수에 대한 참조로 변환한다(처리 블록 1210).
그리고나서, 처리 블록 1212에서, 처리 로직은 특정 미디어 파일 포맷(예를 들면, JVT 파일 포맷)을 이용하여 미디어 데이터와 연관된 파일로 샘플 그룹 메타데이터를 포함시킨다. 미디어 파일 포맷에 따라, 샘플 그룹 메타데이터는 샘플 메타데이터로 저장되거나(예를 들면, 샘플 그룹 데이터 구조는 샘플 트랙 박스에 포함된다), 샘플 메타데이터로부터 독립적으로 저장된다.
도 13은 디코딩 시스템(200)에서 샘플 그룹 메타데이터를 활용하기 위한 방법(1300)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(1300)은 인코딩된 미디어 데이터와 연관된 파일을 수신하는 처리 로직으로 시작한다(처리 블록1302). 파일은 데이터베이스(로컬 또는 외부), 인코딩 시스템(100), 또는 네트워크 상의 임의의 다른 디바이스로부터 수신될 수 있다. 파일은 미디어 데이터에서 샘플 그룹을 정의하는 샘플 그룹 메타데이터를 포함한다.
다음으로, 처리 로직은 파일로부터 샘플 그룹 메타데이터를 추출한다(처리 블록 1304). 상기 설명된 바와 같이, 샘플 그룹 메타데이터는 데이터 구조 세트(예를 들면, 박스 세트)로 저장될 수 있다.
또한, 처리 블록 1306에서, 처리 로직은 추출된 샘플 그룹 메타데이터를 이용하여, 다른 샘플을 디코딩하는 성능에 영향을 미치지 않고 처분될 수 있는 샘플의 체인을 식별한다. 하나의 실시예에서, 이러한 정보는 특정 샘플 그룹의 샘플에 액세스하고, 네트워크 용량의 변화에 응답하여 어느 샘플들이 드롭될 수 있는지를 결정하는 데 이용된다. 다른 실시예들에서, 샘플 그룹 메타데이터는 트랙내의 일부 샘플들만이 처리되거나 렌더링되도록 샘플을 필터링하는데 이용된다.
따라서, 샘플 그룹 메타데이터는 샘플로의 선택적 액세스 및 범위성을 용이하게 한다.
예로 든 샘플 그룹 메타데이터 구조가 확장된 ISO 미디어 파일 포맷(확장된 MP4로 지칭됨)을 참조하여 설명된다. 그러나, 유의할 점은 다른 미디어 파일 포맷이 샘플 그룹 메타데이터를 저장하기 위한 다양한 데이터 구조를 포함하도록 확장될 수 있다는 점이다.
도 14a-14e는 샘플 그룹 메타데이터를 저장하기 위한 데이터 구조의 예를 예시하고 있다.
도 14a를 참조하면, MP4에 의해 정의된 샘플 메타데이터 박스를 포함하는 샘플 테이블 박스(1400)는 샘플 그룹 박스(1402) 및 샘플 그룹 디스크립션 박스(1404)를 포함하도록 확장된다. 하나의 실시예에서, 샘플 그룹 메타데이터 박스(1402, 1402)는 선택적이다. 하나의 실시예(도시되지 않음)에서, 샘플 테이블 박스(1400)는 서브-시퀀스 디스크립션 엔트리 박스 및 레이어 디스크립션 엔트리 박스와 같은 추가 선택적 샘플 그룹 메타데이터 박스를 포함한다.
도 14b를 참조하면, 샘플 그룹 박스(1406)는 특정 샘플 그룹에 포함된 샘플 세트를 구하는데 이용된다. 샘플 그룹 박스(1406)의 복수의 인스턴스들은 다른 타입의 샘플 그룹(예를 들면, 향상된 GOP, 서브-시퀀스, 레이어, 파라미터 세트, 등)에 대응하도록 허용된다. 샘플 그룹 박스(1406)는 샘플 그룹 박스(1406)의 버전을 지정하는 버전 필드, 테이블(1408)의 엔트리의 개수를 제공하는 엔트리 카운트 필드, 샘플 그룹의 타입을 식별하는 샘플 그룹 식별자 필드, 동일한 샘플 그룹내에 포함된 샘플들의 런에서 제1 샘플의 인덱스를 제공하는 제1 샘플 필드, 및 샘플 그룹 디스크립션 박스로의 인덱스를 지정하는 샘플 그룹 디스크립션 인덱스를 포함한다.
도 14c를 참조하면, 샘플 그룹 디스크립션 박스(1410)는 샘플 그룹의 특성에 관한 정보를 제공한다. 샘플 그룹 디스크립션 박스(1410)는 샘플 그룹 디스크립션 박스(1410)의 버전을 지정하는 버전 필드, 테이블(1412)내의 엔트리 갯수를 제공하는 엔트리 카운트 필드, 샘플 그룹의 타입을 식별하는 샘플 그룹 식별자 필드, 및 샘플 그룹 디스크립션을 제공하는 샘플 그룹 디스크립션 필드를 포함한다.
도 14d를 참조하면, 레이어("layr") 샘플 그룹 타입에 대한 샘플 그룹 박스(1416)의 이용이 예시되어 있다. 샘플 1 내지 11은 샘플들의 상호 종속성에 기초하여 3개의 레이어로 분할된다. 레이어 0(베이스 레이어)에서, 샘플들(샘플 1, 6 및 11)은 서로에 대해서만 의존하고, 임의의 다른 레이어의 샘플들에는 의존하지 않는다. 레이어 1에서, 샘플들(샘플 2, 5, 7, 10)은 하위 레이어(즉, 레이어 0)의 샘플 및 이 레이어 1내의 샘플들에 의존한다. 레이어 2에서, 샘플들(샘플 3, 4, 8, 9)은 하위 레이어(레이어 0 및 1)의 샘플들 및 이 레이어 2내의 샘플들에 의존한다. 따라서, 레이어 2의 샘플들은 하위 레이어 0 및 1로부터 샘플을 디코딩하는 성능에 영향을 미치지 않고 처분될 수 있다.
샘플 그룹 박스(1416)의 데이터는 샘플과 레이어간의 상기 연관을 예시하고 있다. 도시된 바와 같이, 이러한 데이터는 상기 더 상세하게 설명된 바와 같이, 각 반복된 레이어 패턴을 초기 레이어 패턴 및 이 패턴이 발생하는 회수로의 참조로 변환함으로써 압축될 수 있는 반복적 레이어 패턴(1414)을 포함한다.
도 14e를 참조하면, 서브-시퀀스("sseq") 샘플 그룹 타입에 대한 샘플 그룹 박스(1418)의 이용이 예시되어 있다. 샘플 1 내지 11은 샘플들의 상호 종속성에 기초하여 4개의 서브-시퀀스로 분랄된다. 레이어 0의 서브-시퀀스 0을 제외하고, 각 서브-시퀀스는 어떠한 다른 서브 시퀀스도 의존하지 않는 샘플들을 포함한다. 그러므로, 서브-시퀀스의 샘플들은 필요한 경우에 유닛으로서 처분될 수 있다.
샘플 그룹 박스(1418)내의 데이터는 샘플과 서브-시퀀스간의 연관을 예시하고 있다. 이러한 데이터는 대응하는 서브-시퀀스의 초기에 샘플로의 랜덤 액세스를 허용한다.
하나의 실시예에서, 서브-시퀀스 디스크립션 엔트리 박스는 GOP의 샘플들의 각 서브-시퀀스를 기술하는데 이용된다. 서브-시퀀스 디스크립션 엔트리 박스는 서브-시퀀스 식별자 데이터, 평균 비트 레이트 데이터, 평균 프레임 레이트 데이터, 참조 번호 데이터, 및 참조된 데이터에 관한 정보를 포함하는 어레이에 관련된 종속성 정보를 제공한다.
종속성 정보는 이 엔트리에 기술되는 서브-시퀀스에 대한 참조로서 이용되는 서브-시퀀스를 식별한다. 서브-시퀀스 식별자 데이터는 이 엔트리에 기술된 서브-시퀀스의 식별자를 제공한다. 평균 비트 레이트 데이터는 이 서브-시퀀스의 평균 비트 레이트(예를 들면, 비트 또는 초 단위로)를 포함한다. 하나의 실시예에서, 평균 비트 레이트의 계산은 페이로드 및 페이로드 헤더를 고려한다. 하나의 실시예에서, 평균 베트 레이트는 평균 비트 레이트가 정의되지 않은 경우에 제로이다.
평균 프레임 레이트 데이터는 엔트리의 서브-시퀀스의 프레임내에 평균 프레임 레이트를 포함한다. 하나의 실시예에서, 평균 프레임 레이트는 평균 프레임 레이트가 정의되지 않은 경우에 제로이다.
참조 번호 데이터는 엔트리의 서브-시퀀스에서 직접 참조된 서브-시퀀스의 번호를 제공한다. 참조된 데이터의 어레이는 참조된 서브-시퀀스의 식별 정보를 제공한다.
하나의 실시예에서, 추가 레이어 디스크립션 엔트리 박스는 레이어 정보를 제공하는데 이용된다. 레이어 디스크립션 엔트리 박스는 레이어의 개수, 레이어의평균 비트 레이트, 및 평균 프레임 레이트를 제공한다. 레이어의 개수는 베이스 레이어에 대해서는 제로이고 각 향상 레이어에 대해서는 1이상이다. 평균 비트 레이트는 평균 비트 레이트가 미정의된 경우에 제로이고, 평균 프레임 레이트는 평균 프레임 레이트가 미정의된 경우에 제로이다,
스트림 스위칭
전형적인 스트리밍 시나리오에서, 핵심적인 요구조건 중 하나는 네트워크 조건을 변경하는 것에 응답하여 압축된 데이터의 비트 레이트를 스케일링하는 것이다. 이것을 달성하는 가장 간단한 방법은 대표적인 네트워크 조건에 대해 다른 비트 레이트 및 품질 설정으로 복수의 스트림을 인코딩하는 것이다. 그러면, 서버는 네트워크 조건에 응답하여 이들 미리-코딩된 스트림들 사이에서 스위칭할 수 있다.
JVT 표준은 예측을 위해 2개의 픽쳐가 동일한 프레임을 이용하는 것이 요구되지 않으면서도 하나의 픽쳐가 다른 하나로 이상적으로 재구성되도록 허용하는 스위칭 픽쳐라 불리는 새로운 타입의 픽쳐를 제공한다. 특히, JVT는 2가지 타입의 스위칭 픽쳐, 즉 I-프레임과 같이 임의의 다른 픽쳐와 무관하게 코딩되는 SI-픽쳐, 및 다른 픽쳐를 참조하여 코딩되는 SP-픽쳐를 제공한다. 스위칭 픽쳐는 전달 조건을 변경하는 것에 응답하여 다른 비트 레이트 및 품질 설정을 가지는 스트림들간의 스위칭을 구현하고, 에러 복구력을 제공하며, 고속 감기 및 되돌려감기와 같은 트릭 모드를 구현하는데 이용될 수 있다.
그러나, 스트림 스위칭, 에러 복구력, 트릭 모드 및 다른 특징을 구현할 때 JVT 스위칭 픽쳐를 효율적으로 이용하려면, 플레이어는 저장된 미디어 데이터의 어느 샘플이 다른 표현을 가지고 있는지 및 그 종속성이 무엇인지를 알아야 한다. 현재의 파일 포맷은 그러한 성능을 제공하지 못한다.
본 발명의 하나의 실시예는 스위치 샘플 세트를 정의함으로써 상기 한계에 대처한다. 스위치 샘플 세트는 그 디코딩된 값이 동일하지만 다른 참조 샘플을 이용하는 샘플 세트를 나타낸다. 참조 샘플은 다른 샘플의 값을 예측하는데 이용되는 샘플이다. 스위치 샘플 세트의 각 멤버는 스위치 샘플로서 지칭된다. 도 15a는 비트 스트림 스위칭을 위한 스위치 샘플 세트의 이용을 예시하고 있다.
도 15a를 참조하면, 스트림 1 및 스트림 2는 다른 품질 및 비트 레이트 파라미터를 가지는 동일한 컨텐트의 2가지 인코딩이다. 샘플 S12는 SP-픽쳐로서 양쪽 스트림에서 발생하지 않으며 스트림 1에서 스트림 2로의 스위칭(스위칭은 방향성 속성이다)을 구현하는데 이용된다. 샘플 S12 및 S2는 스위치 샘플 세트에 포함된다. S1 및 S12는 모두 트랙 1의 샘플 P12로부터 예측되고, S2는 트랙 2의 샘플 P22로부터 예측된다. 샘플 S12 및 S2가 다른 참조 샘플을 잉요하지만, 이들 디코딩된 값들이 동일하다. 따라서, 스트림 1로부터 스트림 2로의 스위칭(스트림 1의 샘플 S1 및 스트림 2의 S2에서)은 스위치 샘플 S12를 통해 달성될 수 있다.
도 16 및 17은 인코딩 시스템(100) 및 디코딩 시스템(200)에 의해 각각 수행되는 스위치 샘플 메타데이터를 저장하고 검색하기 위한 프로세스를 예시하고 있다. 프로세스는 하드웨어(예를 들면, 회로, 전용 로직, 등), 소프트웨어(예를 들면, 범용 컴퓨터 시스템 또는 전용 머신에서 운용됨), 또는 양쪽의 조합을 포함하는 처리 로직에 의해 수행될 수 있다.
도 16은 인코딩 시스템(100)에서 샘플 그룹 메타데이터를 생성하기 위한 방법(1600)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(1600)은 인코딩된 미디어 데이터를 가지는 파일을 수신하는 처리 로직으로 시작한다(처리 블록 1202). 파일은 미디어 데이터에 대한 하나 이상의 다른 인코딩(예를 들면, 대표적인 네트워크 조건에 대한 다른 대역폭 및 품질 설정)을 포함한다. 다른 인코딩은 하나 이상의 스위칭 픽쳐를 포함한다. 그러한 픽쳐들은 다른 미디어 데이터 스트림 내에, 또는 에러 복구력 또는 트릭 모드와 같은 특별한 특징을 구현하는 분리된 실체로서 포함될 수 있다. 이들 트랙 및 스위치 픽쳐를 생성하기 위한 방법은 본 발명에 의해 구체화되지 않지만, 본 발명의 숙련자라면 다양한 가능성이 있다는 것을 잘 알고 있을 것이다. 예를 들면, 다른 인코딩을 포함하는 각 트랙 쌍 사이의 스위치 샘플의 주기적인(예를 들면, 매1초마다) 배치이다.
다음으로, 처리 로직은 파일을 조사하여, 다른 참조 샘플을 이용하면서도 동일한 디코딩 값을 가지는 이들 샘플들을 포함하는 스위치 샘플 세트를 생성하고(처리 블록 1604), 미디어 데이터에 대한 스위치 샘플 세트를 정의하고 스위치 샘플 세트내의 샘플을 기술하는 스위치 샘플 메타데이터를 생성한다(처리 블록 1606). 하나의 실시예에서, 스위치 샘플 메타데이터는 네스팅된 테이블 세트를 포함하는 테이블 박스와 같은 선정된 데이터 구조로 조직화된다.
다음으로, 하나의 실시예에서, 처리 로직은 스위치 샘플 메타데이터 구조가 반복된 데이터 구조를 포함하는지 여부를 결정한다(결정 박스 1608). 이 결정이 긍정이라면, 처리 로직은 각 반복된 데이터 시퀀스를 시퀀스 발생 및 시퀀스가 발생하는 회수로의 참조로 변환한다(처리 블록 1610).
그리고나서, 처리 블록 1612에서, 처리 로직은 특정 미디어 파일 포맷(예를 들면, JVT 파일 포맷)을 이용하여 미디어 데이터와 연관된 파일로의 스위치 샘플 메타데이터를 포함한다. 하나의 실시예에서, 스위치 샘플 메타데이터는 스트림 스위칭을 위해 지정된 분리된 트랙에 저장될 수 있다. 다른 실시예에서, 스위칭 샘플 메타데이터는 샘플 메타데이터로 저장된다(예를 들면, 시퀀스 데이터 구조는 샘플 테이블 박스에 포함될 수 있다).
도 17은 디코딩 시스템(200)에서 스위치 샘플 메타데이터를 활용하기 위한 방법(1700)의 하나의 실시예의 플로우 다이어그램이다. 처음에, 방법(1700)은 방법(1600)은 인코딩된 미디어 데이터를 가지는 파일을 수신하는 처리 로직으로 시작한다(처리 블록 1702). 파일은 데이터베이스(로컬 또는 외부), 인코딩 시스템(100), 또는 네트워크 상의 임의의 다른 디바이스로부터 수신될 수 있다. 파일은 미디어 데이터와 연관된 스위치 샘플 세트를 정의하는 스위치 샘플 메타데이터를 포함한다.
다음으로, 처리 로직은 파일로부터 스위치 샘플 메타데이터를 추출한다(처리 블록 1704). 상기 설명된 바와 같이, 스위치 샘플 메타데이터는 네스팅된 테이블 세트를 포함하는 테이블 박스와 같은 데이터 구조로 저장될 수 있다.
또한, 처리 블록 1706에서, 처리 로직은 추출된 샘플 그룹 메타데이터를 이용하여, 특정 샘플을 포함하는 스위치 샘플 세트를 구하고 스위치 샘플 세트로부터 다른 샘플을 선택한다. 그리고나서, 초기 샘플과 동일한 디코딩값을 가지는 다른샘플은 네트워크 조건을 변경하는 것에 응답하여 2개의 다르게 인코딩된 비트 스트림 사이에서 스위칭하고, 비트 스트림으로의 랜덤 액세스 엔트리 포인트를 제공하며, 에러 복구를 용이하게 하는데 이용된다.
예로 든 스위치 샘플 메타데이터 구조가 확장된 ISO 미디어 파일 포맷(확장된 MP4로 지칭됨)을 참조하여 설명된다. 그러나, 유의할 점은 다른 미디어 파일 포맷이 스위치 샘플 메타데이터를 저장하기 위한 다양한 데이터 구조를 포함하도록 확장될 수 있다는 점이다.
도 18은 스위치 샘플 메타데이터를 저장하기 위한 데이터 구조의 예를 예시하고 있다. 예로 든 데이터 구조는 네스팅된 테이블 세트를 포함하는 스위치 샘플 테이블 박스의 형태로 되어 있다. 테이블(1812)내의 각 엔트리는 하나의 스위치 샘플 세트를 식별한다. 각 스위치 샘플 세트는 그 재구성이 객관적으로 동일하지만(또는 개념적으로 동일함) 스위치 샘플과 동일한 트랙(스트림)에 존재하거나 존재하지 않을 수도 있는 다른 참조 샘플로부터 예측될 수 있는 스위치 샘플 그룹으로 구성된다. 테이블(1802)의 각 엔트리는 대응하는 테이블(1804)에 링크된다. 테이블(1804)은 스위치 샘플 세트에 포함된 각 스위치 샘플을 식별한다. 테이블(1804)내의 각 엔트리는 스위치 샘플의 로케이션(즉, 그 트랙 및 샘플 번호), 스위치 샘플에 의해 이용되는 참조 샘플을 포함하는 트랙, 스위치 샘플에 의해 이용되는 참조 샘플의 전체 개수, 및 스위치 샘플에 의해 이용되는 각 참조 샘플을 정의하는 대응하는 테이블(1806)에 더 링크된다.
도 15a에 예시된 바와 같이, 하나의 실시예에서, 스위치 샘플 메타데이터는동일한 컨텐트의 다르게 인코딩된 버전 사이에서 스위칭하는데 이용된다. MP4에서, 각 다른 코딩은 분리된 MP4 트랙으로 저장되고, 트랙 헤더내의 "다른 그룹"은 이것이 특정 컨텐트의 다른 인코딩이라는 것을 나타낸다.
도 15b는 도 15a에 따라 샘플 S2 및 S12로 구성되는 스위치 샘플 세트(1502)를 정의하는 메타데이터를 포함하는 테이블을 예시하고 있다.
도 15c는 2개의 비트 스트림들간의 스위치가 수행되어야 할 포인트를 결정하기 위한 방법(1510)의 하나의 실시예의 플로우 다이어그램이다. 스위치가 스트림 1에서 스트림 2로 수행된다고 가정하면, 방법(1510)은 스위치 샘플 메타데이어를 검색하여 스트림 1의 기준 트랙을 가지는 스위치 샘플 및 스트림 2의 스위치 샘플 트랙을 가지는 스위치 샘플을 포함하는 모든 스위치 샘플 세트를 구하는 것으로 시작한다(처리 블록 1512). 다음으로, 결과적인 스위치 샘플 세트가 평가되어 스트림 1의 참조 트랙을 가지는 스위치 샘플의 모든 참조 샘플들이 가용한 스위치 샘플 세트를 선택한다(처리 블록 1514). 예를 들면, 스트림 1의 참조 트랙을 가지는 스위치 샘플이 P 프레임이라면, 스위칭 이전의 하나의 샘플이 가용하도록 요구된다. 또한, 선택된 스위치 샘플 세트의 샘플들은 스위칭 포인트를 결정하는데 이용된다(처리 블록 1516). 즉, 스위칭 포인트는 스트림 1의 참조 트랙을 가지는 스위치 샘플의 최상위 참조 샘플의 바로 직후에서, 스트림 1의 참조 트랙을 가지는 스위치 샘플을 통해, 스트림 2의 스위치 샘플 트랙을 가지는 스위치 샘플에 곧바로 이어지는 샘플에까지이다.
다른 실시예에서, 스위치 샘플 메타데이터는 도 19a-19c에 예시된 바와 같은비트 스트림으로의 랜덤 액세스 엔트리 포인트를 용이하게 하는데 이용된다.
도 19a 및 19b를 참조하면, 스위치 샘플(1902)은 샘플 S2 및 S12로 구성된다. S2는 P22로부터 예측된 P 프레임으로서 보통 스트림 재생 동안에 이용된다. S12는 랜덤 액세스 포인트(예를 들면, 접합을 위함)로서 이용된다. 일단 S12가 디코딩되면, 스트림 재생은 P24가 S2 이후에 디코딩되었던 것처럼 P24의 디코딩으로 계속된다.
도 19c는 샘플(예를 들면, 트랙 T상의 샘플 S)에 대한 랜덤 액세스 포인트를 결정하기 위한 방법(1910)의 하나의 실시예의 플로우 다이어그램이다. 방법(1910)은 스위치 샘플 메타데이어를 검색하여 스위치 샘플 트랙 T를 가지는 스위치 샘플을 포함하는 모든 스위치 샘플 세트를 구하는 것으로 시작한다(처리 블록 1912). 다음으로, 결과적인 스위치 샘플 세트가 평가되어 스위치 샘플 트랙 T를 가지는 스위치 샘플이 디코딩 순서로 샘플 S에 앞서서 가장 근접한 샘플인 스위치 샘플 세트를 선택한다(처리 블록 1914). 또한, 스위치 샘플 트랙 T를 가지는 스위치 샘플 이외의 스위치 샘플(샘플 SS)은 샘플 S로의 랜덤 액세스 포인트에 대한 선택된 스위치 샘플 세트로부터 선택된다(처리 블록 1916). 스트림 재생 동안에, 샘플 SS가 샘플 S 대신에 디코딩된다(샘플 SS에 대한 엔트리에 지정된 임의의 참조 샘플의 디코딩에 의해 이어짐).
또 다른 실시예에서, 스위치 샘플 메타데이터는 도 20a-20c에 예시된 바와 같이 에러 복구를 용이하게 하는데 이용될 수 있다.
도 20a 및 20b를 참조하면, 스위치 샘플(2002)은 샘플 S2, S12, 및 S22로 구성된다. 샘플 S2는 샘플 P4로부터 예측된다. 샘플 S12는 샘플 S1로부터 예측된다. 샘플 P2와 P4 사이에 에러가 발생한다면, 스위치 샘플 S12는 샘플 S2 대신에 디코딩될 수 있다. 그리고나서, 스트리밍은 보통과 같이 샘플 S6으로 계속된다. 에러가 또한 샘플 S1에도 영향을 미친다면, 샘플 S2 대신에 스위치 샘플 S22가 디코딩될 수 있고, 그리고나서, 샘플 S6으로 보통과 같이 스트리밍이 계속된다.
도 20c는 샘플(예를 들면, 샘플 S)을 전송할 때 에러 복구를 용이하게 하기 위한 방법(2010)의 하나의 실시예의 플로우 다이어그램이다. 방법(2010)은 스위치 샘플 메다테이더를 검색하여 샘플 S와 동일하거나 디코딩 순서로 샘플 S에 뒤따르는 스위치 샘플을 포함하는 모든 스위치 샘플 세트를 구한다(처리 블록 2012). 다음으로, 결과적인 스위치 샘플 세트가 평가되어, 샘플 S에 가장 근접하고 그 참조 샘플이 정확한 것으로 알려진(피드백 또는 일부 다른 정보 소스를 통해) 스위치 샘플 SS를 가지는 스위치 샘플 세트를 선택한다(처리 블록 2014). 또한, 스위치 샘플 SS는 샘플 S 대신에 전송된다(처리 블록 2016).
파라미터 세트 및 추가 향상 정보의 저장
상기 설명된 바와 같이, 파라미터 세트 메타데이터와 같은 일부 메타데이터는 연관된 미디어 데이터와 분리되어 저장될 수 있다. 도 21은 본 발명의 하나의 실시예에 EK라 파라미터 세트 메타데이터의 분리 저장을 예시하고 있다. 도 21을 참조하면, 미디어 데이터는 비디오 트랙(2102)에 저장되고, 파라미터 세트 메타데이터는 미디어 데이터를 저장하지 않은 것을 나타내는 "인액티브"로서 표시된 분리된 파라미터 트랙(2104)에 저장된다. 타이밍 정보(2106)는 비디오 트랙(2102)과파라미터 트랙(2104)간의 동기화를 제공한다. 하나의 실시예에서, 타이밍 정보는 비디오 트랙(2102) 및 파라미터 세트 트랙(2104)의 각각의 샘플 테이블 박스에 저장된다. 하나의 실시예에서, 각 파라미터 세트는 하나의 파라미터 세트 샘플에 의해 표시되고, 동기화는 미디어 샘플의 타이밍 정보가 파라미터 세트 샘플의 타이밍 정보와 동일한 경우에 달성된다.
다른 실시예에서, 오브젝트 디스크립터(OD) 메시지는 파라미터 세트 메타데이터를 포함하는데 이용된다. MPEG-4 표준에 따르면, 오브젝트 디스크립터는 구성을 제공하는 하나 이상의 기본적인 스트림 디스크립터 및 단일 오브젝트(미디어 오브젝트 또는 장면 디스크립션)에 관련된 스트림에 대한 다른 정보를 나타낸다. 오브젝트 디스크립터 메시지는 오브젝트 디스크립터 스트림으로 전송된다. 도 22에 예시된 바와 같이, 파라미터 세트는 오브젝트 디스크립터 메시지(2204)로서 오브젝트 디스크립터 스트림(2202)에 포함된다. 오브젝트 디스크립터 스트림(2202)은 미디어 데이터를 수반하는 비디오 기본 스트림으로 동기화된다. SEI의 저장이 더 상세하게 설명된다.
하나의 실시예에서, SEI 데이터는 미디어 데이터를 가지는 기본적인 스트림에 저장된다. 도 23은 미디어 데이터와 함께 기본적인 스트림 데이터(2303)에 직접적으로 임베디드되는 SEI 메시지(2304)를 예시하고 있다.
다른 실시예에서, SEI 메시지는 분리된 SEI 트랙에서 샘플로서 저장된다. 도 24 및 25는 본 발명의 일부 실시예에 따른 분리된 트랙에서의 SEI 메시지의 저장을 예시하고 있다.
도 24를 참조하면, 미디어 데이터는 비디오 트랙(2402)에 저장되고, SEI 메시지는 샘플로서 분리된 SEI 트랙(2404)에 저장된다. 타이밍 정보(2406)는 비디오 트랙(2402)과 SEI 트랙(2404)간의 동기화를 제공한다.
도 25를 참조하면, 미디어 데이터는 비디오 트랙(2502)에 저장되고, SEI 메시지는 오브젝트 컨텐트 정보(OCI) 트랙(2504)에 저장된다. 타이밍 정보(2506)는 비디오 트랙(2502)와 OCI 트랙(2504)간의 동기화를 제공한다. MPEG-4 표준에 따르면, OCI 트랙(2504)은 장면 이벤트에 대한 텍스트 기술적 정보를 제공하는데 통상 이용되는 OCI 데이터를 저장하도록 지정된다. 각 SEI 메시지는 오브젝트 디스크립터로서 OCI 트랙(2504)에 저장된다. 하나의 실시예에서, 통상 OCI 트랙에 저장된 데이터 타입을 지정하는 OCI 디스크립터 요소 필드는 SEI 메시지를 운반하는데 이용된다.
또 다른 실시예에서, SEI 데이터는 미디어 데이터와 분리된 메타데이터로서 저장된다. 도 26은 본 발명의 하나의 실시예에 따라, 메타데이터로서 SEI 데이터의 저장을 예시하고 있다.
도 26을 참조하면, ISO 미디어 파일 포맷에 의해 정의된 사용자 데이터 박스(2602)는 SEI 메시지를 저장하는데 이용된다. 특히, 각 SEI 메시지는 트랙 또는 무비 박스에 포함된 사용자 데이터 박스(2602)내의 SEI 사용자 데이터 박스(2604)에 저장된다.
하나의 실시예에서, SEI 메시지에 포함된 메타데이터는 미디어 데이터의 디스크립션을 포함한다. 이들 디스크립션은 MPEG-7 표준에 의해 정의된 디스크립터및 디스크립션 스킴을 나타낸다. 하나의 실시예에서, SEI 메시지는 XML-기반 디스크립션과 같은 XML-기반 데이터의 포함을 지원한다. 뿐만 아니라, SEI 메시지는 다른 타입의 향상 정보의 등록을 지원한다. 예를 들면, SEI 메시지는 새로운 타입을 등록하지 않고 익명의 사용자 데이터를 지원할 수 있다. 그러한 데이터는 특정 어플리케이션 또는 조직에는 비공개로 하려는 것이다. 하나의 실시예에서, SEI의 존재는 지정된 시작 코드에 의해 비트스트림 환경에 나타난다.
하나의 실시예에서, SEI 메시지에 기술된 향상된 성능의 임의의 하나 또는 모두를 제공하는 디코더의 성능은 외부 수단(예를 들면, 추천 H.245 또는 SDP)에 의해 시그널링된다. 향상된 성능을 제공하지 않는 디코더들은 단지 SEI 메시지를 폐기한다.
하나의 실시예에서, 미디어 데이터(예를 들면, 비디오 코딩 레이어 데이터) 및 미디어 데이터의 디스크립션을 포함하는 SEI 메시지의 동기화는, 이하에 더 상세하게 설명되는 바와 같이, SEI 메시지의 페이로드 헤더의 지정된 필드를 이용하여 제공된다.
하나의 실시예에서, 네트워크 적응 레이어는 기저 트랜스포트 시스템에서 추가 향상 정보 메시지를 운반하는 수단을 지원한다. 네트워크 적응은 SEI 메시지를 시그널링하기 위한 대역내(비디오 코딩 레이어와 동일한 트랜스포트 스트림에서) 또는 대역외 수단 중 하나를 허용할 수 있다.
하나의 실시예에서, SEI 메시지로의 MPEG-7 메타데이터의 포함은 MPEG-7 메타데이터에 대한 전달 레이어로서 SEI를 이용함으로써 달성된다. 특히, SEI 메시지는 하나 이상의 디스크립션 프래그먼트를 표현하는 MPEG-7 시스템 액세스 유닛(프래그먼트)을 인캡슐레이션한다. 미디어 데이터와 MPEG-7 액세스 유닛과의 동기화는 SEI 메시지의 페이로드 헤더내의 지정된 필드를 이용하여 제공될 수 있다.
다른 실시예에서, SEI 메시지로의 MPEG-7 메타데이터의 포함은 디스크립션 유닛이 텍스트 또는 이진 인코딩 중 하나로 SEI 메시지에 전송되도록 허용함으로써 달성된다. 디스크립션 유닛은 단일 MPEG-7 디스크립터 또는 디스크립션 스킴이고, 완전한 디스크립션으로부터 부분적인 정보를 표현하는데 이용된다. 예를 들면, 이하는 스케일링가능한 컬러 디스크립터에 대한 XML 구문을 도시하고 있다.
이하에 상세하게 설명되는 바와 같이, 디스크립터 또는 디스크립션 스킴 인스턴스들은 SEI 메시지 헤더를 통해 미디어 데이터의 대응하는 부분(예를 들면, 서브-샘플, 샘플, 프래그먼트, 등)과 연관될 수 있다. 본 실시예는 예를 들면, SEI 메시지로서 전송되어야 할 단일 프레임에 대한 이진 또는 텍스트적으로 인코딩된 컬러 디스크립터를 허용한다. SEI 메시지를 이용하여, 비디오 코딩 스트림의 함축적인 디스크립션이 제공될 수 있다. 함축적인 디스크립션은 디스크립션 유닛이 함축적으로 포함되는 비디오 코딩 스트림의 완전한 디스크립션이다. 함축적인 디스크립션은 이하의 형태를 가지고 있다.
하나의 실시예에서, SEI에 대한 개정된 포맷은 디스크립션을 SEI 메시지에 포함하는 것을 지원하도록 제공된다. 구체적으로는, SEI는 SEI 메시지의 그룹으로 표현된다. 하나의 실시예에서, SEI는 데이터 청크로 인캡슐레이션된다. 각 SEI 청크는 하나 이상의 SEI 메시지를 포함할 수 있다. 각 SEI 메시지는 SEI 헤더 및 SEI 페이로드를 포함한다. SEI 헤더는 SEI 청크의 제1 바이트 또는 이전 SEI 메시지 이후 제1 바이트로부터 바이트-정렬된 위치에서 시작한다. 페이로드는 SEI 헤더를 뒤따르는 바이트에서 시작하는 SEI 헤더를 바로 뒤따른다.
SEI 헤더는 메시지 타입, 미디어 데이터 부분(예를 들면, 서브-샘플, 샘플, 및 프래그먼트)의 선택적 식별자, 및 페이로드 길이를 포함한다. SEI 헤더의 구문은 이하와 같을 수 있다.
MessageType 필드는 페이로드 내의 메시지의 타입을 나타낸다. SEI 메시지 타입 코드의 예는 이하와 같이 표 1에 구체화된다.
메시지 코드 픽쳐 메시지 슬라이스 메시지 메시지 디스크립션
MPEG-7
MGEG-7 이진 액세스 유닛
MPEG-7 텍스트 액세스 유닛
MPEG-7 JVT 메타데이터 D/DS 프래그먼트 텍스트
MPEG-7 JVT 메타데이터 D/DS 프래그먼트 이진수
새로운 타입 임의의 XMLxxxMessage
JVT 지정 XML 메시지
H.263 Annex I
비디오 시간 세그먼트 시작 태그
비디오 시간 세그먼트 종료 태그
H.263L Annex W
0 임의의 이진 데이터
1 임의의 텍스트
2 상표권 텍스트
3 캡션 텍스트
4 비디오 디스크립션 텍스트인간 판독가능한 텍스트
5 고유 리소스 식별자 텍스트
6 현재 픽쳐 헤더 반복
7 이전 픽쳐 헤더 반복
8 새로운 픽쳐 헤더 반복, 신뢰가능한 TR
9 다음 픽쳐 헤더 반복, 신뢰할 수 없는 TR
10 최상위 인터레이싱된 필드 표시
11 최하위 인터레이싱된 필드 표시
12 픽쳐 번호
13 여분 참조 픽쳐
PayloadLength 필드는 SEI 메시지 페이로드의 길이를 바이트로 지정한다. SEI 헤더는 또한 이러한 SEI 메시지가 특정 샘플과 연관되어 있는지를 나타내는 샘플 동기화 플래그, 및 이러한 SEI 메시지가 특정 서브-샘플과 연관되어 있는지를 나타내는 서브-샘플 동기화 플래그를 포함한다(서브-샘플 동기화 플래그가 설정된 경우, 샘플 동기화 플래그도 또한 설정되어 있다). SEI 페이로드는 이 메시지가 연관되어 있는 샘플을 지정하는 선택적 샘플 식별자 필드 및 메시지가 연관되어 있는 서브-샘플을 지정하는 선택적 서브-샘플 식별자 필드를 포함한다. 샘플 식별자필드는 샘플 동기화 플래그가 설정된 경우에만 존재한다. 유사하게, 서브-샘플 동기화 플래그가 설정된 경우에만 서브-샘플 식별자 필드가 존재한다. 샘플 식별자 및 서브-샘플 식별자 필드는 SEI 메시지와 미디어 데이터간의 동기화를 허용한다.
하나의 실시예에서, 각 SEI 메시지는 SEI 메시지 디스크립터로 전송된다. SEI 디스크립터는 하나 이상의 SEI 메시지를 포함하는 SEI 유닛으로 인캡슐레이션된다. SEI 메시지 유닛의 구문은 이하와 같다.
타입 필드는 SEI 메시지의 타입을 나타낸다. SEI 메시지 타입의 예는 표 2에 이하와 같이 제공된다.
태그 값 태그 이름
0x0000 금지
0x0000 연관 정보 SEI
SEIMetadataDescriptorTag
SEIMetadataRefDescriptorTa
g
SEITextDescriptorTag
SEIXMLDescriptorTag
SEIStartSegmentTag
SEIEndSegmentTag
-0x6FFF ISO 이용을 위한 예비
0x7000-FFF 어플리케이션 이용을 위한 예비
0x8000-FFFF SC29 등록 권한에 의해 할당하기 위해 예비됨
표 2에 예시된 다양한 타입의 SEI 메시지가 더 상세하게 설명된다.
SEIXMLDescriptor 타입은 예를 들면 더 큰 문서로부터 완전한 XML 문서 또는 XML 프래그먼트를 포함하는 XML-기반 데이터를 인캡슐레이션하는 디스크립터를 지칭한다. SEIXMLDescriptor의 구문은 이하와 같다.
SEIMetadataDescriptor 타입은 메타데이터를 포함하는 디스크립터를 지칭한다. SEIMetadataDescriptor의 구문은 이하와 같다.
metadataFormat 필드는 메타데이터의 포맷을 식별한다. 메타데이터 포맷의 값의 예들은 이하와 같이 표 3에 예시되어 있다.
디스크립션
0x00-0x0F 예비
0x10 정의된 ISO 15938(MPEG-7)
0x11-0x3F 예비
0x40-0xFF 정의된 등록 권한
값 0x10은 MPEG-7 정의된 데이터를 식별한다. 0x40에서 0xFF까지의 내부 범위의 값들은 사설 포맷의 이용을 시그널링하는데 가용하다.
metadataContent 필드는 metadataFormat 필드에 의해 지정된 포맷으로 메타데이터의 표현을 포함한다.
SEIMetadataRefDescriptor 타입은 메타데이터의 로케이션을 지정하는 URL을 지정하는 디스크립터를 지정한다. SEIMetadataRefDescriptor의 구문은 이하와 같다.
URLstring 필드는 메타데이터의 로케이션을 지시하는 UTF-8 인코딩된 URL을 포함한다.
SEITextDescriptor 타입은 비디오 컨텐트를 기술하거나 그와 관련된 텍스트를 포함하는 디스크립터를 지칭한다. SEITextDescriptor의 구문은 이하와 같다.
languageCode 필드는 이하의 텍스트 필드의 언어의 언어 코드를 포함한다. 텍스트 필드는 UTF-8 인코딩된 텍스트 데이터를 포함한다.
SEIURIDescriptor 타입은 비디오 컨텐트와 관련된 고유 리소스 식별자(URI)를 포함하는 디스크립터를 지칭한다. SEIURIDescriptor의 구문은 이하와 같다.
uriString 필드는 비디오 컨텐트의 URI를 포함한다.
SEIOCIDescriptor 타입은 오브젝트 컨텐트 정보(OCI) 디스크립터를 나타내는 SEI 메시지를 포함하는 디스크립터를 지칭한다. SEIOCIDescriptor의 구문은 이하와 같다
ociDescr 필드는 OCI 디스크립터를 포함한다.
SEIStartSegmentDescriptor 타입은 세그먼트의 시작을 나타내고 다른 SEI 메시지에 참조될 수 있는 디스크립터를 지칭한다. 세그먼트 시작은 이러한 SEI 디스크립터가 적용되는 특정 레이어(예를 들면, 샘플 그룹, 세그먼트, 샘플, 또는 서브-샘플)와 연관된다. SEIStartSegementDescriptor의 구문은 이하와 같다.
segmentID 필드는 세그먼트에 대한 이러한 스트림내의 고유 이진 식별자를 나타낸다. 이 값은 다른 세그먼트 SEI 메시지내의 세그먼트를 참조하는데 잉요될 수 있다.
SEIEndSegmentDescriptor 타입은 세그먼트의 엔드를 나타내는 디스크립터를 지칭한다. segmentID의 동일한 값을 포함하는 이전 SEIStartSegment 메시지가 있어야 한다. 미스매치가 발생한다면, 디코더는 이 메시지를 무시해야 한다. 세그먼트 엔드는 이러한 SEI 디스크립터가 적용되는 특정 레이어(예를 들면, 샘플 그룹, 세그먼트, 샘플 또는 서브-샘플)와 연관된다. SEIStartSegementDescriptor의 구문은 이하와 같다.
segmentID 필드는 세그먼트에 대한 이러한 스트림내의 고유한 인진 식별자를 나타낸다. 이 값은 다른 SEI 메시지내의 세그먼트를 참조하는데 이용될 수 있다.
오디오비주얼 메타데이터의 저장 및 검색이 기재되었다. 특정 실시예가 여기에 설명되고 도시되었지만, 본 기술분야의 숙련자라면, 동일한 목적을 달성하도록 계산된 임의의 배열이 도시된 특정 실시예에 대해 대체될 수 있다는 것을 잘 알고 있을 것이다. 본 출원서는 본 발명의 임의의 적응 및 변동을 포함하려는 것이다.

Claims (34)

  1. 멀티미디어 데이터의 복수의 부분에 대한 하나 이상의 파라미터 세트를 정의하는 파라미터 세트 메타데이터를 식별하는 단계; 및
    상기 멀티미디어 데이터와 분리되게 상기 파라미터 세트 메타데이터를 저장하는 단계
    를 포함하고,
    상기 분리된 파라미터 세트 메타데이터는 상기 멀티미디어 데이터를 디코딩하기 위해 디코딩 시스템에 후속적으로 송신되는 방법.
  2. 제1항에 있어서, 상기 멀티미디어 데이터의 복수의 부분의 각각은 상기 멀티미디어 데이터내의 샘플인 방법.
  3. 제1항에 있어서, 상기 멀티미디어 데이터의 복수의 부분의 각각은 상기 멀티미디어 데이터의 부분내의 서브-샘플인 방법.
  4. 제1항에 있어서, 상기 멀티미디어 데이터는 비디오 트랙에 저장되고, 상기 파라미터 세트 메타데이터는 파라미터 트랙에 저장되는 방법.
  5. 제4항에 있어서, 상기 파라미터 트랙을 상기 비디오 트랙과 동기화하는 단계를 더 포함하는 방법.
  6. 제4항에 있어서, 상기 파라미터 트랙은 인액티브한 방법.
  7. 제4항에 있어서, 상기 각 파라미터 세트는 파라미터 세트 샘플로서 파라미터 트랙에 저장되는 방법.
  8. 제1항에 있어서,
    상기 멀티미디어 데이터를 비디오 기본 스트림으로 송신하는 단계; 및
    상기 파라미터 세트 메타데이터를 오브젝트 디스크립터 스트림으로서 송신하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서, 각 파라미터 세트는 상기 오브젝트 디스크립터 스트림에서 오브젝트 디스크립터 메시지로서 전송되는 방법.
  10. 제8항에 있어서, 상기 오브젝트 디스크립터 스트림을 상기 비디오 기본 스트림과 동기화하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 디코딩 시스템에서, 상기 멀티미디어 데이터 및 상기 분리된 파라미터 세트 메타데이터를 수신하는 단계를 더 포함하고,
    상기 분리된 파라미터 세트 메타데이터는 상기 멀티미디어 데이터의 적어도 일부를 디코딩하는데 필요한 하나 이상의 파라미터 세트들 중 임의의 하나를 식별하는데 후속적으로 이용되는 방법.
  12. 멀티미디어 데이터에 관한 하나 이상의 디스크립션을 식별하는 단계; 및
    상기 멀티미디어 데이터와 연관된 추가 향상 정보로 상기 하나 이상의 디스크립션을 포함시키는 단계
    를 포함하고,
    상기 하나 이상의 디스크립션을 포함하는 SEI는 상기 멀티미디어 데이터의 디코딩시에 선택적으로 사용하기 위해 디코딩 시스템에 후속적으로 송신되는 방법.
  13. 제12항에 있어서, 상기 SEI는 상기 멀티미디어 데이터와 분리되어, 메타데이터로서 저장되는 방법.
  14. 제13항에 있어서, 상기 SEI 메타데이터는 복수의 SEI 메시지를 포함하는 방법.
  15. 제14항에 있어서, 상기 복수의 SEI 메시지 각각은 무비 박스의 트랙에 박스로서 저장되는 방법.
  16. 제13항에 있어서, 상기 멀티미디어 데이터는 비디오 트랙에 저장되고, 상기 SEI 메타데이터는 SEI 트랙에 저장되는 방법.
  17. 제16항에 있어서, 상기 SEI 트랙과 상기 비디오 트랙을 동기화하는 단계를 더 포함하는 방법.
  18. 제17항에 있어서, 상기 SEI 트랙은 샘플로 된 복수의 SEI 메시지를 포함하는 방법.
  19. 제13항에 있어서,
    상기 멀티미디어 데이터를 비디오 기본 스트림으로 송신하는 단계; 및
    상기 SEI 메타데이터를 오브젝트 컨텐트 정보(OCI) 스트림으로 송신하는 단계
    를 더 포함하는 방법.
  20. 제19항에 있어서, 상기 복수의 SEI 메시지 각각은 OCI 디스크립터로서 OCI스트림에 전송되는 방법.
  21. 제12항에 있어서, 하나 이상의 디스크립션 각각은 디스크립터 및 디스크립터 스킴 중 임의의 하나인 방법.
  22. 제14항에 있어서, 상기 복수의 SEI 메시지 각각은 복수의 SEI 메시지 각각을 대응하는 멀티미디어 데이터 부분에 연관시키는 데이터를 가지는 페이로드 헤더를 포함하는 방법.
  23. 제22항에 있어서, 상기 멀티미디어 데이터의 대응하는 부분은 샘플, 서브-샘플, 및 샘플 그룹 중 임의의 하나인 방법.
  24. 제12항에 있어서, 상기 하나 이상의 디스크립션을 SEI에 포함시키는 단계는, MPEG-7 시스템 액세스 유닛을 복수의 SEI 메시지 중 하나로 인캡슐레이션하는 단계를 포함하는 방법.
  25. 제12항에 있어서, 상기 하나 이상의 디스크립션 각각을 복수의 SEI 메시지의 하나로 송신하는 단계를 더 포함하는 방법.
  26. 제25항에 있어서, 상기 하나 이상의 디스크립션 각각은 텍스트 또는 이진수중 하나로 인코딩되는 방법.
  27. 멀티미디어 데이터를 포함하는 제1 파일을 형성하는 미디어 파일 생성기; 및
    복수의 멀티미디어 데이터 부분에 대한 하나 이상의 파라미터 세트를 정의하는 파라미터 세트 메타데이터를 식별하고, 상기 파라미터 세트 메타데이터를 포함하는 제2 파일을 형성하는 메타데이터 파일 생성기
    를 포함하고, 상기 제2 파일은 상기 멀티미디어 데이터를 디코딩할 때 디코딩 시스템에 의해 후속적으로 이용되는 장치.
  28. 멀티미디어 데이터를 포함하는 제1 파일을 형성하는 미디어 파일 생성기; 및
    멀티미디어 데이터와 관련된 하나 이상의 디스크립션을 식별하고 상기 멀티미디어 데이터와 연관된 추가 향상 정보에 하나 이상의 디스크립션을 포함시키는 메타데이터 파일 생성기
    를 포함하고,
    상기 하나 이상의 디스크립션을 포함하는 SEI는 상기 멀티미디어 데이터의 디코딩시 선택적 이용을 위해 디코딩 시스템에 후속적으로 송신되는 장치.
  29. 멀티미디어 데이터의 복수의 부분에 대한 하나 이상의 파라미터 세트를 정의하는 파라미터 세트 메타데이터를 식별하기 위한 수단; 및
    상기 멀티미디어 데이터와 분리되게 상기 파라미터 세트 메타데이터를 저장하기 위한 수단
    을 포함하고,
    상기 분리된 파라미터 세트 메타데이터는 상기 멀티미디어 데이터를 디코딩하기 위해 디코딩 시스템에 후속적으로 송신되는 장치.
  30. 멀티미디어 데이터에 관한 하나 이상의 디스크립션을 식별하는 수단; 및
    상기 멀티미디어 데이터와 연관된 추가 향상 정보로 상기 하나 이상의 디스크립션을 포함시키는 수단
    를 포함하고,
    상기 하나 이상의 디스크립션을 포함하는 SEI는 상기 멀티미디어 데이터의 디코딩시에 선택적으로 사용하기 위해 디코딩 시스템에 후속적으로 송신되는 장치.
  31. 메모리; 및
    상기 메모리에 결합되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 프로세서가
    멀티미디어 데이터의 복수의 부분에 대한 하나 이상의 파라미터 세트를 정의하는 파라미터 세트 메타데이터를 식별하고,
    상기 멀티미디어 데이터와 분리되게 상기 파라미터 세트 메타데이터를 저장하도록 유발하는 명령 세트를 실행하며,
    상기 분리된 파라미터 세트 메타데이터는 상기 멀티미디어 데이터를 디코딩하기 위해 디코딩 시스템에 후속적으로 송신되는 시스템.
  32. 메모리; 및
    상기 메모리에 결합되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 프로세서가
    멀티미디어 데이터에 관한 하나 이상의 디스크립션을 식별하고,
    상기 멀티미디어 데이터와 연관된 추가 향상 정보로 상기 하나 이상의 디스크립션을 포함시키도록 유발하는 명령 세트를 실행하고,
    상기 하나 이상의 디스크립션을 포함하는 SEI는 상기 멀티미디어 데이터의 디코딩시에 선택적으로 사용하기 위해 디코딩 시스템에 후속적으로 송신되는 시스템.
  33. 프로세서 상에서 실행될 때 프로세서가 방법을 수행하도록 유발하는 명령을 제공하는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    멀티미디어 데이터의 복수의 부분에 대한 하나 이상의 파라미터 세트를 정의하는 파라미터 세트 메타데이터를 식별하는 단계; 및
    상기 멀티미디어 데이터와 분리되게 상기 파라미터 세트 메타데이터를 저장하는 단계
    를 포함하고,
    상기 분리된 파라미터 세트 메타데이터는 상기 멀티미디어 데이터를 디코딩하기 위해 디코딩 시스템에 후속적으로 송신되는 컴퓨터 판독가능 매체.
  34. 프로세서 상에서 실행될 때 프로세서가 방법을 수행하도록 유발하는 명령을 제공하는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    멀티미디어 데이터에 관한 하나 이상의 디스크립션을 식별하는 단계; 및
    상기 멀티미디어 데이터와 연관된 추가 향상 정보로 상기 하나 이상의 디스크립션을 포함시키는 단계
    를 포함하고,
    상기 하나 이상의 디스크립션을 포함하는 SEI는 상기 멀티미디어 데이터의 디코딩시에 선택적으로 사용하기 위해 디코딩 시스템에 후속적으로 송신되는 컴퓨터 판독가능 매체.
KR10-2004-7017400A 2002-04-29 2003-04-29 미디어 파일에서 진보된 코딩 포맷의 지원 KR20040106414A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US37665202P 2002-04-29 2002-04-29
US37665102P 2002-04-29 2002-04-29
US60/376,652 2002-04-29
US60/376,651 2002-04-29
US10/371,464 US20030163477A1 (en) 2002-02-25 2003-02-21 Method and apparatus for supporting advanced coding formats in media files
US10/371,464 2003-02-21
US10/425,685 US20040006575A1 (en) 2002-04-29 2003-04-28 Method and apparatus for supporting advanced coding formats in media files
US10/425,685 2003-04-28
PCT/US2003/013145 WO2003098475A1 (en) 2002-04-29 2003-04-29 Supporting advanced coding formats in media files

Publications (1)

Publication Number Publication Date
KR20040106414A true KR20040106414A (ko) 2004-12-17

Family

ID=29554444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7017400A KR20040106414A (ko) 2002-04-29 2003-04-29 미디어 파일에서 진보된 코딩 포맷의 지원

Country Status (8)

Country Link
EP (1) EP1500002A1 (ko)
JP (1) JP2006505024A (ko)
KR (1) KR20040106414A (ko)
CN (1) CN100419748C (ko)
AU (1) AU2003237120B2 (ko)
DE (1) DE10392598T5 (ko)
GB (1) GB2403835B (ko)
WO (1) WO2003098475A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010042331A3 (en) * 2008-10-08 2010-07-15 Motorola, Inc. Reconstruction of errored media streams in a communication system
KR20120021246A (ko) * 2010-08-31 2012-03-08 (주)휴맥스 Http 스트리밍을 위한 미디어 정보 파일의 전송 및 수신 방법
KR101290467B1 (ko) * 2009-09-22 2013-07-26 퀄컴 인코포레이티드 2 개 이상의 비연속적인 nal 유닛들을 참조하는 추출자를 이용하는 멀티-트랙 비디오 코딩 방법들 및 장치
US8660999B2 (en) 2007-10-16 2014-02-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding media content and metadata thereof
US8774266B2 (en) 2005-04-13 2014-07-08 Nokia Corporation Coding, storage and signalling of scalability information
US8976871B2 (en) 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US9560398B2 (en) 2010-10-05 2017-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Client, a content creator entity and methods thereof for media streaming

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
KR101022078B1 (ko) 2004-02-10 2011-03-17 톰슨 라이센싱 비디오 정보의 스트리밍을 용이하게 하는 방법 및 장치, 컴퓨터 판독가능 매체 및 비디오 정보를 포함하는 파일을 처리하는 방법 및 장치
US8315307B2 (en) * 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
WO2006041260A1 (en) * 2004-10-13 2006-04-20 Electronics And Telecommunications Research Institute Extended multimedia file structure and multimedia file producting method and multimedia file executing method
TW200638335A (en) * 2005-04-13 2006-11-01 Dolby Lab Licensing Corp Audio metadata verification
CN101313578B (zh) * 2005-09-26 2011-10-19 韩国电子通信研究院 用于在可伸缩视频编码中定义和重构感兴趣区域的方法和装置
US8229983B2 (en) 2005-09-27 2012-07-24 Qualcomm Incorporated Channel switch frame
NZ566935A (en) 2005-09-27 2010-02-26 Qualcomm Inc Methods and apparatus for service acquisition
FR2894739A1 (fr) * 2005-12-12 2007-06-15 Thomson Licensing Sa Procede de codage, procede de decodage, dispositif de codage et dispositif de decodage de donnees video
EP2005607B1 (en) 2006-03-27 2016-09-07 Vidyo, Inc. System and method for management of scalability information in scalable video coding systems using control messages
CA2647823A1 (en) * 2006-03-27 2007-10-04 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
WO2007126381A2 (en) * 2006-05-03 2007-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for re-constructing media from a media representation
CN101507281B (zh) 2006-07-12 2013-06-05 诺基亚公司 媒体文件中的兴趣区域可缩放性信息的信号发送
US8275814B2 (en) 2006-07-12 2012-09-25 Lg Electronics Inc. Method and apparatus for encoding/decoding signal
AU2007287222A1 (en) 2006-08-24 2008-02-28 Nokia Corporation System and method for indicating track relationships in media files
US8365060B2 (en) 2006-08-24 2013-01-29 Nokia Corporation System and method for indicating track relationships in media files
AU2012202346B2 (en) * 2006-08-24 2014-07-24 Provenance Asset Group Llc System and method for indicating track relationships in media files
WO2008046243A1 (en) * 2006-10-16 2008-04-24 Thomson Licensing Method and device for encoding a data stream, method and device for decoding a data stream, video indexing system and image retrieval system
AU2007319261B2 (en) 2006-11-14 2010-12-16 Qualcomm Incorporated Systems and methods for channel switching
BRPI0718810A2 (pt) 2006-11-15 2013-12-03 Qualcomm Inc Sistemas e métodos para aplicativos utilizando quadros de comutação de canal
EP1926104B1 (en) * 2006-11-27 2016-06-29 Thomson Licensing Encoding device, decoding device, recording device, audio/video data transmission system
US20080181298A1 (en) * 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
CN101611612A (zh) * 2007-02-23 2009-12-23 诺基亚公司 聚合媒体数据单元的向后兼容特性
EP1983755A1 (en) * 2007-04-17 2008-10-22 Thomson Licensing Method to transmit video data in a data stream and associated metadata
KR101663438B1 (ko) 2007-04-18 2016-10-06 톰슨 라이센싱 코딩 시스템
US20100142613A1 (en) * 2007-04-18 2010-06-10 Lihua Zhu Method for encoding video data in a scalable manner
DE102007045741A1 (de) * 2007-06-27 2009-01-08 Siemens Ag Verfahren und Vorrichtung zum Codieren und Decodieren von Multimediadaten
KR101451239B1 (ko) 2007-08-13 2014-10-15 삼성전자 주식회사 미디어 파일 포맷에서 메타데이터의 생성 방법, 접근 방법및 그 장치
CN101802823A (zh) * 2007-08-20 2010-08-11 诺基亚公司 用于流式多媒体数据的分段的元数据和位标
JP5587779B2 (ja) * 2007-09-19 2014-09-10 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン メディアデータコンテナとメタデータコンテナとを有するファイルを格納し読み取るための装置及び方法
EP2223232A4 (en) 2007-11-16 2015-02-25 Sonic Ip Inc Hierarchical and reduced index structures for multimedia files
US20120011270A1 (en) * 2009-04-09 2012-01-12 Clinton Priddle Methods and arrangements for creating and handling media files
RU2690755C2 (ru) 2010-02-19 2019-06-05 Телефонактиеболагет Л М Эрикссон (Пабл) Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста
CN103098485A (zh) * 2010-06-14 2013-05-08 汤姆森特许公司 封装编码的多组成视频的方法和装置
US9131033B2 (en) * 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120138604A (ko) * 2011-06-14 2012-12-26 삼성전자주식회사 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치
CN104247433B (zh) * 2012-04-06 2018-02-06 索尼公司 解码装置和解码方法以及编码装置和编码方法
KR20130116782A (ko) 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US9161004B2 (en) * 2012-04-25 2015-10-13 Qualcomm Incorporated Identifying parameter sets in video files
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
KR101484843B1 (ko) 2013-04-19 2015-01-20 삼성전자주식회사 멀티미디어 전송 시스템에서 미디어 전송 패킷 전송 방법 및 장치
EP3008896B1 (en) * 2013-07-15 2021-03-31 Sony Corporation Extensions of motion-constrained tile sets sei message for interactivity
CN105409235B (zh) * 2013-07-19 2019-07-09 索尼公司 文件生成装置和方法以及内容重放装置和方法
EP3120573B1 (en) * 2014-03-18 2019-07-10 Koninklijke Philips N.V. Audiovisual content item data streams
US10129566B2 (en) * 2015-03-16 2018-11-13 Microsoft Technology Licensing, Llc Standard-guided video decoding performance enhancements
US9979983B2 (en) 2015-03-16 2018-05-22 Microsoft Technology Licensing, Llc Application- or context-guided video decoding performance enhancements
GB2539462B (en) * 2015-06-16 2019-04-03 Canon Kk Obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set
JP6675475B2 (ja) * 2015-08-20 2020-04-01 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ メディア・ストリームに基づくタイルド・ビデオの形成
US10999605B2 (en) * 2017-01-10 2021-05-04 Qualcomm Incorporated Signaling of important video information in file formats
US10701400B2 (en) * 2017-03-21 2020-06-30 Qualcomm Incorporated Signalling of summarizing video supplemental information
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
US10887645B2 (en) * 2017-07-13 2021-01-05 Qualcomm Incorporated Processing media data using file tracks for web content
US11321516B2 (en) 2018-01-19 2022-05-03 Qualcomm Incorporated Processing dynamic web content of an ISO BMFF web resource track
CN114747219A (zh) 2019-10-02 2022-07-12 诺基亚技术有限公司 用于存储和信令传送子样本条目描述的方法和装置
WO2023194179A1 (en) * 2022-04-05 2023-10-12 Canon Kabushiki Kaisha Method and apparatus for describing subsamples in a media file

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5706493A (en) * 1995-04-19 1998-01-06 Sheppard, Ii; Charles Bradford Enhanced electronic encyclopedia
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6426778B1 (en) * 1998-04-03 2002-07-30 Avid Technology, Inc. System and method for providing interactive components in motion video
WO2000043910A1 (en) * 1999-01-22 2000-07-27 Kent Ridge Digital Labs Method and apparatus for indexing and retrieving images using visual keywords
GB2387287B (en) * 2002-04-05 2006-03-15 Snell & Wilcox Limited Video compression transcoding

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8774266B2 (en) 2005-04-13 2014-07-08 Nokia Corporation Coding, storage and signalling of scalability information
US9332254B2 (en) 2005-04-13 2016-05-03 Nokia Technologies Oy Coding, storage and signalling of scalability information
US8660999B2 (en) 2007-10-16 2014-02-25 Samsung Electronics Co., Ltd. Method and apparatus for encoding media content and metadata thereof
WO2010042331A3 (en) * 2008-10-08 2010-07-15 Motorola, Inc. Reconstruction of errored media streams in a communication system
US8081635B2 (en) 2008-10-08 2011-12-20 Motorola Solutions, Inc. Reconstruction of errored media streams in a communication system
US8976871B2 (en) 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
KR101290467B1 (ko) * 2009-09-22 2013-07-26 퀄컴 인코포레이티드 2 개 이상의 비연속적인 nal 유닛들을 참조하는 추출자를 이용하는 멀티-트랙 비디오 코딩 방법들 및 장치
KR20120021246A (ko) * 2010-08-31 2012-03-08 (주)휴맥스 Http 스트리밍을 위한 미디어 정보 파일의 전송 및 수신 방법
WO2012030120A3 (ko) * 2010-08-31 2012-05-31 ㈜휴맥스 Http 스트리밍을 위한 미디어 정보 파일의 전송 및 수신 방법
US9608748B2 (en) 2010-08-31 2017-03-28 Humax Co., Ltd. Methods of transmitting and receiving a media information file for HTTP streaming
US9560398B2 (en) 2010-10-05 2017-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Client, a content creator entity and methods thereof for media streaming

Also Published As

Publication number Publication date
AU2003237120A1 (en) 2003-12-02
JP2006505024A (ja) 2006-02-09
GB2403835A (en) 2005-01-12
AU2003237120B2 (en) 2008-10-09
EP1500002A1 (en) 2005-01-26
CN100419748C (zh) 2008-09-17
WO2003098475A1 (en) 2003-11-27
GB0424069D0 (en) 2004-12-01
GB2403835B (en) 2005-11-23
CN1666195A (zh) 2005-09-07
DE10392598T5 (de) 2005-05-19

Similar Documents

Publication Publication Date Title
AU2003237120B2 (en) Supporting advanced coding formats in media files
US7613727B2 (en) Method and apparatus for supporting advanced coding formats in media files
US20040006575A1 (en) Method and apparatus for supporting advanced coding formats in media files
US20040167925A1 (en) Method and apparatus for supporting advanced coding formats in media files
AU2003213554B2 (en) Method and apparatus for supporting AVC in MP4
AU2003213555B2 (en) Method and apparatus for supporting AVC in MP4
CA2730543C (en) Method and apparatus for track and track subset grouping
KR101115547B1 (ko) 미디어 파일들에서의 다중 디코딩 시각들을 시그날링
JP2010124479A (ja) Mp4においてavcをサポートするための方法及び装置
AU2003219877B2 (en) Method and apparatus for supporting AVC in MP4
JP4746817B2 (ja) マルチメディア・コンテンツの処理を行う方法
WO2024012915A1 (en) Method, device, and computer program for optimizing dynamic encapsulation and parsing of content data
GB2620651A (en) Method, device, and computer program for optimizing dynamic encapsulation and parsing of content data

Legal Events

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