KR20030011095A - Mp3용 트릭 플레이 - Google Patents

Mp3용 트릭 플레이 Download PDF

Info

Publication number
KR20030011095A
KR20030011095A KR1020027017293A KR20027017293A KR20030011095A KR 20030011095 A KR20030011095 A KR 20030011095A KR 1020027017293 A KR1020027017293 A KR 1020027017293A KR 20027017293 A KR20027017293 A KR 20027017293A KR 20030011095 A KR20030011095 A KR 20030011095A
Authority
KR
South Korea
Prior art keywords
stream
data
header
headers
frame
Prior art date
Application number
KR1020027017293A
Other languages
English (en)
Other versions
KR100904626B1 (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 KR20030011095A publication Critical patent/KR20030011095A/ko
Application granted granted Critical
Publication of KR100904626B1 publication Critical patent/KR100904626B1/ko

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/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
    • 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
    • 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/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/036Insert-editing

Abstract

트릭 플레이 및/또는 편집(14)은 원래의 데이터 스트림, 예컨대 MP3 데이터 스트림에 적용된다. MP3 스트림은 서로 산재되어 있는 신호 데이터(24a,24b,24c) 및 헤더들(21a-20d)을 포함한다. 각각의 헤더는 다음의 헤더에 대한 거리를 지정하며, 각각의 헤더는 신호 데이터의 프레임에 대응하고, 헤더는 헤더에 관련된 프레임에 대한 신호 데이터의 시작점을 나타내는 포인터(21a,21b,21c,21d)와 관련된다. 원래의 데이터 스트림을 트릭 플레이에 적용하기 전에, 원래 스트림과 동일한 유형의 중간 데이터 스트림으로 변경된다. 변경 중에 프레임들의 시작점들은 관련 헤더들에 관련되는 미리정해진 위치들로 이동되고, 헤더들은 프레임들이 헤더 사이에서 맞도록 헤더들 사이의 부가적인 공간을 생성하기 위해 변형된다.

Description

MP3용 트릭 플레이{Trick play for MP3}
배경 기술
MPEG-1 및 MPEG-2 레이어(Layer) Ⅲ(MP3) 포맷들(ISO/IEC 11172-3 및 ISO/IEC 13818-3)은 압축된 오디오 정보를 나타내기 위해 광범위하게 사용된다. 압축은 오디오 정보의 비트 레이트(bit rate), 즉 오디오 정보의 시간 구간을 나타내기 위해 필요한 비트들의 수를 감소시킨다. 일반적으로, MP3 포맷은 요구되는 비트 레이트에 의존하여 다양한 감소 레이트들(reduction rates)을 지지한다.
MP3 오디오 정보는 특정 구간들에서 헤더들을 포함하는 데이터 스트림 내에 수송된다. 가 헤더는 압축된 형태로 오디오 데이터의 샘플들의 미리정해진 수를 나타내는 프레임과 관련된다. 헤더는 비트 레이트 및 프레임 내의 데이터의 샘플 주파수와 같은, 프레임 내의 데이터에 대한 정보를 나타낸다.
연속적인 헤더들 간의 구간은 헤더 내 정보의 미리정해진 함수이다. MP3 호환가능 디코더들은 선행하는 헤더로부터 결정된 헤더-거리(header-distance)를 이용하여 각 헤더를 찾기 위해 인에이블(enable)된다.
하지만, 프레임을 나타내기 위해 필요한 비트들의 실제 수는 헤더들 간의 구간에서 이용가능한 공간으로부터 유도될 수 있다. 이는 MP3로 오디오 정보를 부호화하기 위해 필요한 정보 양이 프레임간에 변할 수 있기 때문이다.
이들 이탈에 대처하기 위해, MP3는 프레임들이 헤더들에 대해 가변 오프셋(variable offset)에서 시작하는 것을 허용한다. 따라서, 선행하는 프레임들에 의해 헤더들 간에 남겨진 공간은 다음 프레임의 데이터를 위해 사용될 수 있다. MP3는 각 헤더와 관련된 포인터들을 제공한다. 그 포인터는 헤더의 위치에 대해 헤더와 관련된 프레임의 데이터의 시작을 나타낸다. 결국, 데이터의 프레임은 선행하는 프레임에 의해 남겨진 공간에서 관련된 헤더에 선행하는 가변 위치에서 시작할 수 있다. 예외적으로, 포인터는 그 데이터가 프레임 직후에 시작하도록 0일 수 있다. 그러므로, 헤더의 위치에 관련되는 데이터의 시작 위치는 데이터 스트림에 의해 부호화되는 오디오 콘텐트에 의존한다.
이들 프레임을 디코드하기 위해, MP3 디코더들은 일단 포인터가 수신한 프레임 데이터를 디코더가 액세스할 수 있게 하는 버퍼 메모리 내의 헤더(앞의 프레임들의 상기 정보 및 헤더를 제외한, 512바이트들)에 선행하는 미리정해진 데이터 양을 최소로서 저장한다.
대응하는 프레임 헤더 및 다음 헤더간의 영역 외부에 프레임 데이터의 존재는 MP3의 트릭 플레이(빠른 전진 플레이 등등) 및/또는 편집과 같은 기능들의 효과적인 구현을 방해한다고 알려져 있다. 빠른 전진 기능에 대해, 예컨대 사람들은 헤더들의 선택된 쌍들 간의 데이터만이 저장되도록 프레임을 스킵(skip)하고 싶어한다. 하지만, 이는 선택된 헤더들의 포인터들이 저장되어 있지 않은 데이터를 포인트 백(point back)할 수 있으므로 디코딩하기에 불충분하다. 유사하게, 편집 중에 데이터를 삽입하기 위해서, 사람들은 단순히 그 헤더에 선행하는 데이터를 로딩하지 않고서는 임의의 헤더로부터 시작할 수 없다.
결국, 비교적 복잡한 디코더들이 트릭 플레이 및/또는 편집을 지지하기 위해 필요하다. 극단적으로, 이들 기능들을 수행하는 데이터를 압축해제하고 그 데이터를 다시 압축하는 것이 필요할 수 있으며, 이는 복잡성 및 품질의 면에서 매우 비효율적이다.
발명의 분야
본 발명은 트릭 플레이(trick play)(빠른 전진(fast forward) 등) 및/또는 압축된 정보, 특히 압축된 오디오 정보의 편집을 위한 설비들에 관한 것이다.
도 1은 MP3 디코딩 시스템을 보여주는 도면.
도 2는 MP3 데이터 스트림을 보여주는 도면.
도 3은 트릭 플레이 기능을 갖는 MP3 디코딩 시스템을 보여주는 도면.
도 4는 또 다른 MP3 데이터 스트림을 보여주는 도면.
도 5는 프로그램 스트림 내의 MP3 프레임들의 포함을 보여주는 도면.
도 6은 트릭 플레이 기능을 갖는 또 다른 MP3 디코딩 시스템을 보여주는 도면.
발명의 요약
그 중에서도, 본 발명의 목적은 간단한 조치들로 트릭 플레이 및/또는 편집을 제공하는 것이다.
본 발명은 서로 산재(intersperse)되어 있는 신호 데이터와 헤더들(headers)을 포함하는 스트림 유형의 데이터 스트림들을 처리하기 위한 신호 처리 장치로서, 각 헤더가 그 다음의 헤더에 대한 거리를 지정하고, 각 헤더가 신호 데이터의 프레임에 대응하고, 헤더가 그 헤더에 관련되는 그 프레임에 대한 신호 데이터의 시작점을 지시하는 포인터(pointer)와 관련되는, 신호 처리 장치에 있어서,
상기 스트림 유형의 원래 데이터 스트림을 수신하기 위한 입력과,
상기 스트림 유형의 중간 데이터 스트림을 처리하기 위한 트릭 플레이 및/또는 편집 장치와
입력에 이어지는 스트림 컨버터(stream converter)로서, 스트림 컨버터는 원래 데이터 스트림을 중간 데이터 스트림으로 변환시키고, 스크림 컨버터는 프레임들의 시작점들을 관련 헤더들에 적합한 미리정해진 위치들로 이동시키고, 프레임이 헤더들 사이에서 맞도록 헤더들 간에 부가적인 공간을 생성하기 위해 헤더들을 수정하는, 스트림 컨버터를 포함하는 신호 처리 장치를 제공한다.
그러므로, 표준 디코더(MP3 스트림의 경우에 MP3 디코더)로 압축될 수 있으며, 다른 프레임들에 의존하는 위치로부터 프레임에 대해 데이터를 요구하지 않고 트릭 플레이 및/또는 편집을 위해 구현될 수 있는 중간 데이터 스트림이 생성된다. 바람직하게는, 그 데이터는 헤더에 바로 이어진다. 그러므로, 헤더에 선행하는 데이터가 프레임에 트릭 플레이를 적용하기 위해 저장될 필요가 없다.
실시예에서, 헤더들은 프레임 데이터의 실제 비트 레이트를 변경하기 않고 그 헤더 내에 지정되는 비트 레이트를 변경함으로써 수정된다. MP3에서, 변형(modification)과 같은 스트림은 복잡성을 처리하는 최소치를 갖는 헤더들 사이에 요구되는 공간을 생성한다. 제 1 실시예에서, 모든 프레임들에 대한 헤더들의 비트 레이트는 최대 가능한 비트 레이트(MP3에 대해 320 kbit/sec)로 설정된다. 제 2 실시예에서, 헤더의 비트 레이트는 프레임 내의 신호 데이터 양에 의존하여, 그리고 헤더 내에 설정될 수 있으며 헤더들 간에 프레임 데이터를 저장하기에 충분한 공간을 생성하기 위해 충분한 최소 가능한 값으로 만들어진다.
본 발명의 실시예들에 따른 장치 및 방법의 여러 가지 이로운 양상들은 첨부된 도면들을 참조하여 보다 더 상세히 설명된다.
도 1은 종래의 MP3 디코딩 시스템을 보여준다. 본 발명은 예로서, MPEG-1 레이어 Ⅲ을 이용하여 설명된다. 하지만, 동일한 원리들은 MPEG-2 레이어 Ⅲ를 이용하며, 단지 몇몇 상수들은 다른 값들을 갖는다. 시스템은 스트림 디코더(16)를 제공하는 MP3 소스(10)를 포함한다. MP3 소스(10)는 예를 들어 저장된 MP3 데이터에 대한 저장 매체(도시되지 않음)와 저장 장치로부터 그 데이터를 판독하기 위한 판독 장치(read-out unit)(도시되지 않음)를 포함하고, 또 다른 예에서, MP3 소스(10)는 통신 채널(예컨대, 인터넷 또는 라디오 방송)에 대한 인터페이스와 수신된 MP3 스트림을 출력하기 위한 출력을 포함한다.
스트림 디코더(16)는 MP3 소스(10)에 결합된 입력을 갖는 버퍼 메모리(160), 헤더 디코더(162), 및 프레임 디코더(164)를 포함한다. 헤더 검출기는 버퍼 메모리(160)에 결합된 입력들을 갖는다. 프레임 디코더(164)는 헤더 디코더(162) 및 버퍼 메모리(160)에 결합된 입력들 및 디코드된 오디오를 위한 출력을 갖는다.
도 2는 MP3 데이터의 스트림의 예를 보여준다. 스트림은 다수의 헤더들(20a-d), 프레임들의 시작점들(22a-c)을 나타내는 그 다음의 백포인터들(backpointers: 21a-d)을 포함한다. 백포인터들(21a-d)은 백포인터들(21a-d)이 나타내는 시작점들(22a-c)에 백포인터들(22a-d)이 저장되는 스트림 내의 위치들로부터 포인트 백하는 화살표들(22a-d)에 의해서 도시된다.
각 헤더(20a-d)는 압축된 오디오 데이터의 프레임에 대응한다. 헤더(20a-d)에 이어지는 백포인터(21a-d)는 프레임 내의 데이터의 시작점(22a-d)을 나타낸다. 백포인터(21a-d)는 시작점(22a-c)이 그 백포인터(21a-d) 직후에 이어지는 경우에 0일 수 있다.
MP3 헤더의 포맷이 표 I에 나타내져 있다.
필드(Field) 비트들의 수
싱크워드(syncword) 12
ID 1
레이어(layer) 2
보호 비트(prtection bit) 1
비트레이트 색인(bitrate index) 4
샘플링 주파수 2
패딩 비트(padding bit) 1
사설 비트(private bit) 1
모드(mode) 2
모드 확장(mode extention) 2
저작권(copyright) 1
원본/사본(original/copy) 1
강조(emphasis) 2
표I MP3 헤더의 포맷
"싱크워드(syncword)"는 스트림 내의 헤더들(20a-d)의 식별을 용이하게 하는 특정의 비트 패턴이다. ID, 레이어, 사설 비트(private bit), 모드 확장(mode expansion), 저작권, 원본/카피 및 강조 필드들(emphasis fields)은 MP3에 특정한 것이며 본 발명과 무관하다. 보호 비트(protection bit)는 헤더가 16비트 CRT 워드(word)(Cyclic Redundancy Check; CRT 16 폴리노미얼(polynomial)응 이용하여 결정됨)에 이어지는 지를 신호한다. 선택적인 CRC 워드가 9비트 수이며, 얼마나 많은 (8비트)바이트들인지를 나타내는, 백포인터(21a-d)(또한 "main_data_begin"라 불림)에 이어진 후, 프레임(24a-c)의 시작 바이트는 백포인터(21a-d)(헤더 바이트들, CRC 워들 및 사이드(side)-정보를 계산하지 않음)의 위치로부터 되돌아간다.
헤더의 비트레이트 색인 필드(bitrate index field)는 가능한 비트레이트들의 표 내의 엔트리(entry)에 대한 포인터를 포함한다. 이용가능한 비트 레이트들 및 대응하는 비트 레이트 색인들은 표 Ia에 나타내져 있다.
비트_레이트_색인 비트레이트(kbit/s)
'0000' 없음
'0001' 32
'0010' 40
'0011' 48
'0100' 56
'0101' 64
'0110' 80
'0111' 96
'1000' 112
'1001' 128
'1010' 160
'1011' 192
'1100' 224
'1101' 256
'1110' 320
'1111' 금지
표 Ia, 비트 레이트 색인 값들 및 대응하는 비트 레이트들
샘플링 주파수 필드는 그 데이터에 대해 사용되는 샘플링 주파수를 나타낸다. 이용가능한 샘플링 주파수들은 표 Ib에 나타내져 있다.
샘플링_주파수 지정된 주파수(kHz)
'00' 44.1
'01' 48
'10' 32
'11' 보존
표 Ib, 샘플링 주파수 코드 및 대응하는 샘플링 주파수들
비트 레이트와 함께, 샘플링 주파수 및 패딩 비트(padding bit)는 헤더의 시작에서부터 그 다음 헤더의 시작까지의 거리 N을 결정한다. 원리에 있어, 1152 PCM 샘플들의 고정된 수는 프레임당 코드화된다. 샘플링 주파수는 샘플들의 이 수만큼 코드화되는 시간 구간의 존속기간(duration)을 결정된다. 비트 레이트로부터, 이러한 존속기간을 갖는 시간 구간을 부호화하기 위해 평균적으로 얼마나 많은 비트들이 필요한지가 이어진다. 이는 프레임당 비트들의 평균 수이다. 헤더들간의 거리는 비트들의 이 수에 대응하며, 정수의 바이트들(8비트들의 단위들)을 제공하기 위해 위쪽으로 둥글게된다. 즉, 바이트들(8비트들의 단위들)의 거리는 R 값으로부터 결정된다.
R = 144*비트_레이트/샘플링_주파수
(수 144는 바이트당 비트들의 수인 수 8로 나눠지는 프레임당 1152 PCM 샘플들로부터 얻어진다.) R이 정수이면, 헤더들간의 거리는 R이다. R이 정수가 아니면, 헤더들의 몇몇 쌍들간의 거리는 N(R 아래의 다음으로 낮은 정수)이고 헤더들간의 다른 쌍들 사이에서는 N+1이다. 패딩 비트는 이들 두 개의 거리들 중에서 어느 것이 사용되는 지를 나타낸다.
동작시에, MP3 소스(10)는 도 2에 도시되는 바와 같이 MP3 스트림을 산출한다. 이 스트림으로부터의 정보는 스트림 디코더(10)의 버퍼 메모리(160)에 저장된다. 헤더 검출기(162)는 초기에 스트림의 시작 시에 또는 헤더의 싱크워드를 검출함으로써 헤더를 위치시킨다. 다음으로, 헤더 검출기(162)는 비트레이트 색인 필드, 헤더의 샘플링 주파수 필드 및 패딩 비트로부터 스트림의 후속 헤더에 대한 거리를 계산하기 위해 현재 헤더를 매 시간 사용한다. 이 거리로부터, 헤더 검출기(162)는 다음 헤더가 저장되는 버퍼 메모리(160) 내의 위치의 어드레스를 계산하고 다음 헤더 등을 판독한다. 헤더 검출기(162)는 유효한 싱크워드가 계산된 위치에 저장되는지의 여부를 검사한다, 만약 그렇지 않다면, 에러가 발생하고 헤더 검출기는 디코딩이 진행되기 전에 헤더를 위치시키기 위해 에러 조건을 처리해야한다.
헤더 검출기(162)는 헤더가 프레임 디코더(164)에 저장되는 위치의 어드레스를 전송한다. 프레임 디코더(164)는 헤더와 관련되는 백포인터가 저장되어 있는 어드레스를 결정하기 위해 이 어드레스를 사용하고, 백포인터를 검색하고, 헤더와 관련되는 프레임의 시작점이 저장되어 있는 어드레스를 계산하기 위해 백포인터를 사용한다. 프레임 디코더(164)는 프레임으로부터 데이터를 검색하기 위해 이 어드레스를 사용하고, 그로부터 프레임 디코더(164)는 오디오 신호를 디코드한다.
도 3은 본 발명의 실시예에 따른 MP3 오디오 디코딩 시스템을 보여준다. MP3 소스(10) 및 MP3 스트림 디코더(16)에 부가하여, 이 시스템은 소스(10)와 디코더(16) 사이에 직렬로 삽입되어 있는 컨버터(12)와 트릭 플레이 및/또는 편집 장치(14)를 포함한다.
동작시에, 트릭 플레이 및/또는 편집 장치(14)는 컨버터(12)로부터 중간 MP3 스트림을 수신하고 MP3 스트림 디코더(16)에 의해 디코딩하기 위한 "트릭된(tricked)" MP3 스트림을 형성한다. 트릭 플레이 및/또는 편집 장치(14)는 중간 스트림의 선택된 프레임을 액세스하여, 트릭된 MP3 스트림의 형성을 위해 선택된 프레임들의 콘텐트를 사용한다. 트릭 플레이의 예는 오디오 모니터 기능(audio monitor function)을 갖는 빠른 전진 모드를 얻기 위해서 중간 스트림으로부터 선택된 프레임들을 스킵한다. 또 다른 예는 느린 전진 모드를 제공하기 위해서 트릭된 스트림의 또 다른 연속적인 프레임을 형성하기 위해 매시간 반복해서 몇몇 프레임들을 액세스한다.
컨버터(12)는 MP3 소스(10)로부터 원래 MP3 스트림을 중간 MP3 스트림으로 전송한다. 컨버터(12)는 트릭 플레이 및/또는 편집 장치(14)가 프레임을 액세스하기 위해 선택된 프레임에 대한 헤더에 관련되는 중간 스트림의 미리정해진 제한된 일부만을 액세스하기 위해 필요로 하는 방식으로 이것을 행한다. 바람직하게는, 선택된 프레임에 대한 헤더에 이어지는 스트림의 일부만이 액세스되는데 필요하다.
컨버터(12)는 버퍼 메모리(120) 및 미세제어기(122)를 포함한다. 미세제어기(122)는 버퍼 메모리(120)에 결합된 입력 및 트릭 플레이 장치(14)에 결합된 출력을 갖는다. 트릭 플레이 장치의 출력은 스트림 디코더(16)의 입력에 결합된다.
동작시에, 컨버터(12)는 MP3 데이터 스트림을 연속적인 헤더들간의 거리가 증가되고, 백포인터들이 3이 되도록 프레임 데이터가 이동된 중간 MP3 데이터 스트림으로 변환한다. 스트림 소스(10)에 도달하는 데이터는 버퍼 메모리(120)의 위치들에 기록되고, 미세제어기(122)는 새롭게 생성된 헤더 정보 및 버퍼 메모리(120)로부터 복제된 정보를 이용하여 중간 스트림을 생성한다.
도 4는 컨버터(12)에 의해 출력된 MP3 데이터 스트림을 보여준다. 이 스트림은 모두가 관련된 백포인터(41a-d) 직후에 이어지는 프레임들의 시작점들을 나타내는 백포인터들(41a-d)들 앞의 헤더들(40a-d)을 포함한다. 이어서, 프레임의 신호 데이터에는 46a-d가 채워진다. 표Ⅱ는 도 4의 스트림을 생성하기 위해 컨버터(12) 내의 미세제어기(122)를 위한 프로그램의 동작을 설명하는 의사코드(pseudo code)를 보여준다. 이 코드는 설명의 목적만을 위한 것이며, 실제로는 어떤 실제 코드가많은 세부사항들에 있어 다를 수 있다.
1WriteNewHeader(HIn)
2WriteBackPointer(0)
3F=Hin-Buffer[Hin+Offset]
4N=CopyFrame(F)
5Stuff(NewDistance-N)
6Hin=FindHeader(Hin)
7Repeat from 1
표Ⅱ, 컨버터(12) 동작의 의사 코드
표Ⅱ에서, 포인터 Hin은 MP3 소스(10)로부터의 현재 헤더가 저장되는 버퍼 메모리(120) 내의 위치를 나타낸다. 포인터 F는 현재 헤더와 관련된 프레임의 제 1 비트가 저장되는 버퍼 메모리(122) 내의 위치를 나타낸다. F는 Offset 값에 의해 주어지는 오프셋 후의 Hin에 의해 나타내어진 위치에 이어지는 위치에서 버퍼 메모리(120)의 콘텐트를 뺌으로써 결정된다(실제로, F는 헤더들에 의해 취해진 공간에 대해 정정될 것이다). N은 프레임 내의 비트들의 수이다.
의사 프로그램의 제 1 단계에서, 새로운 헤더는 제 1 단계(1)의 중간 스트림에 기록된다. 새로운 헤더에서, 비트레이트 색인 필드는 원래 스트림의 헤더들에 대해서 수정되었다. 바람직하게는, 비트레이트는 초당 320킬로바이트(Kilobit)의 최대 가능한 값으로 설정된다. 중간 스트림의 헤더들 내의 패딩 비트는 데이터에 대해 요구되는 바와 같이 설정될 수 있으며, 또는 연속적인 헤더들 내의 패딩 비트를 설정하고 제거(clearing)하는 어떤 패턴이 사용될 수 있다. 비트레이트 및 패딩 비트와는 다른 필드들이 원래 스트림으로부터의 헤더로부터 중간 스트림의 헤더로 실질적으로 복제될 수 있다.
헤더에 이어지는, 0의 백포인트 값은 단계 2에서 중간 스트림에 기록된다.
제 3단계(3)에서, 원래 스트림의 시작 프레임 데이터의 버퍼 메모리(120) 내의 위치 F는 원래 스트림으로부터 저장되는 데이터의 현재 헤더로부터 Offset에 위치되는 9비트 백포인트 값으로부터 결정된다. 제 4단계(4)에서, 프레임 데이터는 중간 스트림에 복제된다. 제 4 단계는 복제되는 데이터의 양 N을 복귀시킨다. 제 5 단계에서, 스터핑 정보(stuffing information)는 중간 스트림에 출력된다. 스터핑의 양은 새로운 헤더 내에 설정된 파라미터들에 이어지는 프레임들간의 새로운 거리 사이의 차 및 복제된 프레임 데이터 양(N)을 보충한다.
제 6 단계(6)에서, 어드레스는 원래 스트림으로부터 다음의 헤더가 저장되는 버퍼 메모리(120) 내의 위치에서 계산된다. 이 어드레스는 (HIn에 의해 나타내어진) 현재 헤더의 콘텐트에 이어진다. 포인터 HIn의 값은 새롭게 계산된 위치에 대해 갱신된다. 다음으로, 의사 코드가 제 1 단계로부터 반복된다.
그러므로, 프레임 데이터가 그 프레임 데이터에 대응하는 헤더에 항상 이어지는 중간 스트림이 형성된다. 본 발명에서 벗어남이 없이, 실제 구현은 많은 세부사항들에 있어서 표 Ⅱ와는 다를 수 있음을 이해해할 것이다. 예를 들어, 중간 스트림의 헤더들 내의 비트 레이트는 프레임 데이터(최소의 가능한 비트 레이트 값 대신)를 포함하기에 충분히 큰 연속적인 헤더들간의 구간에서 얻어지는 최소의 가능한 비트 레이트(표Ia로부터)로 설정될 수 있다. 이는 중간 비트 레이트의 저장 또는 전송을 위한 공간을 절감한다.
또 다른 예에서, 메모리의 개별 영역들은 헤더들 및 프레임 데이터를 위해 보존될 수 있으며, 스트림 내의 다음 헤더의 위치의 계산된 값은 헤더가 프레임 데이터를 위한 영역에 저장되지 않는 것을 보장하기 위해 사용된다. 버퍼 메모리의 사용은 순환될 수 있고, 일단 원래 스트림으로부터의 데이터가 미리정해진 다수의 위치들에 기록되면 메모리(120) 내의 시작점으로부터의 위치들은 재사용된다.
바람직하게는, 미세제어기(122)는 CRC 검사가 컨버터(12)로부터 하류(downstream)로 실행되도록 중간 스트림에 대해 새롭게 생성된 헤더 내의 보호 비트를 설정한다. 하지만, 필요하다면, 보호 비트는 CRC 검사를 허용하기 위해 설정될 수 있다. 이 경우에서, 미세제어기(122)는 중간 스트림 내의 데이터로부터 새로운 CRC 값을 계산하고 이 새로운 CRC 값을 중간 스트림에 놓는다.
실제 어플리케이션들에서, MP3 데이터 스트림의 데이터 프레임들은 프로그램 스트림 또는 전송 스트림 내에 포함될 수 있다. 도 5는 프로그램 스트림(PS)에 MP3 데이터 스트림(또한 MP3 기본 스트림(elementary stream)이라고 부름) ES의 데이터 프레임을 포함시키는 예를 보여준다. MP3 기본 스트림(ES)은 도 2에 도시된 데이터 스트림에 대응한다. 오디오 데이터 프레임들은 별논으로, 프로그램 스트림(PS)은 또한 정지 이미지들, 비디오, 텍스트 리릭들(text lyrics), 또는 다른 부가적인 정보를 포함할 수 있다. 명확성을 위해서, 도 5의 프로그램 스트림(PS)은 MP3 기초 스트림(ES)의 프레임들만을 포함한다. 프로그램 스트림의 기본적인 장치는 예컨대2kBytes의 섹터이다. 프로그램 스트림(PS)의 제 1 섹터는 예컨대 32바이트들의 섹터 헤더 H와 예컨대 2016바이트들의 페이로드(playload)를 포함한다. 페이로드는 MP3 기초 스트림(ES)의 다수의 데이터 프레임들 F1...F5을 포함한다. MP3 프레임(128kbps에서)은 417 또는 418바이트들의 길이이다. 그것은 페이로드가 2016/418=4,82 프레임들을 포함할 수 있다는 것을 의미한다. 그러므로, 프레임 F5의 부분은 다음 섹터에 포함된다. 다른 비트레이트들에 대해, 섹터 내의 프레임들의 수는 다를 수 있다.
각각의 섹터 헤더 H는 섹터의 유형에 관한 정보(오디오, 정지 이미지들, 비디오 또는 텍스트 리릭들)를 포함할 수 있다. 프로그램 스트림에서, 섹터가 MP3 오디오 정보를 포함하는 경우에, 섹터 헤더 H는 그 섹터에 포함되는 제 1 MP3 프레임의 시간 스탬프(time stamp)를 포함한다.
도 6은 프로그램 스트림들을 조절하기에 적합한 트릭 플레이 설비를 가지는 MP3 디코딩 시스템을 보여준다. 디코딩 시스템은 디멀티플렉서(demultiplexer:11)를 공급하는 프로그램 스트림 소스(100)를 포함한다. 디멀티플렉서는 프로그램 스트림(PS)으로부터 오디오 정보를 판독하기 위해 배치되고, 프로그램 스트림(PS)의 구조는 디멀티플렉서로 알려져 있다. 디멀티플렉서(11)는 또한 프로그램 스트림 내부의 MP3 시간 스탬프에 대해 검색하기 위해 배치된다. 디멀티플렉서는 섹터 경계들 상에서 점프(jump)할 수 있다.
정상 플레이 시에, 디멀티플렉서에서 얻어져서 디코더에 공급되는 MP3 스트림은 상술한 바와 같이 컨버터(12) 내에서 변환된다. 트릭 플레이(예컨대, 빠른 전진(Fast Forward) 또는 빠른 리버스(Fast Reverse)) 명령이 주어질 때, 현재 프레임은 바람직하게 종료되어야 하는 것으로, 즉 모든 데이터는 버퍼(120)로부터 판독되어야 한다. 그 후, 디멀티플렉서(11)는 M 밀리초(ms) 전진 또는 후진인 프로그램 스트림(PS) 내의 섹터로 점프하기 위해 사용된다. 이를 위해서, 점프 사용은 섹터 헤더 내의 시간 스탬프들로 만들어 질 수 있다. 이 데이터가 현재 섹터 내에 존재하지 않는 경우에 그 위치로부터, 시간적으로 1 섹터 더 뒤가 제 1 MP3 프레임에 대한 주(main) 데이터를 찾을 수 있도록 판독된다. 그후에 그 섹터 내의 제 1 프레임 헤더가 검색되고 관련된 프레임이 중간 스트림 내의 프레임에 대해 컨버터(12)에서 변환된다. 다수의 N 프레임들(제 1 프레임을 포함)은 디코드되고 다시 재생된다. 바람직하게는, 모든 이들 프레임들이 중간 스트림으로 변환된다. 빠른(전진 또는 리버스) 플레이 속도는 정상 플레이 중일 때보다 대략 M/(N*밀리초의 프레임길이) 시간 빠르다. 44.1kHz의 샘플링 주파수를 이용하여 설정하는 인코더(encoder)에 대해, 프레임 길이는 26.12ms이다.
상술한 실시예들은 본 발명을 제한하기보다는 예시하는 것이며, 기술분야의 숙련자들은 첨부된 청구범위의 범위에서 벗어나지 않고 많은 대안의 실시예들을 디자인할 수 있음을 주지해야 한다. 청구 범위에서, 괄호사이의 임의의 참조번호들은 청구범위를 제한하는 것으로서 구성될 것이 아니다. 단어 '포함하는'은 청구 범위에 열거된 것들과는 다는 요소들 또는 단계들의 존재를 배제하는 것이 아니다. 본 발명은 여러 개의 개별적인 요소들을 포함하는 하드웨어 및 적합하게 프로그램된 컴퓨터로써 구현될 수 있다. 여러 개의 수단들을 열거하는 장치 청구항에서, 이들수단들 중 여러 개가 하나 및 하드웨어의 동일한 아이템에 의해 구체화될 수 있다. 어떤 조치들이 서로 다른 종속 청구항들에서 재인용된다는 단순한 사실은 이들 조치들의 조합이 이롭게 사용될 수 없다는 것을 나타내는 것이 아니다.

Claims (16)

  1. 서로 산재(intersperse)되어 있는 신호 데이터와 헤더들(headers)을 포함하는 스트림 유형의 데이터 스트림들을 처리하기 위한 신호 처리 장치로서, 각 헤더는 다음 헤더에 대한 거리를 지정하고, 각 헤더는 신호 데이터의 프레임에 대응하고, 상기 헤더는 상기 헤더에 대하여 그 프레임에 대한 상기 신호 데이터의 시작점을 지시하는 포인터(pointer)와 관련되는, 상기 신호 처리 장치에 있어서,
    상기 스트림 유형의 원래 데이터 스트림을 수신하기 위한 입력과,
    상기 입력에 이어지는 스트림 컨버터(stream converter)로서, 상기 스크림 컨버터는 상기 원래 데이터 스트림을 상기 스트림 유형의 중간 데이터 스트림으로 변환시키고, 상기 스크림 컨버터는 상기 프레임들의 시작점들을 관련 헤더들에 미리정해진 위치들로 이동시키고, 상기 프레임이 헤더들 사이에서 맞도록 상기 헤더들 간에 부가적인 공간을 생성하기 위해 상기 헤더들을 수정하는, 상기 스트림 컨버터를 포함하는, 신호 처리 장치.
  2. 제 1항에 있어서, 상기 중간 데이터 스트림을 처리하기 위한 상기 스트림 컨버터의 출력에 결합되는 트랙 플레이(trick play) 및/또는 편집 장치(editing unite)를 포함하는, 신호 처리 장치.
  3. 제 1항에 있어서, 상기 미리정해진 위치는 선행 프레임과 관련되는 데이터가상기 중간 스트림 내의 상기 미지정해진 위치와 상기 헤더 사이에서 발생하지 않도록 상기 헤더에 이어지는, 신호 처리 장치.
  4. 제 1항에 있어서, 상기 스트림 컨버터는 상기 신호 데이터의 실제 비트를 수정하지 않고, 상기 원래 스트림의 헤더들 내에 지정되는 비트 레이트에 비하여 상기 중간 스트림의 헤더들 내에 지정되는 상기 비트 레이트를 조절함으로써 상기 헤더들을 수정하기 위해 배치되는, 신호 처리 장치.
  5. 제 4항에 있어서, 상기 스트림 컨버터는 상기 중간 스트림의 헤더들 내에 지정되는 상기 비트 레이트를 최대 설정가능한 비트 레이트 값으로 수정하기 위해 배치되는, 신호 처리 장치.
  6. 제 4항에 있어서, 상기 스트림 컨버터는 상기 중간 스트림의 헤더들 내에 지정되는 상기 비트 레이트를 신호 데이터 의존 비트 레이트들로 수정하기 위해 배치되고, 각 헤더의 각 비트 레이트는 그 헤더와 관련되는 상기 프레임의 실제 비트 레이트보다 높은 최소 설정가능한 값으로 수정되는, 신호 처리 장치.
  7. 제 1항에 있어서, 상기 스트림 유형은 데이터 스트림의 MP3 유형인, 신호 처리 장치.
  8. 제 1항에 있어서, 상기 데이터 스트림들은 프로그램 스트림 내에 포함되어 있고, 주어진 프로그램 스트림은 여러 개의 섹터들(sectors)을 포함하고, 각 섹터는 섹터 헤더 및 복수의 상기 데이터 프레임들을 포함하고,
    상기 주어진 프로그램 스트림 내의 전진들 또는 후진들의 여러 개의 섹터들의 위치로 점핑(jumping)시키고, 그 위치와 관련되는 현재 섹터로부터 상기 데이터 프레임을 판독하고, 상기 현재 섹터의 데이터 프레임을 상기 스트림 컨버터에 제공하는 수단(11)을 더 포함하는 신호 처리 장치.
  9. 제 8항에 있어서, 여러 개의 섹터 전진들 또는 후진들의 상기 위치로부터 시간적으로 뒤인 1 섹터가 이 데이터가 현재 섹터에 존재하지 않는 경우에 상기 현대 섹터의 제 1 데이터 프레임에 대한 주 데이터(main data)를 찾을 수 있도록 판독되는, 신호 처리 장치.
  10. 서로 산재되어 있는 신호 데이터와 헤더들을 포함하는 스트림 유형의 원래 데이터 스트림으로부터 신호 데이터에 대한 트릭 플레이 및/또는 편집을 적용하는 방법으로서, 각 헤더가 그 다음의 헤더에 대한 거리를 지정하고, 각 헤더가 신호 데이터의 프레임에 대응하고, 상기 헤더가 상기 헤더에 대하여 그 프레임에 대한 상기 신호 데이터의 시작점을 지시하는 포인터(pointer)와 관련되는, 상기 트릭 플레이 및/또는 편집 적용 방법에 있어서,
    상기 원래 데이터 스트림을 상기 원래 스트림과 동일한 유형의 중간 데이터스트림으로 변환하는 단계로서, 상기 변환 단계는 상기 프레임들의 시작점들을 관련된 헤더들에 미리정해진 위치들로 이동시키는 단계와 상기 프레임들이 헤더들 사이에서 맞도록 상기 헤더들 간에 부가적인 공간을 생성하기 위해 상기 헤더들을 수정하는 단계를 포함하는, 상기 변환 단계와,
    상기 중간 데이터 스트림에 대한 트릭 플레이 및/또는 편집을 적용하는 단계를 포함하는, 트릭 플레이 및/또는 편집 적용 방법.
  11. 제 10항에 있어서, 상기 헤더들은 상기 신호 데이터의 실제 비트 레이트를 수정하지 않고, 상기 원래 스트림의 헤더들 내에 지정되는 상기 비트 레이트와 비교하여 상기 중간 스트림의 헤더들 내에 지정되는 비트 레이트를 조절함으로써 수정되는, 트릭 플레이 및/또는 편집 적용 방법.
  12. 제 11항에 있어서, 상기 중간 스트림의 헤더들 내에 지정되는 상기 비트 레이트는 최대 설정가능한 비트 레이트 값으로 수정되는, 트릭 플레이 및/또는 편집 적용 방법.
  13. 제 12항에 있어서, 상기 중간 스트림의 헤더들 내에 지정되는 상기 비트 레이트는 신호 데이터 의존 비트 레이트들로 수정되고, 각 헤더의 각 비트 레이트는 그 헤더와 관련되는 상기 프레임의 실제 비트 레이트보다 높은 최소 설정가능한 값으로 수정되는, 트릭 플레이 및/또는 편집 적용 방법.
  14. 제 10항에 있어서, 상기 스트림 유형은 데이터 스트림의 MP3 유형인, 트릭 플레이 및/또는 편집 적용 방법.
  15. 제 10항에 있어서, 상기 데이터 스트림들은 프로그램 스트림들 내에 포함되고, 주어진 프로그램 스트림은 여러 개의 섹터들을 포함하고, 각 섹터는 섹터 헤더 및 복수의 상기 데이터 프레임들을 포함하며,
    상기 방법은,
    상기 주어진 프로그램 스트림 내의 전진들 또는 후진들의 여러 개의 섹터들의 위치로 점핑시키는 단계와,
    그 위치와 관련되는 현재 섹터로부터 상기 데이터 프레임들을 판독하는 단계와,
    상기 섹터 내의 상기 데이터 프레임들을 상기 중간 스트림으로 변환하는 단계를 더 포함하는, 트릭 플레이 및/또는 편집 적용 방법.
  16. 제 15항에 있어서, 전진들 또는 후진들의 여러 개의 섹터들의 상기 위치로부터 시간적으로 뒤인 1 섹터가 이 데이터가 상기 현재 섹터에 존재하는 경우에 상기 현재 프레임의 제 1 데이터 프레임에 대한 주 데이터를 찾을 수 있도록 판독되는, 트릭 플레이 및/또는 편집 적용 방법.
KR1020027017293A 2001-04-20 2002-04-11 Mp3용 트릭 플레이 KR100904626B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP01201439.5 2001-04-20
EP01201439 2001-04-20
EP02075518.7 2002-02-08
EP02075518 2002-02-08
PCT/IB2002/001316 WO2002086894A1 (en) 2001-04-20 2002-04-11 Trick play for mp3

Publications (2)

Publication Number Publication Date
KR20030011095A true KR20030011095A (ko) 2003-02-06
KR100904626B1 KR100904626B1 (ko) 2009-06-25

Family

ID=26076881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027017293A KR100904626B1 (ko) 2001-04-20 2002-04-11 Mp3용 트릭 플레이

Country Status (11)

Country Link
US (1) US7107111B2 (ko)
EP (1) EP1384230A1 (ko)
JP (1) JP2004524776A (ko)
KR (1) KR100904626B1 (ko)
CN (1) CN1463441A (ko)
AR (1) AR033247A1 (ko)
BR (1) BR0205095A (ko)
MY (1) MY134119A (ko)
RU (1) RU2287864C2 (ko)
TW (1) TWI225993B (ko)
WO (1) WO2002086894A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1420401A1 (en) * 2002-11-14 2004-05-19 Deutsche Thomson-Brandt Gmbh Method and apparatus for converting a compressed audio data stream with fixed frame length including a bit reservoir feature into a different-format data stream
JP2004341430A (ja) * 2003-05-19 2004-12-02 Sony Corp 再生装置および再生方法、記録媒体、並びにプログラム
TWI236232B (en) * 2004-07-28 2005-07-11 Via Tech Inc Method and apparatus for bit stream decoding in MP3 decoder
DE10339498B4 (de) * 2003-07-21 2006-04-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiodateiformatumwandlung
MXPA06000750A (es) 2003-07-21 2006-03-30 Fraunhofer Ges Forschung Conversion de formato de archivo de audio.
WO2005041190A1 (en) * 2003-10-24 2005-05-06 Koninklijke Philips Electronics N.V. Forward and backward reproduction of a signal from stream data
TWI263923B (en) * 2004-05-11 2006-10-11 Ali Corp Audio fast-forward playing method
KR100612846B1 (ko) * 2004-05-12 2006-08-14 삼성전자주식회사 오디오 재생기에 있어서 충격보호기능을 위한 오디오부호화 방법 및 장치
CN1961371A (zh) * 2004-05-31 2007-05-09 松下电器产业株式会社 音频再现设备
US20070036228A1 (en) * 2005-08-12 2007-02-15 Via Technologies Inc. Method and apparatus for audio encoding and decoding
JP2007094234A (ja) * 2005-09-30 2007-04-12 Sony Corp データ記録再生装置、データ記録再生方法及びそのプログラム
TW200741537A (en) * 2006-04-26 2007-11-01 Quanta Comp Inc Method and apparatus for managing input data buffer of MP3 decoder
US8326609B2 (en) * 2006-06-29 2012-12-04 Lg Electronics Inc. Method and apparatus for an audio signal processing
US9083994B2 (en) * 2006-09-26 2015-07-14 Qualcomm Incorporated Method and system for error robust audio playback time stamp reporting
KR101369426B1 (ko) * 2007-09-18 2014-03-04 엘지전자 주식회사 엠피쓰리 파일의 엠펙포 파일로의 변환방법 및 장치 및그를 이용한 엠펙포 멀티미디어 파일 실행방법 및 그 장치
JP4591594B2 (ja) * 2008-11-21 2010-12-01 ソニー株式会社 オーディオ信号再生装置及び方法、並びにプログラム
JP2010276992A (ja) * 2009-05-29 2010-12-09 Sanyo Electric Co Ltd デジタルデータ処理装置
TWI384459B (zh) * 2009-07-22 2013-02-01 Mstar Semiconductor Inc 音框檔頭之自動偵測方法
US8073995B2 (en) 2009-10-19 2011-12-06 Research In Motion Limited Efficient low-latency buffer
JP6904255B2 (ja) * 2015-10-19 2021-07-14 ソニーグループ株式会社 情報処理システム及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502571A (en) * 1992-11-18 1996-03-26 U.S. Philips Corporation Device for processing digital signals first coded by means of variable length coding and device for inversely processing signals thus processed
US5596564A (en) 1993-10-08 1997-01-21 Matsushita Electric Industrial Co., Ltd. Information recording medium and apparatus and method for recording and reproducing information
JPH07221716A (ja) * 1994-01-31 1995-08-18 Sony Corp 情報信号伝送方法及び装置
JP3645027B2 (ja) 1995-09-20 2005-05-11 松下電器産業株式会社 可変長データ送受信装置
US6721710B1 (en) * 1999-12-13 2004-04-13 Texas Instruments Incorporated Method and apparatus for audible fast-forward or reverse of compressed audio content
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell

Also Published As

Publication number Publication date
EP1384230A1 (en) 2004-01-28
RU2287864C2 (ru) 2006-11-20
US7107111B2 (en) 2006-09-12
US20030009246A1 (en) 2003-01-09
BR0205095A (pt) 2003-03-25
MY134119A (en) 2007-11-30
WO2002086894A1 (en) 2002-10-31
AR033247A1 (es) 2003-12-10
RU2003133743A (ru) 2005-02-27
TWI225993B (en) 2005-01-01
KR100904626B1 (ko) 2009-06-25
JP2004524776A (ja) 2004-08-12
CN1463441A (zh) 2003-12-24

Similar Documents

Publication Publication Date Title
KR100904626B1 (ko) Mp3용 트릭 플레이
US7657428B2 (en) System and method for seamless switching of compressed audio streams
EP2289245B1 (en) Method and apparatus for generating or cutting or changing a frame based bit stream format file including at least one header section, and a corresponding data structure
AU2004292190B2 (en) Frame based audio transmission/storage with overlap to facilitate smooth crossfading
KR100762211B1 (ko) 제 1 디지털 정보신호를 전송매체를 통해 전송하기 위해제 2 디지털 정보신호 내부에 삽입하는 장치 및 방법
US7149159B2 (en) Method and apparatus for editing data streams
RU2219655C2 (ru) Устройство и способ для передачи цифрового информационного сигнала, носитель записи и устройство для приема сигнала
JPH08293157A (ja) 可変フレーム長高能率符号化データの記録再生方法
US7420993B2 (en) Variable length code multiplexer and variable length code demultiplexer
JP4862136B2 (ja) 音声信号処理装置
JPH09294077A (ja) 圧縮音声データ処理方法及びデータストリーム再生方法とそれらの装置

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: 20120611

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130607

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee