KR100752874B1 - 오디오 프레임의 복호 제어 방법 - Google Patents

오디오 프레임의 복호 제어 방법 Download PDF

Info

Publication number
KR100752874B1
KR100752874B1 KR1020050027762A KR20050027762A KR100752874B1 KR 100752874 B1 KR100752874 B1 KR 100752874B1 KR 1020050027762 A KR1020050027762 A KR 1020050027762A KR 20050027762 A KR20050027762 A KR 20050027762A KR 100752874 B1 KR100752874 B1 KR 100752874B1
Authority
KR
South Korea
Prior art keywords
stream
decoding
sampling frequency
header
audio
Prior art date
Application number
KR1020050027762A
Other languages
English (en)
Other versions
KR20060105931A (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 엘지전자 주식회사
Priority to KR1020050027762A priority Critical patent/KR100752874B1/ko
Publication of KR20060105931A publication Critical patent/KR20060105931A/ko
Application granted granted Critical
Publication of KR100752874B1 publication Critical patent/KR100752874B1/ko

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B2/00Friction-grip releasable fastenings
    • F16B2/02Clamps, i.e. with gripping action effected by positive means other than the inherent resistance to deformation of the material of the fastening
    • F16B2/14Clamps, i.e. with gripping action effected by positive means other than the inherent resistance to deformation of the material of the fastening using wedges
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B2/00Friction-grip releasable fastenings
    • F16B2/02Clamps, i.e. with gripping action effected by positive means other than the inherent resistance to deformation of the material of the fastening
    • F16B2/06Clamps, i.e. with gripping action effected by positive means other than the inherent resistance to deformation of the material of the fastening external, i.e. with contracting action
    • F16B2/08Clamps, i.e. with gripping action effected by positive means other than the inherent resistance to deformation of the material of the fastening external, i.e. with contracting action using bands
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16BDEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
    • F16B2/00Friction-grip releasable fastenings
    • F16B2/20Clips, i.e. with gripping action effected solely by the inherent resistance to deformation of the material of the fastening
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L3/00Supports for pipes, cables or protective tubing, e.g. hangers, holders, clamps, cleats, clips, brackets
    • F16L3/08Supports for pipes, cables or protective tubing, e.g. hangers, holders, clamps, cleats, clips, brackets substantially surrounding the pipe, cable or protective tubing
    • F16L3/12Supports for pipes, cables or protective tubing, e.g. hangers, holders, clamps, cleats, clips, brackets substantially surrounding the pipe, cable or protective tubing comprising a member substantially surrounding the pipe, cable or protective tubing
    • F16L3/137Supports for pipes, cables or protective tubing, e.g. hangers, holders, clamps, cleats, clips, brackets substantially surrounding the pipe, cable or protective tubing comprising a member substantially surrounding the pipe, cable or protective tubing and consisting of a flexible band
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02GINSTALLATION OF ELECTRIC CABLES OR LINES, OR OF COMBINED OPTICAL AND ELECTRIC CABLES OR LINES
    • H02G3/00Installations of electric cables or lines or protective tubing therefor in or on buildings, equivalent structures or vehicles
    • H02G3/30Installations of cables or lines on walls, floors or ceilings
    • H02G3/32Installations of cables or lines on walls, floors or ceilings using mounting clamps

Abstract

본 발명은 오디오 프레임(audio frame)에 있어서, 특히 로 스트림 포맷을 인식하고 그 인식된 로 스트림 포맷을 샘플링 주파수를 이용하여 복호화할 수 있도록 한 오디오 프레임의 복호 제어 방법을 제공함에 있다.
본 발명은 AAC 기반의 오디오 데이터 복호화 방법에 있어서, 오디오 스트림을 서치하는 단계; 상기 스트림 헤더 유무를 확인하는 단계; 상기 스트림 헤더가 검색되면 해당 포맷으로 복호화를 수행하는 단계; 상기 복호화 수행시, 복호화가 정상적으로 수행되지 않을 경우 다음 프레임의 시작 위치에서 복호화를 수행하는 수순을 일정 횟수 반복하며, 복호화가 정상적으로 이루어지지 않을 경우 로 스트림으로 인식하는 단계; 상기 로 스트림으로 인식되면 샘플링 주파수 정보를 이용하여 복호화를 수행하는 단계를 포함하는 것을 특징으로 한다.
AAC, ADIF, ADTS, 복호화, 로 스트림

Description

오디오 프레임의 복호 제어 방법{Decoding control method for audio frame}
도1은 ADIF 헤더 구조를 나타낸 도면.
도 2는 ADTS 헤더 구조를 나타낸 도면.
도 3은 본 발명 실시 예에 따른 오디오 프레임의 복호 제어 방법을 나타낸 플로우 챠트.
도 4는 ADIF 헤더를 가진 비트 스트림 구조를 나타낸 도면.
도 5는 ADTS 헤더를 가진 비트 스트림 구조를 나타낸 도면.
도 6은 1채널 AAC 비트 스트림 세그먼트 구조를 나타낸 도면
도 7은 2채널 AAC 비트 스트림 세그먼트 구조를 나타낸 도면.
도 8은 본 발명에 따른 오디오 스트림의 복호 제어 방법의 프로그램 예를 나타낸 도면.
본 발명은 오디오 프레임(audio frame)에 있어서, 특히 로 스트림 포맷을 인식하고 그 인식된 로 스트림 포맷을 샘플링 주파수를 이용하여 복호화할 수 있도록 한 오디오 프레임의 복호 제어 방법을 제공함에 있다.
CD(Compact Disk)를 시초로하여 발전된 디지털 오디오는 대용량의 데이터를 효과적으로 전송 또는 저장하기 위해 오디오를 압축하여 저장 용량을 줄이는 기술이 개발되기 시작하였다. 1992년부터 MPEG(Moving Picture Experts Group) 주도하에 오디오 부호화 방법이 국제 표준화되기 시작하였으며, 이외에도 Dolby, Sony, AT&T 등에서도 자체적인 오디오 부호화 방법을 개발하였다.
현재 널리 사용되고 있는 MP3는 MPEG-1,2 오디오 계층(Audio layer) 3을 지칭한다. 일반적으로 MP3는 CD와 유사한 음질을 유지하면서 더 적은 데이터만을 가지도록 부호화하는 방법들이 개발되어 지고 있다. 이러한 방법들은 전송대역을 효율적으로 사용하여야 하는 무선 환경에서 우선적으로 채택되어 사용되고 있으며, 그 활용범위는 점점 넓어져 가고 있는 추세이다.
96kbps의 데이터로 MP3 128kbps와 유사한 음질을 제공하여, 무선 환경의 VOD(Video On Demand), AOD(Audio On Demand) 등에서 많이 사용되는 MPEG-2/4 AAC(Advanced Audio Coding)의 경우가 그 대표적인 예로서, 최근 발매되는 MP3 플레이어에 다중 오디오 복호화기로 AAC 또한 지원하는 제품들이 등장하고 있다.
AAC 파일은 인터페이스 포맷으로 ADIF(Audio Data Interchange Format)와 ADTS(Audio Data Transport Stream) 헤더를 가지고 있는데, 부호화기에 따라 이들 헤더를 가지지 않는 로 스트림(raw stream)의 형태의 AAC 파일의 생성도 가능하다. 일반적으로 파일의 맨 앞에 오는 헤더의 정보를 이용하여 복호화에 필요한 테이블이나 프레임 경계 등의 설정을 할 수 있기 때문에, 이들 정보를 찾지 못하면 복호 화가 불가능하게 되며, 특히 로 스트림의 경우는 헤더 정보가 없기 때문에 일반적인 복호화기에서는 재생이 불가능하게 된다.
MPEG의 오디오 부호화 방법 중의 하나인 AAC(Advanced Audio Coding)는 인터페이스 포맷(interface format)으로 도 1에 나타낸 바와 같이 ADIF(Audio Data Interchange Format) 구조이며, 도 2는 ADTS(Audio Data Transport Stream) 구조를 나타내고 있다.
AAC 오디오 콘텐츠 포맷의 경우, 하나의 오디오 콘텐츠는 미리 정해진 시간 단위에 의해 샘플링된 데이터와 오디오 정보를 나타내는 헤더로 구성되어 있으며, 이러한 하나의 블록을 프레임이라고 부르며, 복수개의 블록들 각각에 있는 데이터 블록(raw_data_block)에는 오디오 데이터가 존재하며, 각 데이터 블록(raw_data_block)에 대응하여 붙여진 헤더부 필드에 오디오 콘텐츠의 제반 정보들을 포함하고 있다.
도 1에 나타낸 바와 같이, ADIF 헤더는 헤더 아이디(adif_id), 저작권 관련 정보(copyright_id_present, copyright_id), 원본/복사본 여부에 관한 정보(original/copy), 홈 관련 정보(home), 비트 스트림 타입 정보(bit stream type), 비트 율 정보(bit rate), 구성정보(num_program_config_element), 버퍼 정보(adif_buffer_fullness), 프로그램 구성 정보(program_config_element) 등을 포함하고 있다. 도면에서 각 필드내에 병기된 수치는 해당 정보에 할당된 비트 수를 표현하고 있다.
한편, 도 2와 같이 ADTS 헤더는 각 프레임마다 그 값이 변하지 않는 불변헤 더(ADTS_fixed_header)와 각 프레임 고유의 수치를 저장하고 있는 가변헤더(ADTS_varialbe_header)로 나뉘어 진다. 불변헤더에는 싱크워드 정보(sync word), 아이디 정보(ID), 레이어 정보(layer), 프로텍션 정보(protection_absent), 프로파일 정보(profile), 샘플링 주파수 정보(sampling_freq._index), 프라이비트 정보(private_bit), 채널 구성정보(channel_config.), 원본/복사본 여부에 대한 정보(original/copy), 홈 정보(home) 등을 포함하고 있다. 가변헤더에는 저작권 관련 정보(copyright_id_bit, copyright_id_start), 프레임 길이 정보(frame_length), 버퍼 정보(adts_buffer_fullness), 프레임 내의 로 데이터 블록(raw data block)에 관련된 정보(num._of_raw_data_blocks_in_frame) 등을 포함하고 있다. ADTS 헤더의 종단에는 에러 체크 필드(ADTS_error_check)가 있고 에러 체크를 위한 정보(crc_chek)가 포함되고 있다.
AAC 인터페이스 포맷 중에서 ADTS는 매 프레임 마다 헤더(header)를 가지고 있기 때문에 오버헤드(overhead)가 큰 반면에 스트림 중간에 에러가 발생하더라도 다음 프레임을 해당 프레임 헤더를 이용해서 찾을 수 있기 때문에 계속해서 디코딩(decoding)을 수행할 수 있는 장점을 가지고 있다. 그렇지만 ADIF는 파일의 선두에만 헤더를 가지고 있기 때문에 오버헤드(overhead)는 적은 반면에 스트림 중간에 에러가 발생하면 다음 프레임의 시작 위치를 찾아가는 것이 어려운 단점을 가지고 있다.
AOD(Audio On Demand)나 방송과 같이 스트리밍 형식으로 전달되는 데이터는 전파의 수신 상태나 인터넷 망의 상태에 따른 여러가지 통신 환경에 의해서 중간에 스트림이 손실되어 전달될 가능성을 다분히 가지고 있다.
이로 인하여 디코딩하기 위해 필요한 오디오 프레임 데이터가 부분적으로 손상되거나 아예 몇 프레임 이상 손실되는 경우도 발생할 수 있다. 따라서 이러한 오디오 데이터 스트림의 손실에 대응하는 것은 매우 중요하게 고려하고 처리해야 할 사항이 된다.
앞서 설명한 바와 같이 ADTS 포맷은 에러가 발생하면 다음 프레임의 시작 부분을 다시 찾아서 디코딩을 할 수 있지만, ADIF 포맷이나 ADTS와 ADIF 포맷을 가지지 않는 로 스트림(raw stream)의 경우는 에러가 발생하더라도 다음 프레임의 시작 부분을 찾지 못하기 때문에 이로 인하여 더 이상 디코딩을 수행하지 못하는 상태에 빠지게 되고 디코딩 과정을 종료하게 된다.
즉, 종래의 AAC 기반 오디오 디코딩 시스템에서는 오디오 데이터 스트림이 중간에 손실될 때 디코딩이 중단되고, 이로 인하여 오디오 재생 품질이 현저하게 떨어지는 것은 물론, 해당 디코딩 시스템에 대한 신뢰성이 떨어지게 되는 문제점이 있다.
본 발명은 파일 시작 위치에 스트림 헤더가 오지 않는 경우에 대해 ACC 플레이어가 어떤 포맷의 스트림이 수신되었는지를 파악하고, 만약 로 스트림이 들어왔을 경우 이것이 어떤 채널 정보와 샘플링 주파수 정보를 가지고 들어왔는지를 파악하여 재생을 할 수 있도록 한 오디오 프레임의 복호 제어 방법을 제공함에 있다.
본 발명은 오디오 스트림을 서치하고, 그 스트림 선두에 ADIF/ADTS 헤더를 가지고 있는지 유무를 파악한 후, 상기 ADIF/ADTS 헤더가 없거나 복호화되지 않는 스트림에 대해 복호화할 수 있도록 한 오디오 프레임의 복호 제어 방법을 제공함에 있다.
본 발명은 로 스트림 형태의 AAC 파일에 ADIF의 아이디나 ADTS의 동기워드(syncword)와 동일한 스트림 배열 형태를 가지고 있어, ADIF 또는 ADTS 헤더로 판명되었을 경우, 이것이 잘못 판단되었음을 확인하고 다시 로 데이터 포맷으로 판명할 수 있도록 하며, 로 스트림으로 판명되었을 때 샘플링 주파수 값을 변화시켜 가면서 정상적으로 복호화가 수행되는 주파수를 찾아서 재생을 할 수 있도록 함에 있다.
상기 목적을 달성하기 위한 본 발명의 오디오 프레임의 복호 제어 방법은,
AAC 기반의 오디오 데이터 복호화 방법에 있어서,
오디오 스트림을 서치하는 단계;
상기 스트림 헤더 유무를 확인하는 단계;
상기 스트림 헤더가 검색되면 해당 포맷으로 복호화를 수행하는 단계;
상기 복호화 수행시, 복호화가 정상적으로 수행되지 않을 경우 다음 프레임의 시작 위치에서 복호화를 수행하는 수순을 일정 횟수 반복하며, 복호화가 정상적으로 이루어지지 않을 경우 로 스트림으로 인식하는 단계;
상기 로 스트림으로 인식되면 샘플링 주파수 정보를 이용하여 복호화를 수행 하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 스트림 헤더는 ADIF 또는 ADTS 헤더인 것을 특징으로 한다.
바람직하게, 상기 스트림 헤더가 검색되지 않으면 로 스트림으로 인식하는 것을 특징으로 한다.
구체적으로, 상기 로 스트림에 대한 복호화 단계는, 이전 프레임에 대해 정상적으로 복호화되는 샘플링 주파수 후보군을 찾는 단계; 상기 후보군 중에서 높은 샘플링 주파수로 재생하는 단계를 포함하는 것을 특징으로 한다.
구체적으로, 상기 샘플링 주파수로 재생시, 정상 속도로 재생이 이루어지는 가를 확인한 후, 정상 속도로 재생이 이루어지지 않으면 정상속도로 재생이 될 때까지 상기 후보군 중에서 낮은 샘플링 주파수로 찾아 재생시키는 단계를 더 포함하는 것을 특징으로 한다.
구체적으로, 상기 정상 속도로의 재생 여부를 사용자로부터 확인받은 후, 낮은 샘플링 주파수로 전환할 지를 결정하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 다른 실시 예에 따른 오디오 프레임의 복호 제어 방법은, 파일 시작 위치에 ADIF 또는 ADTS 헤더가 나오지 않는 파일의 포맷을 분석하는 단계; 상기 분석결과, 로 스트림일 경우 샘플링 주파수 군에 따라 차례로 샘플링 주파수를 가변시키면서 재생 속도에 맞는 샘플링 주파수를 찾아 재생시키는 단계를 포함하는 것을 특징으로 한다.
구체적으로, 상기 샘플링 주파수 군내의 가장 높은 샘플링 주파수부터 단계적으로 더 낮은 샘플링 주파수로 가변시켜 주면서, 복호화를 수행하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명한다.
본 발명에서는 파일 맨 앞에 오디오 스트림 헤더 예를 들면, ADTS/ADIF 헤더 유무를 확인하게 된다. 이때, ADTS/ADIF 헤더가 없는 경우 AAC 플레이어가 어떤 포맷의 스트림이 수신되는지를 확인한 후, 로 스트림에 대해 채널 정보 및 샘플링 주파수를 이용하여 복호화하여 재생될 수 있도록 함에 그 특징이 있다.
또한 본 발명에서는 로 스트림으로 판정되었을 때, 샘플링 주파수 값을 변화시켜 가면서 정상적으로 복호화가 수행되는 주파수를 찾아서 재생할 수 있도록 함에 그 특징이 있다.
이하 첨부된 도면을 참조하여 설명하면 다음과 같다.
도 3은 본 발명 실시 예에 따른 오디오 스트림 복호화 방법을 나타낸 플로우 챠트이다.
도 3을 참조하면, 수신되는 AAC 기반의 오디오 스트림을 서치(Search)하게 된다(S101). 이때, 상기 수신되는 스트림의 시작 위치에 도 1 및 도 2와 같은 ADIF 또는 ADTS 헤더를 찾았는가를 확인하게 된다(S102). 다시 말하면, AAC 파일이 입력되면 ADIF/ADTS 헤더 유무를 파악하게 되는데, 32비트로 구성된 ADIF ID 또는 12비트로 구성된 ADTS의 동기 워드와 동일한 배열을 가지는 스트림이 있는지를 검색하게 된다. 이때, 일치하는 배열이 있으면 ADIF 또는 ADTS 포맷으로 간주되며, 해당 포맷의 구문(syntax)를 적용하여 복호화를 시도하게 된다.
상기 S102의 확인결과, 헤더를 찾았으면 ADIF 또는 ADTS 포맷으로 간주하여 복호화를 시도하게 되며(S103), 정상적으로 복호화가 이루어지면 종료하게된다(S104).
그러나, S102의 확인결과, 스트림 시작 위치에서 ADIF 또는 ADTS 헤더를 찾지 못하거나, 또는 S104에서 정상적인 복호화가 되지 않는 경우, 로 스트림으로 간주하여 경계 조건에 따른 첫 프레임 시작 위치를 찾게 된다.
도 4는 ADIF 헤더를 가진 비트 스트림 구조이며, 도 5는 ADTS 헤더를 가진 비트 스트림 구조를 보여준다.
도 4에 나타낸 바와 같이 ADIF나 로(raw) 포맷의 매 프레임의 시작은 엘리먼트 아이디(ele_id) 라는 3비트(3bit)의 데이터로 시작한다. 이 엘리먼트 아이디(ele_id)는 매 프레임에서 사용될 수 있는 엘리먼트(element) 들의 아이디(id)를 나타내는 것으로써, 모바일(mobile) AOD 환경에서는 ID_SCE[000], ID_CPE[001], ID_FIL[110], ID_END[111]의 4가지가 주로 사용된다.
이 중에서 ID_SCE[000]는 1채널(mono)의 데이터를 가지고 있으며, ID_CPE[001]는 2채널(stereo)의 데이터를 가지고 있다. ID_FIL[110]의 경우는 비트율(bitrate)을 맞추어 주기 위한 데이터(null data) 혹은 AAC+와 같은 확장된 기능을 위한 데이터들을 포함한다. ID_END[111]는 프레임의 끝을 알려주는 엘리먼트이다.
이러한 ADIF 헤더를 가진 비트 스트림 구조는 ADIF 헤더를 갖고, 각 프레임 내에 엘리먼트 아이디, 로 데이터 블록으로 구성된다.
도 5에 도시된 ADTS 헤더를 가진 비트 스트림 구조를 보면, 각 프레임에 ADTS 동기, ADTS 헤더, 엘리먼트 아이디, 로 데이터 블록으로 구성된다.
도 6 및 도 7은 상기 엘리먼트들이 프레임을 구성하는 여러가지 형태를 보여준다. 일반적으로 모노(mono) 채널의 프레임은 도 6과 같이 ID_SCE[000]로 시작해서 ID_FIL[110]로 끝나며, 도 7과 같이 스테레오(stereo) 채널의 프레임은 ID_CPE[001]로 시작해서 ID_FIL[110]로 끝난다.
그리고, 상기 S102의 확인결과에서 ADIF/ADTS 헤더를 찾지 못할 경우이거나 S104의 복호화 수행시 정상적으로 복호화가 수행되지 않으면, 상기 스트림을 로 스트림으로 간주하여 경계 조건에 따른 첫 프레임 시작 위치를 찾게 된다.
여기서, S104의 복호화시 정상적으로 복호화가 되지 않는 프레임은, 로 스트림 형태의 AAC 파일인데, ADIF의 아이디나 ADTS의 동기 워드와 동일한 스트림 배열 형태를 가지고 있는 경우이다. 이런 경우 ADIF 또는 ADTS 헤더로 판명되더라도 잘못 판정되어 다시 로 데이터 포맷으로 판정할 수 있게 된다.
그러므로, 만약 디코딩 과정에서 에러가 있는 프레임이 발생하여 이후의 다음 프레임 시작 위치를 찾을 때, 이전의 정상 디코딩된 프레임의 채널 정보 즉, 상기 열거한 엘리먼트 아이디(ele_id)를 참조하면 다음 프레임의 시작 위치에 올 엘리먼트 아이디(ele_id)를 예상할 수 있게 된다. 예를 들어, 정상 디코딩된 이전 프레임으로부터 얻은 채널정보가 ID_SCE[000]이라면 다음에 올 프레임은 모노채널 프레임으로 간주할 수 있고, ID_CPE[001]이라면 다음에 올 프레임은 스테레오 채널 프레임으로 간주할 수 있으므로, 전자의 경우는 ID_SCE[000]이 출현하는 위치를 찾으면 되고, 후자의 경우는 ID_CPE[001]이 출현하는 위치를 찾으면 일단 이 위치가 다음 프레임의 시작 위치인 것으로 간주할 수 있는 것이다. 그렇지만 우연하게 비슷한 비트 배열이 있을 수 있기 때문에 더욱 신뢰성 높은 프레임 검색과 인식을 위하여 여러 가지 다양한 검증과 확인 과정이 필요하다. 이와 같은 검증 및 확인을 위하여 엘리먼트 인스턴스 태그(element_instance_tag)와 ID_END[111]를 이용한다.
앞서 설명한 ID_SCE[000]와 ID_CPE[001]의 경우 모두 4비트의 엘리먼트 인스턴스 태그(element_instance_tag) 데이터를 가지고 있다. 이는 같은 프레임 내에 여러 개의 엘리먼트가 동시에 사용될 때 이를 구분하기 위해서 사용되는 것으로, 일반적으로 프레임 맨 앞에 나오는 엘리먼트는 이 엘리먼트 인스턴스 태그(element_instance_tag) 값이 [0000]을 가지게 된다.
또한, 매 프레임을 끝내는 ID_END 엘리먼트[111] 다음에는 바이트 얼라인(byte align)이 있은 후에 프레임의 시작부분(ID_SCE나 ID_CPE를 나타내는 ele_id)이 오게 된다. ADTS 헤더와 같이 명확한 구분은 아니지만 이런 부분적인 프레임의 시작, 끝 데이터를 하나의 지표로 이용하여 상기한 바와 같이 에러 발생시에 프레임 경계를 찾을 수 있는 것이다.
여기서, 다음 프레임의 시작 위치는 이전에 정상 디코딩된 프레임으로부터 얻은 채널 정보를 토대로 해서 에러 발생 이후의 다음 프레임 시작 위치에 올 엘리먼트 아이디(ele_id) 값과 엘리먼트 인스턴스 태그(element_instance_tag) 값을 예상하고 이 값이 출현하는 위치의 비트 스트림을 찾아내면 그 위치가 다음 프레임의 시작 위치인 것으로 간주할 수 있는 것이다.
이와 같이, S105에서 상기 로 스트림의 경계 조건에 따른 첫 프레임의 시작 위치를 찾으면, 이전 프레임 중에서 정상 복호화되는 샘플링 주파수의 후보 군을 찾게 된다. 상기 후보 군 중에서 높은 샘플링 주파수로 복호화하면서 재생하게 된다(S107).
이때, 정상속도로 재생이 되는지를 확인한 후(S108), 정상속도로 재생이 되지 않을 경우 상기 후보 군 중에서 낮은 샘플링 주파수로 복호화하면서 재생하게 된다(S109). 즉, 샘플링 주파수를 낮추어 가면서 정상적인 재생속도가 나올 때까지 복호화를 수행하게 된다. 이때, 정상적인 재생 속도 여부는 사용자가 현재 재생되는 스트림이 정상적으로 출력되는지를 확인하게 되며, 실제 속도보다 빠른 경우 사전에 정의된 키 입력을 함으로써, 같은 샘플링 주파수 군에서 낮은 샘플링 주파수 값으로 전환하여 재생할 수 있게 된다. 다른 예로서, 샘플링 주파수를 적용할 때 가장 낮은 주파수부터 차례데로 주파수를 높여 가면서 적용할 수도 있거, 임의의 적용 순서에 의해 적용할 수도 있다.
구체적으로, ADIF/ADTS 헤더에서 가장 중요한 정보는 샘플링 주파수 정보로써, 이 정보에 따라 AAC 내부에서 사용되는 스케일 팩터 밴드(Scalefactor band) 테이블이 달라지게 된다. 이 경우 스케일팩터 개수 및 오프셋(offset) 값도 달라지게 되며, 그 결과 복호화 과정에서 쓰이는 데이터 양이 달라지게 된다. 따라서, 잘못된 샘플링 주파수로 설정되는 경우 전혀 복호화가 되지 않게 된다.
이와 반대로, 로 스트림은 샘플의 주파수 정보만 정확하게 파악이 가능하면, 정상적인 복호화가 가능하게 된다. 예를 들면, 채널 정보는 로 스트림의 맨 처음 3비트에 해당되는 엘리먼트 아이디 값을 이용하여 파악이 가능하게 된다.
그리고, AAC 파일에서 사용되는 샘플링 주파수는 예컨대, 8~96khz의 범위에서 미리 정의된 12가지 주파수가 사용된다. 그리고, 스케일 팩터 밴드 테이블은 비슷한 샘플링 주파수 상호간은 같은 테이블을 공유하게 된다. 예를 들면, 롱 윈도우의 스케일 팩터 테이블의 경우 96/88.1khz, 22.05/24khz, 12/11.025/8khz는 같은 테이블을 사용하고 있다. 따라서, 로 스트림 AAC 파일의 경우 같은 테이블을 사용하는 샘플링 주파수 군에서는 같은 복호화 결과를 얻을 수 있다.
이러한 특징을 이용하여, S107과 같이 각 샘플링 주파수 군에서 가장 높은 샘플링 주파수 값을 사용하여 복호화를 수행하게 된다. 이때, 정상적으로 복호화가 되지 않는 경우 다음 샘플링 주파수 값을 이용하여 다시 복호화를 시도하게 된다. 이를 반복하여, 정상적으로 복호화가 된 경우 재생을 하면서 사용자에게 현재 플레이되는 것이 정상적인 재생 속도인지, 확인하는 과정을 거친다(S108). 만약, 실제 재생속도 보다 빠를 경우 S109와 같이 샘플링 주파수 군에서 낮은 샘플링 주파수 값으로 전환해서 재생을 하게 된다.
한편, 도 8은 상기에서 설명한 오디오 스트림 복호화 방법이 적용된 프로그램의 예를 나타낸 도면이다.
도 8에 도시된 바와 같이, 입력되는 AAC 파일은 16khz의 샘플링 주파수를 가지는 로 스트림일 경우, 최초 48khz부터 제대로 복호화가 되는 부분을 찾을 때까지 샘플링 주파수 군을 하나씩 적용(48khz, 32khz, 24khz, 22.050khz, 16khz)해 가면 서 시도하다가, 16khz에 대해 제대로 복호화가 되어 샘플링 주파수로 선택되어 재생되고 있다.
본 발명에서는 파일 서두에 헤더가 나오지 않는 파일에 대해 그 파일 포맷을 분석하고, 분석된 파일 포맷이 로 스트림일 경우 샘플링 주파수 군에 따라 차례로 샘플링 주파수를 변경해 가면서 적합한 샘플링 주파수를 찾아 복호화하고 재생할 수 있도록 함으로써, 유선 및 무선으로 수신받는 AAC 플레이어에서 에러 컨텐츠에 유연하게 대응할 수 있는 효과가 있다.

Claims (8)

  1. 부호화된 오디오 데이터 스트림에 포함되는 부가정보에 근거하여 해당 오디오 데이터 스트림을 복호화하는 방법에 있어서,
    오디오 스트림을 서치하는 단계;
    상기 스트림 헤더 유무를 확인하는 단계;
    상기 스트림 헤더가 검색되면 해당 포맷으로 복호화를 수행하는 단계;
    상기 복호화 수행시, 복호화가 정상적으로 수행되지 않을 경우 다음 프레임의 시작 위치에서 복호화를 수행하는 수순을 일정 횟수 반복하며, 복호화가 정상적으로 이루어지지 않을 경우 로 스트림으로 인식하는 단계;
    상기 로 스트림으로 인식되면 이전 오디오 프레임 중에서 정상 복호화되는 샘플링 주파수 정보를 이용하여 복호화를 수행하는 단계를 포함하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  2. 제 1항에 있어서,
    상기 스트림 헤더는 ADIF 또는 ADTS 헤더인 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  3. 제 1항에 있어서,
    상기 스트림 헤더가 검색되지 않으면 로 스트림으로 인식하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  4. 제 1항에 있어서,
    상기 로 스트림에 대한 복호화 단계는,
    이전 프레임에 대해 정상적으로 복호화되는 샘플링 주파수 후보군을 찾는 단계;
    상기 후보군 중에서 높은 샘플링 주파수로 재생하는 단계를 포함하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  5. 제 4항에 있어서,
    상기 샘플링 주파수로 재생시, 정상 속도로 재생이 이루어지는 가를 확인한 후, 정상 속도로 재생이 이루어지지 않으면 정상속도로 재생이 될 때까지 상기 후보군 중에서 샘플링 주파수를 낮추어 가면서 복호화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  6. 제 5항에 있어서
    상기 정상 속도로의 재생 여부를 사용자로부터 확인받은 후, 낮은 샘플링 주파수로 전환할 지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  7. 부호화된 오디오 파일에 포함되는 부가정보에 근거하여 해당 오디오 데이터를 복호화하는 방법에 있어서,
    파일 시작 위치에 ADIF 또는 ADTS 헤더가 나오지 않는 파일의 포맷을 분석하는 단계;
    상기 분석결과, 로 스트림일 경우 이전 오디오 프레임 중에서 정상 복호화되는 샘플링 주파수 군에 따라 차례로 샘플링 주파수를 가변시키면서 재생 속도에 맞는 샘플링 주파수를 찾아 재생시키는 단계를 포함하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
  8. 제 7항에 있어서,
    상기 샘플링 주파수 군내의 가장 높은 샘플링 주파수부터 단계적으로 더 낮은 샘플링 주파수로 변경하면서 복호화를 수행하는 것을 특징으로 하는 오디오 프레임의 복호 제어 방법.
KR1020050027762A 2005-04-01 2005-04-01 오디오 프레임의 복호 제어 방법 KR100752874B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050027762A KR100752874B1 (ko) 2005-04-01 2005-04-01 오디오 프레임의 복호 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050027762A KR100752874B1 (ko) 2005-04-01 2005-04-01 오디오 프레임의 복호 제어 방법

Publications (2)

Publication Number Publication Date
KR20060105931A KR20060105931A (ko) 2006-10-12
KR100752874B1 true KR100752874B1 (ko) 2007-08-29

Family

ID=37626711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050027762A KR100752874B1 (ko) 2005-04-01 2005-04-01 오디오 프레임의 복호 제어 방법

Country Status (1)

Country Link
KR (1) KR100752874B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112509591A (zh) * 2020-12-04 2021-03-16 北京百瑞互联技术有限公司 一种音频编解码方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335230A (ja) 2001-05-11 2002-11-22 Victor Co Of Japan Ltd 音声符号化信号の復号方法、及び音声符号化信号復号装置
KR20030080984A (ko) * 2002-04-08 2003-10-17 마츠시타 덴끼 산교 가부시키가이샤 멀티미디어 데이터 복호장치
KR20050050468A (ko) * 2003-11-25 2005-05-31 삼성전자주식회사 압축된 오디오 비트스트림에서 싱크 워드를 찾는 방법 및상기 방법을 기록한 기록 매체
KR20050076386A (ko) * 2004-01-20 2005-07-26 엘지전자 주식회사 Aac복호화 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002335230A (ja) 2001-05-11 2002-11-22 Victor Co Of Japan Ltd 音声符号化信号の復号方法、及び音声符号化信号復号装置
KR20030080984A (ko) * 2002-04-08 2003-10-17 마츠시타 덴끼 산교 가부시키가이샤 멀티미디어 데이터 복호장치
KR20050050468A (ko) * 2003-11-25 2005-05-31 삼성전자주식회사 압축된 오디오 비트스트림에서 싱크 워드를 찾는 방법 및상기 방법을 기록한 기록 매체
KR20050076386A (ko) * 2004-01-20 2005-07-26 엘지전자 주식회사 Aac복호화 방법

Also Published As

Publication number Publication date
KR20060105931A (ko) 2006-10-12

Similar Documents

Publication Publication Date Title
CN101777369B (zh) 音频数据的通用容器
JP4354455B2 (ja) 再生装置および再生方法
US8190441B2 (en) Playback of compressed media files without quantization gaps
US7507894B2 (en) Sound data encoding apparatus and sound data decoding apparatus
KR20030011095A (ko) Mp3용 트릭 플레이
US7479594B2 (en) Sound data encoding apparatus and sound decoding apparatus
JP2001505348A (ja) 記録担体からディジタルオーディオ信号を再生する装置及び方法
KR101038442B1 (ko) 매립된 데이터의 시그널링
KR20030011910A (ko) 데이터 기록 매체, 데이터 기록 방법 및 장치, 및 데이터전송 방법 및 장치
KR100752874B1 (ko) 오디오 프레임의 복호 제어 방법
US7149159B2 (en) Method and apparatus for editing data streams
JP4248026B2 (ja) 符号化された形式と符号化されない形式のディジタル情報信号を交互に伝送する伝送装置
JPWO2009090705A1 (ja) 記録再生装置
US6813281B1 (en) Method of assigning audio channel identification, method for selecting audio channel using the same, and optical recording and reproducing apparatus suitable therefor
US7231268B1 (en) Method of assigning audio channel identification, method for selecting audio channel using the same, and optical recording and reproducing apparatus suitable therefor
JP2008026662A (ja) データ記録装置、データ記録方法及びデータ記録プログラム
KR100632532B1 (ko) 오디오 프레임 인식방법
US6694091B1 (en) Method of assigning audio channel identification, method for selecting audio channel using the same, and optical recording and reproducing apparatus suitable therefor
EP1289278A1 (en) Method for assigning audio channel identification, method for selecting audio channel, and optical recording and reproducing apparatus suitable therefor
JP3647387B2 (ja) 光記録再生装置
JPH1166754A (ja) 多チャンネルデータ記録媒体と伝送記録及び再生装置
KR100609173B1 (ko) Aac복호화 방법
KR100844194B1 (ko) 디지털 오디오 데이터의 복호화 방법, 디지털 오디오데이터의 복호화 장치 및 디지털 오디오 데이터의 복호화방법을 수행하는 기록매체
JP4179021B2 (ja) 符号化装置、符号化方法
KR100346724B1 (ko) 오디오 채널 선택 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20100630

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee