KR20100083126A - 디지털 컨텐츠의 인코딩 및/또는 디코딩 - Google Patents

디지털 컨텐츠의 인코딩 및/또는 디코딩 Download PDF

Info

Publication number
KR20100083126A
KR20100083126A KR1020107005869A KR20107005869A KR20100083126A KR 20100083126 A KR20100083126 A KR 20100083126A KR 1020107005869 A KR1020107005869 A KR 1020107005869A KR 20107005869 A KR20107005869 A KR 20107005869A KR 20100083126 A KR20100083126 A KR 20100083126A
Authority
KR
South Korea
Prior art keywords
digital signal
signal samples
sequence
values
samples
Prior art date
Application number
KR1020107005869A
Other languages
English (en)
Inventor
그레고리 번스
필립 루트쉬맨
Original Assignee
오픈 인터페이스 노쓰 어메리카, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오픈 인터페이스 노쓰 어메리카, 인코포레이티드 filed Critical 오픈 인터페이스 노쓰 어메리카, 인코포레이티드
Publication of KR20100083126A publication Critical patent/KR20100083126A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/035Scalar quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0204Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

오디오 데이터의 인코딩 및/또는 디코딩과 연관된 방법들, 장치들, 디바이스들 및 시스템들의 실시예들이 개시된다.

Description

디지털 컨텐츠의 인코딩 및/또는 디코딩{ENCODING AND/OR DECODING DIGITAL CONTENT}
본 발명에 개시된 주제는 2007년 8월 17일자로 출원된 "ENCODING AND/OR DECODING DIGITAL CONTENT"란 명칭의 미국 시리얼 넘버 11/840,880호의 우선권을 청구하며, 이는 본 발명에 참조로 통합된다.
본 발명은 예를 들어, 디지털 신호들에 의하여 표현되는 오디오 정보의 인코딩 및/또는 디코딩과 같은, 디지털 컨텐츠의 인코딩 및/또는 디코딩의 분야와 관련된다.
일반적으로, 오디오 컨텐츠를 포함하는 다양한 형태의 디지털 컨텐츠에 대하여, 예를 들어, 손실 없는 압축 및/또는 압축해제가 다양한 상황들에서 바람직하다. 예를 들어, 그러한 압축은 대역폭 제한된 통신 채널을 통한 송신 또는 메모리에의 저장에 바람직하다. 그러한 압축 및/또는 압축해제를 위한 기술들, 특히 낮은 레이턴시 및/또는 낮은 계산 복잡성을 제공하는 기술들이 계속해서 추구되고 있다.
본 발명의 주제는 특히 명세서의 결론 부분에서 개시되고 명확히 청구된다. 그러나, 본 발명의 목적, 특징 및 장점들과 함께 동작 구성 및 방법으로서의 청구되는 주제는 첨부되는 도면들을 참조할 때 하기의 상세한 설명을 참조로 보다 명확히 이해될 것이다.
도 1은 일 실시예에 따른 인코딩 방법 또는 기술을 도시하는 개략도이다.
도 2a는 일 실시예에 따른 비-정렬된(unsorted) 오디오 샘플들의 세트를 도시하는 개략도이다.
도 2b는 일 실시예에 따른 정렬된 오디오 샘플들의 세트를 도시하는 개략도이다.
도 3은 일 실시예에 따른 압축된 데이터 스트림을 도시하는 개략도이다.
도 4는 일 실시예에 따른 디코딩 방법 또는 기술을 도시하는 개략도이다.
도 5는 일 실시예에 따른 두 개 이상의 서브-대역들로의 하나 이상의 오디오 샘플들의 변환을 도시하는 개략도이다.
도 6은 일 실시예에 따른 압축 데이터 스트림을 도시하는 개략도이다.
도 7a는 일 실시예에 따른 인코딩 방법 또는 기술을 도시하는 흐름도이다.
도 7b는 일 실시예에 따른 다중-채널 인코딩 방법 또는 기술을 도시하는 흐름도이다.
도 8a는 일 실시예에 따른 디코딩 방법 또는 기술을 도시하는 흐름도이다.
도 8b는 일 실시예에 따른 다중-채널 디코딩 방법 또는 기술을 도시하는 흐름도이다.
하기의 상세한 설명에서, 다수의 특정 세부설명들은 청구되는 주제의 전반적 이해를 돕기 위해 제시된다. 그러나, 이러한 특정 세부설명들 없이도 청구되는 주제가 당업자에 의해 실행할 수 있다는 것이 이해될 것이다. 다른 예들에서, 당업자들에게 공지된 방법들, 과정들 컴포넌트들 및/또는 회로들은 청구되는 주제가 모호해지지 않도록 하기 위해 상세하게 설명되지 않는다.
본 명세서 전반에서 참조되는 "일 실시예(one embodiment 또는 an embodiment)"는 특정 실시예와 관련하여 개시되는 특정 피쳐(feature), 구조, 또는 특징이 청구되는 주제의 적어도 하나의 일 실시예에 포함된다는 것을 의미할 수 있다. 따라서, 본 명세서의 다양한 위치들에서의 "일 실시예에서" 및/또는 "실시예"란 문구는 모두 동일한 실시예 또는 본 발명에 개시된 임의의 하나의 특정 실시예로 반드시 참조되는 것은 아니다. 또한, 특정 피쳐들, 구조들 및/또는 특징들은 하나 이상의 실시예들에서 다양한 방식으로 조합될 수 있다. 물론, 일반적으로 이들 및 다른 논점들(issues)이 특정 문맥에 따라 변경될 수 있다. 따라서, 이러한 용어들의 사용 및 설명의 특정 문맥은 특정 문맥에 대해 유추되는 추론들과 관련한 유용한 가이던스를 제공할 수 있다.
마찬가지로, 본 발명에서 사용되는 "및", "또는" 및 "및/또는"이란 용어들은 적어도 부분적으로는 이들이 사용되는 문맥에 따라 관련되는 다양한 의미들을 포함할 수 있다. 통상적으로, A, B 및/또는 C와 같은 리스트와 관련하여 사용되는 경우, "및/또는"은 A, B, 또는 C 뿐만 아니라 A, B 및 C를 의미하도록 의도된다. 이는 단지 예시적인 예들을 나타내는 것으로 청구되는 주제는 이러한 예로 제한되지 않는다는 것을 주목해야 한다.
별다르게 특별히 언급되지 않는다면, 본 명세서 전반에서, "프로세싱(processing)", "컴퓨팅(computing)", "계산(calculating)", "선택(selecting)", "형성(forming)", "인에이블링(enabling)", "방해(inhibiting)", "식별(identifying)", "개시(initiating)", "질의(querying)", "획득(obtaining)", "호스팅(hosting)", "유지(maintaining)", "표현(representing)", "변조(modifying)", "수신(receiving)", "전송(transmitting)" "정렬(storing)", "인증(authenticating)", "권한부여(authorizing)", "호스팅(hosting)", "결정(determining)" 및/또는 이와 유사한 용어들은, 시스템의 프로세서들, 메모리들, 레지스터들, 및/또는 다른 정보 저장기, 전송, 수신 및/또는 디스플레이 디바이스들 내에서 전자, 자기, 및/또는 다른 물리적 양들로서 표현될 수 있는 데이터를 조정 및/또는 변환할 수 있는 컴퓨터 및/또는 다른 컴퓨팅 플랫폼과 같은 시스템에 의해 수행될 수 있는 동작들(actions) 및/또는 프로세스들을 지칭한다. 따라서, 컴퓨팅 플랫폼은 신호들 또는 전자 데이터 형태의 데이터를 저장 및/또는 처리하기 위한 능력을 포함하는 시스템 또는 디바이스를 지칭한다. 따라서, 본 문맥에서, 컴퓨팅 플랫폼은 하드웨어, 소프트웨어, 펌웨어 및/또는 이들의 조합을 포함할 수 있다. 또한, 특별하게 별다른 언급이 없다면, 흐름도들 또는 그외의 것들을 참조로 본 발명에 개시되는 프로세스는 전체적으로, 또는 부분적으로 컴퓨팅 플랫폼에 의해 실행 및/또는 제어될 수 있다.
청구된 내용은 적어도 부분적으로 예를 들어, 방법 또는 기술 실시예들과 관련될 수 있는 시스템들 또는 장치들의 실시예들과 함께 손실 없는, 거의 손실 없는, 및/또는 상대적으로 손실 없는 데이터 압축/압축해제 방법 또는 기술과 같은 데이터 압축/압축해제 방법 또는 기술의 실시예들과 관련된다. 예를 들어, 특정 상황들에서, 종래의 손실없는 압축 프로세스들과 비교될 수 있는 오디오 데이터 압축 비율들을 달성하는 것이 바람직할 수 있다. 또한, 특정 상황들하에서, 압축 및/또는 압축해제 방법의 계산적 복잡성을 감소시키거나 간소화시키면서 그러한 압축 비율들을 달성하는 것이 바람직할 수 있다. 예를 들어, 휴대용 디바이스에서, 다른 방법들과 유사한 압축을 달성하지만 더 적은 프로세싱 전력을 이용하는 압축 방식이 디바이스와 연관될 수 있는 대역폭 제약들을 만족스럽게 처리하면서 디바이스의 하나 이상의 다른 성능 특성들을 개선 및/또는 디바이스의 배터리 수명을 효율적으로 연장하는 것이 바람직할 수 있도록, 배터리 수명은 의미 있는 고려사항일 수 있다. 추가적인 실시예로서, 더 낮은 계산 복잡성은 또한 압축된 오디오 데이터를 송신 및 수신하는 것과 관련된 레이턴시를 감소시키기 위하여 바람직할 수 있다. 이러한 문맥에서, 오디오 데이터라는 용어는 디지털 신호들의 형태로 표현되는 오디오 정보를 지칭한다. 물론, 전술한 내용은 압축 및/또는 압축해제 프로세스들과 관련되어 바람직할 수 있는 피쳐들의 단지 예증적인 실시예들이다; 그러나, 청구된 내용은 이 점과 관련하여 제한되지 않는다.
청구된 내용은 오디오 데이터 인코딩으로 범위를 제한해야 하는 것은 아니나, 도 1은 오디오 데이터를 인코딩하기 위한 시스템과 같은 인코딩 시스템의 일 실시예의 개략도(100)를 도시한다. 예를 들어, 이미지 데이터, 비디오 데이터 및 디지털 컨텐츠의 다른 형태들이 인코딩될 수 있다. 이러한 문맥에서, 이미지 데이터 및 비디오 데이터라는 용어들은 디지털 신호들의 형태로 표현되는 이미지 또는 비디오 정보를 지칭하도록 의도된다. 도 1과 관련하여, 인코딩 시스템 실시예(100)는 하나 이상의 디지털 신호 샘플들과 같은, 하나 이상의 연속적 펄스-코드-변조된(PCM: Pulse-Code-Modulated) 오디오 샘플들을 수신하도록 작동가능한 압축 방식을 포함할 수 있다. 본 명세서에서 사용될 때 "오디오 샘플" 또는 "디지털 신호 샘플"은 오디오 데이터의 하나 이상의 양상들에 대응하는 디지털 신호 및/또는 값을 의미할 수 있다. 예를 들어, 오디오 샘플은 디지털 신호 샘플들과 같은 오디오 신호들의 시퀀스 또는 세트의 일부를 포함할 수 있거나, 특정 크기를 갖거나, 특정 시간량 동안 지속되거나, 특정 주파수 범위를 갖거나, 또는 하나 이상의 특정 특징들을 가질 수 있다. 물론, 이들은 단지 오디오 샘플들과 관련한 실시예들이나, 청구된 내용은 이로 제한되지 않는다. 이러한 특정 실시예에서, 예를 들어, 오디오 샘플들은 블럭들(110 및/또는 112)과 같은 데이터의 하나 이상의 블럭들로 그룹화될 수 있다. 본 명세서에서 사용되는 바와 같이, "블럭"은 그룹으로 구조화된 하나 이상의 오디오 샘플들 또는 디지털 신호 샘플들을 의미할 수 있다. 예를 들어, 하나 이상의 오디오 신호 샘플들은 하나 이상의 오디오 신호들의 하나 이상의 특징들에 적어도 부분적으로 기초하여 블럭으로 구조화될 수 있다. 다시 한번, 이들은 단지 오디오 샘플들과 관련된 실시예들이나, 청구된 내용은 이로 제한되지 않는다.
단지 일 실시예로서, 블럭들(110 및/또는 112)은 11개의 연속적 오디오 샘플들과 같은 하나 이상의 연속적 오디오 샘플들을 포함할 수 있으며, 여기서, 예를 들어, 각각의 오디오 샘플은 압축되기 이전에 특정 개수의 비트들을 가질 수 있으나, 물론 청구된 내용은 이 점에서 범위가 제한되지 않는다. 본 실시예는 11개 오디오 샘플들의 관점에서 개시되나, 더 작고/작거나 더 큰 블럭 길이들이 대안적으로 사용될 수도 있다. 유사하게, 이러한 특정 실시예에 대하여 길이 16 비트들의 오디오 샘플들이 이용되나, 다시, 더 많은 개수의 비트들 또는 더 적은 개수의 비트들이 이용될 수 있다. 추가로, 몇몇 상황들하에서, 오디오 블럭들(110 및/또는 112)은 짝수개의 샘플들을 포함할 수 있다. 대안적으로, 몇몇 상황들하에서, 오디오 블럭들(110 및/또는 112)은 홀수개의 샘플들을 포함할 수 있다. 따라서, 청구된 내용은 임의의 특정 개수의 오디오 샘플들로 제한되어서는 안 된다. 물론, 몇몇 상황들하에서, 더 적거나 더 많은 샘플들의 블럭들을 사용하는 것은 다수의 방식들 중 임의의 방식으로 압축 성능에 영향을 미칠 수 있다. 예를 들어, 몇몇 상황들 하에서, 더 작은 블럭 길이는 압축의 감소를 초래할 수 있다. 대안적으로, 몇몇 상황들하에서, 더 큰 블럭 길이가 레이턴시 또는 계산 복잡성의 증가를 초래할 수 있다. 임의의 이벤트에서, 청구된 내용은 제공된 실시예들로 또는 임의의 특정 블럭 길이로 제한되어서는 안 된다는 것을 명확히 하도록 이들은 단지 블럭 길이와 관련된 실시예들이다.
다시 도 1을 참조로, PCM 오디오 샘플 값들은 예를 들어 블록들(110 및/또는 112)과 같은 하나 이상의 그룹들로 조직된(organized) 일련의 부호있는 정수 값(signed integer value)들로 표현될 수 있다. 적어도 부분적으로 특정 실시예에 따라, 정수 값들은 오디오 샘플의 다양한 특성들 중 임의의 하나를 표현할 수 있다. 제한이 아닌 실시예로서, 값들은 주어진 시점에서 신호 샘플의, 본 실시예에서는 오디오 신호의 진폭을 표현할 수 있다. 따라서, 일부 상황들하에, 블록들(110 및/또는 112)의 값들은 11개의 연속적 오디오 샘플들의 블록들로 그룹화되는 일련의 부호있는 정수 값들로서 표현될 수 있다수 있으나, 이에 제한되는 것은 아니다. 또한, 블럭들(110 및/또는 112)의 값들은 몇몇 상황들 하에서, 예컨대 연속적인 오디오 샘플들의 하나 이상의 블록들로 그룹화된 일련의 부호 있는 또는 부호 없는 고정 소수점 또는 유동 소수점 숫자들로서 표현될 수 있다. 본 실시예에서, 인코딩 시스템 실시예(100)는 정렬된 블럭의 연속적인 오디오 샘플들이 선행하는 오디오 샘플보다 더 높은 숫자 값들을 갖도록 오름차순으로 블럭들(110 및/또는 112)의 샘플들을 정렬하도록 작동가능할 수 있다. 예를 들어, 인코딩 시스템 실시예(100)는 정렬 모듈(113)을 포함할 수 있다. 몇몇 상황들 하에서, 정렬 모듈(113)은 각각의 블럭이 오디오 샘플 값들(114)의 정렬된 시퀀스를 포함하도록 PCM 오디오 샘플들의 블럭들(110 및/또는 112)을 정렬하도록 작동가능할 수 있다. 오른 차순 정렬로 개시되었으나, 오디오 샘플들(114)의 정렬된 시퀀스는 예를 들어, 대안적으로 내림차순과 같은 상이하게 배열된 정렬들을 포함할 수 있다. 본 명세서에서 사용될 때, "정렬(sort)"이라는 용어는 데이터와 연관된 하나 이상의 양상들에 적어도 부분적으로 기초하여 연속적으로 데이터를 배열하는 것을 의미할 수 있다. 예를 들어, 하나 이상의 오디오 샘플들의 정렬은 개별적인 오디오 샘플들과 연관된 숫자 값에 적어도 부분적으로 기초하여 하나 이상의 오디오 샘플들을 배열하는 단계를 포함할 수 있으며, 여기서 숫자 값은 이에 제한되는 것은 아니나 예컨대 신호 진폭과 같은 샘플들 사이에서 변화할 수 있는 오디오 샘플들의 특징을 표현한다. 물론, 이들은 단지 오디오 값들을 정렬하는 것과 관련된 예증적인 실시예들이나, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
실시예에서, 정렬 프로세스는 116의 값으로서 도 1에 도시된 순열 값(permutation value)을 또한 생성할 수 있고, 여기서 순열 값은 정렬되기 이전의 샘플 값들의 순서로 블록들(110 및/또는 112)의 PCM 오디오 디지털 신호 샘플 값들을 복구하는데 사용될 수 있는 정보를 포함할 수 있다. 본 발명에서 사용되는 것처럼, "순열 값(permutation value)"이란 용어는 적어도 부분적으로는 샘플 값들이 정렬되기 이전에 정렬된 샘플 값들의 세트의 순서를 표시할 수 있는 정보를 의미할 수 있다. 따라서, "순열 값"은 일부 상황들 하에서, 정렬되기 이전에 샘플 값들의 순서로 정렬된 오디오 샘플 값들의 세트를 리턴시키는데 사용될 수 있다. 일 실시예에서, 순열 값(116)은 정렬된 데이터의 블록과 연관될 수 있는 심볼을 포함할 수 있으며, 심폴은 정렬된 데이터의 블록이 정렬되기 이전에 존재한 순서를 갖도록 순서변경(reorder)될 수 있도록 정보를 제공할 수 있다. 통상적으로, 필수적인 것은 아니지만, 정렬을 실질적으로 무효화(undo)하도록 설계되는 순서변경 프로세스는 하기에서 보다 상세히 개시되는 것처럼, 보다 일반적인 디코딩 프로세스의 일부일 수 있다. 예를 들어, 일반성을 잃지 않고, 일 실시예에서, 디코딩 프로세스는 블록들(110 및/또는 112)에 대응하여 도 1에 개시된, 정렬된 샘플 값들을 정렬되기 이전에 그들의 순서로 복구하기 위해 적어도 부분적으로 순열 값을 이용할 수 있다. 이들은 단지 순열 값과 관련한 예시적 예들이며 청구되는 내용이 이와 관련하여 제한되지 않는다는 것을 유념해야 한다.
실시예에서, 순열 값(116)은 적어도 부분적으로 PCM 오디오 디지털 신호 샘플 값들과 동시발생적으로(contemporaneously) 및/또는 동시적으로(concurrently) 계산될 수 있다. 예로써, 블록들(110 및/또는 112)에서 정렬된 오디오 디지털 신호 샘플 값들과 연관된 비-정렬된(unsorted) 샘플 값들이 하기와 같이 표현될 수 있다 가정한다:
{V0, V1, V2, ... Vn}
정렬 프로세스의 일 실시예에서, 특정 블록의 세트 값들에 대해, 제 1 값 VO는 임의의 n 위치로 이동하고, 제 2 값 V1는 임의의 n-1 위치로 이동하는 방식으로, 값들이 이동할 수 있다. 이는 전체 n!(n factorial) 가능 순열 값들을 산출하며, 각각의 순열 값은 값들의 블록에 대한 모든 가능한 고유(unique) 순서들로부터의 특정 고유 순서에 대응한다.
순열 값을 인코딩하는데 잠재적으로 다양한 방법들이 이용가능하다. 청구 되는 내용은 임의의 특정 방식으로 제한되지 않는다. 오히려, 다양한 방식들 중 임의의 하나가 이용될 수 있으며, 다수의 실시예들이 하기에 제공된다. 순열 값은 ceil(log2(p)) 넘버의 비트들에서 이진으로 이동(move)을 인코딩함으로써 인코딩될 수 있고, 여기서 p는 특정 이동에 대해 가능한 값들의 수이다. 오디오 샘플 값들의 블록이 11개의 오디오 샘플 값들을 포함하는 실시예에서, 이러한 방안은 대략 4+4+4+3+3+3+3+2+2+1 비트들, 또는 29 비트들로 인코딩될 수 있는 순열 값을 산출한다. 대안적으로, 보다 콤팩트한(compact) 결과를 생성하기 위해 상이한 방식을 사용하여 순열을 인코딩하는 것이 바람직할 수 있다. 예를 들어, 단지(a few as) log2(n) 비트들의 순열을 인코딩하는 것이 바람직할 수 있으며, 여기서 n은 오디오 샘플 값들의 블록에서의 값들의 수에 해당한다. 예를 들어, n이 11인 경우, 일부 상황들 하에서, 단지 25.25 비트들의 순열 값을 인코딩하는 것이 바람직할 수 있다. 물론 이들은 단지 순열 값을 인코딩하는 것과 관련된 예시적 실시예들이며, 청구되는 주제가 이러한 특정 예로 제한되는 것은 아니다.
순열값을 인코딩하기 위한 또 다른 가능한 기술은 팩토라딕스(factoradics)의 사용을 수반할 수 있다. 본 실시예에서, n 오디오 샘플 값들의 블록이 정렬될 경우, 하기에 보다 상세히 개시되는 것처럼, 특정 일 실시예에서, 개별 값들의 이동들은 M0 내지 Mn으로 넘버링될 수 있다. 일례로, 11개의 블록 길이를 사용함으로써, 각각의 이동은 M0 내지 M10으로 넘버링될 수 있다. 예를 들어, 본 실시예에서, 순열값은 하기 식에 따라 인코딩될 수 있다:
Figure pct00001
본 예에서, 순열값은 연속하는 큰 팩토리얼들로 곱해지는 각각의 이동들의 합을 포함한다. 예를 들어, 블록(110)이 11개의 값들을 포함한다 가정하면, 정렬된 샘플들(114)과 연관된 순열값(116)은 일부 상황들 하에서, 대략 26 비트들로 인코딩될 수 있다. 다시, 이는 단지 순열값들과 관련한 예시적인 예이며 청구되는 주제가 이와 관련하여 제한되는 것은 아니다.
삽입 정렬 프로세스를 이용하는 일 실시예에서, 순열값의 인코딩은 하기 개시되는 것처럼, 정렬 프로세스와 동시적으로 발생할 수 있다. 물론, 청구되는 주제는 삽입 정렬 프로세스를 이용하는 범주로 제한되지 않는다. 물론, 임의의 정렬 프로세스가 사용될 수 있다. 그러나, 예를 들어 앞서 제시된 것처럼 삽입 정렬을 사용하는 일 실시예에서, 정렬 모듈(113)은 블록(110)과 같은 오디오 샘플 값들의 블록을 처리할 수 있고, 순열 인코딩(116)과 동시적으로, 정렬된 샘플 값들(114)과 같은 정렬될 샘플 값들의 세트를 생성할 수 있다. 일반성을 손실하지 않고, 예시를 위해 특정 예가 하기에 개시된다.
도 2a는 실시예에 따라 비-정렬된 오디오 샘플들(200)의 세트에 대한 정렬 프로세스를 나타내는 개략도이다. 다시, 본 실시예에서, 정렬 프로세스는 삽입 정렬을 포함한다. 예를 들어, 삽입 정렬은 비-정렬된 값들의 세트로부터 연속하는 값들을 취하고(taking) 정렬된 샘플 값들의 세트에서 특정 값을 삽입할 위치를 결정함으로써 정렬된 값들의 세트를 구축할 수 있다. 본 실시예에서, 제로-기반 인덱싱(zero-based indexing)을 사용할 경우, 정렬된 샘플 값들의 세트는 제 1 값이 위치 0에 삽입되도록 초기에 비게된다(empty). 본 실시예에서, 비-정렬된 값들의 세트로부터의 다음 값은 위치 0 또는 위치 1 중 하나에 삽입될 수 있다. 또한, 비-정렬된 값들의 세트로부터의 제 3 값은 위치 0, 위치 1, 또는 위치 2에 삽입될 수 있다. 정렬 프로세스는 비-정렬된 값들의 세트로부터의 모든 값들이 위치에 삽입될 때까지 계속될 수 있다. 본 실시예에서, 값이 삽입될 포인트의 한쪽 측면 상의 값들은 추후(subsequent) 값에 대한 룸(room)을 만들기 위해 왼쪽으로 또는 오른쪽으로 이동된다. 또한, 적어도 부분적으로 특정 값을 삽입하기 위한 포인트가 선택되어, 특정 값이 삽입될 포인트의 한쪽 측면 상에서 값들 사이에 특정 값이 있게 된다. 따라서, 출력 리스트는 값들의 정렬된 세트를 포함할 수 있다. 본 실시예에서, 순열 값은 값들이 삽입되는 일련의 위치들에 대응할 수 있다. 예를 들어, N개 오디오 샘플 값들의 세트에 대해, N!의 상이한 또는 고유한 삽입 위치 조합들이 존재한다.
다시 도 2a를 참조로, 본 실시예에서, 정렬 프로세스는 비-정렬된 오디오 샘플들의 세트에서 제 1 값(201)으로 시작된다. 본 실시예에서, 정렬 프로세스는 제 1 값(201)에 대한 0 삽입 위치를 생성한다. 정렬 프로세스는 다음 값(202)으로 진행되고 상기 값이 제 1 값(201) 보다 큰지 또는 작은지를 결정한다. 본 실시예에서, 제 2 값(202)은 제 1 값(201)보다 커서, 제 1 값(201) 이후에 삽입되고 1의 삽입 위치가 할당된다. 정렬 프로세스는 비-정렬된 오디오 샘플 값들(200)의 차후 값들을 통해 진행되며, 값에 대해, 적어도 부분적으로 상기 값들의 비교에 기초하여 상기 값에 대한 삽입 위치 또는 자리(location)를 결정한다. 본 발명의 실시예로 돌아가, 프로세스는 제 3 값(203)으로 진행되어 삽입 위치를 결정한다. 여기서, 예컨대 제 3 값(203)은 제 1 값(201)보다 크고 제 2 값(202) 보다 작다. 따라서, 제 3 값(203)은 제 1 값(201) 이후에 그리고 제 2 값(202) 이전에 삽입된다. 물론, 다시, 이것은 단지 예시로서, 청구된 내용은 임의의 방식으로 이러한 특정 실시예로 범위가 제한되지 않는다. 정렬 프로세스는 추가로 제 3 값(203)에 대해 1의 삽입 위치를 할당한다. 다시, 본 발명의 실시예를 참조로, 정렬 프로세스는 제 4 값(204)으로 진행된다. 이 값은 제 1 값(201), 제 2 값(202), 및 제 3 값(203) 보다 크다. 따라서, 정렬 프로세스는 제 4 값(204)을 제 2 값(202) 이후에 삽입하며 이를 3의 삽입 위치에 할당한다. 마지막으로, 본 발명의 실시예에서, 정렬 프로세스는 제 5 값(205)으로 진행된다. 이 값은 제 1 값(201) 보다 작고, 정렬 프로세스는 제 1 값(201) 앞에(in front of) 제 5 값(205)을 삽입한다. 또한, 제 5 값(205)에는 0의 삽입 값이 할당된다. 본 실시예에서, 정렬 프로세스는 이제 일 실시예에서 삽입 값들의 세트를 포함하는 순열 값(212)과 함께 오디오 샘플 값들(210)의 정렬된 세트를 생성한다. 물론, 이들은 단지 정렬 프로세스와 관련한 예증적 실시예들로서, 청구되는 주제가 이와 관련하여 제한되는 것이 아니라는 것을 유념해야 한다.
도 2b는 정렬된 오디오 샘플값들(210)을, 본 명세서에서 본래의 순서로서 지칭되는, 정렬되기 이전에 오디오 샘플 값들(200)의 순서로 복구하기 위한 비정렬(unsorting) 또는 순서변경(reordering) 프로세스를 나타내는 개략도이다. 이제 도 2b를 참조로, 순서변경 프로세스는 비-정렬된 오디오 샘플 값들(200)을 본래의 순서로 복구하기 위해 적어도 부분적으로 순열값(212)을 사용한다. 일 실시예에서, 순서변경 프로세스는 순열값(212)에 의해 표현되는 삽입 값들의 순서를 전환(reversing)함으로써, 적어도 부분적으로 오디오 샘플 값들(200)을 본래의 순서로 복구할 수 있다. 이는 정렬된 오디오 샘플 값들(210)로부터 오디오 샘플 값들을 제거하는데 이용될 수 있는 제거 위치들(220)의 리스트를 산출한다. 값이 제거됨에 따라, 우측 또는 좌측에 대한 값들은 갭에 근사하게 이동된다. 도 2b에 도시된 실시예에서, 제 1 제거 위치는 위치 0이다. 따라서, 순서변경 프로세스는 라인 221로부터 0 위치에서 값을 제거하며 복구된 리스트에 상기 값을 배치한다. 제거 포인트들의 리스트(220)에서 다음 제거 위치는 3이다. 따라서, 순서변경 프로세스는 라인 222로부터 3 위치에서 상기 값을 제거하며 복구된 리스트(220)의 다음 위치에 상기 값을 배치한다. 다음 제거 위치는 1이며, 이는 라인 223으로부터 1 위치에서 값을 제거하고 복구된 리스트(220)의 다음 위치에 상기 값을 배치하는 순서변경 프로세스를 산출한다. 다음 제거 포인트는 다시 1이며, 이에 따라 순서변경 프로세스는 라인 224의 1 위치로부터 값들을 제거하고 이를 복구된 리스트(220)의 다음 위치에 배치한다. 마지막으로, 최종 제거 위치는 0이며, 순서변경 프로세스는 복구된 리스트(220)의 다음 위치에 0 위치로부터의 나머지 값을 배치한다. 이들은 단지 순서변경 프로세스와 관련한 예시적인 실시예들이며, 청구되는 주제가 이와 관련하여 제한되지 않는다는 것을 유념해야 한다.
이러한 특정 실시예에서, 제거 위치들은 순열값을 디코딩하기 위한 하나 이상의 연산들(operations)을 수행함으로써 결정될 수 있다. 예를 들어, 순열값이 팩토라딕스(factoradics)를 사용하여 인코딩될 경우, 연속하는 더 작은 팩토리얼들(factorials)로 순열값을 나눔으로써 제거 위치들이 결정될 수 있다. 정렬된 디지털 신호 샘플 값들의 세트가 n 값들을 포함하는 경우, 제 1 제거 위치는 n!로 순열 값을 나눔으로써 결정될 수 있다. 제 2 제거 위치는 n-1!로 제 1 계산의 나머지를 나눔으로써 결정될 수 있다. 차후 제거 위치들은 마찬가지로 모든 제거 위치들이 결정될 때까지 연속하는 더 작은 팩토리얼들로 이전 계산으로부터의 나머지를 나눔으로써 결정될 수 있다. 대안적으로, 일 실시예에서, 나누기 대신 곱셈 프로세스가 사용될 수 있다. 예를 들어, 순열 값의 스케일 근사치는 1/N!에 의하여 곱셈될 수 있다. 이러한 값은 그 후 제1 제거 포인트를 결정하기 위하여 좌측으로 이동될 수 있다. 그러나, 라운딩 에러(rounding error)들로 인하여, 이러한 프로세스는 몇몇 상황들 하에서 정확한 값보다 큰 제거 포인트 값을 생성할 수 있다. 이러한 타입의 에러는 제1 제거 포인트에 대하여 N!와 같은 대략적인 팩토리얼 값과 결정된 제어 포인트 값을 곱셈하고, 곱이 순열 값보다 크지 않음을 검증함으로써 검출될 수 있다. 곱이 순열 값보다 크다면, 결정된 제거 포인트 값을 1만큼 감소시키는 것은 특정 제어 포인트에 대한 정확한 값을 산출해낸다. 유사한 곱셈 및 검증 프로세스가 마찬가지로 후속 제거 포인트들을 결정하는데 사용될 수 있다. 보다 특정한 실시예에 대하여, 정렬된 디지털 신호 샘플 값들의 세트에 11개 값들이 존재하는 경우에, 제1 제거 위치는 11!로 순열 값을 나눔으로써 결정될 수 있다. 제2 제거 위치는 제1 계산으로부터의 나머지를 11-1!로 나눔으로써 결정될 수 있으며, 이는 모든 제거 위치들이 결정될 때까지 계속된다. 물론, 이들은 단지 순서변경 프로세스와 관련되는 예증적인 실시예들이며, 청구되는 내용은 이에 제한되지 않음을 유념해야 한다.
다시 도 1로 돌아가, 인코딩 시스템(100)은 계차(difference) 모듈(118)을 더 포함할 수 있다. 계차 모듈(118)은 정렬된 값들의 세트(114)의 인접한 값들 사이에 계차를 표현하는 나머지들 또는 델타들의 세트를 생성하거나 계산하기 위하여 적어도 부분적으로 정렬된 값(114)상에 동작할 수 있는 하나 이상의 프로세스들을 포함할 수 있다. 예를 들어, 인코딩 시스템(100)은 다른 모든 값들이 상대적인 결정되는, 본 명세서에서 초기 값으로 명명되는 시퀀스의 값을 결정할 수 있다. 이러한 초기 값은 시퀀스의 제1 값, 시퀀스의 마지막 값, 또는 시퀀스의 중간 값과 같은, 정렬된 값들의 시퀀스 또는 블럭의 값들 중 임의의 것일 수 있다. 본 실시예에서, 계차 모듈(118)은 그 후 인접 값에 대응하는 나머지 값을 생성하기 위하여 초기 값과 인접 값 사이의 차를 계산하거나 결정할 수 있다. 계차 모듈(118)은 그 후 다음 인접 값에 대응하는 나머지 값을 생성하기 위하여 인접 값과 다음 인접 값 사이에 계차를 결정하거나 계산할 수 있다. 예를 들어, 초기 값은 중간 값을 포함할 수 있으며, 계차 모듈(118)은 초기 값의 좌측에 대한 제1 값과 초기 값 사이에 계차를 계산할 수 있다. 계차 모듈은 초기 값의 왼쪽에 대한 제1 값과 그것의 왼쪽에 대한 다음 인접 값 사이에 계차를 계산할 수 있다. 마찬가지로, 계차 모듈(118)은 초기 값의 오른쪽에 대한 연속적인 값들 사이의 계차를 유사하게 계산할 수 있다. 이러한 프로세스는 초기 값의 오른쪽 및 왼쪽으로 각각의 값에 대응하는 나머지 값이 존재할 때까지 계속될 수 있다. 특정 실시예에서, 나머지 값들은 값이 증가하거나 감소하도록 값들이 정렬되거나 순서가 정해졌다는 지식을 사용함으로써 양의 값들로서 표현될 수 있다. 초기 값이 양의 값 또는 음의 값을 가질 수 있기 때문에, 초기 값의 사인을 표현하는 비트 값을 인코딩하는 것이 바람직할 수 있다. 예를 들어, 홀수개의 값들 중 중간 값이 초기 값으로서 이용되는 일 실시예에서, 나머지 값이 양인지 또는 음인지 여부는 나머지 값이 대응하는 오디오 값 및 초기 값의 상대적인 위치에 의하여 고려될 수 있다. 예를 들어, 오름차순 정렬에서, 초기 값의 오른쪽에 대한 값을 표현하는 나머지들은 초기 값보다 낮은 값을 갖는 것으로 공지될 것이어서, 음의 계산된 델타는 상대적인 위치가 나머지 값과 연관되는 양의 값 또는 음의 값을 전달하기 때문에 인코딩될 필요가 없을 것이다. 몇몇 상황들 하에서, 초기 값 자신이 양의 값 또는 음의 값인지 여부를 표시하는 메커니즘을 제공하는 것이 바람직할 수 있다.
압축을 목적으로, 변형 이산 코사인 변환(MDCT: modified discrete cosine transform) 또는 유사한 프로세스를 적용하는 몇몇 장점들이 존재할 수 있다는 것을 유념하라. 도 5는 일 실시예에 따른 둘 이상의 서브-대역들로 오디오 샘플 값들을 인코딩하고 인코딩된 서브-대역들로부터 오디오 샘플 값들을 복구하는 개략도이다. 본 실시예에서, 도 1 및 2a와 관련하여 상기 논의된 정렬 프로세스 이전에 오디오 샘플 값들의 블럭들은 하나 이상의 동일하거나 동일하지 않은 폭의 주파수 서브-대역들로 분할될 수 있다. 예를 들어, 인코딩 시스템(100)은 가역변환 모듈(500)을 더 포함할 수 있다. 본 실시예에서, 오디오 샘플 값들은 둘 이상의 서브-대역들을 생성하기 위하여 가역변환 모듈(500)에 의하여 작동될 수 있다. 도 5에 도시된 실시예에서, 상기 논의된 바와 같이 다른 개수의 서브-대역들이 사용될 수 있고, 따라서 청구된 내용이 제공되는 실시예들로 제한되지 않으나, 오디오 샘플 값들은 0에서 7로 넘버링되는 8개의 서브-대역들로 분할될 수 있다. 예를 들어, 인코딩 시스템은 임의의 개수의 서브-대역들로 샘플들을 분할할 수 있다. 실시예들은 4, 8, 16 또는 32를 포함할 수 있으나, 물론 수는 홀수 또는 짝수일 수 있으며, 2의 제곱일 필요는 없다.
일 실시예에서, 가역변환 모듈(500)은 하기에서 더욱 상세히 개시되는 정수 역(integer reversible) 변형 이산 코사인 변환(MDCT)을 포함할 수 있다. 추가의 예시로서, 가역변환 모듈(500)은 웨이블릿 변환(wavelet transform), 확장 랩핑 변환(Extended Lapped transform), 및/또는 계층구조 랩핑 변환(Hierarchical Lapped transform)을 포함할 수 있다. 이들은 단지 인코딩 시스템과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
실시예로서, 변형 이산 코사인 변환(MDCT)은 예를 들어, 하나 이상의 최적의 결과들과 같은 바람직한 결과들을 달성하기 위하여 주기적인 입력 신호 샘플들을 추정한다. 그러나, 일 실시예에서, PCM 오디오 샘플 값들과 같은 샘플 값들은 예컨대 MDCT 입력 주기에 대하여 반드시 주기적이어야 할 필요는 없다. 따라서, 일 실시예에서, 보다 상세히 개시되는 바와 같이, 샘플 값들의 블럭들 사이에 에지 효과들을 처리하기 위하여 적어도 부분적으로 윈도우 함수(windowing function)를 포함하는 것이 바람직할 수 있다. 다시, 이들은 단지 인코딩 시스템과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
또한 그러한 압축 프로세스는 완전히 가역적(reversible)이거나, 또는 정수 가역적인 것이 바람직하다. 몇몇 상황들 하에서, 정수 가역성은 예컨대 무손실 코덱(lossless codec)을 구현하기 위한 요건들일 수 있다. 변환 또는 프로세스가 정수 가역적이라면, 예컨대 32 비트들과 같은 유한 길이의 디지털 값들을 이용하는 절단 효과(truncating effect)로 인하여 발생할 수 있는 에러들은 무효화될 수 있으며, 이것은 바람직한 특징이다. 청구된 내용이 범위가 이로 제한되는 것은 아니지만, MDCT의 한 장점은 정수 가역적인 일련의 매트릭스들을 사용하여 구현될 수 있는 그것의 능력이다. 다수의 다른 변환들이 만족스럽게 이용될 수 있다. 그러나, 하기에서 상세히 개시되는 변형된 MDCT가 일 실시예에서 이용될 수 있기 때문에, 간단한 연산 당 하나의 누계(multiply-add)가 수행되도록, 압축/압축해제 프로세스의 일부로서 구현될 연산들이 더 간단한 연산으로 쪼개지는 이러한 특정 실시예에 대한 방법이 개시되고, 하기에서 보다 상세히 설명된다. 따라서, 이러한 특정 실시예에 대하여, 압축/압축해제의 구현은 각각의 연산이 정수 가역적인 일련의 연산들을 포함한다.
MDCT의 이러한 특정 구현은 로테이션(rotation) 형태로 다양한 연산들을 구현하는 단계를 수반할 수 있다. 그러나, 예컨대 로테이션 매트릭스들에 의하여 구현될 수 있는 것과 같은 로테이션 연산들은 정수 산술을 통한 구현에 적합한 방식으로 더 간단한 매트릭스들로 분해될 수 있어, MDCT의 구현을 위한 정수 가역성을 보존한다. 상기 설명된 바와 같이, 정수 가역성은 손실 없는 코덱의 구현과 함께 디코딩을 위해 바람직할 수 있다. 본 실시예에서, 이러한 매트릭스들은 윈도우 연산 및 타입-Ⅳ DCT로의 MDCT의 인수분해(factorization)와 같은 MDCT의 효율적인 인수분해를 구현하는데 사용될 수 있다. 다시, 이것은 단지 가역변환과 관련된 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
일 실시예에서, 예컨대 로테이션 매트릭스는 다음과 같은 관계식 [1]에 따른 2개 매트릭스들의 곱으로 분해될 수 있다:
Figure pct00002
일반성을 잃지 않고, 상기 방정식에 대하여, -π ≤ θ < π이다. 하기의 표기법을 도입한다면, 상기 제안된 바와 같이, 로테이션을 구현하기 위하여 일련의 정수 가역적 연산들을 정의할 수 있다. 실시예로서, 하기의 표기법 Q(x)는 양자화 연산자를 지칭한다. 일 실시예는 몇몇 상황들 하에서 입력 값을 초과하지 않는 가장 큰 정수와 동일할 수 있는 플로어(floor) 연산자를 포함할 수 있다. 추가의 예시로서, 하기의 표기법에서, x0 및 x1는 정수들이다.
Figure pct00003
Figure pct00004
따라서, 상기 표기법을 사용하여, 관계식 [1]의 로테이션은 하기와 같은 관계식 [2]에 따라 구현될 수 있다:
Figure pct00005
유사하게, 동일한 표기법을 사용하여, 관계식[2]의 로테이션의 로테이션은 하기와 같은 관계식 [3]에 따라 도치될 수 있다:
Figure pct00006
예를 들어, 상기 관계식 [3]의 제1 연산은 디지털 계산들과 연관되는 유한 길이의 결과로서 도입된 에러 등과 무관하게 관계식 [2]의 제3 연산의 효과를 무효화시킨다. 순열들 및 부정(negation)들은 이러한 연산들이 변수들을 재명명하고 정수 부정을 수행함으로써 달성될 수 있으므로, 유사하게 정수 가역적이다. 따라서, 매트릭스들이 로테이션들, 순열들, 및 부정들로 팩토링됨(factored)에 따라 표현될 수 있는 연산은 원하는 바에 따라 정수 가역적이다.
본 실시예에 대하여, DCT가 주기적 함수이기 때문에 MDCT가 적어도 부분적으로 이용되는 반면, 샘플 값들의 블럭은 이전에 제안된 바와 같이 주기적이지 않다. 따라서, 이러한 주기성의 부족을 고려하도록 블럭들 사이에서 스무스하도록(smooth) MDCT에 윈도우 함수를 적용하는 것이 바람직하다. 유사하게, 윈도우화(windowing)를 위한 하나의 방법은 로테이션 연산들을 이용하는 단계를 수반한다. 그러한 연산들을 이용하는 하나의 장점은 이전에 개시된 바와 같이 연산들이 일련의 정수 가역적 연산들로 분해될(broken down) 수 있다는 것이다.
따라서, 윈도우화는 블럭 t-1의 제2 절반부와 블럭 t의 제1 절반부 사이의 로테이션을 수반하는 연산을 포함할 수 있으며, 여기서 t는 하기와 같이 관계식 [4]에 따라 현재 블럭을 지칭하며, N은 서브-대역들의 개수이다:
Figure pct00007
따라서, 윈도우화된 MDCT는 예컨대 다음과 같이 정의될 수 있다:
Figure pct00008
Figure pct00009
= 블럭 t에 대한 서브대역 m의 변환된 값
Figure pct00010
= 윈도우 함수
Figure pct00011
= 블록킹 이전에 i번째 입력 샘플
Figure pct00012
= 블럭 t의 k번째 입력 샘플; 50% 중첩
따라서, 하기의 관계식들은 다음과 같은 관계식 [4]의 로테이션을 사용하여 구현된 윈도우 연산이 선행되는, DCT-Ⅳ로서 MDCT의 이러한 특정 실시예를 설명한다:
Figure pct00013
간략화된 실시예로서, 상기 바로 앞에 개시된 로테이션들 및 N = 4를 사용하여 다음을 초래할 수 있다:
Figure pct00014
따라서, 이러한 스무딩 방법을 구현하기 위하여, 본 실시예에서 첨자 t-1에 의하여 표시되는 바와 같이, 이전 블럭의 몇몇 샘플 값들을 보유하는 것이 바람직할 수 있다
정수 역 DCT-Ⅳ를 구현하기 위하여, Wang 인수분해가 N 포인트 DCT-Ⅳ 매트릭스
Figure pct00015
의 분해를 획득하기 위하여 정수 가역성이 가능하고, 구현하기에 계산적으로 어렵지 않은 희소 매트릭스(sparse matrix)들의 곱으로 적용될 수 있다는 것을 유념하라. 본 명세서에서 사용될 때, "희소 매트릭스"는 매트릭스 엔트리들의 대부분이 0과 같은 임의의 매트릭스를 포함할 수 있다. 이들은 단지 디지털 샘플들의 인코딩과 관련된 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 1의 인코딩 시스템으로 돌아가, 인코딩 시스템(100)은 Rice 코딩 모듈(120)을 더 포함할 수 있다. 일 실시예에서, 본래의 샘플 값을 제외한 델타 값들을 포함하는 데이터의 특정 블럭은 예컨대 Rice 코드, 또는 적응성 Rice 코드를 사용하여 인코딩될 수 있다. 예시로서, Rice 코드는 몇몇 상황들이 원하는 데이터 압축을 제공할 수 있는 파라미터화된 런-렝스(run-length) 코딩 방식을 포함할 수 있다. 예를 들어, Rice 코드는 데이터 세트의 작은 값들의 개수가 데이터 세트의 큰 값들의 개수를 초과하거나 크게 초과하는 경우 바람직한 압축을 제공할 수 있다. Rice 코딩 방식의 효율성에 영향을 미칠 수 있는 일 양상은 Rice 인코딩 파라미터 k(Rice K)의 선택이다. Rice 코딩 연산은 음이 아닌 정수 N에 대한 파라미터 K와 함께 수행될 수 있다: 예를 들어, S가 N의 K개 최하위 비트들에 대응하고, P가 0으로 라운딩된 2K로 나눠진 N의 정수 몫에 대응한다면, P는 예를 들어, 1을 수반하는 행의 P개 0들을 인코딩함으로써 1진법 코드로서 인코딩될 수 있으며, S는 길이 K의 d이진 코드로서 인코딩될 수 있다. 예를 들어, 불충분한 K 값이 선택된다면, 인코딩되고 있는 값에 대하여 인코딩된 값들이 실질적으로 큰 것이 가능하다. 그러나, 효율적인 K 값이 선택된다면, 인코딩된 데이터는 인코딩되고 있는 값들보다 더 작거나 더 압축되어야 한다. 일 실시예에서, 초기 값 및/또는 나머지 값들을 인코딩하기 위하여 인코딩 시스템(100)에 의하여 사용되는 K 값은 인코딩된 데이터 스트림을 디코딩하는데 사용하기 위하여 디코딩 시스템(도 5와 관련하여 하기에 설명)에 제공될 것이다.
적어도 일 실시예에서, 원하는 K 값은 오디오 샘플 값들의 한 블럭으로부터 오디오 샘플 값들의 다른 블럭으로 크게 변화하지 않을 수 있다. 예를 들어, 인코딩 시스템 실시예(100)가 음악에 대응하는 오디오 샘플 값들상에서 작동 중이라면, K 값은 통상적으로 수 개 값들 중의 값 사이에서 변화할 수 있다. 따라서, 몇몇 상황들 하에서, 인코딩된 신호 샘플 값들의 일부로서, 다시, Rice 인코딩 값으로서 지칭되는 K 값들을 실제로 제공하는 것이 필수적이지 않을 수 있다. 예를 들어, 인코딩된 신호 샘플들과 함께 Rice K 델타 값을 포함하는 것이 바람직할 수 있으며, 델타는 인코딩된 오디오의 이전 블럭에 대하여 사용된 K 값과 현재 K 값 사이에 계차를 표현한다. 다시, 이것은 오디오 데이터의 인코딩과 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않는다.
다른 가능한 실시예에서, 원하는 K 값은 하나 이상의 나머지 값들의 크기에 적어도 부분적으로 기초하여 결정될 수 있다. 예를 들어, xmax의 최대 값을 갖는 샘플 값들의 블럭에 대하여, 몇몇 상황들 하에서, 원하는 K 값은 다음에 따라 제한될 수 있다:
Figure pct00016
몇몇 상황들 하에서, 이것은 원하는 K 값을 N, N+1, N+2, 또는 N+3로 제한되게 할 수 있다. 본 실시예에서, 대부분의 상황들 하에서, 인코딩된 나머지 갓이 압축을 달성하도록 기대되기 때문에, 바운딩된(bounded) Rice 코드를 적용하는 것이 필수적이지 않을 수 있다. 유사하게, K*가 Rice 코딩을 수행하도록 선택된 K 값을 표현한다면, 몇몇 실시예들에서, K*+1를 갖는 선택된 나머지들을 코딩하는 것이 바람직할 수 있다. 청구된 내용은 범위가 이에 제한되는 것은 아니지만, 예를 들어, 블럭의 중간 값이 초기 값으로서 이용되는 상기 개시된 실시예에서, 이러한 값들이 K*+1을 사용하여 코딩된 Rice라면, 통상적으로 바람직한 결과들이 존재할 수 있도록 블럭의 끝에 나머지들의 변화가 정해진다. 추가로, 몇몇 실시예들에 대하여, 이진 코딩이 더 나은 결과들을 제공하는지를 결정하기 위하여 서브-대역의 Rice 인코딩된 값들을 이진 인코딩된 값들과 비교하는 것이 바람직할 수 있다. 예를 들어, 이는 오디오 신호 샘플들을 수반하는 상황들에서 발생할 수 있는데, 여기서 일 실시예로서 묵음(silence)이 코딩된다. 본 실시예에서, 오디오 샘플 값들의 블럭의 제1 서브-대역은 상기 표시된 K 값들과 함께 트라이얼(trial) 인코딩될 수 있다. 더 나은 압축을 야기하는 K 값은 다수의 서브-대역들로 변환된 오디오 샘플 값들의 특정 블럭에 대한 추가의 서브-대역들을 인코딩하는데 사용될 수 있다. 이러한 것들은 단지 인코딩 오딩 샘플들의 인코딩과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 3은 일 실시예에 따라 압축된 데이터 스트림(300)의 개략도이다. 이제 도 3을 참고하여, 블럭 1과 같은 개별적인 데이터 블럭은 다양한 정보를 포함할 수 있다. 예를 들어, 블럭 1은 순열 값, Rice k 델타 값, 및 나머지 값들의 세트를 포함할 수 있으며, 사인 비트는 오디오 샘플들의 초기 값과 연관되는 사인에 대응한다. 이러한 것들은 단지 압축된 데이터 스트림과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 4는 일 실시예에 따른 디코딩 시스템(400)의 개략도이다. 이제 도 4를 참고하여, 디코딩 시스템 실시예(400)는 인코딩된 및/또는 압축된 데이터의 블럭을 수신할 수 있다. 예를 들어, 디코딩 시스템 실시예(400)는 도 3와 관련하여 설명된 데이터의 압축된 블럭들 중 하나와 같은 인코딩된 데이터를 수신할 수 있다. 청구된 내용이 이에 제한되지는 않으나, 일 실시예에서, 데이터의 인코딩된 블럭의 디코딩은 본질적으로 상기 설명된 인코딩 방법의 실시예들의 역(inverse)을 포함할 수 있다. 예를 들어, 디코딩 시스템 실시예(400)는 인코딩된 데이터의 블럭을 수신할 수 있으며, 인코딩된 데이터의 블럭은 순열 값, 인코딩된 나머지 값들의 세트, Rice k 델타, 및/또는 초기 값의 사인에 대응하는 사인 비트를 포함한다. 일 실시예에서, 디코딩 시스템 실시예(400)는 인코딩된 데이터의 현재 블럭과 연관되는 Rice K 값을 결정하기 위하여 인코딩된 데이터의 이전 블럭과 연관되는 이전 Rice K에 Rice k 델타를 부가할 수 있다. 디코딩 시스템(400)은 Rice 디코딩 모듈(420)과 같은 인코딩된 나머지 값의 세트를 디코딩하기 위하여 결정된 Rice K 값을 사용할 수 있다. 그러나, 이것은 단지 디코딩 디지털 값들과 관련된 예증적인 실시예이며, 청구된 내용은 본 실시예로 제한되지 않음을 유념해야 한다.
디코딩 시스템(400)은 연결 모듈(430)을 더 포함할 수 있다. 일 실시예에서, 연결 모듈(430)은 정렬된 샘플들을 복원할 수 있다. 예를 들어, 연결 모듈(430)은 초기 값으로 시작할 수 있다. 상기 논의된 바와 같이, 초기 값은 값들의 정렬된 세트의 제1 값, 값들의 정렬된 세트의 최종 값, 값들의 정렬된 세트의 중간 값에 대응할 수 있다. 인코딩 시스템이 오름차순을 이용한 일 실시예에서, 초기 값은 정렬된 값들의 세트의 가장 작은 값에 대응한다. 본 실시예에서, 연결 모듈(430)은 오름차순으로 정렬된 샘플들을 복원하기 위하여 연속적인 나머지 값들을 부가할 것이다. 다른 실시예에서, 초기 값은 값들의 정렬된 세트의 중앙 값에 대응할 수 있다. 본 실시예에서, 연결 모듈(430)은 샘플 값들을 복원하기 위하여 초기 값에 관한 그들의 위치에 따라 연속적인 나머지 값들을 부가하거나 차감할 수 있다. 본 실시예에서, 연결 모듈(430)은 샘플 값들의 정렬된 세트(432)를 생성할 수 있다. 이러한 것들은 단지 정렬된 값들의 복원과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
일 실시예에서, 디코딩 시스템(400)은 순서변경 모듈(440)을 더 포함할 수 있다. 순서변경 모듈(440)은 비정렬 방법을 사용하는 것과 같이, 본래의 순서 또는 정렬되기 이전의 순서로 샘플의 정렬된 세트(432)를 복구시키기 위하여 적어도 부분적으로 수신된 순열 값을 사용할 수 있다. 예를 들어, 순서변경 모듈(440)은 도 2b와 관련하여 상기 설명된 방식과 같은 비정렬 방식을 이용할 수 있다. 물론, 이는 단지 값들의 디코딩과 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
일 실시예에서, 순열 값은 적어도 부분적으로 팩토라딕스를 이용하는 단계에 의하여 표현될 수 있다. 본 실시예에서, 순열 값은 도 2b와 관련하여 상기 논의된 제거 위치들의 리스트를 생성하기 위하여 적어도 부분적으로 팩토링될 수 있다. 일 실시예에서, 순열 값은 몫과 나머지를 획득하기 위하여 성공적으로 더 작은 팩토리얼들로 값을 나눔으로써 팩토링된다. 예를 들어, 11의 샘플 블럭 크기를 사용하여, 인코딩된 순열 값은 먼저 10!로 나뉜다. 본 실시예에서, 몫은 순서변경 모듈(440)에 의하여 10번째 제거 위치로서 처리될 수 있다. 디코딩 시스템 실시예(400)는 이제 9!로 나머지를 나눌 수 있다. 결과적인 몫은 9번째 제거 위치로서 순서변경 모듈(400)에 의하여 처리될 수 있다. 디코딩 시스템 실시예(400)는 유사하게 8번째 제거 위치를 결정하기 위하여 8!로 이러한 연산으로부터의 나머지를 나누고, 7번째 제거 위치를 결정하는데 사용하기 위하여 나머지를 나눌 수 있다. 디코딩 시스템 실시예(400)는 정렬된 값의 세트에 대한 제거 위치들을 결정하기 위하여 성공적으로 더 작은 팩토리얼들로 이전 연산들로부터의 나머지를 계속해서 나눌 수 있다. 순서변경 모듈(430)은 그 후 값들의 세트의 본래의 순서를 복원하기 위하여, 상기 개시된 바와 같이 제거 위치들의 세트를 사용할 수 있다. 다시, 이는 단지 값들의 디코딩과 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
다시 도 5를 참고하여, 본 실시예에서, 가역변환 모듈(500)은 수신된 PCM 오디오 샘플들에 기초하여 상이한 주파수 서브-대역들을 표현하는 8개의 개별 블럭들의 데이터를 생성할 수 있다. 본 실시예에서, 주파수 서브-대역 데이터의 블럭들은 각각 11 값들을 포함할 수 있으며, 물론, 청구된 내용은 이러한 실시예들로 제한되지 않는다. 몇몇 상황들 하에서, 음악을 나타내는 오디오 값들은 더 높은 주파수들에서보다 더 낮은 주파수들에서 더 많은 에너지를 포함할 수 있다. 도 5에서 도시되는 바와 같이, 더 높은 주파수 범위들에 대응하는 더 높게 넘버링된 서브-대역들은 더 낮은 주파수 범위들에 대응하는 더 낮게 넘버링된 주파수 서브-대역들보다 더 작은 값들을 포함할 수 있다. 이러한 상황들에서, 더 높은 주파수 서브-대역들은 더 낮은 주파수 서브-대역들보다 더 적은 비트들을 사용하여 인코딩될 수 있다. 그러나, 몇몇 상황들 하에서, 입력 값들보다 더 큰 출력 값들을 생성하는 것이 가능할 수 있다는 것을 유념해야 한다. 예를 들어, 몇몇 상황들 하에서, MDCT에 의하여 프로세싱된 이후에 16 비트 PCM 입력 샘플 값은 19 비트들만큼 큰 출력 값들을 생성할 수 있다. 물론, 이것은 단지 오디오 값들의 인코딩과 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
본 실시예에서, 가역변환 모듈(500)에 의하여 생성된 서브-대역들은 인코딩 시스템(100)과 관련하여 상기 설명된 것과 같이 개별적으로 인코딩될 수 있다. 예를 들어, 서브-대역은 상기 설명된 것과 같은 압축 프로세스의 일 실시예를 사용하여 독립 스트림으로서 다른 서브-대역들을 고려하지 않고 상기 개시된 바와 같이 인코딩될 수 있다. 서브-대역들에 대한 인코딩된 데이터는 도 6과 관련하여 도시된 바와 같이 압축된 데이터의 스트림에서 인터리빙(interleave)될 수 있으며, 여기서 압축된 데이터의 스트림은 8개 블럭들을 포함하는 프레임을 갖는 일련의 프레임들을 포함하고, 블럭은 11개 압축된 값들을 포함한다. 다시, 이러한 것들은 단지 데이터의 인코딩과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
다시 도 5를 참고하여, 본 실시예에서, 도 3 및 2b와 관련하여 상기 논의된 정렬 프로세스 이후에, 서브-대역 데이터의 블럭들은 본래의 오디오 샘플 값들을 복구하는데 사용될 수 있다. 예를 들어, 디코딩 시스템 실시예(300)는 역 가역변환(inverted reversible transformation) 모듈(510)을 더 포함할 수 있다. 본 실시예에서, 서브-대역 데이터는 본래의 오디오 데이터를 생성하기 위하여 역 가역변환 모듈(510)에 의하여 작동될 수 있다. 상기 논의된 바와 같이, 다른 개수의 서브-대역들이 사용될 수 있고, 따라서 청구된 내용이 제공된 실시예들로 제한되지 않으나, 도 5에 도시된 실시예에서, 8개 서브-대역들에 대응하는 데이터의 블럭들이 도시된다. 예를 들어, 인코딩 시스템은 예컨대 이전에 논의된 바와 같이, 4, 8, 16 또는 32 서브-대역들과 같이 임의의 개수의 서브-대역들로 샘플들을 분할할 수 있다. 일 실시예에서, 역 가역변환 모듈(510)은 반전된 완전한 정수 역 변형 이산 코사인 변환을 포함할 수 있다. 다른 실시예에서, 오디오 샘플 값들은 예컨대 웨이블릿 변환, 확장 랩핑 변환, 및/또는 계층구조 랩핑 변환과 같은 다수의 다른 가능한 가역변환들 중 임의의 것에 의하여 작동될 수 있다. 다시 도 5를 참고하여, 일 실시예에서, 서브-대역 데이터의 8개 블럭들은 역 가역변환 모듈(510)에 의하여 수신될 수 있다. 본 실시예에서, 역 가역변환 모듈(510)은 서브-대역 데이터의 수신된 8개 블럭들에 기초하여 본래의 8개 PCM 오디오 샘플들을 생성할 수 있다. 다시, 이러한 것들은 단지 인코딩 및/또는 디코딩과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 6은 일 실시예에 따른 압축된 데이터 스트림(600)을 도시하는 개략도이다. 도 6을 참고하여, 압축된 데이터 스트림(600)은 프레임0, 프레임1, 프레임2, 프레임n까지와 같은 하나 이상의 데이터 프레임들을 포함할 수 있다. 도시되는 바와 같이, 프레임2와 같은 예시적인 프레임과 관련하여, 프레임은 가역변환(500)에 의하여 생성된 서브-대역들에 대응하는 데이터의 블럭을 포함한다. 본 실시예에서, 가역변환 모듈(500)은 8개 서브-대역들을 생성하여, 압축된 데이터 스트림의 프레임은 8개 생성된 서브-대역들에 대응하는 데이터의 8개 블럭들을 포함한다. 다시, 임의의 개수의 서브-대역들이 사용될 수 있으며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다. 도 6에 도시된 바와 같이, 서브-대역1에 대응하는 서브-대역 데이터의 예시적인 블럭과 관련하여, 서브-대역 데이터의 블럭은 인코딩 시스템 실시예(100)와 관련하여 상기 개시된 바와 같이 인코딩될 수 있다. 예를 들어, 서브-대역 데이터의 블럭은 순열 값, Rice K 델타 값, 서브-대역 데이터의 블럭에 대한 나머지 값들의 세트, 및 서브-대역 데이터의 블럭으로부터의 초기 값에 대응하는 사인 비트를 포함할 수 있다.
일 실시예에서, 데이터의 압축된 스트림은 디코딩 시스템 실시예(400)와 관련하여 상기 설명된 디코딩 기술을 사용하여 압축해제될 수 있다. 예를 들어, 디코딩 시스템 실시예(400)는 압축된 데이터를 수신할 수 있다. Rice K 격차에 적어도 부분적으로 기초하여, 디코딩 시스템 실시예(400)는 서브-대역 데이터의 블럭의 나머지 값들을 디코딩하기 위한 K 값을 결정할 수 있다. 상기 논의된 바와 같이, 몇몇 실시예들에 대하여, 값 K + 1은 블럭의 종점들에서 나머지 값들과 같은 더 높은 변화들을 갖도록 기대될 수 있는 나머지들에 대하여 이용될 수 있다. 디코딩 시스템 실시예(400)는 서브-대역 데이터의 블럭에 대한 나머지들의 세트를 결정하기 위하여 Rice 디코딩 모듈(420)과 함께 결정된 K 값을 사용할 수 있다. 일 실시예에서, 디코딩 시스템 실시예(400)는 정렬된 샘플들을 생성하기 위하여 연결 모듈(430)과 함께 나머지 값들 및 초기 값을 사용할 수 있다. 또한, 디코딩 시스템 실시예(400)는 순서변경 모듈(440)을 사용하여 생성된 정렬된 샘플들에 적어도 부분적으로 기초하여 본래의 서브-대역 데이터를 생성할 수 있다. 본래의 서브-대역 데이터가 압축된 데이터 스트림으로부터 복구되면, 디코딩 시스템 실시예(400)는 복구된 서브-대역 데이터로부터 본래의 오디오 샘플들을 복원하기 위하여 적어도 부분적으로 반전 역 디코딩 모듈(510)을 사용할 수 있다. 물론, 이러한 것들은 단지 데이터 디코딩과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 7a는 일 실시예에 따른 인코딩 방법(700)의 흐름도를 도시한다. 박스(700)와 관련하여, 인코딩 방법(700)은 2개의 가능한 경로, 즉, 경로(702) 및 경로(704)를 초기에 포함할 수 있다. 경로(702) 및 박스(705)와 관련하여, 인코딩 방법(700)은 PCM 샘플들의 시퀀스를 이진 인코딩하기 위한 것과 같은 원시 코드 길이를 계산할 수 있다. 경로(704)와 관련하여, 인코딩 방법 실시예(700)는 또한 PCM 샘플 값들의 시퀀스상에 다수의 연산들을 수행할 수 있다. 예를 들어, 블럭(706)을 참고하여, 인코딩 방법 실시예(700)는 샘플 값들의 정렬된 세트를 생성하기 위하여 상기 논의된 정렬 기술들 중 하나를 사용하는 등의 방법으로 샘플 값들을 정렬할 수 있다. 정렬된 샘플들의 세트는 예를 들어, 오름차순으로 정렬된 샘플 값들의 세트 또는 내림차순으로 정렬된 샘플 값들의 세트를 포함할 수 있다. 추가로, 블럭(708)을 참고하여, 인코딩 방법 실시예(700)는 샘플들의 정렬된 세트에 대한 나머지들의 세트를 계산할 수 있다. 예를 들어, 인코딩 방법 실시예(700)는 본래의 샘플 값을 결정할 수 있으며, 본래의 샘플 값과 본래의 샘플 값의 좌측 및/또는 우측에 위치된 인접 샘플들 사이에 계차를 계산할 수 있다. 추가의 실시예로서, 인코딩 방법 실시예(700)는 샘플 값의 정렬된 세트에 대응하는 나머지 값들의 세트를 생성하기 위하여 연속하는 인접 샘플 값들 사이에 계차를 추가로 계산할 수 있다. 물론, 이러한 것들은 단지 인코딩 방법과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
다시 도 7을, 특히 박스(710)를 참고하여, 인코딩 방법 실시예(700)는 샘플 값의 정렬된 세트를 인코딩하기 위한 바람직한 Rice K 값을 추가로 계산할 수 있다. 예를 들어, 몇몇 상황들 하에서, 바람직한 Rice K 값을 사용하는 인코딩은 소소한 압축 장점들을 제공할 수 있다. 박스(712)와 관련하여, 인코딩 방법 실시예(700)는 경로(704)를 따라 인코딩된 이러한 샘플 값들의 비트 길이와 2진 인코딩된 샘플 값들의 비트 길이를 비교할 수 있다. 따라서, 인코딩 방법 실시예(700)는 경로(704)가 경로(702)와 관련하여 압축을 제공하는지 및 데이터의 후속 블럭들 및/또는 경로(716) 또는 경로(718)에 후속하는 다른 서브-대역들의 인코딩 여부를 결정할 수 있다. 다시, 이는 단지 데이터 인코딩과 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
블럭(714)과 관련하여, 인코딩 방법 실시예(700)는 경로(702)로부터의 인코딩을 사용하는지 또는 경로(704)로부터의 인코딩을 사용하는지 여부를 결정할 수 있다. 예를 들어, 경로(702)가 적용된다면, 인코딩 방법 실시예(700)는 경로(716)를 따를 수 있다. 블럭(720)과 관련하여, 인코딩 방법 실시예(700)는 이진 코딩이 이용됨을 표시하기 위하여 코드를 제공할 수 있다. 예를 들어, 인코딩 방법 실시예(700)는 Rice 인코딩을 사용하는 인코딩 보다는 데이터의 후속 블럭이 이진으로서 인코딩될 수 있는 디코딩 방법 실시예를 통지하기 위하여 코드로서 하나 이상의 비트 시퀀스들을 지정할 수 있다. 이는 단지 인코딩 방법 실시예와 관련되는 예증적인 실시예이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
이제 박스(722)를 참고하여, 인코딩 방법 실시예(700)는 비트 폭을 인코딩할 수 있다. 본 실시예에서, 비트 폭은 예를 들어, 후속 이진 인코딩된 데이터가 얼마나 길 것인지에 대한 표시를 포함할 수 있다. 박스(724)와 관련하여, 인코딩 방법 실시예(700)는 후속 송신을 위한 것과 같이 오디오 샘플 값들을 이진 인코딩할 수 있다. 이러한 것들은 단지 인코딩 방법과 관련되는 예증적인 실시예들임을 유념해야 한다.
그러나, 인코딩 방법 실시예(700)가 경로(704)를 따라 인코딩된 오디오 샘플 값들이 경로(702)로부터의 이진 코딩된 오디오 샘플 값들보다 더 작은 비트 길이를 갖는 것으로 결정하면, 인코딩 방법 실시예(700)는 경로(718)를 따라 진행될 수 있다. 박스(726)와 관련하여, 인코딩 방법 실시예(700)는 샘플 값들의 정렬된 세트에 대한 순열 값을 제공할 수 있다. 박스(728)와 관련하여, 인코딩 방법 실시예(700)는 Rice K 값, 또는 Rice K 델타를 제공할 수 있다. 박스(730)와 관련하여, 인코딩 방법 실시예(700)는 계산된 나머지 값들을 Rice 인코딩할 수 있다. 인코딩 방법 실시예(700)에 의하여 어느 경로가 선택되는지와 무관하게, 오디오 샘플들이 어느 한 경로를 따라 인코딩된 이후에, 인코딩 방법 실시예(700)는 그 후 예컨대 특정 실시예에 따라 박스(732)에서 송신 또는 저장을 위해 인코딩된 오디오 샘플들을 준비할 수 있다. 다시, 이러한 것들은 단지 인코딩 방법과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 7a에서 도시되고 상기 논의된 바와 같이, 오디오 샘플 값들의 후속 블럭들은 오디오 샘플 값들의 이전 인코딩된 블럭에 적어도 부분적으로 기초하여 인코딩될 수 있다. 예를 들어, 박스(710)에서, 인코딩 방법 실시예(700)는 박스(734)에서 도시된 바와 같이 이전 Rice K 값에 적어도 부분적으로 기초하여 바람직한 Rice K 값을 계산할 수 있다. 추가로, 박스(728)와 관련하여, Rice K 델타는 결정된 바람직한 Rice K 값과 이전 Rice K 값 사이에 계차를 계산함으로써 결정될 수 있다. 다시, 이러한 것들은 단지 인코딩 방법과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 7b는 일 실시예에 따른 다중-채널 인코딩 방법(750)을 도시한다. 도 7b와 관련하여, 몇몇 상황들 하에서, 다중채널 오디오는 압축을 증가시키기 위하여 적어도 부분적으로 상이하게 프로세싱될 수 있다. 예를 들어, 다중-채널 오디오의 채널들 중 하나 이상이 밀접하게 상관된다면, 추가의 압축이 각각의 채널을 개별적으로 인코딩함으로써 달성될 수 있는 압축과 관련한 제2 채널에 적어도 부분적으로 기초하여 하나의 채널을 인코딩함으로써 몇몇 상황들 하에서 달성될 수 있다. 몇몇 상황들 하에서, 다중-채널 오디오는 인코딩 방법, 시스템, 또는 장치로 개별적인 입력 스트림들로서 처리된 채널들과 함께 인코딩될 수 있다. 그러나, 몇몇 상황들 하에서, 예컨대 좌측 및 우측 채널들 사이에 상대적으로 밀접한 상관이 존재한다면, 스테레오 오디오에 대한 것과 같이, 추가적 압축이 달성될 수 있다.
그러한 일 실시예에서, 좌측 및 우측 채널 오디오 데이터는 가역적 "중간/사이드(mid/side)" 벡터 로테이션 변환을 사용하여 결합될 수 있고, 몇몇 상황들 하에서, 이는 개별적인 채널들의 인코딩보다 더 높은 압축 비율을 달성할 수 있다. 다시 도 7b를 참고하여, 다중-채널 인코딩 방법 실시예(750)는 블럭(752)에서 PCM 오디오 샘플 값들과 같은 하나 이상의 오디오 샘플 값들을 판독할 수 있다. 블럭(754)과 관련하여, 다중채널 인코딩 방법(750)은 상기 논의된 변형 DCT와 같이, 오디오 샘플들상에 가역변환을 수행할 수 있다. 박스(756)와 관련하여, 다중-채널 인코딩 방법 실시예(750)는 도 7a와 관련하여 상기 논의된 바와 같이 독립 데이터 스트림들로서 좌측 및 우측 채널들 모두에 대응하는 오디오 샘플 값들의 트라이얼 서브-대역을 인코딩할 수 있다. 박스(758)와 관련하여, 다중-채널 인코딩 방법 실시예(750)는 또한 좌측 및 우측 채널들에 대응하는 트라이얼 서브-대역들상에 중간/사이드 벡터 로테이션을 수행할 수 있다. 박스(760)와 관련하여, 다중-채널 인코딩 방법 실시예(750)는 그 후 변환된 서브-대역을 트라이얼 인코딩할 수 있다. 박스(762)와 관련하여, 다중-채널 인코딩 방법 실시예(750)는 그 후 트라이얼 인코딩된 서브-대역들 중 어느 것이 더 나은 압축 비율을 달성하였는지를 결정하고, 이러한 결정에 기초하여 상기 서브-대역을 인코딩하는 방법을 결정할 수 있다. 몇몇 상황들 하에서, 상기 개시된 바와 같이 트라이얼 인코딩이 각각의 서브-대역에 대하여 수행될 수 있다. 그러나, 제1 서브-대역상에 트라이얼 인코딩을 수행하는 것이 계산적으로 바람직할 수 있다. 예를 들어, 제1 서브-대역이 통상적으로 나머지 서브-대역들보다 많은 에너지를 갖는다면, 나머지 서브-대역들이 트라이얼 서브-대역들에 대한 유사한 압축 비율들을 달성할 높은 확률(good probability)이 존재할 수 있다. 이러한 상황들 하에서, 어느 접근법이 트라이얼 서브-대역에서 더 우수한 압축을 달성하였는지에 기초하여 나머지 서브-대역들을 인코딩하는 것이 바람직할 수 있다. 예를 들어, 박스(756)로부터의 트라이얼 인코딩된 서브-대역이 박스(760)로부터의 트라이얼 인코딩된 서브-대역보다 더 압축되었다면, 다중-채널 인코딩 방법 실시예(750)는 박스(766)로 진행됨으로써, 박스(764)에서 박스(756)와 관련하여 사용된 것과 동일한 접근법으로 나머지 서브-대역들을 인코딩하도록 선택할 수 있다. 그러나, 박스(760)로부터의 트라이얼 인코딩된 서브-대역이 박스(756)로부터의 트라이얼 인코딩된 서브-대역보다 더 압축되었다면, 다중-채널 인코딩 방법 실시예(750)는 박스(764)에서 박스(756)와 관련하여 사용된 것과 동일한 접근법으로 나머지 서브-대역들을 인코딩하도록 선택할 수 있고, 박스(768)로 직접 진행될 수 있다. 박스(770)와 관련하여, 다중-채널 인코딩 방법 실시예(750)는 데이터의 특정 블럭에 대한 추가의 서브-대역들이 남아있는지를 관찰하도록 체크할 수 있다. 추가의 서브-대역들이 남아있다면, 다중-채널 인코딩 방법 실시예(750)는 경로(772)를 따라 진행될 수 있고, 나머지 서브-대역들을 인코딩하기 위하여 적절한 연산들을 반복할 수 있다. 그러나, 추가의 서브-대역들이 특정 데이터 블럭에 대하여 남아있지 않다면, 다중-채널 인코딩 방법 실시예(750)는 774를 따라 진행될 수 있고, PCM 샘플 값들의 더 많은 블럭들의 인코딩을 시작하기 위하여 블럭(752)으로 리턴될 수 있다. 몇몇 상황들 하에서, 좌/우 또는 중간/사이드를 사용하는 것의 결정이 좌측 및 우측 채널 오디오 샘플 값들의 모든 블럭에 대하여 이루어질 수 있다. 물론, 이러한 것들은 단지 다중채널 인코딩 방법 실시예와 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 8a는 일 실시예에 따른 디코딩 방법 실시예(800)의 흐름도를 도시한다. 박스(802)와 관련하여, 디코딩 방법 실시예(800)는 이진 코드에 대한 수신된 인코딩된 오디오 샘플 값들을 테스트할 수 있다. 이진 코드가 검출된다면, 디코딩 방법 실시예(800)는 박스(804)에서 경로(805)를 따른 이진 디코딩과 함께 진행되도록 결정할 수 있다. 그러나, 이진 코드가 검출되지 않는다면, 디코딩 방법 실시예(800)는 박스(804)에서 경로(806)를 따른 MDCT 디코딩과 함께 진행되도록 결정할 수 있다. 경로(805)와 관련하여, 디코딩 방법 실시예(800)는 박스(808)에서 인코딩된 오디오의 비트 폭을 프로세싱할 수 있다. 디코딩 방법 실시예(800)는 그 후 박스(810)에서 오디오 샘플 값들을 판독할 수 있다. 이러한 것들은 단지 디코딩 방법과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
경로(806)와 관련하여, 디코딩 방법 실시예(800)는 박스(812)에서 수신된 인코딩된 오디오로부터 순열 값을 판독할 수 있다. 박스(814)와 관련하여, 디코딩 방법 실시예(800)는 수신된 인코딩된 오디오로부터 Rice K 값 또는 Rice K 델타 값을 판독할 수 있다. 박스(816)와 관련하여, 디코딩 방법 실시예(800)는 이전 Rice K 값 및 수신된 Rice K 델타에 적어도 부분적으로 기초하여 Rice K 값을 계산할 수 있다. 박스(818)와 관련하여, 디코딩 방법 실시예(800)는 하나 이상의 인코딩된 나머지 값들 및 결정된 Rice K 값에 적어도 부분적으로 기초하여 수신된 인코딩된 오디오로부터 하나 이상의 나머지 값들을 Rice 디코딩할 수 있다. 박스(820)와 관련하여, 디코딩 방법 실시예(800)는 정렬된 오디오 샘플 값들의 세트와 같이, 오디오 샘플 값들의 세트를 복원하기 위하여 디코딩된 나머지 값들을 사용할 수 있다. 박스(822)와 관련하여, 디코딩 방법 실시예(800)는 그 후 도 2b와 관련하여 상기 설명된 것과 같이, 정렬된 오디오 샘플 값들의 세트에 대한 본래의 순서를 복구하기 위하여 적어도 부분적으로 박스(812)로부터의 순열 값을 사용할 수 있다. 이러한 것들은 단지 디코딩 방법 실시예와 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
도 8b는 일 실시예에 따른 다중-채널 디코딩 방법 실시예(850)의 흐름도이다. 본 실시예에서, 다중-채널 디코딩 방법 실시예(850)는 인코딩된 다중-채널 오디오를 수신할 수 있다. 박스(852)와 관련하여, 다중-채널 디코딩 방법 실시예(850)는 수신된 인코딩된 다중-채널 오디오로부터 모드 비트를 판독할 수 있다. 본 실시예에서, 모드 비트는 수신된 인코딩된 다중채널 오디오가 인코딩된 모드에 관한 정보를 다중-채널 디코딩 방법 실시예(850)에 제공할 수 있다. 예를 들어, 도 7b와 관련하여 상기 논의된 바와 같이, 모드 비트는 수신된 인코딩된 다중-채널 오디오가 개별 데이터 스트림들로서 채널들로 인코딩되었는지 여부, 또는 수신된 인코딩된 다중-채널 오디오가 중간/사이드 변환으로 인코딩되었는지 여부를 다중-채널 디코딩 방법 실시예(850)에 통지할 수 있다. 박스(854)와 관련하여, 다중-채널 디코딩 방법 실시예(850)는 인코딩된 다중-채널 오디오의 제1 서브-대역을 디코딩하도록 진행될 수 있다. 다중-채널 디코딩 방법 실시예(850)는 적어도 부분적으로 박스(852)로부터의 판독 모드 비트에 따라 경로(856) 또는 경로(858) 중 하나를 따라 진행될 수 있다.
다중-채널 디코딩 방법 실시예(850)가 경로(858)를 따라 진행된다면, 박스(860)에서, 다중-채널 디코딩 방법 실시예(850)는 박스(862)로 진행되기 이전에 현재 서브-대역에 반전 중간-측면(mid-side) 변환을 수행할 것이다. 다중-채널 디코딩 방법 실시예(850)가 경로(856)를 따라 진행된다면, 박스(862)로 직접 진행될 것이다. 박스(862)와 관련하여, 다중-채널 디코딩 방법 실시예(850)는 현재 서브-대역과 연관되는 추가의 서브-대역들이 존재하는지를 결정할 것이다. 추가 서브-대역들이 존재한다면, 다중-채널 디코딩 방법 실시예(850)는 박스(852)로 리턴하고, 추가 서브-대역들에 대한 상기 프로세스를 반복할 것이다. 그러나, 추가 서브-대역들이 존재하지 않는다면, 다중-채널 디코딩 방법 실시예(850)는 박스(864)로 진행될 것이다. 박스(864)와 관련하여, 다중-채널 디코딩 방법 실시예(850)는 상기 논의된 역 변형 DCT와 같이 역 가역변환(inverse reversible transform)을 수행할 것이다. 박스(866)와 관련하여, 다중-채널 디코딩 방법 실시예(850)는 재생 또는 다른 프로세싱을 위한 복구된 PCM 오디오 샘플 값들을 제공할 것이고, 다시, 이러한 것들은 단지 디코딩 방법과 관련되는 예증적인 실시예들이며, 청구된 내용은 이에 제한되지 않음을 유념해야 한다.
상기 설명에서, 청구되는 주제에 대한 다양한 양상들이 개시되었다. 설명을 위해, 특정 개수, 시스템 및/또는 구성들은 청구되는 주제의 전반적 이해를 위해 개시되었다. 그러나, 본 발명의 장점을 이해하는 당업자들은 청구되는 주제가 특정 사항 없이도 본 발명의 장점이 실행될 수 있다는 것을 인식할 것이다. 다른 예들에서, 당업자들에 의해 인식되는 특징은 청구되는 주제의 명료화를 위해 생략 및/또는 요약되었다. 소정의 특징들이 본 발명에 예시 및/또는 개시되었지만, 다양한 변조, 치환, 변환 및/또는 등가물을 당업자들은 구현할 것이다. 따라서, 첨부되는 청구항들은 청구되는 주제의 실제 범주에서 이러한 변형 및/또는 변화를 모두 포함하도록 의도된 것임이 이해될 것이다.

Claims (85)

  1. 디지털 신호 샘플들의 시퀀스를 압축하는 방법으로서,
    상기 디지털 신호 샘플들의 시퀀스를 크기(magnitude)에 따라 정렬(sort)하는 단계;
    상기 정렬된 디지털 신호 샘플들 간의 계차(difference)들을 계산하는 단계; 및
    상기 샘플들 중 하나 이상, 상기 계차들 및 상기 디지털 신호 샘플들의 정확한 순서를 사용하여 상기 시퀀스를 표현하는 단계
    를 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  2. 제1항에 있어서,
    정렬하는 단계는 오름차순 또는 내림차순으로 상기 시퀀스를 정렬하는 단계를 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  3. 제1항에 있어서,
    상기 디지털 신호 샘플들은 오디오 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  4. 제3항에 있어서,
    상기 오디오 디지털 신호 샘플들은 음악의 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  5. 제3항에 있어서,
    상기 오디오 디지털 신호 샘플들은 펄스 코드 변조된(PCM: pulse code modulated) 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  6. 제1항에 있어서,
    상기 시퀀스는 홀수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로(by magnitude) 상기 시퀀스의 적어도 중간 샘플을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  7. 제2항에 있어서,
    상기 시퀀스는 짝수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로 상기 시퀀스의 2개의 중간 샘플들 중 적어도 하나를 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  8. 제1항에 있어서,
    정렬하는 단계 이전에, 적어도 부분적으로 상기 디지털 신호 샘플들을 다수의 주파수 서브-대역들로 변환하기 위하여 상기 디지털 신호 샘플들에 정수 가역변환(integer reversible transformation)을 적용하는 단계를 더 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  9. 제8항에 있어서,
    상기 정수 가역변환은 변형 이산 코사인 변환(MDCT: modified discrete cosine transform)을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  10. 제8항에 있어서,
    상기 다수의 주파수 서브-대역들은 짝수개의 주파수 서브-대역들을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  11. 제10항에 있어서,
    상기 다수의 주파수 서브-대역들은 4개, 8개, 16개 또는 32개의 주파수 서브-대역들 중 적어도 하나를 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  12. 제8항에 있어서,
    상기 다수의 주파수 서브-대역들은 홀수개의 주파수 서브-대역들을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  13. 제1항에 있어서,
    적어도 상기 계차들은 Rice 코딩을 사용하여 인코딩되는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  14. 제1항에 있어서,
    상기 디지털 신호 샘플들의 정확한 순서는 숫자의 이진 디지털 신호 표현으로서 인코딩된 디지털 신호 샘플들의 특정 순열(permutation)을 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  15. 제1항에 있어서,
    이진 디지털 샘플들의 일부 시퀀스들에 대하여, 이진 디지털 인코딩의 시퀀스들은 상기 하나 이상의 시퀀스들에 대한 압축보다 더 적은 비트들을 이용하고, 상기 이진 디지털 샘플들은 압축되기보다는 이진 디지털 인코딩되는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  16. 제1항에 있어서,
    오디오 파일의 제1 채널에 대응하는 제1 정렬된 시퀀스와 오디오 파일의 제2 채널에 대응하는 제2 정렬된 시퀀스 간의 계차에 기초하여 상기 제1 정렬된 시퀀스를 인코딩하는 것이, 상기 제1 정렬된 시퀀스가 인코딩되지 않은 제1 정렬된 시퀀스보다 더 적은 비트들로 표현되는 결과를 가져오는지를 결정하는 단계를 더 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  17. 제16항에 있어서,
    일부 상황하에서, 상기 제1 정렬된 시퀀스와 상기 제2 정렬된 시퀀스 사이의 하나 이상의 계차들에 적어도 부분적으로 기초하여 상기 제1 정렬된 시퀀스를 인코딩하는 단계를 더 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  18. 제16항에 있어서, 상기 결정하는 단계는:
    상기 제1 정렬된 시퀀스의 제1 서브-대역을 인코딩하는 단계; 및
    더 적은 양의 데이터를 포함하는지를 결정하기 위하여 적어도 부분적으로 상기 인코딩된 제1 서브-대역과 상기 제1 서브-대역을 비교하는 단계
    를 포함하는, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  19. 제1항에 있어서,
    압축된 디지털 신호 샘플들의 시퀀스를 압축해제(decompressing)하는 단계를 더 포함하며,
    상기 압축해제하는 단계는, 상기 정확한 순서로 상기 압축된 이진 디지털 신호 샘플들을 배열하는 단계, 및 상기 적어도 하나의 샘플 및 상기 계차들로부터 상기 이진 디지털 샘플들을 계산하는 단계인, 디지털 신호 샘플들의 시퀀스를 압축하는 방법.
  20. 압축된 오디오 데이터를 압축해제하는 방법으로서,
    인코딩된 순열 값에 의하여 명시된 순서로 압축된 이진 디지털 신호 샘플들을 배열하는 단계; 및
    적어도 하나의 완전한(full) 이진 디지털 샘플 및 이진 디지털 샘플 계차들을 프로세싱함으로써 압축해제된 이진 디지털 샘플들을 계산하는 단계
    를 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  21. 제20항에 있어서,
    상기 디지털 신호 샘플들은 오디오 디지털 신호 샘플들을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  22. 제21항에 있어서,
    상기 오디오 디지털 신호 샘플들은 음악의 디지털 신호 샘플들을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  23. 제22항에 있어서,
    상기 오디오 디지털 신호 샘플들은 펄스 코드 변조된(PCM) 디지털 신호 샘플들을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  24. 제20항에 있어서,
    상기 시퀀스는 홀수개의 디지털 신호 샘플들을 포함하며, 상기 적어도 하나의 완전한 이진 디지털 샘플은 크기상으로 상기 시퀀스의 중간 샘플을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  25. 제20항에 있어서,
    상기 시퀀스는 짝수개의 디지털 신호 샘플들을 포함하며, 상기 적어도 하나의 완전한 이진 디지털 샘플은 크기상으로 상기 시퀀스의 중간 샘플을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  26. 제20항에 있어서,
    상기 압축해제된 샘플들을 계산하는 단계 이후에, 역 변형 이산 코사인 변환(IMDCT: inverse modified discrete cosine transform)을 적용하는 단계를 더 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  27. 제26항에 있어서,
    상기 IMDCT는 다수의 복원된(reconstructed) 주파수 서브-대역들을 본래의(original) 디지털 신호 샘플들로 변환하는, 압축된 오디오 데이터를 압축해제하는 방법.
  28. 제27항에 있어서,
    상기 다수의 주파수 서브-대역들은 짝수개의 주파수 서브-대역들을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  29. 제27항에 있어서,
    상기 다수의 주파수 서브-대역들은 홀수개의 주파수 서브-대역들을 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  30. 제20항에 있어서,
    상기 인코딩된 순열은 숫자의 이진 디지털 표현을 포함하며, 상기 숫자는 상기 디지털 신호 샘플들의 시퀀스 내에 일련의 연속적인 재배열들을 표현하고, 상기 일련의 연속적인 재배열들의 실행은 상기 본래의 샘플 순서를 복구하는(recover), 압축된 오디오 데이터를 압축해제하는 방법.
  31. 제20항에 있어서,
    상기 시퀀스가 이진 디지털 인코딩된다면, 상기 시퀀스는 이진 디지털 인코딩됨을 표시하기 위한 신호 정보를 포함하는, 압축된 오디오 데이터를 압축해제하는 방법.
  32. 오디오 데이터를 인코딩하는 방법으로서,
    적어도 부분적으로 샘플링된 오디오 값들의 세트를 생성하기 위하여 오디오 데이터의 제1 블럭을 샘플링하는 단계;
    상기 샘플링된 오디오 값들의 세트를 정렬하는 단계;
    초기에 선택된 값 및 제2 선택된 값으로서 상기 초기에 선택된 값에 인접한 값을 포함하도록, 상기 정렬된 샘플링된 오디오 값들의 세트로부터 적어도 2개의 샘플링된 오디오 값을 선택하는 단계;
    상기 초기에 선택된 값 및 상기 제2 선택된 값 간의 계차를 계산하는 단계;
    상기 블럭에서 다른 인접 값들 사이에 계차를 계산하는 단계; 및
    인코딩된 오디오 데이터의 블럭으로 상기 계산된 계차들과 함께 상기 초기에 선택된 값을 패키징(packaging)하는 단계
    를 포함하는, 오디오 데이터를 인코딩하는 방법.
  33. 제32항에 있어서,
    순열 값을 생성하는 단계를 더 포함하며,
    상기 순열 값은 상기 정렬하는 단계 이전에 상기 샘플링된 오디오 값들의 순서와 관련된 정보를 포함하는, 오디오 데이터를 인코딩하는 방법.
  34. 제32항에 있어서,
    상기 정렬하는 단계는 개별적인 샘플링된 오디오 값들의 크기상으로 상기 샘플링된 오디오 값들의 세트를 배열하는 단계를 포함하는, 오디오 데이터를 인코딩하는 방법.
  35. 제34항에 있어서,
    상기 샘플링된 오디오 값들의 세트를 배열하는 단계는 오름차순으로 상기 샘플링된 오디오 값들을 배열하는 단계를 포함하는, 오디오 데이터를 인코딩하는 방법.
  36. 제34항에 있어서,
    상기 샘플링된 오디오 값들의 세트를 배열하는 단계는 내림차순의 크기로 상기 샘플링된 오디오 값들을 배열하는 단계를 포함하는, 오디오 데이터를 인코딩하는 방법.
  37. 제32항에 있어서,
    상기 샘플링된 오디오 값들의 세트는 홀수개의 샘플링된 오디오 값들을 포함하고, 상기 초기에 선택된 값은 상기 정렬하는 단계 이후의 중심 값을 포함하는, 오디오 데이터를 인코딩하는 방법.
  38. 제32항에 있어서,
    상기 정렬하는 단계 이전에, 상기 샘플링된 오디오 값들에 변형 이산 코사인 변환(MDCT)을 적용하는 단계를 더 포함하는, 오디오 데이터를 인코딩하는 방법.
  39. 제38항에 있어서,
    상기 MDCT는 상기 샘플링된 오디오 값들을 다수의 주파수 서브-대역들로 변환하는, 오디오 데이터를 인코딩하는 방법.
  40. 제39항에 있어서,
    상기 다수의 주파수 서브-대역들은 4개, 8개, 16개 또는 32개의 주파수 서브-대역들 중 적어도 하나를 포함하는, 오디오 데이터를 인코딩하는 방법.
  41. 인코딩된 오디오 데이터를 디코딩하는 방법으로서,
    완전한 샘플링된 오디오 값 및 샘플링된 오디오 값 계차들의 세트에 적어도 부분적으로 기초하여 샘플링된 오디오 값들을 복원하는 단계; 및
    인코딩 이전의 상기 샘플링된 값들의 순서로 상기 복원된 샘플링된 오디오 값들을 배열하는 단계
    를 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  42. 제41항에 있어서,
    상기 인코딩된 오디오 데이터는 순열 값을 포함하며,
    상기 배열하는 단계는 인코딩 이전의 상기 샘플링된 값들의 순서로 상기 복원된 샘플링된 오디오 값들을 배열하도록 상기 복원된 샘플링된 오디오 값들에 상기 순열 값을 적용하는 단계를 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  43. 제42항에 있어서,
    상기 순열 값은 숫자의 이진 디지털 표현을 포함하며, 상기 숫자는 상기 샘플링된 오디오 값들의 이동(move)들의 시퀀스에 대응하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  44. 제41항에 있어서,
    상기 샘플링된 오디오 값들의 세트는 홀수개의 샘플들을 포함하며, 상기 완전한 샘플링된 오디오 값은 상기 복원된 샘플링된 오디오 값들의 중심 값을 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  45. 제41항에 있어서,
    상기 정렬하는 단계 이전에, 상기 인코딩된 오디오 데이터에 역 변형 이산 코사인 변환(IMDCT)을 적용하는 단계를 더 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  46. 제45항에 있어서,
    상기 IMDCT는 다수의 복원된 주파수 서브-대역들을 본래의 오디오 샘플 값들의 세트로 변환하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  47. 제46항에 있어서,
    상기 다수의 주파수 서브-대역들은 4개, 8개, 16개 또는 32개의 주파수 서브-대역들 중 적어도 하나를 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  48. 제41항에 있어서,
    상기 복원된 샘플링된 오디오 값들은 펄스 코드 변조된(PCM) 디지털 오디오 샘플들을 포함하는, 인코딩된 오디오 데이터를 디코딩하는 방법.
  49. 인코딩된 오디오 데이터를 디코딩하기 위한 장치로서,
    완전한 샘플링된 오디오 값 및 샘플링된 오디오 값 계차들의 세트에 적어도 부분적으로 기초하여 샘플링된 오디오 값들을 복원하도록 작동가능한 컴퓨팅 플랫폼을 포함하며,
    상기 컴퓨팅 플랫폼은 상기 복원된 샘플링된 오디오 값들을 인코딩 이전의 상기 샘플링된 값들의 순서로 배열하도록 추가로 작동가능한, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  50. 제49항에 있어서,
    상기 인코딩된 오디오 데이터는 순열 값을 포함하고,
    상기 컴퓨팅 플랫폼은 인코딩 이전의 상기 샘플링된 값들의 순서로 상기 복원된 샘플링된 오디오 값들을 배열하도록 상기 복원된 샘플링된 오디오 값들에 상기 순열 값을 적용하도록 작동가능한, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  51. 제50항에 있어서,
    상기 순열 값은 숫자의 이진 디지털 표현을 포함하며, 상기 숫자는 상기 샘플링된 오디오 값들의 이동들의 시퀀스에 대응하는, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  52. 제49항에 있어서,
    상기 샘플링된 오디오 값들의 세트는 홀수개의 샘플들을 포함하며, 상기 완전한 샘플링된 오디오 값은 상기 복원된 샘플링된 오디오 값들의 중심 값을 포함하는, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  53. 제49항에 있어서,
    상기 컴퓨팅 플랫폼은 상기 오디오 값들의 세트를 배열하기 이전에, 상기 인코딩된 오디오 데이터에 역 변형 이산 코사인 변환(IMDCT)을 적용하도록 추가로 작동가능한, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  54. 제53항에 있어서,
    상기 IMDCT는 다수의 복원된 주파수 서브-대역들을 최초 샘플링된 오디오 값들의 세트로 변환하는, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  55. 제54항에 있어서,
    상기 다수의 주파수 서브-대역들은 4개, 8개, 16개 또는 32개의 주파수 서브-대역들 중 적어도 하나를 포함하는, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  56. 제49항에 있어서,
    상기 복원된 샘플링된 오디오 값들은 펄스 코드 변조된(PCM) 디지털 오디오 샘플들을 포함하는, 인코딩된 오디오 데이터를 디코딩하기 위한 장치.
  57. 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치로서,
    디지털 신호 샘플들의 시퀀스를 크기에 따라 정렬하도록 작동하는 컴퓨팅 플랫폼을 포함하고,
    상기 컴퓨팅 플랫폼은, 상기 정렬된 디지털 신호 샘플들 간의 계차들을 계산하도록 작동가능하며; 그리고
    상기 컴퓨팅 플랫폼은 상기 샘플들 중 하나 이상, 상기 계차들, 및 상기 디지털 신호 샘플들의 정확한 순서를 사용하여 상기 시퀀스를 표현하도록 작동가능한, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  58. 제57항에 있어서,
    상기 컴퓨팅 플랫폼은 상기 시퀀스를 오름차순 또는 내림차순으로 정렬하도록 작동가능한, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  59. 제57항에 있어서,
    상기 디지털 신호 샘플들은 오디오 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  60. 제59항에 있어서,
    상기 오디오 디지털 신호 샘플들은 음악의 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  61. 제59항에 있어서,
    상기 오디오 디지털 신호 샘플들은 펄스 코드 변조된(PCM) 디지털 신호 샘플들을 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  62. 제57항에 있어서,
    상기 시퀀스는 홀수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로 적어도 상기 시퀀스의 중간 샘플을 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  63. 제57항에 있어서,
    상기 시퀀스는 짝수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로 상기 시퀀스의 중간 2개 샘플들 중 적어도 하나를 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  64. 제57항에 있어서,
    상기 컴퓨팅 플랫폼은 정렬 이전에, 적어도 부분적으로 상기 디지털 신호 샘플들을 다수의 주파수 서브-대역들로 변환하기 위하여 상기 디지털 신호 샘플들로의 정수 가역변환을 적용하도록 추가로 작동가능한, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  65. 제64항에 있어서,
    상기 정수 가역변환은 변형 이산 코사인 변환(MDCT)을 포함하는, 디지털 신호 샘플들의 시퀀스를 인코딩하기 위한 장치.
  66. 저장된 명령들을 포함하는 컴퓨터 판독가능 매체를 포함하는 물품(article)으로서,
    상기 명령들은, 실행될 때:
    인코딩된 순열 값에 의하여 명시된 순서로 압축된 이진 디지털 신호 샘플들을 배열하는 단계; 및
    이진 디지털 샘플 계차들 및 적어도 하나의 완전한 이진 디지털 샘플을 프로세싱함으로써 압축해제된 이진 디지털 샘플들을 계산하는 단계
    의 방법의 결과를 가져오는, 물품.
  67. 제66항에 있어서,
    상기 디지털 신호 샘플들은 오디오 디지털 신호 샘플들을 포함하는, 물품.
  68. 제67항에 있어서,
    상기 오디오 디지털 신호 샘플들은 음악의 디지털 신호 샘플들을 포함하는, 물품.
  69. 제68항에 있어서,
    상기 오디오 디지털 신호 샘플들은 펄스 코드 변조된(PCM) 디지털 신호 샘플들을 포함하는, 물품.
  70. 제66항에 있어서,
    상기 시퀀스는 홀수개의 디지털 신호 샘플들을 포함하며, 상기 적어도 하나의 완전한 이진 디지털 샘플은 크기상으로 상기 시퀀스의 중간 샘플을 포함하는, 물품.
  71. 제66항에 있어서,
    상기 시퀀스는 짝수개의 디지털 신호 샘플들을 포함하며, 상기 적어도 하나의 완전한 이진 디지털 샘플은 크기상으로 상기 시퀀스의 중간 샘플을 포함하는, 물품.
  72. 제66항에 있어서,
    실행될 때, 상기 명령은 압축해제된 샘플들을 계산하는 단계 이후에, 역 변형 이산 코사인 변환(IMDCT)을 적용하는 단계의 결과를 추가로 가져오는, 물품.
  73. 제72항에 있어서,
    상기 IMDCT는 다수의 복원된 주파수 서브-대역들을 상기 본래의 디지털 신호 샘플들로 변환하는, 물품.
  74. 제66항에 있어서,
    상기 인코딩된 순열은 숫자의 이진 디지털 표현을 포함하며, 상기 숫자는 상기 디지털 신호 샘플들의 시퀀스 내에 일련의 연속적인 재배열들을 표현하고, 상기 일련의 연속적인 재배열들의 실행은 상기 본래의 샘플 순서를 복구하는, 물품.
  75. 저장된 명령들을 포함하는 컴퓨터 판독가능 매체를 포함하는 물품으로서,
    상기 명령들은, 실행될 때:
    디지털 신호 샘플들의 시퀀스를 크기에 따라 정렬하는 단계;
    상기 정렬된 디지털 신호 샘플들 간의 계차들을 계산하는 단계; 및
    상기 샘플들 중 하나 이상, 상기 계차들, 및 상기 디지털 신호 샘플들의 정확한 순서를 사용하여 상기 시퀀스를 표현하는 단계
    의 방법의 결과를 가져오는, 물품.
  76. 제75항에 있어서,
    정렬하는 단계는 상기 시퀀스를 오름차순으로 또는 내림차순으로 정렬하는 단계를 포함하는, 물품.
  77. 제75항에 있어서,
    상기 디지털 신호 샘플들은 오디오 디지털 신호 샘플들을 포함하는, 물품.
  78. 제77항에 있어서,
    상기 오디오 디지털 신호 샘플들은 펄스 코드 변조된(PCM) 디지털 신호 샘플들을 포함하는, 물품.
  79. 제75항에 있어서,
    상기 시퀀스는 홀수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로 적어도 상기 시퀀스의 중간 샘플을 포함하는, 물품.
  80. 제76항에 있어서,
    상기 시퀀스는 짝수개의 디지털 신호 샘플들을 포함하며, 상기 샘플들 중 하나 이상은 크기상으로 적어도 상기 시퀀스의 2개의 중간 샘플들 중 적어도 하나를 포함하는, 물품.
  81. 제75항에 있어서,
    실행될 때, 상기 명령들은 정렬하는 단계 이전에, 적어도 부분적으로 상기 디지털 신호 샘플들을 다수의 주파수 서브-대역들로 변환하기 위하여 상기 디지털 신호 샘플들에 정수 가역변환을 적용하는 단계의 결과를 가져오, 물품.
  82. 제81항에 있어서,
    상기 정수 가역변환은 변형 이산 코사인 변환(MDCT)을 포함하는, 물품.
  83. 제75항에 있어서,
    적어도 상기 계차들은 Rice 코딩을 사용하여 인코딩되는, 물품.
  84. 도시 및 기재된 본 발명의 특징들을 갖는 장치.
  85. 도시 및 기재된 본 발명의 특징들을 갖는 방법.
KR1020107005869A 2007-08-17 2007-11-08 디지털 컨텐츠의 인코딩 및/또는 디코딩 KR20100083126A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/840,880 2007-08-17
US11/840,880 US8521540B2 (en) 2007-08-17 2007-08-17 Encoding and/or decoding digital signals using a permutation value

Publications (1)

Publication Number Publication Date
KR20100083126A true KR20100083126A (ko) 2010-07-21

Family

ID=40363656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107005869A KR20100083126A (ko) 2007-08-17 2007-11-08 디지털 컨텐츠의 인코딩 및/또는 디코딩

Country Status (7)

Country Link
US (1) US8521540B2 (ko)
EP (1) EP2191381B1 (ko)
JP (1) JP5265682B2 (ko)
KR (1) KR20100083126A (ko)
CN (1) CN101815992B (ko)
TW (1) TW200923913A (ko)
WO (1) WO2009025676A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220003104A (ko) * 2019-05-24 2022-01-07 헤아르젠츠 아베 무손실 데이터 압축 및 압축 해제를 위한 방법, 장치 및 컴퓨터 프로그램 제품

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
JP5130809B2 (ja) * 2007-07-13 2013-01-30 ヤマハ株式会社 楽曲を制作するための装置およびプログラム
US7724159B2 (en) * 2007-08-17 2010-05-25 Qualcomm Incorporated System, method, and/or apparatus for digital signal sorting
US8997161B2 (en) * 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US20100017196A1 (en) * 2008-07-18 2010-01-21 Qualcomm Incorporated Method, system, and apparatus for compression or decompression of digital signals
MX2011007344A (es) 2009-01-07 2012-02-28 Divx Inc Creacion singular, colectiva y automatizada de una guia de medios de contenido en linea.
US20100324913A1 (en) * 2009-06-18 2010-12-23 Jacek Piotr Stachurski Method and System for Block Adaptive Fractional-Bit Per Sample Encoding
TWI451403B (zh) 2009-10-20 2014-09-01 Fraunhofer Ges Forschung 音訊編碼器、音訊解碼器、用以將音訊資訊編碼之方法、用以將音訊資訊解碼之方法及使用區域從屬算術編碼對映規則之電腦程式
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
EP2524371B1 (en) 2010-01-12 2016-12-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
WO2011097903A1 (zh) * 2010-02-11 2011-08-18 华为技术有限公司 多声道信号编码、解码方法、装置及编解码系统
CA2793140C (en) 2010-04-09 2016-05-31 Dolby International Ab Mdct-based complex prediction stereo coding
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
CN102611883B (zh) * 2011-01-19 2014-07-30 华为技术有限公司 编码方法、解码方法及装置
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
WO2013123632A1 (en) * 2012-02-20 2013-08-29 Thomson Licensing Component sorting based encoding for 3d mesh compression
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
EP2875417B1 (en) 2012-07-18 2020-01-01 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US9129600B2 (en) * 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
US8914836B2 (en) * 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US9577618B2 (en) 2012-12-20 2017-02-21 Advanced Micro Devices, Inc. Reducing power needed to send signals over wires
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
WO2015092483A1 (en) * 2013-12-17 2015-06-25 Nokia Technologies Oy Audio signal encoder
TWI523444B (zh) 2014-03-19 2016-02-21 宏碁股份有限公司 聲音發送裝置、接收裝置與利用聲音訊號傳遞資料的方法
CN104954077B (zh) * 2014-03-26 2017-08-04 宏碁股份有限公司 声音发送装置、接收装置与利用声音信号传递数据的方法
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9794712B2 (en) 2014-04-25 2017-10-17 Dolby Laboratories Licensing Corporation Matrix decomposition for rendering adaptive audio using high definition audio codecs
CN105491255A (zh) * 2014-09-18 2016-04-13 广东世纪网通信设备有限公司 一种降低语音传输负载的方法及系统
US9705526B1 (en) * 2016-03-17 2017-07-11 Intel Corporation Entropy encoding and decoding of media applications
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
EP3616196A4 (en) * 2017-04-28 2021-01-20 DTS, Inc. AUDIO ENCODER WINDOW AND TRANSFORMATION IMPLEMENTATIONS
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN112598139B (zh) * 2020-12-22 2023-08-18 百度在线网络技术(北京)有限公司 类别编码方法、装置、设备、存储介质及程序产品

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3270212D1 (en) * 1982-04-30 1986-05-07 Ibm Digital coding method and device for carrying out the method
NL8700985A (nl) 1987-04-27 1988-11-16 Philips Nv Systeem voor sub-band codering van een digitaal audiosignaal.
US5379351A (en) 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5559900A (en) 1991-03-12 1996-09-24 Lucent Technologies Inc. Compression of signals for perceptual quality by selecting frequency bands having relatively high energy
AU5663296A (en) * 1995-04-10 1996-10-30 Corporate Computer Systems, Inc. System for compression and decompression of audio signals fo r digital transmission
TW316302B (ko) 1995-05-02 1997-09-21 Nippon Steel Corp
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
JP4242516B2 (ja) * 1999-07-26 2009-03-25 パナソニック株式会社 サブバンド符号化方式
US6601032B1 (en) * 2000-06-14 2003-07-29 Intervideo, Inc. Fast code length search method for MPEG audio encoding
US7200561B2 (en) 2001-08-23 2007-04-03 Nippon Telegraph And Telephone Corporation Digital signal coding and decoding methods and apparatuses and programs therefor
EP1304885A3 (de) 2001-09-14 2005-04-20 Siemens Aktiengesellschaft Verfahren und Computerprogrammprodukt zur Codierung und Decodierung von Videosignalen
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
ATE332003T1 (de) * 2002-04-22 2006-07-15 Koninkl Philips Electronics Nv Parametrische beschreibung von mehrkanal-audio
JP4049793B2 (ja) * 2003-09-02 2008-02-20 日本電信電話株式会社 浮動小数点信号可逆符号化方法、復号化方法、及びそれらの装置、プログラム及びその記録媒体
US7936938B2 (en) 2004-09-07 2011-05-03 Canon Kabushiki Kaisha Methods and devices for encoding a digital image signal and associated decoding methods and devices
US8108219B2 (en) * 2005-07-11 2012-01-31 Lg Electronics Inc. Apparatus and method of encoding and decoding audio signal
DE102007017254B4 (de) 2006-11-16 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Kodieren und Dekodieren

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220003104A (ko) * 2019-05-24 2022-01-07 헤아르젠츠 아베 무손실 데이터 압축 및 압축 해제를 위한 방법, 장치 및 컴퓨터 프로그램 제품

Also Published As

Publication number Publication date
CN101815992B (zh) 2013-12-25
EP2191381A4 (en) 2010-09-15
US20090048852A1 (en) 2009-02-19
US8521540B2 (en) 2013-08-27
JP5265682B2 (ja) 2013-08-14
EP2191381A1 (en) 2010-06-02
WO2009025676A1 (en) 2009-02-26
JP2010537245A (ja) 2010-12-02
CN101815992A (zh) 2010-08-25
TW200923913A (en) 2009-06-01
EP2191381B1 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
US8521540B2 (en) Encoding and/or decoding digital signals using a permutation value
JP2010537245A5 (ko)
CN102368385B (zh) 后向块自适应Golomb-Rice编解码方法及装置
KR100778349B1 (ko) 이산값의 시퀀스를 갖는 신호 처리 장치 및 방법
CA2532288C (en) Device and method for conversion into a transformed representation or for inversely converting the transformed representation
US7512539B2 (en) Method and device for processing time-discrete audio sampled values
EP1974349A1 (en) Audio coding
NO334930B1 (no) Apparat og fremgangsmåte for behandling av minst to inngangsstørrelser
KR20120073307A (ko) 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더
JP2002135131A (ja) 可変サイズベクトルエントロピ符号化を実行するための方法および装置
US20070024472A1 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
JPH0722957A (ja) 副バンドコーディングシステムの信号処理装置
CN101266796A (zh) 一种量化编解码方法及装置
WO2011162723A1 (en) Entropy encoder arrangement and entropy decoder arrangement
Ghido An efficient algorithm for lossless compression of IEEE float audio
EP2191382B1 (en) System, method, and/or apparatus for digital signal sorting
US8924202B2 (en) Audio signal coding system and method using speech signal rotation prior to lattice vector quantization
CN104318926B (zh) 基于IntMDCT的无损音频编码方法、解码方法
Zabolotnii et al. Applying the Arithmetic Compression Method in Digital Speech Data Processing
Ferzli et al. DNA-residual: A DNA compression algorithm using forward linear prediction
JPH08292795A (ja) Mpegオーディオデコーダ
JPH0360532A (ja) 信号処理装置
WO2011129774A1 (en) Probability table generator, encoder and decoder

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
N231 Notification of change of applicant
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120426

Effective date: 20131022

Free format text: TRIAL NUMBER: 2012101003968; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120426

Effective date: 20131022