KR101170440B1 - 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법 - Google Patents

미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법 Download PDF

Info

Publication number
KR101170440B1
KR101170440B1 KR1020107005558A KR20107005558A KR101170440B1 KR 101170440 B1 KR101170440 B1 KR 101170440B1 KR 1020107005558 A KR1020107005558 A KR 1020107005558A KR 20107005558 A KR20107005558 A KR 20107005558A KR 101170440 B1 KR101170440 B1 KR 101170440B1
Authority
KR
South Korea
Prior art keywords
sample
data
error
error information
file
Prior art date
Application number
KR1020107005558A
Other languages
English (en)
Other versions
KR20100049648A (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 KR20100049648A publication Critical patent/KR20100049648A/ko
Application granted granted Critical
Publication of KR101170440B1 publication Critical patent/KR101170440B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/0082Formats for control data fields explicitly indicating existence of error in data being transmitted, e.g. so that downstream stations can avoid decoding erroneous packet; relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems

Abstract

본 발명의 개념은 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 출력하기 위한 것을 개시하고 있으며, 데이터 샘플 (20)과 관련된 에러 정보를 제공하는 것 그리고 데이터 샘플과 관련된 샘플 번호 (21)와 함께 에러 정보를 메타데이터 컨테이너 (14) 에 저장하는 것을 포함한다.

Description

미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법 {Apparatus and Method for Storing and Reading a File having a Media Data Container and a Metadata Container}
본 발명은 미디어(media)의 저장(storage), 전송, 수신 그리고 재생에 관한 것으로, 특히 ISO(국제 표준화 기구) 기반 미디어 파일 포맷을 기초로 하는 미디어 데이터 컨테이너(media data container) 그리고 메타데이터 컨테이너(metadata container)를 갖는 파일로부터의 미디어의 저장 또는 재생에 관한 것이다.
다양한 전자 장치는 미디어 데이터 스트림(streams)을 받거나 보낼 수 있다. 그러한 미디어 데이터 스트림은 예를 들어 DVB-H 표준(디지털 비디오 방송 소형기기) 또는 DVB-T 표준(디지털 비디오 방송 지상)에 따라서 미디어 스트림을 방송하는 디지털 비디오 방송 네트워크로부터 수신될 수 있다.
DVB-T는 국제 표준ISO/IEC 13818(IEC = 국제 전기 표준회의)에 따르는 기본 MPEG-2 비디오 그리고 오디오 스트림을 포함하는 자기완결적 MPEG-2(MPEG = 동영상 전문가 그룹)전송 스트림을 사용한다. MPEG-2 전송 스트림은 오늘날 많은 방송 시스템에서 사용되는 멀티플렉스(multiplex)이다. 이것은 각각 일반적으로 오디오 비디오 데이터뿐만 아니라 다른 데이터도 포함하고 있는 하나 또는 그 이상의 미디어 프로그램의 멀티플렉스이다. MPEG-2 전송 스트림은 프로그램당 공통 클락(clock)을 공유하고 프로그램내의 모든 미디어 스트림에서 시간 정보가 포함된 미디어 샘플 (액세스 유닛: Aus)을 사용한다. 이것은 송신기 그리고 수신기 클락(clock)의 동기화 그리고 오디오와 비디오 스트림의 립싱크(lip-Synchronization)를 가능하게 한다.
DVB-H에 있어서, 기본이 되는 오디오 및 비디오 스트림은 IP 데이터 캐스팅을 위하여 RTP(실시간 전송 프로토콜), UDP(사용자 데이터 그램 프로토콜), IP(인터넷 프로토콜), 및 MPE(다중-프로토콜 캡슐화)로 캡슐화된다. RTP는 IP 네트워크에 걸쳐서 다중-미디어 데이터의 효과적인 실시간 전송에 사용된다. 멀티플렉싱은 일반적으로 상이한 네트워크 포트(port)를 예를 들어, 비디오를 위한 하나의 네트워크 포트 그리고 오디오를 위한 또다른 포트로 하는 것처럼 각 별개의 미디어 스트림에 연관시키는 것에 의해 수행된다.
스트리밍(streaming) 서비스는 수신 동안에 즉각적인 소비를 위하여 시간 제약이 있거나 시간 제약이 없는 방법으로 전송되는 동기화된 미디어 스트림 세트(set)로서 정의된다. 각 스트리밍 세션은 오디오, 비디오 및/또는 타임드 텍스트(timed text)와 같은 실시간 미디어 데이터로 구성되어 있다. 예를 들면, 모바일(mobile) 텔레비전에 의하여 영화 미디어 데이터를 수신하는 사용자는 영화를 볼 수 있거나/및 그것을 파일로 기록할 수 있다.
일반적으로, 이러한 목적을 위해 수신된 미디어 스트림의 수신된 데이터 패킷(packet)은 가공되지 않은 미디어 데이터를 파일로 저장하기 위해서 디패킷화(de-packetized) 된다. 즉, 수신된 RTP 패킷 또는 MPEG-2 패킷은 그것의 페이로드(payload)를 위해 압축된 비디오 또는 오디오 프레임과 같은 미디어 데이터 샘플의 형태로 처음에 디패킷화 된다. 그 다음 디패킷 이후에, 획득된 미디어 데이터 샘플은 재생되거나 파일로 저장된다. 상기 획득된 미디어 샘플은 일반적으로 H.264/AVC(AVC = 고급 비디오 부호화) 비디오 포맷 및/또는 MPEG-4 HE-AACv2(HE-AACv2 = 고효율 고급 오디오 부호화 버전 2) 오디오 포맷과 같은 형식으로 압축된다. 그러한 비디오 및/또는 오디오 포맷을 갖는 미디어 샘플이 저장될 때, 그것들은 또한3GPP(3세대 협력 프로젝트) 파일 포맷이라고 알려진 이른바 3GP 파일 포맷 또는, MP4(MPEG-4)파일 포맷으로 저장될 수 있다.
3GP 그리고 MP4 양쪽 모두 ISO 기반 미디어 파일 포맷으로부터 도출되는데, 이것은 ISO/IEC 국제 표준 14496-12:2005 “오디오-비주얼 객체의 정보 기술 부호화 part 12:ISO 기반 미디어 파일 포맷” 에 명시되어 있다. 이러한 포맷의 파일은 미디어 데이터 그리고 메타데이터를 포함하고 있다. 그러한 파일이 작동하기 위해서, 이러한 데이터 양쪽 모두 존재하여야 한다. 미디어 데이터는 파일과 관련된 미디어 데이터 컨테이너(mdat)에 저장되고 메타데이터는 메타데이터 파일의 메타데이터 컨테이너(moov)에 저장된다. 종래에 있어서, 미디어 데이터 컨테이너는 액츄얼(actual) 미디어 샘플로 구성되어 있는데, 즉, 이것은 예를 들면, 인터리브드(interleaved), 타임-오더드(time-ordered) 비디오 및/또는 오디오 프레임을 포함할 수 있다. 따라서, 각 미디어는 미디어 콘텐트 프라퍼티(content property)를 나타내는 메타데이터 컨테이너 무브(moov)에 자체의 메타데이터 트랙(track)을 갖는다. 메타데이터 컨테이너 무브에 있는 부가적인 컨테이너(또한 박스라 불리는)는 파일 프라퍼티, 파일 콘텐트, 기타 에 대한 정보를 포함할 수 있다.
최근에, ISO 기반 미디어 파일 포맷을 기초로 하는 파일을 위한 이른바 리셉션 힌트 트랙(reception hint tracks)은 국제 표준화 그룹에 의해 정의되어 왔다. 이러한 리셉션 힌트 트랙은 예를 들면 수신된 MPEG-2 전송 스트림 또는 RTP 패킷과 같은 다중 및/또는 패킷화된 스트림을 저장하는데 이용된다. 또한 리셉션 힌트 트랙은 수신된 데이터 패킷의 클라이언트 사이드(client side) 저장 및 재생에 사용된다. 또한 이것은 본 명세서에서 다음부터는 데이터 샘플로서 표시될 것이다. 따라서, 수신된 하나의 스트림의 MPEG-2 TS 또는 RTP 패킷은 예를 들어 이미 계산된 샘플 또는 생성자와 같은 리셉션 힌트 트랙에 직접적으로 저장된다. 즉, 리셉션 힌트 트랙의 경우에서, 데이터 패킷은 ISO 기반 미디어 파일 포맷을 기초로 하는 파일에 있는 미디어 데이터 컨테이너에 샘플로서 저장된다. 리셉션 힌트 트랙으로부터의 재생은 정상적인 스트림 수신을 에뮬레이팅(emulating)하는 것에 의해서 그리고 그것들이 IP에 걸쳐서 수신되었을 때 수신 힌트 트랙으로부터 저장된 데이터 패킷을 읽는 것에 의해 수행된다.
ISO/IEC 국제 표준 14496-12:2005 “오디오-비주얼 객체의 정보 기술-부호화 Part 12: ISO 기반 미디어 파일 포맷”는 그룹핑(grouping) 표준을 기초로 하여, 하나의 샘플 그룹의 요소가 되도록 트랙에 있는 각 샘플을 할당하는 것을 샘플 그룹핑이라 정의한다. 트랙에는 샘플들에 대한 하나 이상의 샘플 그룹핑이 있을 수 있기 때문에, 각 샘플 그룹핑은 그룹핑의 타입을 나타내는 타입 필드를 가지고 있다.
샘플 그룹은 2가지 단계로 정의된다. 첫 번째 단계로, 그룹핑의 타입은 샘플 그룹 디스크립션 박스(Sample Group Description Box : sqpd)로 정의된다. 2번째 단계로, 이러한 디스크립션은 샘플-투-그룹 박스(Sample-to-group box : sbgp) 에서 샘플들로 할당된다. 샘플 그룹 메커니즘(sample groups mechanism)은 확장이 가능하고, AVC 그리고 SVC의 구체적이고 전용적 확장에 널리 사용되고 있다.
구문을 모두 표시하지 않고 나타내면 아래와 같다.
abstract class SampleGroupDescriptionEntry {
// 전용 데이터
샘플 그룹 디스크립션 박스를 단순화한 버전은 여기서 다음과 같이 주어진다. 핸들러 (handler) 타입에 의존하는 전문적인 버전이 ISO 파일 포맷에서 존재한다.
aligned(8) class SampleGroupDescriptionBox extends FullBox(“) {
unsigned int(32) grouping_type;
unsigned int(32) entry_count;
for(i=1; i<=entry_count; i++) {
SampleGroupDescriptionEntry();
}
}
박스의 하나의 인스턴스(instance)에서 다중 그룹이 정의될 수 있고 모든 샘플은 하나의 그룹의 요소가 되어야만 한다. 샘플-투-그룹 박스의 구문은 다음과 같다.
aligned(8) class Sample-to-group box extends FullBox(“) {
unsigned int(32) grouping_type;
unsigned int(32) entry_count;
for(i=1; i<=entry_count; i++) {
unsigned int(32) sample_count;
unsigned int(32) group_desc_index;
}
}
샘플 그룹이 어떻게 작동하는지 다음의 이론적인 예를 들어 설명하기로 한다.
각 샘플의 “색(color)”이 진술된다고 가정하자. 샘플의 완전한 세트를 위하여 동일한 색을 가진 모든 샘플이 함께 그룹이 된다.
첫 번째, 어떤 색이 존재하는지 명시되어야 한다. 각 색에서, “샘플 그룹 디스크립션 엔트리” (“SampleGroupDescriptionEntry”) 는 정의된다. 그룹핑_타입(grouping_type) “색”의 값은 정의되고 모든 색 디스크립션 엔트리(color description entries)는 샘플 그룹 디스크립션 박스에의 그룹핑_타입 색으로 저장된다.
두 번째, 샘플-투-그룹-박스에 있는 그룹핑_타입 “색”은 어떤 샘플이 어떤 색을 가졌는지 나타낸다. 이것은 상이한 방식으로 행해진다 : 모든 리스트 엔트리는 얼마나 많은 연속적인 샘플이 동일한 색을 가졌는지 나타낸다. 이것은 예를 들어 처음에 많은 수의 샘플이 색 1 을 갖게 되면, 다음에 많은 수의 샘플은 색 2 를 갖는 것처럼 거의 색의 변화가 없는 것에 대한 매우 조밀한 저장을 가능하게 한다.
3개의 색과 50개의 샘플을 갖는 파일에 관한 앞서 진술한 구문을 기반으로 하는 테이블(table)은 다음과 같다.
SampleGroupDescriptionBox (“) {
grouping_type = “colr”;
entry_count = 3; // = 샘플 그룹 디스크립션 엔트리의 수
// 3개의 샘플 그룹 디스크립션 엔트리의 리스트:
“Black”
“White”
“Red”
}
Sample-to-group box (“) {
grouping_type = “colr”;
entry_count = 5; // = 다음 리스트의 엔트리의 수
// 모든50개의 샘플에 대한 리스트:
(3,1) // = 파일의 처음의 3개의 샘플은 검정
(10,3) // = 파일의 다음 10개의 샘플은 빨강
(8,2) // = 파일의 다음 8개의 샘플은 흰색
(20,3) // = 파일의 다음 20개의 샘플은 빨강
(9,1) // = 파일의 마지막 9개의 샘플은 검정
}
위에서 설명한 바와 같이, 샘플 그룹은 샘플을 상이한 범주로 분류하는데 적합하다. 그러나 관련된 이벤트 또는 개개의 샘플의 프라퍼티(property)가 파일에서 나타내어질 필요가 있을 때 적합하지 않다. 이러한 주된 이유는 샘플 그룹은 항상 샘플의 완전한 세트를 나타내며, 그룹 엔트리에 소속되지 않은 샘플은 “어떤 그룹에도 소속되지 않은” 그룹 엔트리의 요소가 되어야만 하기 때문이다. 다른 이유는 샘플이 소속되어 있는 샘플 그룹의 슬로우 룩업(slow look-up) 때문이다.
우리는 이벤트(event) 또는 프라퍼티가 단 한 개의 샘플 또는 비교적 적은 수의 샘플에 관한 인덱스(index)임을 알 수 있다. 이벤트 또는 프라퍼티는 인덱스된 샘플에서 존재하지만, 다음의 샘플의 임의의 번호에 영향을 미칠 수 있다. 예를 들어 랜덤-액세스-포인트(random-access-point)는 이벤트로서 취급된다.
위의 예와 비교되는 이벤트의 한 예는 “색-변화”이다. 만약 색 그 자체가 아니라, 한 색에서 다른 색으로 변화하는 것이 인덱스 되어야 하면, 샘플 그룹은 적합하지 않다. 왜냐하면 인덱스에 기반한 샘플 그룹은 원하지 않는 정보인 “색의 변화 없음”을 또한 포함해야 하기 때문이다. 특히 변화가 빈번할 경우에는 비효율적인 인덱스 테이블이 될 수 있다. 모든 샘플의 카운트(또한 이벤트가 아닌 그룹 샘플의 카운트)는 합계되어야 하기 때문에 파일의 끝 가까이에 있는 이벤트에 관한 파싱(parsing)은 복잡한 작업이 되는 경향이 있다.
트릭-플레이 모드(trick-play modes) (e.g. 파일로의 고속 감기, 검색 또는 기타)에 있어 원하는 엔트리 위치의 가장 근접한 랜덤 엑세스 포인트가 효과적으로 인식되는 것이 필요하다. 그러므로 이러한 이벤트가 적용되는 샘플의 테이블(table)은 정확한 엔트리 포인트에서 검토된다. 랜덤 액세스 포인트는 다중 레벨에서 존재할 수 있다. 그래서, 예를 들어, 처음에 비디오 디코더 환경 설정은 파일에서 필요하고 다음에 비디오 트랙의 가장 근접한 I-프레임 그리고 그 위의 다중-레벨 엔트리-포인트(예를 들어, MPEG-2 TS일 경우에 PAT)에서 필요하다.
부수적인 문제는 샘플 그룹이 다중 그룹 설명과의 연관이 되어질 수 없다는 점이다. 이러한 사실은 이벤트의 스태킹(stacking)을 복잡하게 하고 만약 샘플 그룹이 이러한 인덱싱 문제를 해결하는데 사용된다면, 집약적 표현을 제공할 수는 없을 것이다.
본 발명의 목적은 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일에서의 데이터 샘플과 관련이 있는 이벤트 또는 프라퍼티를 효과적으로 연관시키고, 샘플의 효율적인 룩업을 할 수 있게 하는 개념을 제공하는데 있다.
이러한 목적은 청구항 1항에 따른 파일을 기록하는 장치, 청구항 17항에 따른 파일을 기록하는 방법, 청구항 19에 따른 파일을 읽어 들이는 장치 그리고 청구항 26에 따른 파일을 읽어 들이는 방법에 의해서 달성된다.
위에서 진술한 목적을 해결하기 위해서, 본 발명의 실시 예는 본 발명에 따른 방법을 수행하기 위한 컴퓨터 프로그램을 제공한다.
본 발명은 특정한 샘플 또는 뒤따른 샘플의 특정 번호와 관련된 이벤트 또는 프라퍼티가 관련된 샘플 번호와 함께 프라퍼티 정보를 ISO 기반 미디어 파일 포맷을 기초로 하는 파일에 있는 메타데이터 컨테이너에 저장하는 것에 의해 제공될 수 있다는 연구결과를 기초로 하고 있다. 구체적인 실시 예에서 프라퍼티 정보는 에러에 관한 것이거나 특정 샘플 또는 샘플의 시퀀스(sequence)와 관련되어 있다. 에러와 연관된 메타데이터를 저장하는 것을 위해, 파일의 메타데이터 컨테이너(“moov”)에서 전용 컨테이너 또는 박스가 제공된다. 따라서, 저장될 에러 정보는 2가지 단계로 정의된다. 첫 번째 단계에서, 에러의 타입이 샘플 투 디스크립션 박스(Sample To Description Box) (“spdb”) 에서 정의된다. 두 번째 단계에서 에러 타입 디스크립션(error type description)은 샘플 투 프라퍼티 박스(Sample To Property Box) (“stpb”)에서 특정 샘플에 할당된다.
본 발명의 바람직한 실시 예에 따르면, 프라퍼티 또는 에러와 관련된 메타데이터 박스 (spdb), (stpb)는 트랙에서 샘플의 시간 그리고 데이터 인덱싱을 포함하는 샘플-테이블-박스(“stbl”)에 포함되어 있다. 샘플-테이블 박스 stbl에 포함되어 있는 테이블을 사용하여, 시간에 따른 샘플을 위치시키는 것이 가능하여, 그것들의 타입, 그것들의 크기, 컨테이너(파일의 미디어 데이터 부분), 그리고 그 컨테이너로의 상쇄를 결정하는 것이 가능하다.
본 발명의 실시 예와 함께 잘못된 샘플 또는 잘못된 샘플의 이웃에 있는 샘플을 효율적으로 결정하는 것이 가능하다. 예를 들어, 잘못된 샘플은 미디어 데이터 컨테이너에 저장되지 않았거나 파일에 그것을 저장하기 이전에 송신기부터 수신기까지의 데이터 샘플을 전송하는 동안 잃어버린 손상된 샘플 또는 없어진 샘플일 수 있다.
본 발명의 실시 예에 따르면, 샘플은 스트리밍 세션 (streaming session) 동안에 수신되었거나 리셉션 힌트 트랙의 경우에서처럼 ISO 기반 미디어 파일 포맷을 기초로 하는 파일의 미디어 데이터 컨테이너에 이미 저장된 RTP 또는 MPEG-2 전송 스트림 데이터와 같은 데이터 패킷이다.
본 발명의 실시 예에 따르면, 메타데이터 컨테이너 (moov)에 저장된 에러 정보는 에러 타입과 같은 질적 에러 정보 그리고 잘못된 데이터 샘플의 관련된 샘플의 번호를 포함하고 있다. 부가적으로, 에러 정보는, 예를 들어, 에러의 상세 설명과 같은 양적인 에러 정보를 포함하고 있을 수도 있다.
파일을 생성하기 위해서, 본 발명의 실시 예는 데이터 샘플과 관련된 에러 정보를 제공하는 에러 정보 프로바이더(provider) 및 데이터 샘플과 관련된 샘플의 수와 함께 에러 정보를 메타데이터 컨테이너에 저장하는 리코더를 포함하는 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 출력하는 장치를 제공한다.
더욱이, 본 발명의 실시 예는 저장된 데이터 샘플을 갖는 미디어 데이터 컨테이너를 지닌 파일, 그리고 저장된 데이터 샘플과 관련된 저장된 에러 정보를 갖는 메타 데이터 컨테이너를 지닌 파일을 읽어 들이는 장치, 프로세스 된 데이터 샘플과 관련된 에러 정보를 찾기 위해서 메타데이터를 파싱(parsing)하는 파서(paser)를 포함하는 장치, 그리고 관련 에러 정보가 프로세스 되는 데이터 샘플이 잘못되었다는 것을 나타내는 경우에 에러의 상세한 측정(errorspecific measure) 또는 작동을 제공하는 프로세서를 제공한다.
예를 들어, 에러의 상세한 측정은 에러의 은닉 또는 에러를 지시하는 측정일 수 있다. 에러의 은닉은 예를 들어 저장된 데이터 샘플이나 패킷을 재생하는 동안에 사용자로부터의 잘못된 데이터 샘플이나 데이터 패킷을 숨기기 위해서 수행된다. 예를 들면, 오디오를 재생할 때, 분실되거나 손상된 프레임은 당해 기술에서 알려진 특정한 은닉 방법에 의해 대체될 수 있다. 분실되거나 에러가 있는 비디오 프레임도 동일하다.
더욱이, 저장된 에러 정보는 데이터 샘플의 완전한 전송으로 수신되어 파일로 저장된 이후에 잘못 수신된 모든 데이터 샘플을 명백하게 인식하는데 사용될 수 있다. 본 발명의 실시 예는 미디어 데이터 컨테이너에 저장된 잘못된 데이터 샘플을 인식하고 실시간이 아닌 동작에서 스트리밍 서버와 같은 데이터 서버로부터 이러한 잘못된 데이터 샘플의 새로운 사본을 요청하고 수신하기 위해서 메타데이터 컨테이너를 읽어 들이고 파싱하는 장치를 제공한다. 잘못된 데이터 샘플은 에러를 포함하는 저장된 파일을 에러 없는 파일로 전환하기 위해서 새롭게 수신된 에러 없는 데이터 샘플을 갖는 파일로 대체된다.
본 발명은 에러에 대한 상세한 표현을 제공한다. 샘플의 번호는 빠른 테이블 검색을 위해 사용되므로 완전한 영화의 리코딩(recordings)과 같은 긴 파일에서 특히 유용할 것이다. 직접적으로 에러 정보를 샘플 번호와 관련시킴으로써, 디패킷타이저 (depacketizer) 또는 디코더(decoder)는 잘못된 데이터 패킷 또는 샘플을 프로세스 하려고 하기 이전에 경고를 받거나 알 수 있게 되어서, 적절한 대응책을 마련할 수 있다.
도 1은 본 발명의 실시 예에 따른 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 출력하는 장치의 개략적인 블록 다이어그램을 나타낸다.
도 2는 본 발명의 다른 실시 예에 따른 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 출력하는 장치의 개략적인 블록 다이어그램을 나타낸다.
도 3은 본 발명의 다른 실시 예에 따른 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 출력하는 장치의 개략적인 블록 다이어그램을 나타낸다.
도 4는 본 발명의 실시 예에 따른 샘플 테이블 박스(Sample Table Box)의 개략적인 구조를 나타낸다.
도 5는 본 발명의 실시 예에 따른 상기 파일을 출력하는 방법의 흐름도를 나타낸다.
도 6은 본 발명의 실시 예에 따른 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 읽어 들이는 장치의 개략적인 블록 다이어그램을 나타낸다.
본 발명의 목적 그리고 특징은 동반된 도면과 관련하여 고려된 다음의 상세한 설명으로부터 명백해질 것이다.
다음의 설명은 특별한 실시 예, 절차, 기술, 기타 등과 같은 특정 세부사항을 한정하려고 하는 게 아니라 설명을 하기 위한 것이다. 그러나, 특정 세부사항과는 별도로 다른 실시 예가 사용될 수 있다는 것을 당 업자는 올바르게 인식하고 있을 것이다. 예를 들어, 비록 다음에 이어지는 설명이 다른 실시 예에 적용되는 제한이 없는 예를 사용하여 활용될 수 있지만, 기술은 어떤 타입의 시스템에서도 사용될 수 있다. 몇몇의 사례에서, 잘 알려진 방법의 상세한 설명, 인터페이스, 회로, 그리고 장치는 설명을 애매하게 하지 않기 위해서 생략된다. 더욱이, 각 블록(block)을 몇몇 도면에서 볼 수 있다. 당 업자는 이러한 블록의 기능이 개개의 하드웨어 회로, 적절히 프로그램 된 디지털 마이크로프로세서 또는 일반적인 용도의 컴퓨터에 관련된 소프트웨어 프로그램과 소프트웨어 데이터, 주문형 반도체(ASIC) 및/또는 하나 또는 그 이상의 디지털 신호 프로세서(DSPs)를 사용하여 이행된다는 것을 올바르게 인식하고 있을 것이다.
도 1은 미디어 데이터 컨테이너 16 그리고 메타데이터 컨테이너 14를 갖는 파일 12를 출력하는 장치 10의 바람직한 블록 다이어그램을 도시하고 있다.
장치 10은 에러 정보 프로바이더 18로 입력되는 데이터 샘플 20과 관련된 에러 정보 19를 제공하는 에러 정보 프로바이더 18를 포함하고 있다. 더욱이, 장치 10은 데이터 샘플 20과 관련된 샘플 번호 21과 함께 에러 정보 19를 파일 12에 있는 메타데이터 컨테이너 14에 저장하는 리코더 22를 포함하고 있다.
본 발명의 실시 예에 따른 에러 정보 프로바이더(provider) 18는 없어진 데이터 샘플과 관련된 에러 정보 19를 분석된 데이터 샘플의 시퀀스 (sequence)에 제공하기 위해서 데이터 샘플 20의 시퀀스를 분석하는데 적합하다. 이것은 예를 들면, 스트리밍 세션(session) 동안에 분실된 샘플을 인식하는데 유용할 것이다. 없어진 데이터 샘플이 탐지되었을 경우에, 리코더 22는 없어진 데이터 샘플 또는 패킷의 다음에 또는 근처에서 존재하는 데이터 샘플의 샘플 번호 21과 함께 없어진 데이터 샘플을 나타내는 에러 정보 19를 저장할 수 있다. 다시 말하면, 리코더 22는 없어진 데이터 샘플 때문에 존재하지 않는 샘플 번호를 저장할 수 없으므로, 없어진 샘플과 관련된 에러 정보를 분실하지 않은 근처 데이터 샘플과 연관시키게 된다. 아래에 주어지는 예는 설명에 도움이 될 것이다.
부가적으로 또는 대안으로, 에러 정보 프로바이더 18은 적어도 데이터 샘플 20의 어느 한 부분이 에러가 있는 정보를 포함하고 있는지 탐지하는 데 적합할 수 있다. 예를 들어, 송신기에서 수신기까지의 데이터 샘플의 전송 동안의 채널 페이딩(fading)또는 부가적인 노이즈와 같은 특수한 효과 때문에, 데이터 샘플에 의해 이동한 정보는 간섭되거나 손상된다. 그래서, 수신된 데이터 샘플의 버전(version)은 전송된 데이터 샘플의 버전과 일치하지 않는다. 이러한 경우에, 에러의 교정 또는 에러 은닉 방법은 받는 쪽에서 적용될 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 장치 10을 보여주고 있다.
도 2에 보여지는 실시 예에서 데이터 샘플 20-1, 20-2, 20-3은 이미 ISO 기반 미디어 파일 포맷을 기초로 하는 파일 12의 미디어 데이터 컨테이너 16(mdat)에 이미 저장되었다. 일반적으로, 미디어 데이터 박스 16내에 있는 샘플 20-1, 20-2, 20-3은 소위 청크(chunk)로 그룹으로 나뉜다. 청크는 상이한 크기를 가질 수 있으며, 청크 내의 샘플들은 상이한 크기를 가질 수 있다. 도 2의 경우에서 에러 정보 프로바이더 18은 분실되었거나 에러가 생기거나 또는 일반적으로 잘못된 데이터 샘플을 탐지하기 위해서 미디어 데이터 컨테이너 16에 저장된 데이터 샘플 20-1, 20-2, 20-3을 파스 또는 분석하는데 적합하다. 데이터 샘플 20-1, 20-2, 20-3이 RTP 또는 MPEG-2 전송 스트림 데이터 패킷과 같은 데이터 패킷일 경우에, 데이터 패킷은 대체로 전송의 순서를 나타내는 시퀀스 번호를 포함하고 있다. 에러 정보 provider 18은 저장된 데이터 샘플 20-1, 20-2, 20-3의 시퀀스 번호를 검사할 수 있어서, 없어진 시퀀스 번호를 탐지할 수 있다. 부가적으로, 저장된 데이터 샘플 20-1, 20-2, 20-3의 시퀀스 또는 청크는 손상된 샘플을 찾기 위해서 파스 될 수 있다.
장치 10의 다른 실시 예는 도 3에서 원칙적으로 보여지고 있다.
이 실시 예는 스트림 데이터 샘플 20-1, 20-2, 20-3를 수신하는 수신기 24로 이루어져 있는데, 이것은 가공되지 않은 미디어 데이터 샘플 또는 패킷화된 미디어 데이터 샘플을 포함하는 데이터 패킷이 될 수 있다. 수신기 24의 출력은 에러 정보 프로바이더18의 입력과 연결되어 있어서, 이것은 없어진 또는 손상된 데이터 샘플을 탐지하기 위해서 그리고 질적, 선택적, 양적에 따른 에러 정보를 제공하기 위해서 수신된 데이터 샘플 20-1, 20-2, 20-3을 검사할 수 있다. 도 3에서 주어진 예에서, 리코더 22는 수신된 데이터 샘플 20을 파일 12에 있는 미디어 데이터 컨테이너 16의 청크에 저장하는데 적합하고 샘플 번호 21을 저장된 각 데이터 샘플에 연관시키는데 적합하다.
본 발명의 실시 예에 따라 제공된 에러 정보 19는 메타데이터 컨테이너 14(moov)에 포함된 샘플 테이블 박스(stbl)의 서브 박스(sub-box)에 저장되는데, 샘플 테이블 박스(stbl)은 데이터 샘플 20-1, 20-2, 20-3의 타이밍부터 그것들의 청크(chunk)에 있는 연관된 샘플 번호 21-1, 21-2, 21-3까지의 인덱싱을 허용한다. 이것은 도 4를 참조하여 상세히 설명하기로 하겠다.
도 4는 샘플 디스크립션 박스(sample description box) (stsd), 샘플 사이즈 박스(sample size box) (stsz), 샘플 투 청크 박스(sample to chunk box) (stsc) 그리고 청크 오프셋 박스(chunk offset box) (stco) 이외에도 본 발명에 따른 서브 박스(sub-box) 52 및 54 를 포함하고 있는 ISO 기반 미디어 파일 포맷을 기초로 하는 파일의 샘플 테이블 박스 stbl 50을 보여주고 있다. 샘플 디스크립션 박스(stsd)는 데이터 레퍼런스 박스(data reference box)가 미디어 데이터 컨테이너(mdat)에서 샘플을 검색하는데 이용된다는 것을 나타내는 데이터 레퍼런스 인덱스 필드(data reference index field)를 포함하고 있기 때문에 필요하다. 샘플 디스크립션이 없다면, 샘플을 어디에 저장할지를 결정하는 것은 불가능하다. 싱크 샘플 테이블(Synch Sample Table)(stss)는 임의의 사양이다. 싱크 샘플 테이블 (stss)이 존재하지 않으면, 모든 샘플은 싱크 샘플이다. 당 업자에게 알려진 전통적인 서브 박스 이외에도, 샘플 테이블 박스 ‘stbl’ 50은 에러 정보 프로바이더 18에 의해 제공되는 에러 정보 19와 관련된 2개의 부가적인 서브 박스 52 그리고 54를 포함하고 있다. 다음부터는, 서브 박스 52는 샘플 프라퍼티 디스크립션 박스(SamplePropertyDescriptionBox) ‘stdb’를 의미하고 서브 박스 54는 샘플 프라퍼티 박스(SampleToPropertyBox) ‘stpb’를 의미하기로 하겠다. 본 발명의 실시 예에 따라서, 샘플의 프라퍼티는 에러와 관련된 샘플 또는 샘플 그 자체가 잘못된 것임을 나타낸다는 사실을 알 수 있다.
샘플 프라퍼티 박스 stpb (54)는 샘플의 프라퍼티, 즉, 실시 예에 따른 에러를 보여준다. 프라퍼티는 여러 개가 쌓일 수 있는데, 즉, 동일한 프라퍼티 타입(에러)인 복합적 프라퍼티는 하나의 샘플에 적용될 수 있다. 구체적인 프라퍼티_랭스(property_length)는 명기하지 않고 프라퍼티에 의존하게 된다. 프라퍼티_타입(Property-type)을 판단하지 않는 파일 판독기는 박스 stpb (54) 전체가 필요 없을 수 있다.
샘플 프라퍼티 디스크립션 박스 spdb 52는 하나의 프라퍼티_타입의 특징을 설명한다. 샘플 프라퍼티 디스크립션 엔트리(Sample Property Description Entry)는 명확하게 정의되지 않고, 전용적일 수 있다. 읽어 들이는 장치는 그것이 프라퍼티_타입을 판단하거나 이러한 프라퍼티_타입의 샘플 투 프라퍼티 박스 stpb 54 그리고 샘플 프라퍼티 디스크립션 박스 spdb 52 둘 다 필요 없을 경우에만 박스 spdb 52를 파스할 수 있다.
aligned(8) class SampleToPropertyBox extends FullBox(“) {
unsigned int(32) property_type;
unsigned int(32) entry_count;
for(i=1; i<=entry_count; i++) {
unsigned int(32) property_desc_index;
unsigned int(32) sample_count;
for(j=1; j<=sample_count; j++) {
unsigned int(32) sample_number;
unsigned int(property_length) value;
}
}
}
aligned(8) class SamplePropertyDescriptionBox extends FullBox(“) {
unsigned int(32) property_type;
unsigned int(32) entry_count;
for(i=1; i<=entry_count; i++) {
SamplePropertyDescriptionEntry();
}
}
실시 예에 따라서 에러는 인덱스 될 수 있는데, 다시 말하면, 전송 에러는 리셉션 힌트 트랙에 표시될 수 있다. 이러한 이유로, 2가지 상이한 에러 클래스를 정의할 수 있다.
a) 없어진 패킷(lost packets)
b) 손상된 패킷(corrupted packets)
그러므로, 위에서의 바람직한 학명에 따라서, 샘플 프라퍼티 디스크립션 엔트리는 다음에 주어지는 것에 따라서 이러한 각각에 정의될 수 있다.
class SamplePropertyDescriptionBox {
unsigned int(32) property_type = 'errr';
unsigned int(32) entry_count = 2;
{ // entry_count = 2 => 2 entries
LostPacketEntry();
CorruptedPacketEntry();
}
}
SamplePropertyDescriptionEntries는 아래와 같이 정의될 수 있다.
class LostPacketEntry extends SamplePropertyDescriptionEntry {
unsigned int(32) size = 36; // 4+4+2+26
unsigned int(32) desc_type = 'lost';
unsigned int(16) property_length = 32; // 값은 이전에 연속적으로 분실 한 패킷의 수를 포함한다.
unsigned int(8) verbose_description = "lost transmission packets"; }
class CorruptedPacketEntry extends SamplePropertyDescriptionEntry {
unsigned int(32) size = 41; // 4+4+2+31
unsigned int(32) desc_type = 'crpt';
unsigned int(16) property_length = 0;
unsigned int(8) verbose_description = "corrupted transmission packets"; }
여기서, 로스트패킷엔트리(LostPacketEntry)는 처음의 질적 에러 정보에 해당하고 샘플 투 프라퍼티 박스 stpb 54에서 첫 번째 프라퍼티_디스크립션_인덱스(property_desc_index)의 실행을 초기화하는데 사용된다. 커럽티드패킷엔트리(CorruptedPacketEntry)는 두 번째 질적 에러 정보에 해당하고, 2번째 프라퍼티_디스크립션_인덱스의 실행을 초기화한다.
만약 예를 들어, 우리가 전송 에러에 의해 영향을 받는 [1,n] n=1000 인 패킷을 전송 한다면, packet 310에서 367은 없어진 것이고 패킷 34 그리고 167은 손상된 것이며, 샘플 투 프라퍼티 박스의 엔트리는 다음과 같을 것이다.
class SampleToPropertyBox {
unsigned int(32) property_type = 'errr';
unsigned int(32) entry_count = '2';
{ // entry_count = 2 => 2 entries
{
property_desc_index = 1; // => 없어진 패킷
sample_count = 1; // 오직 하나의 샘플이 없어진 패킷에 대한 정보를 포 함한다.
{
{310, 58}
}
}
{
property_desc_index = 2; // => 손상된 패킷
sample_count = 2; // 2개의 샘플이 손상되었다.
{
{34, ""}
{177, ""}
}
}
}
}
만약 각 수신된 패킷이 샘플을 산출하고 패킷 310 에서 367까지 분실되었다면, 샘플 1에서 309는 패킷 1 에서 309까지를 포함한다. 샘플 310에서 942는 패킷 378에서 1000까지를 포함한다.
위의 예에서, 프라퍼티_디스크립션_인덱스(property_desc_index)의 값이 1일 경우에, 없어진 이후에 그 다음 수신된 패킷은 에러 표시 또는 에러 정보를 포함한다. 샘플프라퍼티(SampleProperty)의 값, 즉, 양적 에러 정보는 이전에 연속적으로 분실되었던 패킷의 번호이므로, 58이다.
손상된 패킷이 프라퍼티_디스크립션_인덱스 = 2(property_desc_index = 2)와 같이 표시되면 샘플 34 그리고 177은 손상되었다고 표시된다. 프라퍼티_랭스의 값이 프라퍼티_디스크립션_인덱스(property_desc_index)에서 0이기 때문에 어떠한 값도 그것에 할당되지 않는다.
이제부터 도 5으로 전환하여, ISO 기반 미디어 파일 포맷을 기초로 하는 파일 12를 출력하는 방법을 간략하게 언급하겠다.
첫 번째 단계 S1에서 에러 정보 프로바이더 18은 분석된 샘플 20과 관련된 에러 정보 19를 결정하기 위해서 데이터 샘플 또는 데이터 패킷 20을 분석한다. 상기의 샘플과 관련된 에러 정보를 산출하는 에러가 탐지된 경우에는, 단계 S2에서 그것과 관련된 잘못된 데이터 샘플의 샘플 번호 21와 함께, 에러 정보 19는 메타데이터 컨테이너 14에 저장된다. 단계 S2는 샘플 프라퍼티 디스크립션 박스 52 그리고 샘플 투 프라퍼티 박스 54 를 파일 12의 메타데이터 컨테이너 무브 14에 있는 샘플 테이블 (stbl) 50 에 저장하는 것을 포함한다.
만약 데이터 샘플 20이 수신되면, 예를 들어 스트림 데이터 샘플을 수신할 경우에는, 수신된 각 데이터 샘플은 그것의 샘플 번호 21과 연관된다. 더욱이, 각 수신된 데이터 샘플은 임의의 단계 S3에서 미디어 데이터 컨테이너 16에 있는 청크에 저장된다.
단계 S2 그리고 선택 가능한 단계 S3은 본질적으로 병렬로 수행된다. 즉, 에러 정보 19 그리고 샘플 번호 21은 미디어 데이터 컨테이너 14에 저장되는 것과 동시에 데이터 샘플은 미디어 데이터 컨테이너 16에 저장된다.
이전에 설명한 바와 같이, 데이터 샘플은 본 명세서의 소개 부분에서 설명되었던 것처럼, 리셉션 힌트 트랙을 저장할 경우에서와 같이 TP 또는 MPEG-2 전송 스트림 데이터 패킷과 같은 데이터 패킷일 수 있다.
샘플이 미디어 데이터 컨테이너 16에 저장되고 그리고 에러 정보가 ISO 기반 미디어 파일 포맷을 기초로 하는 파일 12에 있는 메타데이터 컨테이너 14에 저장된 후에, 저장된 에러 정보는 예를 들어 샘플을 재생하는 동안에 사용될 수 있다. 이러한 목적을 위하여, 본 발명의 실시 예는 도 6에서 전형적으로 보여지는 바와 같이, 미디어 데이터 컨테이너 16 그리고 메타데이터 컨테이너 14를 갖는 파일 12를 읽어 들이는 장치 60을 제공한다.
장치 60은 데이터 샘플 20이 프로세스 되는 지와 관련된 에러 정보 19를 찾기 위해서 메타데이터 컨테이너 14를 파싱하고 분석하는 파서 62를 포함하고 있다. 프로세서 64는 관련된 에러 정보 19가 프로세스 된 데이터 샘플 20이 잘못되었다는 것을 나타내는 경우에 에러의 상세 측정을 제공할 수 있다.
더욱 구체적으로는, 파서 62는 파일 12의 메타데이터 컨테이너 무브 14 에서의 샘플 테이블 stbl 50 내에 있는 샘플 프라퍼티 디스크립션 박스 52 그리고 샘플 투 프라퍼티 박스 54를 파스 할 수 있다. 따라서 그것은 샘플 번호 21 그리고 그것들의 연관된 질적 에러 정보 19, 예를 들어 위에서 사용된 학명을 참조로 했을 때 프라퍼티_디스크립션_인덱스를 검색한다. 부가적으로 파서 62는 양적 에러 정보, 예를 들면 패킷이 관련된 샘플 번호를 갖기 이전 또는 이후에 얼마나 많은 데이터 패킷이 분실되었는지를 이끌어 낼 수 있다.
본 발명의 실시 예에 따르면, 프로세서 64는 탐지된 에러-정보에 대응하여 에러의 상세 측정으로서 에러 은닉 측정을 수행하는 데 적합하다. 예를 들면, 만약 프로세스 되는 데이터 샘플이 손상되거나 분실되면, 프로세서 64는 이웃하는 스펙트럴(spectral) 값과 존재하는 데이터 샘플 사이의 어떤 종류의 스펙트럴 보간 법을 수행함으로써 샘플을 합성할 수 있다. 이것은 예를 들어, 만약 데이터 샘플이 오디오 또는 비디오 프레임과 관련하고 있다면 수행될 수 있다.
손상된 샘플 또는 데이터 패킷일 경우에, 프로세서 64는 예를 들어 채널 디코딩 수단을 사용하여 어떤 종류의 에러 보정을 시작하는데 적합하다.
다른 실시 예에서, 프로세서 64는 이미 언급되었던 질적 그리고 양적 에러 정보를 기록함으로써, 에러를 다운 스트림 장치 그리고 사용자 인터페이스에 나타낼 수 있다.
또한, 메타 데이터 컨테이너 14에 저장된 에러 정보 19는 데이터 샘플이 수신되어 파일 12에 저장되는 것과 같이 전송이 완전히 된 이후에 잘못 수신된 데이터 샘플을 명백하게 인식하는데 사용될 수 있다. 이러한 이유로 파서 62는 미디어 데이터 컨테이너 16에 저장된 잘못된 데이터 샘플을 인식하기 위해서 메타데이터 컨테이너 14에서의 저장된 에러 정보 19를 파스할 수 있다. 프로세서 64는 비 실시간 작동에서 예를 들면, 스트리밍 서버와 같은 콘텐트 제공 서버로부터 인식된 잘못된 데이터 샘플의 새로운 사본 그리고 버전(versions)을 요청하고 수신할 수 있다. 즉, 비 실시간 프로토콜은 인식된 데이터 샘플의 재전송을 위해 필요로 하는데, 이것은 예를 들어 단 한 개의 잘못된 비디오 프레임일 수 있다. 잘못된 데이터 샘플은 에러를 포함하고 있는 저장된 파일 12을 에러가 없는 파일로 전환하기 위해서 요청된 새롭게 수신된 에러가 없는 데이터 샘플에 의해 파일 12에서 대체될 수 있다.
장치 60은 예를 들면 다음을 위하여 에러 정보의 형태로 응답을 만들어내는 외부 요청을 받을 수 있다.
- 특별히 요청된 샘플에 적용되는 에러 정보로 이루어져 있는 응답을 받는다
- 특별히 요청된 에러(예를 들어 없어진 샘플)가 적용되는 가장 가까운 샘플 번호의 응답을 받는다.
에러 정보 형태의 설명된 사건 또는 샘플 프라퍼티는 예를 들면, 리셉션 힌트 트랙의 인덱스에 유용하다.
본 발명의 실시 예는 샘플과 관련된 에러가 확장 가능한 방법으로 설명될 수 있는 이점을 제공한다. 다중 응답 에러는 에러 타입으로 그룹 지어진다. 양적 에러는 정보 예를 들면, 샘플 그룹 디스크립션 엔트리 번호에 의한 경우로만 제한되는 것은 아니다.
또한, 파일에서 에러 발생 위치를 지적하기 위해서 단순하고 효과적인 방법이 제공된다. 이러한 것은 파일의 미디어 데이터 컨테이너에 저장된 데이터 콘텐트를 재생할 때 에러 교정, 에러 은닉 및/또는 에러 표시 방법에 유용할 것이다.
상황에 따라, 본 발명의 방법은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 이러한 구현은 이 방법이 실행되게 하기 위해서 프로그래밍 컴퓨터와 협력할 수 있는 디지털 저장 매체, 특히 전기적으로 판독할 수 있는 제어 신호를 갖는 디스크, CD 또는 DVD에서 수행될 수 있다. 일반적으로, 본 발명은 또한, 컴퓨터 프로그램 저작물이 컴퓨터에서 실행될 때, 본 발명의 방법을 수행하기 위해서 기계가 판독할 수 있는 캐리어(carrier)에 저장된 프로그램 코드를 갖는 컴퓨터 프로그램 저작물로 이루어져 있다. 다시 말하면, 본 발명은 컴퓨터 프로그램을 컴퓨터에서 실행했을 때, 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램으로서 구현될 수 있다.
본 발명은 몇 개의 바람직한 실시 예에 관하여 설명하였지만, 본 발명의 범위 이내에서 상당한 것으로 변경, 치환이 가능하다. 또한, 본 발명의 방법과 구성을 구현할 수 있는 많은 다른 방식이 있다는 것임을 유념되어야 한다. 그러므로, 다음에 부가된 청구항은 본 발명의 실제적인 의도 그리고 범위 이내가 되는 것으로서의 모든 그러한 변경, 치환 그리고 상당한 것을 포함하는 것으로 해석되어야 하는 것을 의미한다.
12: 파일 14: 메타데이터 컨테이너
16: 미디어 데이터 컨테이너 19: 에러 정보
20: 데이터 샘플 21: 샘플 번호
22: 리코더 50: 샘플 테이블 박스
52: 샘플 프라퍼티 디스크립션 박스 54: 샘플 투 프라퍼티 박스
62: 파서 64: 프로세서

Claims (27)

  1. ISO 기반 미디어 파일 포맷을 기초로 하고 있으며, 미디어 데이터 컨테이너 (16) 그리고 메타데이터 컨테이너 (14) 를 갖는 파일(12)을 출력하는 장치(10)에 있어서,
    없어지거나 손상된 데이터 샘플과 관련된 에러 정보를 데이터 샘플의 시퀀스에 제공하기 위해서 데이터 샘플의 시퀀스를 분석하기 위한 에러 정보 프로바이더 (18); 및
    상기 없어지거나 손상된 데이터 샘플과 관련된 샘플 번호 (21) 함께 상기 에러 정보를 ISO 기반 미디어 파일 포맷을 기초로 하는 파일의 메타데이터 컨테이너에 저장하기 위한 리코더(22); 를 포함하여 이루어지는 것을 특징으로 하는 장치.
  2. 제 1 항에 따른 장치에 있어서,
    상기 리코더 (22)는 데이터 샘플의 시퀀스에서 탐지된 없어진 데이터 샘플일 경우에는, 상기 없어진 데이터 샘플 다음에 존재하는 데이터 샘플의 샘플 번호와 함께 상기 없어진 데이터 샘플을 나타내는 에러 정보를 저장하는 것을 특징으로 하는 장치.
  3. 제 1 항에 따른 장치에 있어서,
    상기 에러 정보 프로바이더 (18)는 적어도 데이터 샘플 (20)의 한 부분이 손상된 정보를 포함하고 있는지 탐지하는 것을 특징으로 하는 장치.
  4. 제 1 항에 따른 장치에 있어서,
    상기 데이터 샘플 (20)은 파일(12)의 미디어 데이터 컨테이너 (16)에 저장되고, 상기 에러 프로바이더 (18)은 없어진 또는 손상된 데이터 샘플을 탐지하기 위해서 상기 저장된 데이터 샘플을 파스하는 것을 특징으로 하는 장치.
  5. 제 1 항에 따른 장치에 있어서,
    스트림 데이터 샘플을 수신하는 리시버 (24) 및 없어진 또는 손상된 데이터 샘플을 탐지하기 위해서 상기 수신된 데이터 샘플을 검사하는 에러 정보 프로바이더 (18)를 포함하여 이루어지는 것을 특징으로 하는 장치.
  6. 제 5 항에 따른 장치에 있어서,
    상기 리코더(22)는 수신된 데이터 샘플을 상기 파일 (12)에 있는 미디어 데이터 컨테이너(16)의 청크에 저장하고 샘플 번호 (21)를 상기 각 저장된 데이터 샘플에 연관시키는 것을 특징으로 하는 장치.
  7. 제 6 항에 따른 장치에 있어서,
    상기 리코더 (22)는 제공된 상기 에러 정보(19)를 저장된 데이터 샘플의 타이밍부터 상기 청크에 있는 그것과 관련된 샘플 번호(21)까지 인덱싱을 허용하는 샘플 테이블 컨테이너 (stbl)에 저장하는 것을 특징으로 하는 장치.
  8. 제 7 항에 따른 장치에 있어서,
    상기 리코더는 각 청크의 인덱스를 상기 파일(12)에 나타내는 청크 오프셋 테이블(stco)을 저장하는 것을 특징으로 하는 장치.
  9. 제 1 항에 따른 장치에 있어서,
    상기 에러 프로바이더는 상기 제공된 에러 정보(19)를 적어도 각 상이한 에러 타입을 나타내는 복수 에러 타입 중에 적어도 하나에 결합시키는 것을 특징으로 하는 장치.
  10. 제 9 항에 따른 장치에 있어서,
    상기 리코더(22)는 적어도 하나의 상기 에러 타입을 데이터 샘플의 타이밍부터 그것의 관련된 샘플 번호(21)까지의 인덱싱을 허용하는 샘플 테이블 컨테이너(stbl)에 포함되어 있는 관련 에러 타입 설명 메타데이터 컨테이너(52;spdb)에 저장하는 것을 특징으로 하는 장치.
  11. 제 1 항에 따른 장치에 있어서,
    상기 리코더(22)는 상기 샘플 번호 (21)와 함께 제공된 상기 에러 정보 (19)를 상기 데이터 샘플 그리고 상기 제공된 에러 정보(19) 간의 할당을 허용하는 에러 프라퍼티 메타데이터 컨테이너 (54; stpb)에 저장하고, 상기 에러 프라퍼티 메타데이터 컨테이너(54;stpb)는 데이터 샘플의 타이밍부터 그것의 관련 샘플 번호 (21)까지의 인덱싱을 허용하는 샘플 테이블 컨테이너(stbl)에 포함되어 있는 것을 특징으로 하는 장치.
  12. 제 1 항에 따른 장치에 있어서,
    상기 제공된 에러 정보 (19)는 질적 그리고 양적 에러 정보를 포함하며, 상기 리코더는 질적 에러 정보 그리고 상기 샘플 번호 (21)와 함께 양적 에러 정보를 저장하며, 양적 에러 정보는 정량적으로 질적 에러 정보의 특성을 기술하는 것을 특징으로 하는 장치.
  13. 제 1 항에 따른 장치에 있어서,
    데이터 샘플 (20)은 미디어 데이터 샘플을 포함하는 스트림 데이터 패킷인 것을 특징으로 하는 장치.
  14. 제 13 항에 따른 장치에 있어서,
    상기 데이터 패킷 (20)은 스트림 RTP 패킷, RTCP 패킷 또는 MPEG-2 전송 스트림 패킷인 것을 특징으로 하는 장치.
  15. ISO 기반 미디어 파일 포맷을 기초로 하고 있으며, 미디어 데이터 컨테이너(16) 그리고 메타데이터 컨테이너(14)를 갖는 파일 (12)를 출력하는 방법에 있어서,
    없어지거나 손상된 데이터 샘플과 관련된 에러 정보 (19)를 데이터 샘플의 시퀀스에 제공하기 위해서 데이터 샘플의 시퀀스를 분석하고,
    상기 없어진 또는 손상된 데이터 샘플과 관련된 샘플 번호(21)과 함께 상기 에러 정보 (19)를 ISO기반 미디어 파일 포맷을 기초로 하는 파일에 있는 메타데이터 컨테이너에 저장하는 것을 포함하여 이루어지는 것을 특징으로 하는 방법.
  16. 컴퓨터 프로그램이 컴퓨터 또는 마이크로 컨트롤러에서 실행될 때, 제 15 항에 따른 방법을 수행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독가능한 매체.
  17. ISO 기반 미디어 파일 포맷을 기초로 하고 있으며, 저장된 데이터 샘플 (20)을 갖는 미디어 데이터 컨테이너(16), 그리고 상기 저장된 데이터 샘플과 관련된 저장된 에러 정보(14)를 갖는 메타데이터 컨테이너(14)를 지닌 파일 (12)을 읽어 들이는 장치에 있어서,
    데이터 샘플이 프로세스 되는 것과 관련된 에러 정보를 찾기 위해서 메타데이터 컨테이너를 파싱하는 파서; 및
    상기 관련 에러 정보(19)가 프로세스 된 데이터 샘플이 가용하지 않거나 손상되었다는 것을 나타내는 경우에 에러의 상세 측정을 제공하는 프로세서(64); 를 포함하여 이루어지는 것을 특징으로 하는 장치.
  18. 제 17 항에 따른 장치에 있어서,
    상기 프로세서(64)는 에러의 상세 측정으로서의 에러 은닉 계측을 수행하는 것을 특징으로 하는 장치.
  19. 제 17 항에 따른 장치에 있어서,
    상기 프로세서 (64)는 에러의 상세 측정으로서의 에러의 표시 측정을 수행하는 것을 특징으로 하는 장치.
  20. 제 17 항에 따른 장치에 있어서,
    상기 프로세서 (64)는 없어지거나 손상된 데이터 샘플의 에러가 없는 사본을 요청하고 새롭게 수신하고, 상기 프로세서 (64)는 손상된 데이터 샘플을 포함하는 상기 저장된 파일을 에러가 없는 파일로 전환하기 위해서 요청되어 새롭게 수신된 에러가 없는 데이터 샘플을 상기 파일(12)에 위치하게 하는 것을 특징으로 하는 장치.
  21. 제 17 항에 따른 장치에 있어서,
    상기 데이터 샘플은 미디어 데이터 샘플을 포함하는 스트림 데이터 패킷인 것을 특징으로 하는 장치.
  22. 제 21 항에 따른 장치에 있어서,
    상기 저장된 데이터 샘플은 RTP 패킷, RTCP 패킷 또는 MPEG-2 전송 스트림 패킷인 것을 특징으로 하는 장치.
  23. ISO 기반 미디어 파일 포맷을 기초로 하고 있으며, 저장된 데이터 샘플(20)을 갖는 미디어 데이터 컨테이너(16), 그리고 상기 저장된 데이터 샘플과 관련된 저장된 에러 정보를 갖는 메타데이터 컨테이너(14)를 지닌 파일(12)을 읽어 들이는 방법에 있어서,
    데이터 샘플과 관련된 에러 정보가 프로세스 되었는지 인지하기 위해서 메타데이터 컨테이너(14)를 파싱하고,
    상기 관련 에러 정보(19)가 프로세스된 데이터 샘플이 없어지거나 손상되었다는 것을 나타낼 경우에 에러의 상세 측정을 제공하는 것을 포함하여 이루어지는 것을 특징으로 하는 방법.
  24. 컴퓨터 프로그램이 컴퓨터 또는 마이크로 컨트롤러에서 실행될 때, 제 23 항에 따른 방법을 수행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독가능한 매체.
  25. 삭제
  26. 삭제
  27. 삭제
KR1020107005558A 2007-09-19 2008-09-18 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법 KR101170440B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US97353607P 2007-09-19 2007-09-19
US60/973,536 2007-09-19
PCT/EP2008/007832 WO2009036980A2 (en) 2007-09-19 2008-09-18 Apparatus and method for storing and reading a file having a media data container and a metadata container

Publications (2)

Publication Number Publication Date
KR20100049648A KR20100049648A (ko) 2010-05-12
KR101170440B1 true KR101170440B1 (ko) 2012-08-09

Family

ID=40377617

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107005558A KR101170440B1 (ko) 2007-09-19 2008-09-18 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법

Country Status (17)

Country Link
US (1) US8849778B2 (ko)
EP (1) EP2195952B1 (ko)
JP (1) JP5587779B2 (ko)
KR (1) KR101170440B1 (ko)
CN (1) CN101828351B (ko)
AT (1) ATE503312T1 (ko)
AU (1) AU2008300895B2 (ko)
BR (1) BRPI0815968B1 (ko)
CA (1) CA2699102C (ko)
DE (1) DE602008005774D1 (ko)
ES (1) ES2362975T3 (ko)
HK (1) HK1145374A1 (ko)
MX (1) MX2010002775A (ko)
PL (1) PL2195952T3 (ko)
RU (1) RU2486679C2 (ko)
TW (1) TWI527467B (ko)
WO (1) WO2009036980A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857089B1 (ko) * 2014-07-09 2018-05-11 퀄컴 인코포레이티드 네트워크를 통해 교환되는 파일들에 대한 에러 처리

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2088789A3 (en) * 2008-02-05 2012-08-15 Samsung Electronics Co., Ltd. Apparatus and method for generating and displaying media files
US9262419B2 (en) * 2013-04-05 2016-02-16 Microsoft Technology Licensing, Llc Syntax-aware manipulation of media files in a container format
WO2014208972A1 (en) * 2013-06-24 2014-12-31 Samsung Electronics Co., Ltd. Method and apparatus for converting content in multimedia system
EP3155819A4 (en) * 2014-06-13 2018-01-10 Thomson Licensing Digital video broadcasting network system and method of obtaining program information in digital video broadcasting
KR102271811B1 (ko) 2014-10-22 2021-07-01 삼성전자주식회사 전자장치 및 전자장치의 컨텐트 제어 방법
US9928297B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Sample grouping signaling in file formats
JP6992511B2 (ja) * 2016-01-13 2022-01-13 ソニーグループ株式会社 情報処理装置および情報処理方法
KR20190002627A (ko) * 2016-04-28 2019-01-08 후아웨이 테크놀러지 컴퍼니 리미티드 파일 저장 방법 및 전자 디바이스
CN110545254B (zh) * 2018-05-29 2021-05-04 北京字节跳动网络技术有限公司 一种元数据容器的解析方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006575A1 (en) 2002-04-29 2004-01-08 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
US20040167925A1 (en) 2003-02-21 2004-08-26 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9505850A (pt) * 1994-02-28 1996-02-13 Sony Corp Processo e aparelho de gravação de dados,meio de gravação de dados e processo e aparelho de reprodução de dados para reproduzir um meio de gravação de dados
CA2398071A1 (en) * 2000-01-28 2001-08-02 Diva Systems Corporation A system for preprocessing content for streaming server
JP3946965B2 (ja) * 2001-04-09 2007-07-18 ソニー株式会社 無体財産権を保護する情報を記録する記録装置、記録方法、記録媒体、およびプログラム
US7315894B2 (en) * 2001-07-17 2008-01-01 Mcafee, Inc. Network data retrieval and filter systems and methods
JP4565308B2 (ja) * 2001-09-13 2010-10-20 ソニー株式会社 エラー検出装置及びエラー検出方法並びに記録再生装置及び記録再生方法
CN1650628B (zh) * 2002-02-25 2010-10-13 索尼电子有限公司 用于支持mp4中的avc的方法和设备
EP1500002A1 (en) * 2002-04-29 2005-01-26 Sony Electronics Inc. Supporting advanced coding formats in media files
JP2004038575A (ja) * 2002-07-03 2004-02-05 Sony Corp データ送受信システム及びデータ送受信方法、情報提供装置及び情報提供方法、並びにデータ受信装置及びデータ受信方法
JP2006505027A (ja) 2002-07-20 2006-02-09 シカゴ クライメイト エクスチェンジ,インコーポレイティド 排出量削減取引システム及び方法
WO2005002231A1 (ja) * 2003-06-27 2005-01-06 Hitachi, Ltd. 映像編集装置
JP2005039577A (ja) * 2003-07-16 2005-02-10 Victor Co Of Japan Ltd ストリームデータ記録再生方法
US8472792B2 (en) * 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
KR101244308B1 (ko) * 2003-12-08 2013-03-18 삼성전자주식회사 동영상 파일의 암호화 방법 및 그를 이용한 디지털 저작권관리방법
US7567584B2 (en) * 2004-01-15 2009-07-28 Panasonic Corporation Multiplex scheme conversion apparatus
JP2005229587A (ja) 2004-01-15 2005-08-25 Matsushita Electric Ind Co Ltd 多重化方式変換装置
JP2005348015A (ja) 2004-06-02 2005-12-15 Fujitsu Ltd リアルタイム・ストリーミングデータ受信装置
US7885366B2 (en) * 2005-04-20 2011-02-08 Panasonic Corporation Stream data recording device, stream data editing device, stream data reproducing device, stream data recording method, and stream data reproducing method
GB2434496B (en) * 2005-07-14 2007-10-31 Snell & Wilcox Ltd Method and apparatus for analysing image data
CN101087438A (zh) * 2006-06-06 2007-12-12 安捷伦科技有限公司 计算无参考视频质量评估的分组丢失度量的系统和方法
US20080124050A1 (en) * 2006-09-07 2008-05-29 Joseph Deschamp Method and Apparatus for Processing Digital Program Segments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006575A1 (en) 2002-04-29 2004-01-08 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
US20040167925A1 (en) 2003-02-21 2004-08-26 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101857089B1 (ko) * 2014-07-09 2018-05-11 퀄컴 인코포레이티드 네트워크를 통해 교환되는 파일들에 대한 에러 처리

Also Published As

Publication number Publication date
TWI527467B (zh) 2016-03-21
RU2486679C2 (ru) 2013-06-27
EP2195952A2 (en) 2010-06-16
JP5587779B2 (ja) 2014-09-10
CA2699102C (en) 2014-07-22
AU2008300895B2 (en) 2011-07-28
BRPI0815968B1 (pt) 2023-11-28
US20100198798A1 (en) 2010-08-05
HK1145374A1 (en) 2011-04-15
CA2699102A1 (en) 2009-03-26
AU2008300895A1 (en) 2009-03-26
WO2009036980A2 (en) 2009-03-26
MX2010002775A (es) 2010-04-01
KR20100049648A (ko) 2010-05-12
BRPI0815968A2 (pt) 2023-02-28
RU2010116075A (ru) 2011-10-27
WO2009036980A3 (en) 2009-05-28
CN101828351A (zh) 2010-09-08
TW200926834A (en) 2009-06-16
JP2010539834A (ja) 2010-12-16
DE602008005774D1 (de) 2011-05-05
CN101828351B (zh) 2014-05-07
ATE503312T1 (de) 2011-04-15
EP2195952B1 (en) 2011-03-23
US8849778B2 (en) 2014-09-30
PL2195952T3 (pl) 2011-08-31
ES2362975T3 (es) 2011-07-18

Similar Documents

Publication Publication Date Title
KR101170440B1 (ko) 미디어 데이터 컨테이너 그리고 메타데이터 컨테이너를 갖는 파일을 저장하고 읽어 들이는 장치 및 방법
RU2459378C2 (ru) Устройство и способ для обработки и чтения файла, имеющего хранилище медиаданных и хранилище метаданных
US20220078491A1 (en) Transmitting method
KR101107815B1 (ko) 멀티미디어 컨테이너 파일의 수신 힌트 트랙으로의 미디어 스트림 기록 방법 및 장치, 컴퓨터 판독가능 매체
KR20160030133A (ko) 실시간 전송 프로토콜 기반의 방송 시스템에서 미디어 방송 신호의 송수신 방법 및 장치
US9883216B2 (en) Method and apparatus for carrying transport stream
JP2010539834A5 (ko)
US20080235401A1 (en) Method of storing media data delivered through a network
US20130124699A1 (en) Apparatus and method for transceiving a streaming service
CN102857812B (zh) 一种支持ts流媒体文件的容错方法及系统

Legal Events

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

Payment date: 20150630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160721

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170717

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180716

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190716

Year of fee payment: 8