+

KR20050050573A - 데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한방법 및 장치 - Google Patents

데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한방법 및 장치 Download PDF

Info

Publication number
KR20050050573A
KR20050050573A KR1020040096958A KR20040096958A KR20050050573A KR 20050050573 A KR20050050573 A KR 20050050573A KR 1020040096958 A KR1020040096958 A KR 1020040096958A KR 20040096958 A KR20040096958 A KR 20040096958A KR 20050050573 A KR20050050573 A KR 20050050573A
Authority
KR
South Korea
Prior art keywords
data stream
data
type
packets
mts
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020040096958A
Other languages
English (en)
Other versions
KR101164670B1 (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 KR20050050573A publication Critical patent/KR20050050573A/ko
Application granted granted Critical
Publication of KR101164670B1 publication Critical patent/KR101164670B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

패킷 지향 데이터 스트림(TS)에서, 예를 들어 탐색, 포워딩, 리버싱을 위해 필요한 구조적인 정보는 특정 패킷(PP#11,PP#12)에만 포함된다. 본 발명에 따르면, 데이터 스트림(MTS)이 저장되는 동안, 이 정보를 포함하는 모든 패킷들의 시작에 대한 참조를 포함하는 정보 파일(I)이 생성된다. 정보 파일은 데이터 블록(IB)을 포함하고, 각각의 데이터 블록은, 그 다음 또는 이전 데이터 패킷에 대한 거리 및 각각의 데이터 패킷에 관련된 추가 정보 뿐만 아니라 구조 정보를 이용하여 데이터 패킷의 위치(OP,OB)를 식별한다.

Description

데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한 방법 및 장치{METHOD AND APPARATUS FOR STORAGE OR RELOCATION OF DEFINED POSITIONS IN A DATA STREAM}
예를 들어 MPEG2 표준 ISO/IEC 13818-1 기반의 디지털 데이터 스트림은 흔히 패킷으로 쪼개진다. 이 경우, 시간 명세(detail)와 같은 어떤 정보 항목은 특정 패킷에만 포함된다. 특히, 인용한 표준은 전송 데이터 스트림(TS)의 구조를 정의한다. MPEG2-TS 데이터 스트림은, 연속적인 전송 패킷(TSP; Transport Stream Packets)들을 포함하는 패킷 지향 스트림이다. TSP는, 패킷 지향 기본 데이터 스트림(PES; Packetized Elementary Stream)의 패킷(PES 패킷)의 부분을 차례로 표현하는 헤더와 전송 데이터를 포함한다. 전체 PES 패킷을 얻기 위하여, 각각의 부분들은, 후속하는 관련 TSP로부터 추출되어야 하고, 그 TSP의 시퀀스를 변경하지 않으면서 조립되어야 한다. PES 패킷은 헤더 정보 및 데이터 필드를 포함한다. 데이터 필드는, 예를 들어 비디오 데이터 스트림 또는 오디오 데이터 스트림의 부분일 수도 있다. 이와 같은 데이터 스트림을 탐색(스캔)하여 정보를 얻기 위해서는, 각각의 패킷이 오랜 시간 동안 조사되어야 한다. 더욱이, 예를 들어 에러 체크 또는 에러 정정과 같은 대규모의 평가 프로세스들이 요구될 수도 있다.
패킷 지향 데이터 스트림내 각각의 데이터 패킷을 조사해야 하는 것을 피하기 위하여, 데이터 스트림의 스캐닝 동안에 도움이 되는 정보 파일(info file)이 생성된다. 이 파일에 있어서, 특정 정보 항목들의 각 오프셋이 저장, 즉 패킷 및 바이트로 오프셋이 저장된다. 데이터 스트림과 정보 파일은 병렬적으로, 즉 동시에 스캔되며, 정보 파일은, 원하는 정보를 갖는 그 다음 지정 위치 또는 그 다음 마크된 엔트리 포인트에 도달하기 위하여, 데이터 스트림내에서 얼마나 많은 패킷 또는 바이트를 스킵할 수 있는지를 식별하기 위하여 사용된다. 더욱이, 각 데이터 패킷과 관련된 또다른 정보 항목은 정보 파일에 저장될 수도 있으며, 정보 파일내 정보 항목은 또다른 절차들을 사용하여 데이터 스트림으로부터 추출되어야 한다. 결론적으로, 이 절차들은 한번에 수행될 필요가 있다. 이는, 기록 프로세스 또는 그 후속 프로세싱 동안, 스튜디오(studio) 자체 또는 사용자의 리코더에서 이루어질 수도 있다. 이러한 목적을 위하여, 제품은 정보 파일을 기록할 수 있고, 기록된 데이터 스트림을 재생할 수 있으면 원칙적으로 충분하다. 본 발명에 따른 정보 파일은, 데이터 스트림이 시각적으로 표시되지 않으면서 스캔되도록 하여, 데이터 스트림내 특정 위치에 대한 정보 추출 및 점프에 대해 상당한 시간적인 장점을 얻는다.
패킷 지향 데이터 스트림을 스캐닝하기 위한 본 발명에 따른 정보 파일은 정보 블록의 시퀀스를 포함한다. 각각의 정보 블록은 데이터 스트림내 전용 패킷과 관련되며, 두 개의 컴포넌트를 포함한다: 첫 번째로, 오프셋, 즉 다음 정보 블록과 관련되는 다음 데이터 패킷으로의 패킷 또는 바이트의 수가 발생하며, 두 번째로, 추가 정보는, 현재의 관련 데이터 패킷, 예를 들어 각각의 타임 스탬프와 관련된다.
정보 파일이 가변 데이터 비율 및 상이한 패킷 크기를 더욱 지원하도록 하기 위하여, 정보 블록은그 다음 관련 패킷에 대한 오프셋을 패킷과 바이트 모두에 대해 포함한다. 이 경우, 두 가지 명세들 중 하나이면 원칙적으로 충분하다.
더욱이, 오프셋이 관련되어 있으므로, 본 발명에 따른 정보 파일은 임의의 크기의 데이터 스트림을 지원할 수 있다. 스트림의 시작과 관련되는 절대 오프셋과는 다르게, 오프셋 크기로부터 발생되는 제한은 두 개의 패킷들간의 거리에만 관련이 있고, 파일 길이와는 관련이 없다.
특히, 정보 파일은, 패킷 지향 데이터 스트림에서의 빠른 포워딩 및 리버싱을 위해 사용될 수도 있는데, 이로 인하여 융통성이 증가된다. 정보 파일을 사용하여, 상당히 빠르게 스캔되는 패킷 지향 데이터 스트림이 되는데, 이는, 데이터 스트림내에서 관련되지 않은 패킷들, 특히 상이한 기본 데이터 스트림의 부분이거나, PES 패킷 헤더를 포함하지 않는 전송 데이터 스트림내에서의 그러한 패킷들이 스킵될 수 있기 때문이다. 더욱이, 복잡한 계산 결과는 추가 정보로서 정보 파일에 저장될 수도 있으므로, 그 계산은 한 번에, 예를 들어 정보 파일을 생성할 때에만 수행될 필요가 있다. 정보 파일은, 데이터 스트림에서 스킵되는 패킷의 수가 크고, 원하는 정보 항목을 데이터 스트림으로부터 추출하는 프로세스가 어려울 수록 효과적으로 사용된다.
상이한 크기의 데이터 패킷 - 상기 데이터 패킷은, 전송 데이터 스트림의 다른 일정한 크기의 데이터 패킷, 예를 들어 TDP로부터 추출됨 - 과, 전송 데이터 스트림내 현재 위치를 지시하는 파일 포인터를 포함하는 기본 데이터 스트림내에서 포워딩 또는 리버싱하기 위한 장치는, 기본 데이터 스트림내 데이터 패킷의 시작 또는 헤더를 포함하는 전송 데이터 스트림내 TDP의 위치가 추출되는 적어도 하나의 메모리 매체 뿐만 아니라, 다른 TDP를 위해 메모리 매체로부터 호출된 파일 포인터의 현재 위치 및 위치 명세 또는 오프셋으로부터 전송 데이터 스트림내 또다른 TDP의 위치를 계산하기 위한 수단, 예를 들어 프로세서 및 마지막으로, 파일 포인터를 전송 데이터 스트림내 계산된 위치로 설정하기 위한 수단을 포함한다.
본 발명의 실시예들은 특허청구범위, 설명 및 도면에서 설명된다.
이하에서는, 첨부한 도면들을 참조하여 본 발명의 예시적인 실시예들을 설명한다.
본 발명에 대해서는, 이하에서 DSD-MPEG2 파서(parser)로 언급되는 MPEG-2 저장 및 재생 장치(디지털 저장 디바이스, DSD)용 파서의 예를 사용하여 설명할 것이다.
DSD-MPEG2 파서는 TSP들을 포함하는 MPEG-2 TS 데이터 스트림을 조사하고, 이 스트림에 포함된 PES 패킷들의 부분들로부터 완전한 PES 패킷들의 조립을 시도한다. TSP는, 상이한 기본 데이터 스트림이 되는 상이한 PES 패킷에 속할 수도 있다. 간소화된 MPEG-2 전송 데이터 스트림 MTS 및 관련 기본 데이터 스트림 PES1, PES2를 도 1에 개략적으로 나타낸다. 전송 데이터 스트림 MTS는 MPEG-2 전송 패킷 TSP를 포함하는데, 각 TSP는 헤더 및 데이터, 또는 페이로드(payload)를 포함한다. 이 페이로드는, 헤더 및 데이터, 또는 페이로드를 차례로 포함하는 PES 패킷의 부분을 나타낸다. 관련 PES 패킷 PP#1, PP#2는 기본 데이터 스트림 PES1, PES2가 되고, 그 중 하나를 이용하여, 예를 들어 비디오 데이터, 및 다른 오디오 데이터를 포함할 수도 있다.
PES 패킷의 헤더내 "start_code_prefix"는 24 비트의 길이를 가지며, 고정 값 000001hex를 갖는다. 후속하는 "stream_id"는 전달되는 데이터 스트림의 타입("PES_packet_data_byte")을 나타낸다. 이는, 비디오 스트림내 E0hex∼EFhex 범위 및 오디오 스트림내 C0hex∼DFhex 범위에 존재한다.
파서는 값 1에 대한 TSP의 헤더로부터 "payload_unit_start_indicator" 플래그(flag)와, 32 비트로 확장된 PES 패킷의 "start_code_prefix"에 대응하는 값 00000001hex에 대한 이와 같은 TSP의 데이터 영역을 조사한다. 양쪽 필드가 예상 값을 가지면, 파서는, 새로운 PES 패킷이 현재 TSP에서 시작된다는 점을 결정한다.
PES 패킷은 프리젠테이션 타임 스탬프(PTS) 및 그와 함께 디코딩 타임 스탬프(DTS)를 전달할 수도 있다. PTS는 전달될 데이터가 표시되어야 하는 시간을 나타내며, DTS는 데이터 디코딩 시간에 대한 정보를 제공한다. PES 패킷의 헤더에 마찬가지로 포함된 "PTS_DTS_flag"는, PES 패킷이 PTS 또는 DTS를 포함하고 있는지를 나타낸다. ISO/IEC 표준 13818-1은 연속적인 PTS간에 최대 0.7초의 간격을 지정한다. PTS는, 현재의 위치를 결정하기 위하여, 즉 현재의 타임 코드를 언급하기 위하여 평가될 수도 있다.
PTS를 평가하는 동안 발생하는 한 가지 문제점은, 그 PTS는 비디오 데이터 스트림에서의 0에서 시작할 필요는 없지만, 임의의 (시작) 값을 가정할 수도 있다는 점이다. 비디오 데이터 스트림내 각각의 프레임은, 그 프레임들이 표시되는 순서대로 정밀하게 코드되지는 않는다. 제한된 범위에 대해서, PTS는 또한 더 작아질 수도 있다. PTS의 길이가 제한되기 때문에, "오버플로잉(overflowing)"을 또한 야기시킬 수도 있다. 더욱이, PTS는, 연속하여 조립되는 상이한 비디오 데이터 스트림 엘리먼트 사이의 천이 포인트에서의 양만큼 점프할 수도 있다. 그러나, 이러한 PTS 점프는, 재생되는 비디오에 대한 타임 코드에서의 점프를 의미하지는 않는다. MPEG2-TS 데이터 스트림내 제1 PTS가 0이 아닐 수도 있다는 문제점은, 값이 타임 코드인 변수, 즉 경과되는 재생 시간이 Reset() 호출에서 0으로 설정됨으로서 해결될 수 있다. 이 변수는, 연속해서 추가되는 두 개의 연속 PTS간의 차를 갖는다. 이 값에 대한 단위가 밀리초(millisecond)인 것을 확인하기 위하여, 그 차 값은 90에 의해 나뉜다. 두 개의 연속 PTS간의 차가 0.7초에 대응하는 FFFFhex보다 큰 상항에서, 그 차는 무시된다. 이러한 상황은, 두 개의 조립된 스트림 엘리먼트간의 천이 포인트가 도달할 때 발생한다. 파서가 "가짜인" PTS를 발견하면, 그 PTS와 그 이전 PTS간의 차 및 그 PTS와 그 다음 PTS간의 차는 무시되는데, 이는, 두 개의 값이 0.7초보다 더 큰 값이기 때문이다.
두 개의 인접 PTS간의 차는, 그 차가 0.7초에 대응하는 FFFFhex보다 크지 않은 경우에만 타임 코드의 계산에 포함한다. 이러한 계산은, 길이가 33 비트인 PTS의 최하위 16 비트만을 필요로 한다. 그러나, 16 비트만이 계산에 요구되고, 값 FFFFhex에 대한 두 개 PTS의 비교는 32 비트를 이용하여 좀더 쉽게 수행될 수 있기 때문에, PTS에서의 MSB(Most Significant Bit)는 일반적으로 무시된다.
포워딩(forwarding) 또는 리버싱(reversing) 동안, 표시를 위한 비디오 데이터는 IEEE1394 버스를 통해 송신되지 않고, 위치 포인터만이 비디오 파일에서 시프트된다. 파일 포인터가 이동하는 속도가 포워딩 또는 리버싱의 속도이다. 이러한 목적을 위하여, 현재 타임 코드는 연속적으로 결정되고, 예를 들어 표시 모듈에 표시될 수도 있다.
계산될 수 있는 일정한 포워딩 또는 리버싱 속도를 허용하기 위하여, 파일 포인터는, 특정 타임 코드의 단계에 의해 일정한 시간 간격으로 시프트된다. 이러한 목적을 위하여, 탐색 타임 코드에 대응하는 비디오 스트냄내 데이터 패킷이 발견되어야 한다. 포워딩 또는 리버싱 프로세스의 기본 절차를 표 1에 나타낸다.
루틴이 남지 않고, 에러가 발생하지 않는 동안 반복함
CurrentTimeCode = StreamParser.GetPosition()비디오 스트림내 현재 위치에서의 타임 코드를 결정함
DistToMove = StreamParser.SeekTimeCode(CurrentTimeCode + ΔT)현재 타임 코드로부터 먼 지정 시간 간격에서 발생하는 타임 코드를 이용하여 패킷에 대한 비디오 스트림을 탐색함
File.Seek(DistToMove)위치 포인터를 비디오 스트림 파일내 새로운 위치로 이동함
지정 시간동안 대기함
포워딩 및 리버싱 속도는, 타임 코드에서의 차(CurrentTimeCode + ΔT) 및 그 루틴에서의 후속 대기 시간에 의해서 설정될 수 있다. 루프에서의 대기 시간은 임의의 제한없이 선택될 수도 있다. 타임 코드에서의 차 ΔT는, 특정 포워딩 또는 리버싱 속도를 획득하기 위하여, 이 대기 시간에 들어맞도록 결정된다.
포워딩 또는 리버싱 속도는 특정 시간에 대해서 점프된 타임 코드의 간격이다. 예를 들어, 이는, 영화에서의 10초는 1초에 대해 점프되어야 함을 의미할 수 있다. 대기 시간은 지나차게 길어서는 않되는데, 너무 긴 경우, 타임 코드 표시가, 포워딩 또는 리버싱 동안의 긴 간격에서만 수행될 수 있기 때문이다. 그러나, 대기 시간이 또한 너무 짧지 않도록, ΔT는 두 개 타임 코드간의 평균 간격보다 더 짧은 값이라고 가정한다. 더욱이, 대기 시간은 시간 표시의 독해도(legibility)에 영향을 준다.
비디오 스트림내 현재 위치에서의 타임 코드는 포워딩 및 리버싱 동안에 알려지기 때문에, 비디오 데이터 스트림은 연속해서 파스(parse)되어야 한다. MPEG2-TS 데이터 스트림에서, 이는, 모든 TSP가 조사되어야 함을 의미한다. PES 패킷이 결정되어, PTS의 발생에 대해서 조사되어야 한다. 그 다음, PTS는 에러에 대해서 체크되어야 하고, 필요하다면, 정정되어야 한다. 그러나, 이 프로세스는 오랜 시간을 필요로 하므로, 포워딩 및 리버싱은 무기한적으로 빠르게 수행될 수 없다. 그러나, 포워딩 및 리버싱은, 현재 타임 코드와, 현재 타임 코드를 포함하는 TSP를 적은 노력으로 결정하도록 하는 본 발명에 따른 정보 파일을 이용하여 상당히 간소화된다.
모든 PES 패킷이 PTS를 포함할 필요는 없다. 그러나, PTS를 포함하지 않는 경우, PTS는 PES 패킷의 시작에 위치되어야 한다. PTS가 발견되면, 수많은 TSP가 스킵될 수 있다. 그러나, 비디오 데이터 스트림의 파싱 동안, 점프될 수 있는 TSP의 수는 알려져 있지 않다. 이러한 상황에서, 본 발명에 따른 정보 파일의 장점이 효과적으로 사용될 수 있다.
도 2는, 포워딩 및 리버싱 동안에 얼마나 많은 기본 패킷이 부적절하여 점프될 수 있는지를 의미하는 오프셋 값 OP, OB의 시퀀스를 포함하는 본 발명에 따른 정보 파일 I를 나타낸다. 추가 정보 AI는 각각의 오프셋과 관련하여 또한 저장된다. 이 세 개의 필드들이 각각의 PES 패킷 PP에 대한 정보 블록 IB로 된다. "Offset Packets" OP 및 "Offset Bytes" OB에 대한 값은, 기본 전송 데이터 패킷 TDP의 수와, 두 개의 관련 TSP, 즉 전송 데이터 스트림 MTS내 두 개의 패킷 PP#11, PP#12간의 바이트의 수를 나타내는데, 각 패킷은, 동일한 기본 데이터 스트림 EDS내에서 서로 직접적으로 후속하는 PES 패킷 PP의 헤더 PPH1, PPH2를 포함한다. 이 각각의 PES 패킷 PP와 관련된 TSP는, 관련 TSP들 사이에 위치하지만, 상이한 기본 데이터 스트림의 PES 패킷과 관련된 TSP가 그곳에서 또한 발생될 수도 있다. 정보 블록 IB는 두 개의 오프셋 값 OP, OB 및 추가 정보 필드 AI를 포함한다. 추가 정보 필드 AI는 데이터 스트림내 각각의 패킷 PP#11, PP#12와 관련되며, 예를 들어, 이 패킷에 대한 타임 스탬프(PTS)를 포함할 수도 있다. 각각의 정보 파일은 하나의 기본 데이터 스트림, 바람직하게는 비디오 데이터 스트림에만 관련되는데, 이는, 포워딩 및 리버싱 프로세스가 이를 위해 의도되기 때문이다.
MPEG2-TS 데이터 스트림의 경우, 정보 블록내 첫 번째 두 개의 필드(OP,OB)는 두 개의 연속적인 PES 패킷간의 간격을 나타내며, 각각 32 비트의 길이를 갖는다. 상술한 애플리케이션에서의 "추가 정보" 필드 AI는, 각각의 비디오 포맷을 위해 완전하게 계산되고 에러 정정된 타임 코드를 포함하며, 마찬가지로 32 비트의 길이를 갖는다. 따라서, 상술한 폼(form)에서의 정보 블록은, MPEG2-TS 데이터 스트림에서 3 ×32 = 96 비트 또는 12 바이트의 길이를 갖는다. 그러나, 정보 파일이 너무 길지 않아 포워딩 및 리버싱 속도가 다시 감소된다고 가정하면, 또다른 데이터를 추가 정보 필드 AI에 저장하는 것이 유익할 수도 있다. 정보 파일내 정보는, 그 애플리케이션이 관련되지 않은 모든 TSP를 즉시 스킵하도록 한다. 정보 파일 I와 기본 데이터 스트림 EDS, 예를 들어 MPEG2 기반의 비디오 데이터 스트림간의 네비게이션 또는 동기화는 PES 패킷에서 PES 패킷으로 수행된다. 이 경우, 타임 코드는 정보 파일로부터 직접 판독될 수도 있으므로, 각각의 포워딩 또는 리버싱 프로세스 동안 다시 계산될 필요가 없다.
기록된 MPEG2-TS 비디오 데이터 스트림은, PES 패킷의 시작("PES Start")을 포함하는 TSP를 이용하여 시작할 필요가 없다. 예를 들어, DSD가 라이브 스트림의 기록이면, 제1 TSP는 연속하는 전송 데이터 스트림으로부터의 정의되지 않은 패킷이다. 이러한 상황을 도 3에서 나타낸다. 전송 데이터 스트림 MTS는 두 개의 상이한 데이터 패킷 OTH로 시작한 후에, "PES Start"를 갖는 제1 패킷 PSP#1이 발생한다. 정보 파일내 제1 오프셋 값 OP1, OB1은, "PES Start"를 포함하는 제1 MTS 패킷 PSP#1과 "PES Start"를 마찬가지로 포함하는 제2 MTS 패킷 PSP#2간의 거리를 설명한다. 전송 데이터 스트림 MTS내 제1 TSP는 완전한 PES 패킷을 포함하지 않고, 제1 TSP가 동일한 기본 데이터 스트림과 관련된 경우에는 정보 파일에 의해 무시된다. 더욱이, 정보 파일내 제1 엔트리는 제1 PES 패킷 PSP#1, 또는 점프될 부적절한 TSP인 OTH의 수에 대한 거리를 또한 나타낼 수도 있다.
비디오 스트림의 기록이 종료된 다음, 가장 최근에 수신된 TSP는 PES 패킷의 종료를 포함할 필요가 없다. 그러므로, 또다른 블록이, "Offset Packets" 값이 0인 MPEG2 특정 정보 파일내 마지막 정보 블록에 첨부되는데, 이는, "PES Start"를 포함하는 마지막 TSP의 위치에 후속된다. 이러한 초기 PES 패킷은 완전할 필요가 없고, 재생 동안에 송신되지 않아야 한다. 도 3에 도시한 단축된 예에서, 마지막 정규 정보 블록 OP2, OB2, TC2는 PSP#2로 시작하는 마지막 완전 PES 패킷과 PSP#3로 시작하는 불완전한 마직막 PES 패킷간의 거리를 설명한다. 오프셋 OP2가 3인데, 이는, 제3 후속 TSP가, 동일한 기본 데이터 스트림과 관련된 그 다음 PES 패킷 헤더 PSP#3을 포함하기 때문이다. 오프셋 OB2는, PSP#2로 시작하는 PES 패킷에서의 바이트의 합이다. 타임 코드 TC2는, 이 PES 패킷의 표시 시간 또는 PTS에 대응한다. 그러나, 가장 최근의 정보 블록 OP3, OB3, TC3은, 마지막 "PES Start" 패킷 PSP#3의 위치에 후속되는 오프셋 값 OP3에 대해서 0을 포함한다. 그러므로, 이는, 기록된 기본 데이터 스트림의 종료를 설명한다.
정보 파일의 도움으로 스캔되는 비디오 데이터 스트림은, 먼저 그 정보 파일과 동기되어야 한다. 이를 위하여, PES 패킷의 시작, 즉 "PES Start"를 포함하는 비디오 데이터 스트림내 제1 TSP를 필수적으로 찾아야 한다.
정보 파일은 포맷 특정 DSD 스트림 파서에서 생성되고 평가된다. 그러므로, 개별적인 추가 정보 필드 및 그 정보 블록에 대한 개별적인 비트 길이를 이용하여 각각의 비디오 포맷에 대해서 구체적으로 적용된 정보 파일을 생성하는 것이 가능하다.
정보 파일은 비디오 데이터의 수신, 즉 기록 프로세스 동안에 정상적으로 생성된다. 이미 존재하는 트랙을 위한 정보 파일이 존재하지 않으면, 이와 같은 정보 파일은, DSD 애플리케이션이 시작될 때 생성될 수 있다. 따라서, 본 발명에 따른 정보 파일이 기록 동안에 생성되지 않는 경우, 예를 들어 비디오 파일이 수동으로 복사될 때, 비디오 파일을 재생하는 것이 또한 가능하다.
표 2의 함수들은, 인터페이스를 제공하기 위하여 DSD 스트림 파서 모듈에서 정의되고, 정보 파일이 오픈(open), 생성 또는 클로즈(close)되도록 한다.
OpenInfoFile() 판독을 위해 정보 파일을 오픈함.
CreateInfoFile() 정보 파일을 생성하고, 기록을 위해 정보 파일을 오픈함.
CloseInfoFile() 정보 파일을 클로즈함.
ParsePacket() 판독을 위해 오픈된 정보 파일을 이용하여 비디오 데이터 패킷을 스캔함.
ParseStream() 비디오 데이터 스트림을 스캔함. 정보 파일이 판독용 OpenInfoFile()에 의해 오픈되면, 이 함수는 파싱을 위해 사용됨. 이전 호출이 CreateInfoFile()로 이루어지면, 정보 파일은 현재 비디오 데이터 스트림에 기초하여 생성됨.
GetCurrentEnd-OfValidStream() ParseStream()에 의한 마지막 호출 이후 비디오 데이터 스트림의 마지막 관련 (유효) 부분의 위치를 리턴함. 이 함수는, 예를 들어 완전한 PES 패킷으로 종료되지 않는 MPEG2-TS 데이터 스트림의 종료 시에 중요함.
GetStartOf-StreamOffset() 비디오 데이터 스트림의 제1 유효 부분의 위치를 리턴함. 이 함수는, 기록이 연속 비디오 데이터 스트림의 중앙에서 시작될 때 중요함. MPEG2-TS 데이터 스트림에서 "PES Strat"를 포함하는 제1 TSP의 위치를 리턴함.
ResetInfoFilePosition() 정보 파일내 파일 포인터를 파일 시작으로 리셋함.
SeekTimeCode() 정보 파일내 특정 타임 코드를 탐색하고, 탐색될 타임 코드의 위치에 도달하기 위하여, 비디오 데이터 스트림에서 점프되어야 하는 바이트의 수를 리턴함.
CheckSync() 비디오 데이터 스트림이 정보 파일에 동기되는지를 조사함.
EndOfInfoFile() 정보 파일의 종료가 도달되었는지를 체크함.
ParsePacket()을 호출하여 정보 파일을 판독하고, ParseStream()을 호출하여, OpenInfoFile() 또는 CreateInfoFile()의 이전 함수 호출에 의존하는 정보 파일을 판독하거나 생성한다.
함수 CheckSync()는, 비디오 데이터 스트림과 정보 파일이 동기하는지를 체크한다. MPEG2-TS 데이터 스트림의 경우, 비디오 스트림내 현재 위치에서의 "payload_unit_start_indicator" 플래그가 1로 설정되는지, 그리고 "start_code_prefix"가 값 000001hex를 포함하는지를 결정하기 위하여 체크된다. 이러한 경우, TSP는 비디오 스트림내 현재 위치에서의 PES 패킷의 시작을 포함한다. 정보 파일은, 인접한 "PES Start"를 각각 포함하는 두 개의 TSP간의 간격을 나타내기 때문에, 그 정보 파일을 이용하여 비디오 데이터 스트림을 스캔하기 위한 필수적인 조건이다. 이러한 경우, 그 함수는 값 "true"를 리턴한다.
ParsePacket()을 호출하여 MPEG2-TS 데이터 스트림내 단일 TSP를 스캔한다. ParsePacket()의 후속 호출은 후속 TSP를 입력 파라미터로서 포함한다. 현재 파스되고 있는 패킷에 대한 타임 코드는 관련 정보 파일로부터 판독된다. 그러므로, OpenInfoFile()의 이전 호출이 필수적이다. 도 4는 ParsePacket() 루틴에서의 절차를 보여준다.
파스되는 비디오 데이터 스트림은, "PES Start"를 포함하는 비디오 데이터 스트림내 제1 TSP를 탐색함으로써 ParsePacket()의 개별적인 호출에서의 정보 파일에 동기된다. 이러한 목적을 위하여, TSP 헤더의 제1 바이트 sync_byte는 제1 단계 D1에서 지정된 값 47hex에 대해 조사된다. 모듈 변수 bFirstPESReached는, 이 TSP가 이미 발견되었는지 여부를 나타낸다. 제2 단계 D2에서, ParsePacket()은 이 변수를 조사한다. TSP가 아직까지 발견되지 않았으면, CheckSync()이 호출된다. bFirstPESReached의 값은, 리턴되는 값에 따라 "true"로 설정될 수 있다. 제3 단계 D3에서, 이 변수는, PES 패킷의 시작을 구비한 제1 TSP가 발견되었는지 여부를 다시 체크하기 위해 사용된다. 비디오 데이터 스트림이 ParsePacket() 호출에서의 정보 파일에 동기되면, 관련 "PES Start"를 포함하는 그 다음 TSP와 관련된 오프셋이 정보 파일로부터 판독된다. 모듈 변수 u32PacketsToNextPES는 결정된 오프셋의 소정의 값이다. 새로운 함수가 호출될 때, 그 변수는 감소된다. 그 다음, 정보 파일은, 그 변수가 값 0이 된 이후에 다시 판독된다. 0의 오프셋이 정보 파일로부터 D4, D5 단계에서 판독되면, 즉 파일 종료에 도달하면, "PES Start"를 포함하는 마지막 TSP의 위치는 모듈 변수 u64ByteCounterAtPESStart로 변환된다. 이 변수의 값은, 함수 GetCurrentEndOfValidStream()에 의해 리턴된다. 파일 종료에 도달하지 않으면, 현재 TSP와 관련된 타임 코드가 정보 파일로부터 판독되고, 모듈 변수 u32ElapsedTime에 저장된다.
함수 ParseStream()은 하나 이상의 TSP를 포함하는 비디오 데이터 스트림의 부분을 스캔한다. 그 함수는, 정보 파일로부터의 타임 코드의 결정 뿐만 아니라, 그러한 파일의 생성을 지원한다. 사용되는 모드는 OpenInfoFile() 또는 CreateInfoFile()의 이전 호출에 의존한다. 각각의 경우, 루프내에서, 단일 비디오 데이터 패킷은 파스되는 비디오 데이터 스트림으로부터 추출된다. 그 루프는, 각각의 패킷이 모두 추출될 때까지 계속된다. 그 프로세스에서의 모듈 변수 u32TSPCounter는 추출된 패킷을 카운트하고, 추출된 바이트는 u64ByteCounter에서 카운트된다. OpenInfoFile()의 이전 호출의 이벤트에서, 개별적으로 추출된 패킷은, ParsePacket()의 함수 호출을 위한 입력 파라미터로서 사용된다. "PES Start"를 구비한 제1 TSP가 도달하자마자, u64ByteCounter에 포함된 바이트의 현재 수는 모듈 변수 u32CurrentStartOfStreamOffset으로 변환된다.
정보 파일이 생성될 때, 현재 TSP는 비공개 함수 ParseTransportPacket()으로 변환된다. 이 함수는, 그 TSP가 기본 데이터 스트림과 관련되는지를 결정하고, 이로부터 PES 패킷의 부분을 추출하여 버퍼에 저장한다. 각각의 함수를 호출하여, PES 패킷의 또다른 부분이 버퍼에 저장된다. TSP가 새로운 PES 패킷의 시작을 포함하면, 변수 u32TSPCounter의 카운트는 모듈 변수 u32TSPCounterAtPESStart에 저장되며, u64ByteCounter의 현재 값은 u64ByteCounterAtPESStart에 저장되며, 이전에 저장된 PES 패킷의 모든 부분이 함께 결합되어, 전체 PES 패킷이 비공개 함수 ParsePESPacket()에 의해 조사된다. 이 함수는, 만약 있다면 관련 PTS를 결정하여 모듈 변수 u32PTS에 저장한다. 또한, 또다른 PES 패킷을 조사, 예를 들어 그 패킷이 비디오 또는 오디오 데이터 스트림을 포함하는지를 결정하는 것이 가능하다. 그 다음, PTS는 ParseTransportPacket()에서 조사되고, 에러가 체크되어 정정되며, 현재 타임 코드가 계산되어 오픈된 정보 파일에 기록된다. 타임 코드는 이하에서 설명하는 방법을 사용하여 계산된다. "PES Start"를 포함하는 두 개의 인접한 TSP간의 거리는, 모듈 변수 u32TSPCounter, u32TSPCounterAtPESStart, u64ByteCounteru64ByteCounterAtPESStart를 사용하여 계산된다.
함수 GetCurrentEndOfValidStream()는 변수 u64ByteCounterAtPESStart의 현재 값을 ParsePacket() 및 ParseStream()에 대해서 설명한 바와 같이 리턴한다. 따라서, 그 함수는 "PES Start"를 포함하는 가장 최근에 파스된 TSP의 위치를 제공한다.
함수 GetStartOfStreamOffset()는 ParseStream()에 채워진 변수 u32CurrentStartOfStreamOffset의 값을 리턴한다. 그 애플리케이션이 비디오 스트림을 재생하고 있다면, 실제 전송은 리턴된 값으로부터 시작된다. 이는, 불완전한 PES 패킷이 재생의 시작으로 전송되지 않도록 한다. 비디오 데이터 스트림은 임의의 포인트에서의 시작으로 기록될 수 있기 때문에, 기록된 파일은 제1 TSP내 "PES Start"로 시작할 필요가 없다. 변수 u32CurrentStartOfStreamOffset는 초기에는 초기 값 FFFFFFFFhex로 설정된다. 이 값이 그 함수에 의해 리턴되면, 이는, "PES Start"가 ParseStream()에서 아직까지 발견되지 않았음을 의미한다.
정보 파일내 특정 타임 코드에 대한 탐색은 DSD-MPEG2 파서의 SeekTimeCode() 루틴을 사용하여 수행된다. 포워드 및 리버스 탐색(SeekType)간의 차이가 유도된다. 적절한 TSP에 도달하기 위하여, 파일 포인터가 비디오 스트림에서 이동하여야 하는 바이트의 수는 리턴된다. 루틴의 리버스 탐색 경로에서, 파라미터로 변환된 타임 코드보다 작거나 동일한 타임 코드가 정보 파일내에서 탐색된다. 표 3에서 설명한 알고리듬은 이러한 목적을 위해 수행된다.
전체 점프 카운터를 0으로 초기화함. 1.
현재 패킷과 관련된 타임 코드를 판독함. 2.
정보 파일에서 현재 판독된 타임 코드가 탐색된 것 보다 커서, 정보 파일의 시작에 도달되지 않고, 에러가 발견되지 않는 동안 반복함. 3.
비디오 스트림내 현재 위치부터 이전 패킷까지의 바이트 수를 결정함. 4.
이전 패킷과 관련된 타임 코드를 결정함. 5.
정보 파일내 파일 포인터를 이전 정보 블록의 시작으로 설정함. 6.
4.에서 판독된 바이트의 수를 전체 점프 카운터에 추가함. 7.
전체 점프 카운터의 값을 리턴함. 8.
표 3의 전체 점프 카운터는, 원하는 타임 코드에 도달하기 위하여, 위치 포인터가 비디오 스트림에서 이동되어야 하는 바이트의 수를 나타낸다. 이는, PES 패킷부터 PES 패킷까지의 오프셋을 추가함으로써 정보 파일내에서 탐색된다.
루틴의 포워드 경로에서, 파라미터로 변환된 타임 코드보다 크거나 동일한 타임 코드가 정보 파일내에서 탐색된다. 표 4는 포워드 탐색을 위한 구조도를 설명한다.
전체 점프 카운터를 0으로 초기화함. 1.
현재 패킷과 관련된 타임 코드를 판독함. 2.
다음 정보 블록의 시작(새로운 위치)으로 정보 파일내에서 점프함. 3.
정보 파일에서 현재 판독된 타임 코드가 탐색된 것 보다 작아서, 정보 파일의 시작에 도달되지 않고, 에러가 발견되지 않는 동안 반복함. 4.
정보 블록내 "Offset Packets" 필드를 정보 파일내 현재 위치에서 판독함. 5.
판독된 "Offset Packets" 필드가 0이고, 따라서 비디오 스트림내 그 다음 PES 패킷이 불완전한가(파일 종료)?
YES NO
정보 파일에 대한 파일 포인터를 파일의 시작으로 설정함; 루프를 종료함. 비디오 스트림내 본래 PES 패킷과 현재 PES 패킷간의 바이트의 수를 결정함. 6.
6.에서 결정된 바이트의 수를 전체 점프 카운터에 추가함. 7.
현재 패킷과 관련된 타임 코드를 결정함. 8.
전체 점프 카운터의 값을 리턴함. 9.
표 4에 도시한 알고리듬에 대한 루프를 통해 각각 운영된 후, 정보 파일에 대한 파일 포인터는, 단계 5∼8을 수행하기 위해 그 다음 정보 블록의 시작을 지적한다. 파일 종료에 도달하면, 그 루프는 남겨지고, 정보 파일내 파일 포인터는 "file start"로 설정된다.
이하에서는 포워딩 및 리버싱에 대한 포워드 및 리버스 명령의 변환에 대해서 설명한다.
비디오 데이터 스트림에서의 포워딩 및 리버싱은 상술한 정보 파일을 사용하여 수행된다. 루틴의 시작 시, 비디오 스트림내 위치 포인터는, PES 패킷의 시작("PES Start")을 포함하는 TSP를 지적하거나, 또는 그 앞에 위치하는 TSP를 지적하고 있다고 가정한다. 정보 파일과의 동기화를 위하여, 비디오 스트림은, "PES Start"를 구비한 TSP가 발견될 때까지 포워드 스캔된다. 도 3에 있어서, 데이터 스트림 TS내 패킷 OTH는, "PES Start"를 포함하는 제1 PES 패킷 PSP#1이 발견될 때까지 스캔된다. 그 다음, 현재 타임 코드로부터 특정 시간 간격에 있는 정보 파일내 타임 코드는, SeekTimeCode()를 사용하는 루프에 의해서 탐색되고, 점프될 TSP 또는 바이트의 수는, 그 수들을 추가함으로써 결정된다. 데이터 포인터는 이 양에 의해 비디오 스트림에서 오프셋된다.
비디오 스트림과 정보 파일간의 동기화는, 명령이 변경될 때에도 보증되어야 한다. 이러한 목적을 위하여, 타임 코드는, 재생 프로세스 동안에 비디오 스트림보다는 정보 파일로부터 마찬가지로 판독된다. 이에 대해서는 두 가지 원인이 존재한다: 첫 번째로, 타임 코드는 PTS로부터 다시 계산될 필요가 없으므로, 더 빠르고, 성능에 대해 유익한 효과를 가지며, 두 번째로, 정보 파일은, 포워딩 또는 리버싱 이후의 명령 변경이 가능한 이벤트에서의 비디오 스트림에 결론적으로 동기된다.
명령이 변경될 때에도 비디오 스트림과 정보 파일의 동기화를 유지하기 위하여, DSD-MPEG2 파서는 다음의 규칙들을 따른다:
1. 명령 수행의 시작 시, 위치 포인터는, 정보 파일내 현재 포인터 위치와 관련된 PES 패킷의 시작을 포함하는 TSP를 비디오 스트림에서 지적해야 하거나, 그 앞에 위치하는 TSP를 지적해야 한다. 그 포인터가 비디오 스트림과 정보 파일 모두의 파일 시작에 위치하는 경우, 이러한 조건은 정의에 의해 만족된다.
2. 재생 프로세스 이후에, 비디오 스트림내 위치 포인터가 "PES Start"를 구비한 TSP에 위치하지 않으면, 정보 파일에 대한 파일 포인터는, "PES Start"를 구비한 그 다음 TSP와 관련된 정보 블록을 지적한다. 비디오 스트림내 현재 TSP가 "PES Start"를 포함하면, 정보 파일에 대한 파일 포인터는, 이 TSP와 관련된 정보 블록을 지적한다.
3. 포워드 또는 리버스 명령을 수행한 후, 비디오 스트림내 위치 포인터는 "PES Start"를 구비한 TSP를 지적한다. 정보 파일에 대한 파일 포인터는, 이 TSP와 관련된 정보 블록을 지적한다. 그 명령을 수행하는 동안에 도달되는 파일 종료의 상황은 예외이다. 이 경우, 두 개의 포인터는 파일 시작으로 설정된다.
명령을 수행한 후, 비디오 파일과 정보 파일 모두는 클로즈된다. 그러므로, 비디오 스트림과 정보 파일내 현재 위치를 영구적으로 저장하는 모듈 변수가 도입된다. DSD 운용 스레드(thread) 모듈은 이러한 목적을 위한 변수 u64FilePos를 생성하는데, 그 변수는, 각각의 파일 액세스 이후에 비디오 파일에 대한 파일 포인터의 현재 위치와 함께 업데이트된다. DSD-MPEG2 파서는 변수 u32InfoFilePosition을 정의한다. DSD 운용 스레드의 StartFile() 루틴에서, 파일 포인터는, 비디오 파일을 오픈한 이후에 u64FilePos에서의 위치로 설정된다. 이는, 대응 DSD-MPEG2 파서 모듈 변수와 함께 정보 파일의 오픈을 또한 수행한다. 이전 명령에 의해 선택된 트랙과는 상이한 트랙이 재생되면, 양쪽 모듈 변수는 0으로 설정되어야 한다.
실제 구현에 있어서, 파일들간의 다음의 예와 같은 크기 비율이 전통적으로 획득될 수 있다:
65 Mbytes의 크기를 갖는 비디오 파일을 위하여, 정보 파일은 0.12%에 대응하는 약 81 Kbytes의 크기를 갖는다. 크기가 229 Mbytes인 또다른 비디오 파일을 위하여, 정보 파일은 약 0.06%에 대응하는 약 146 Kbytes의 크기를 갖는다.
사용된 전송 데이터 스트림(Transport Stream, TS)은, 에러에 대한 채널, 일반적으로는 전송 또는 저장을 위해 주로 사용되는 패킷 지향 데이터 스트림이다. 그러나, 본 발명은, 전송 데이터 스트림내 패킷들의 전부 또는 일부가 검색 능력을 갖고 있는지에 대해서는 의존하지 않는다.
사용되는 PES 패킷은 64 Kbytes에 달하는 가변성의 크기를 가지며, 인트라코드된 프레임("I-프레임", approx. 40 Kbytes) 또는 비디오 기본 데이터 스트림내 두 개의 인터코드된 프레임("B-프레임", "P-프레임")을 포함할 수도 있다. 이는, 코드된 프레임의 크기가, 프레임 콘텐츠에 따라 가변하기 때문이다. 따라서, 본 발명에 따른 방법은, 개별 PES 패킷 및 개별 비디오 프레임을 간단하고, 빠르며 구체적으로 발견하도록 한다.
본 발명의 중요한 특징은, PES 패킷의 발견과 관련된 정보는 개별적으로, 예를 들어 개별 파일 또는 개별 메모리 영역에 저장된다는 점이다. 본 발명에 따른 방법의 또다른 장점은, 특정 포인트를 특정 기본 데이터 스트림에 위치시키기 위하여, 위치 프로세스 동안, 패킷을 포함하는 저장된 전송 데이터 스트림을 두 개 이상의 기본 데이터 스트림으로부터 정렬시킬 필요가 없다는 점이다. 두 가지 장점으로 인하여, 전송 데이터 스트림을, 수신되었을 때와 같이 변화시키지 않고 저장하는 것이 가능하다.
더욱이, 본 발명에 따른 방법은, 예를 들어 가능한 엔트리 포인트의 고정된 프레임워크를 사전설정하는 대신, 프레임 코딩 포인트의 관점, 즉 임의의 I-프레임으로부터 가능한 비디오 파일내 임의의 엔트리 포인트로 점프하는 것이 가능하다. 인터코드된 프레임, B-프레임, 또는 P-프레임은, 그들이 PES 패킷의 시작에 위치한다고 가정하면, 점프될 수 있다. 이러한 포인트는, 정보 파일이 생성될 때 자동적으로 위치한다.
관련 오프셋의 지시는, 본 방법이 전체 파일의 길이에 독립적임을 의미한다. 단지, 최대 점프 폭이 제한되지만, 이는 신뢰성있게 예상될 수 있다. 이러한 경우, 조합의 정의에 의존하는 그 다음 관련 TSP 또는 이전 관련 TSP에 대한 오프셋을 나타낼 수 있다.
본 발명에 따른 방법은, 패킷 지향 데이터 스트림에서 네비게이션해야 하는 제품, 예를 들어 개인용 비디오 리코더(PVR) 또는 그와 유사한 제품, 특히 포워딩, 리버싱 또는 재생 기능을 구현하기 위한 비디오 및/또는 오디오 데이터용 기록 및 재생 제품에 유익하게 사용될 수 있다.
도 1은 MPEG-2 TS 데이터 스트림의 구조를 도시한 도면.
도 2는 정보 파일의 일반적인 구조를 도시한 도면.
도 3은 MPEG-2 TS 데이터 스트림에 대한 정보 파일을 도시한 도면.
도 4는 ParsePacket() 함수의 구조도를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
OP : Offset Packets
OB : Offset Bytes
AI : Additional Information
IB : Information Block

Claims (12)

  1. 일정한 크기의 제1 데이터 패킷(TDP)들로 구성되는 제1 타입 데이터 스트림(MTS)내에서 정의된 위치들을 저장하거나 재배치하기 위한 방법으로서,
    상기 제1 데이터 패킷(TDP)들에 포함된 데이터 항목들은 그 시퀀스를 변경하지 않으면서 결합되어, 제2 타입 또는 또다른 타입의 하나 이상의 다른 데이터 스트림(PES1,PES2)이 되는 가변하는 크기를 가질 수도 있는 제2 또는 또다른 데이터 패킷(PP)들을 형성하고,
    상기 정의된 위치들에 배치되는 상기 제1 데이터 패킷(TDP)들은 상기 제2 데이터 패킷들의 시작 또는 헤더(PPH1,PPH2)를 포함하며,
    각각의 제2 데이터 패킷에 관련되는 추가 정보 뿐만 아니라 상기 정의된 위치들에 대한 설명이 상기 데이터 스트림들과는 별도로 저장되거나 검색되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 정의된 위치들에 배치되는 상기 제1 데이터 패킷(TDP)들은, 동일한 데이터 스트림(EDS)과 관련된 상기 제2 데이터 패킷(PP)들 모두의 시작 또는 헤더(PPH1,PPH2)를 자동적으로 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제2 데이터 패킷(PP)들은 인코드되는 하나의 타입의 데이터만을 포함하고, 상기 제2 데이터 패킷들의 시작 또는 헤더(PPH1,PPH2)는 상기 제2 데이터 스트림(EDS)의 디코딩을 위한 엔트리 포인트인 방법.
  4. 선행 항들 중 어느 한 항에 있어서,
    상기 제2 타입 데이터 스트림(EDS)의 데이터 패킷의 시작 또는 헤더(PPH2)를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 데이터 패킷(PP#12)의 위치는, 상기 제2 타입 데이터 스트림(EDS)내 후속 또는 이전 제2 데이터 패킷의 시작 또는 헤더(PPH1)를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 또다른 데이터 패킷(PP#11)에 대해 관련하여(OP,OB) 설명되는 방법.
  5. 선행 항들 중 어느 한 항에 있어서,
    상기 관련 지시(OP,OB)는 상기 제1 타입 패킷들의 수(OP) 및 바이트의 수(OB)를 설명하는 방법.
  6. 선행 항들 중 어느 한 항에 있어서,
    개별적으로 저장된 정보는 각 헤더의 타임 스탬프 뿐만 아니라 PES 패킷들의 헤더들의 위치를 포함하고, 상기 제1 타입 데이터 스트림(MTS)은 MPEG-2 전송 데이터 스트림인 방법.
  7. 제1 타입 데이터 스트림(MTS)내 일정한 크기의 다른 데이터 패킷(TDP)들로부터 추출되는 가변하는 크기의 데이터 패킷(PP)들과, 상기 제1 타입 데이터 스트림(MTS)내 현재 위치를 지시하는 파일 포인터를 포함하는 제2 타입의 데이터 스트림(EDS)내에서 포워딩 또는 리버싱하기 위한 방법으로서,
    상기 제2 타입 데이터 스트림(EDS)내 데이터 패킷(PP)들의 시작 또는 헤더를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 데이터 패킷(PP#11,PP#12)들의 관련 위치는 메모리 또는 파일로부터 검색되고,
    데이터 패킷(PP#12)의 상기 제1 타입 데이터 스트림(MTS)내 위치는, 상기 파일 포인터의 위치(PP#11) 및 상기 데이터 패킷(PP#12)의 검색된 위치로부터 계산되며,
    상기 파일 포인터는 상기 제1 타입 데이터 스트림(MTS)내 상기 계산된 위치로 점프하는 방법.
  8. 제7항에 있어서,
    상기 제2 타입 데이터 스트림(EDS)내 데이터 패킷(PP)들의 시작 또는 헤더를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 모든 데이터 패킷(PP#11,PP#12)들의 위치는 메모리 또는 파일로부터 호출되는 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 제2 타입 데이터 스트림(EDS)내 데이터 패킷(PP)들은 상기 헤더(PPH1,PPH2)에 타임 스탬프를 포함하고, 상기 타임 스탬프는, 각 헤더를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 상기 데이터 패킷(PP#11,PP#12)에 대한 위치 명세와 함께 상기 메모리 또는 상기 파일에 또한 저장되며, 상기 메모리 또는 상기 파일로부터 호출되며, 상기 제2 타입 데이터 스트림(EDS)내 위치를 결정하거나 지시하기 위해 사용되는 것을 특징으로 하는 방법.
  10. 가변하는 크기의 데이터 패킷(PP)들 - 상기 데이터 패킷(PP)들은 제1 타입 데이터 스트림(MTS)내 일정한 크기의 다른 데이터 패킷(TDP)들로부터 추출됨 - 과, 상기 제1 타입 데이터 스트림(MTS)내 현재 위치(PP#11)를 지시하는 파일 포인터를 포함하는 제2 타입 데이터 스트림(EDS)내에서 포워딩 또는 리버싱하기 위한 장치로서,
    상기 장치는,
    상기 제2 타입 데이터 스트림(EDS)내 상기 데이터 패킷(PP)들의 시작 또는 헤더(PPH1,PPH2)를 포함하는 상기 제1 타입 데이터 스트림(MTS)내 데이터 패킷(PP#11,PP#12)들의 위치가 추출되는 메모리 매체,
    상기 메모리 매체로부터 호출될 때, 상기 파일 포인터의 현재 위치(PP#11) 및 다른 데이터 패킷(PP#12)에 대한 위치 명세(OP,OB)로부터 상기 제1 타입 데이터 스트림(MTS)내 또다른 데이터 패킷(PP#12)의 위치를 계산하기 위한 수단, 및
    상기 파일 포인터를 상기 제1 타입 데이터 스트림(MTS)내 상기 계산된 위치(PP#12)로 설정하기 위한 수단
    을 포함하는 것을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 제2 타입 데이터 스트림(EDS)내 상기 데이터 패킷(PP)들은, 각 패킷 헤더(PPH2)를 포함하는 상기 데이터 패킷(PP#12)의 위치 명세(OP,OB)와 함께 상기 메모리 매체로부터 추출되는 추가 정보(AI)로부터 또한 결정될 수 있는 타임 마커들을 포함하고, 포워딩 또는 리버싱하기 위한 다른 데이터 패킷(PP#12)이 선택되어, 그와 관련된 타임 마커 및 현재 데이터 패킷(PP#11)에 포함된 상기 타임 마커는 그들간의 사전설정된 시간 차를 갖는 장치.
  12. 가변하는 크기의 데이터 패킷(PP)들 - 상기 데이터 패킷(PP)들은 그들의 헤더(PPH1,PPH2)에 타임 마커들을 포함하고, 제1 타입 데이터 스트림(MTS)의 일정한 크기의 다른 데이터 패킷(TDP)들의 콘텐츠로부터 구성됨 - 을 포함하는 제2 타입 데이터 스트림(EDS)에 관련되는 정보를 계산하고 저장하기 위한 장치로서,
    상기 장치는,
    상기 제1 타입 데이터 스트림(MTS)의 상기 데이터 패킷(TDP)들을 상기 제2 타입 데이터 스트림(EDS)과 관련시키기 위한 수단,
    상기 제1 타입 데이터 스트림(MTS)의 상기 데이터 패킷(TDP)들로부터 상기 제2 타입 데이터 스트림(EDS)의 상기 데이터 패킷(PP)들의 상기 타임 마커들을 추출하기 위한 수단,
    헤더를 포함하는 현재 데이터 패킷(PP#11)으로부터 헤더를 포함하며 상기 동일한 제2 타입 데이터 스트림(EDS)의 부분인 그 다음 데이터 패킷(PP#12)까지의 상기 제1 타입 데이터 스트림(MTS)의 상기 데이터 패킷(TDP)들을 카운팅하기 위한 카운터, 및
    데이터 블록(IB)들을 저장하기 위한 수단
    을 포함하며,
    각각의 데이터 블록은 상기 제2 타입 데이터 스트림(EDS)의 하나의 데이터 패킷(PP)과 관련되며, 패킷들의 최소 결정 수 및 상기 추출된 타임 마커를 포함하는 것을 특징으로 하는 장치.
KR1020040096958A 2003-11-25 2004-11-24 데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한방법 및 장치 Expired - Fee Related KR101164670B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10355345A DE10355345A1 (de) 2003-11-25 2003-11-25 Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
DE10355345.2 2003-11-25

Publications (2)

Publication Number Publication Date
KR20050050573A true KR20050050573A (ko) 2005-05-31
KR101164670B1 KR101164670B1 (ko) 2012-07-11

Family

ID=34442301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040096958A Expired - Fee Related KR101164670B1 (ko) 2003-11-25 2004-11-24 데이터 스트림내 정의된 위치의 저장 또는 재배치를 위한방법 및 장치

Country Status (8)

Country Link
US (1) US7664105B2 (ko)
EP (1) EP1536429A1 (ko)
JP (2) JP4990493B2 (ko)
KR (1) KR101164670B1 (ko)
CN (1) CN1622535B (ko)
DE (1) DE10355345A1 (ko)
MY (1) MY145511A (ko)
TW (1) TWI345174B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
EP1897326B1 (en) * 2005-06-27 2015-03-18 Core Wireless Licensing S.à.r.l. Transport mechanisms for dynamic rich media scenes
US8904443B2 (en) * 2005-09-07 2014-12-02 Sony Corporation System and method for improving home network GUI response time and presentation
KR101227497B1 (ko) * 2006-04-28 2013-01-29 엘지전자 주식회사 디지털 방송 신호와 상기 신호를 처리하는 장치 및 방법
US11303684B2 (en) 2006-09-14 2022-04-12 Opentv, Inc. Methods and systems for data transmission
US7930449B2 (en) * 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US20080240227A1 (en) * 2007-03-30 2008-10-02 Wan Wade K Bitstream processing using marker codes with offset values
FR2923970B1 (fr) * 2007-11-16 2013-01-04 Canon Kk Procede et dispositif de formation, de transfert et de reception de paquets de transport encapsulant des donnees representatives d'une sequence d'images
WO2010079435A2 (en) 2009-01-07 2010-07-15 Nds Limited Data stream storage system
JP2011223360A (ja) * 2010-04-09 2011-11-04 Sony Corp 送信装置、受信装置、制御方法、及び通信システム
US9131274B2 (en) 2010-07-19 2015-09-08 Lg Electronics Inc. Method for transceiving media files and device for transmitting/receiving using same
KR101440271B1 (ko) 2012-10-22 2014-09-18 주식회사 다산네트웍스 패킷 처리 방법 및 시스템
CN104268288B (zh) * 2014-10-21 2018-06-19 福州瑞芯微电子股份有限公司 一种基于ntfs的媒体库扫描方法及装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026232A (en) * 1995-07-13 2000-02-15 Kabushiki Kaisha Toshiba Method and system to replace sections of an encoded video bitstream
JP3484834B2 (ja) * 1995-07-28 2004-01-06 ソニー株式会社 データ符号化/復号化方法および装置
JPH1098681A (ja) * 1996-09-24 1998-04-14 Ekushingu:Kk デコード装置
US6449653B2 (en) * 1997-03-25 2002-09-10 Microsoft Corporation Interleaved multiple multimedia stream for synchronized transmission over a computer network
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
US6278838B1 (en) * 1998-06-26 2001-08-21 Lsi Logic Corporation Peak-ahead FIFO for DVD system stream parsing
EP1095520A2 (en) * 1998-06-29 2001-05-02 Limt Technology AB Method and apparatus for splicing data streams
US6584118B1 (en) * 1998-08-27 2003-06-24 Nortel Networks Limited Payload mapping in synchronous networks
CA2289958C (en) * 1998-11-19 2003-01-21 Tomoyuki Okada Information recording medium, apparatus and method for recording or reproducing data thereof
JP3806018B2 (ja) * 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
EP1051027B1 (en) * 1999-05-06 2006-05-24 Sony Corporation Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
KR100308152B1 (ko) * 1999-07-31 2001-09-29 서평원 단문 메시지 서비스를 위한 셀 브로드캐스팅 방법
FR2797549B1 (fr) * 1999-08-13 2001-09-21 Thomson Multimedia Sa Procede et dispositif de synchronisation d'un decodeur mpeg
US7023833B1 (en) * 1999-09-10 2006-04-04 Pulse-Link, Inc. Baseband wireless network for isochronous communication
US6633564B1 (en) * 1999-09-22 2003-10-14 Nortel Networks Limited Method and apparatus for inserting packets into a data stream
JP2001103424A (ja) * 1999-09-29 2001-04-13 Victor Co Of Japan Ltd 符号化ビットストリーム記録及び/又は再生装置、並びに記録媒体
JP4389365B2 (ja) * 1999-09-29 2009-12-24 ソニー株式会社 トランスポートストリーム記録装置および方法、トランスポートストリーム再生装置および方法、並びにプログラム記録媒体
EP1148727A1 (en) * 2000-04-05 2001-10-24 THOMSON multimedia Method and device for decoding a digital video stream in a digital video system using dummy header insertion
US6654389B1 (en) * 1999-11-23 2003-11-25 International Business Machines Corporation System and method for searching patterns in real-time over a shared media
JP4588201B2 (ja) * 1999-11-29 2010-11-24 パナソニック株式会社 無線通信システム
US7089485B2 (en) * 2000-02-03 2006-08-08 Agere Systems Inc. Simple link protocol providing low overhead coding for LAN serial and WDM solutions
US6795418B2 (en) * 2000-03-31 2004-09-21 Koninklijke Philips Electronics N.V. Wireless MAC protocol based on a hybrid combination of slot allocation, token passing, and polling for isochronous traffic
GB0007870D0 (en) * 2000-03-31 2000-05-17 Koninkl Philips Electronics Nv Methods and apparatus for making and replauing digital video recordings, and recordings made by such methods
US6845100B1 (en) * 2000-08-28 2005-01-18 Nokia Mobile Phones Ltd. Basic QoS mechanisms for wireless transmission of IP traffic
JP2002077818A (ja) * 2000-09-04 2002-03-15 Pioneer Electronic Corp 蓄積再生システム、トランスポートストリームの蓄積方法及びトランスポートストリームの再生方法
CA2434424C (en) * 2001-01-16 2012-03-06 Matsushita Electric Industrial Co., Ltd. Recording apparatus, method and medium
US20020154647A1 (en) * 2001-02-16 2002-10-24 Hanan Potash Frame handler for high-speed fiber optic communication interface
US8081865B2 (en) * 2001-03-29 2011-12-20 Panasonic Corporation AV data recording apparatus and method, recording media recorded by the same, AV data reproducing apparatus and method, and AV data recording and reproducing apparatus and method
JP4485125B2 (ja) * 2001-03-29 2010-06-16 パナソニック株式会社 Avデータ記録再生装置及び方法、当該avデータ記録再生装置又は方法で記録されたディスク
US7039056B2 (en) * 2001-08-02 2006-05-02 Lucent Technologies Inc. High quality audio and video over digital subscriber lines (DSLs)
US7215679B2 (en) * 2001-08-30 2007-05-08 Thomson Licensing Method, apparatus and data structure enabling multiple channel data stream transmission
US7339890B2 (en) * 2002-02-01 2008-03-04 Broadcom Corporation Scalable, high-resolution asynchronous transfer mode traffic shaper and method
JP2003264804A (ja) * 2002-03-12 2003-09-19 Hitachi Ltd データ配信システム、データ配信装置、デジタル受信機、データ配信方法
US7379462B2 (en) * 2003-04-01 2008-05-27 Texas Instruments Incorporated WLAN access scheduling control
PL214807B1 (pl) * 2003-04-14 2013-09-30 Adb Polska Sp Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych
WO2004112039A1 (en) * 2003-06-17 2004-12-23 Koninklijke Philips Electronics, N.V. Stream file format for dvd-multimedia home platform with stuffing bytes removal
US8213769B2 (en) * 2003-08-06 2012-07-03 Broadcom Corporation Frame indexing technique to improve personal video recording functionality and security of transmitted video
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
JP2005167338A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 映像音声再生装置
JP2006164378A (ja) * 2004-12-06 2006-06-22 Toshiba Corp 情報記録媒体、情報記録方法、情報再生方法、情報記録装置、情報再生装置

Also Published As

Publication number Publication date
DE10355345A1 (de) 2005-06-23
CN1622535B (zh) 2012-05-16
US20050122974A1 (en) 2005-06-09
JP4990493B2 (ja) 2012-08-01
KR101164670B1 (ko) 2012-07-11
JP2005158251A (ja) 2005-06-16
TWI345174B (en) 2011-07-11
CN1622535A (zh) 2005-06-01
TW200527274A (en) 2005-08-16
JP2012146391A (ja) 2012-08-02
US7664105B2 (en) 2010-02-16
EP1536429A1 (en) 2005-06-01
MY145511A (en) 2012-02-29

Similar Documents

Publication Publication Date Title
JP2012146391A (ja) データストリーム内の所定位置を記憶又は再配置するための方法及び装置
CA2420019C (en) System and method of processing mpeg streams for file index insertion
US8983267B2 (en) Recording medium, reproducing apparatus, and reproducing method
EP0725399B1 (en) Decoding and reverse playback of encoded signals
EP0757492A2 (en) Apparatus and method for encoding and decoding digital video data
US20100290759A1 (en) Method and apparatus to facilitate the efficient implementation of trick modes in a personal video recording system
JP2000224543A (ja) ディジタル記録再生装置
US6871007B1 (en) Signal processing on information files so as to obtain characteristic point information sequences
US8452163B2 (en) Method of storing a real time stream of information signals on a disc like record carrier
KR100324876B1 (ko) 동화상 기록 장치 및 동화상 재생 장치
JP2004282703A (ja) データ処理装置
JP4145103B2 (ja) 動画データの再生方法及び再生装置
JP2003339019A (ja) 記録再生装置および記録再生方法
JP2004221918A (ja) データ作成装置、データ再生装置
US6674909B1 (en) MPEG data processing apparatus comprising an arrangement for estimating an interval between particular picture data
JP4459425B2 (ja) Mpeg画像再生装置
HK1228624A1 (en) Recording medium, reproducing apparatus, and reproducing method
JP2001285800A (ja) データ信号記録再生装置およびデータ信号記録再生方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20041124

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20091124

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20041124

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110316

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20120409

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20120704

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20120704

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20150619

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20160616

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20170616

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20190716

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20190716

Start annual number: 8

End annual number: 8

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20220415

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载