KR20090030085A - 메모리 관리 방법 및 메모리 시스템 - Google Patents

메모리 관리 방법 및 메모리 시스템 Download PDF

Info

Publication number
KR20090030085A
KR20090030085A KR1020070095413A KR20070095413A KR20090030085A KR 20090030085 A KR20090030085 A KR 20090030085A KR 1020070095413 A KR1020070095413 A KR 1020070095413A KR 20070095413 A KR20070095413 A KR 20070095413A KR 20090030085 A KR20090030085 A KR 20090030085A
Authority
KR
South Korea
Prior art keywords
decoding
frame
memory
bitstream
compression
Prior art date
Application number
KR1020070095413A
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 삼성전자주식회사
Priority to KR1020070095413A priority Critical patent/KR20090030085A/ko
Publication of KR20090030085A publication Critical patent/KR20090030085A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 메모리 관리 방법에 관한 것으로, 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하고, 시스템의 구동 시 압축된 테이블 메모리를 필요에 따라 복원함으로써, 추가적인 복잡도의 증가를 최소화하면서 메모리 사용 용량을 줄일 수 있다.

Description

메모리 관리 방법 및 메모리 시스템{Method of managing a memory and Memory System}
본 발명은 메모리 관리 방법에 관한 것으로, 보다 상세하게는 데이터의 복호화 과정에서 사용되는 메모리 관리 방법 및 메모리 시스템에 관한 것이다.
오디오 시스템의 복호화부는 오디오 신호의 복호화를 수행하기 위한 복수의 테이블을 저장할 수 있는 대용량 메모리를 필요로 한다. 이와 같이, 신호의 복호화를 수행하는 경우에 여러 가지 복호화 모드에 따라 각각 서로 다른 테이블이 이용될 수 있다.
예를 들어, MPEG(Moving Picture Experts Group) 서라운드(surround) 복호화기에서 신호의 복호화를 수행하기 위한 복호화 모드에는 트리 구조(tree configuration)에 따라 5-1-51 구조, 5-1-52 구조, 및 5-2-5 구조 등이 있고, 구현(implementation) 방식에 따라 고품질(high quality) 복호화기, 및 저전력(low power) 복호화기가 있으며, 동작 모드(operating mode)에 따라 정상(normal) 모드, 및 향상된 매트릭스(enhanced matrix) 모드가 있다. 또한, 출력 구조에 따라 멀티- 채널(multi channel), 스테레오(stereo), 및 바이너럴(binaural) 모드가 있고, 머리 전달 함수(HRTF, Head-Related Transfer Function) 필터의 표현에 따라 파라메트릭(parametric) 표현, 및 복소(complex) QMF(Quadrature Mirror Filterbanks) 필터링 표현 등이 있다.
아래의 표 1은 특정 복호화 모드에서만 사용되는 테이블 ROM(Read Only Memory)이 전체 ROM 사이즈에서 차지하는 비율을 나타낸다.
복호화 모드에 따른 테이블 ROM 전체 ROM 사이즈에 대한 비율(%)
업/다운 믹싱 타입: 블라인드 모드 3.5
업/다운 믹싱 타입: 바이노럴 모드 1.1
업/다운 믹싱 타입: 바이노럴 모드, HRTF 필터 타입: 필터링 모드 84.9
모든 모드에서 공유 10.5
표 1을 참조하면, 모든 복호화 모드에서 공유되는 테이블 ROM은 전체 ROM 사이즈에서 10.5%를 차지하는 반면, 업/다운 믹싱 타입이 블라인드 모드인 경우에만 사용되는 테이블 ROM은 전체 ROM 사이즈에서 3.5%를 차지한다. 여기서, 블라인드 모드는 공간에 대한 추가 정보 없이 2개의 채널 신호로부터 멀티 채널의 신호를 믹싱하는 것을 나타낸다. 또한, 업/다운 믹싱 타입이 바이노럴 모드인 경우에만 사용되는 테이블 ROM은 전체 ROM 사이즈에서 1.1%를 차지하고, 업/다운 믹싱 타입이 바이노럴 모드이고, HRTF 필터 타입이 필터링 모드인 경우에만 사용되는 테이블 ROM은 전체 ROM 사이즈에서 84.9%를 차지한다.
이와 같이, 모든 모드에서 공유되는 테이블 ROM은 10.5%이고, 특정 모드에서만 사용되는 테이블은 89.5%인바, 특정 모드에서만 사용되는 테이블을 모두 메모리에 저장할 경우, 복호화부에 할당되는 메모리 용량이 너무 커진다. 따라서, MPEG 서라운드 복호화부를 휴대용 장치에 적용하기 곤란해진다.
또한, 최근 MPEG 서라운드 응용 기술로 활발히 연구되고 있는 오디오 객체 압축 기술(Spatial Audio Object Coding)에서는 다양한 음원을 특성화하여 객체로써 표현하고, 객체 단위의 압축을 수행함으로써 비트율의 효율성의 향상을 도모한다. 이러한 오디오 객체 압축 기술을 효과적으로 적용하기 위해서는 객체의 특성에 따른 적절한 압축 방식이 사용되어야 하는바, 다양한 압축 방식마다 테이블이 필요하고, 이에 따라 테이블 메모리의 용량이 많이 요구된다.
본 발명이 해결하고자 하는 과제는 신호의 복호화 과정에서 추가적인 복잡도의 증가를 최소화하면서 메모리 사용 용량을 줄일 수 있는 메모리 관리 방법, 메모리 시스템, 및 메모리 관리 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.
또한, 본 발명의 해결하고자 하는 다른 과제는 신호의 복호화 과정에서 추가적인 복잡도의 증가를 최소화하면서 메모리 사용 용량을 줄일 수 있는 신호의 복호화 방법, 신호의 복호화 시스템, 및 신호의 복호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.
상기 과제를 해결하기 위한 본 발명에 따른 메모리 관리 방법은 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하는 단계; 및 상기 시스템의 구동 시 상기 압축된 테이블 메모리를 필요에 따라 복원하는 단계를 포함한다.
또한, 상기 과제는 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블들 중 소정의 테이블들을 압축하여 메모리에 저장하는 단계; 비트스트림에 포함된, 상기 복호화 모드들 중 어느 하나를 나타내는 정보에 따라 상기 메모리에 저장된 압축 테이블들 중 적어도 하나를 선택하는 단계; 및 상기 선택된 압축 테이블을 상기 메모리로부터 읽어내어 복원하는 단계를 포함하는 메모리 관리 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 의해 달성된다.
또한, 상기 과제를 해결하기 위한 본 발명에 따른 메모리 시스템은 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블들 중 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 테이블 또는 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 따라 선택적으로 이용되는 테이블이 압축된 결과를 저장하는 제1 메모리; 및 상기 복수의 테이블들 중 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 관계 없이 이용되는 테이블을 저장하는 제2 메모리를 포함한다.
또한, 상기 다른 과제를 해결하기 위한 본 발명에 따른 신호의 복호화 방법은 입력된 비트스트림의 헤더를 복호화하는 단계; 상기 헤더에 포함된 복호화 모드를 나타내는 정보에 따라 복수의 압축 테이블 중 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 제1 압축 테이블을 복원하는 단계; 상기 복원된 제1 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 복호화 초기화를 수행하는 단계; 및 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 단계를 포함한다.
또한, 상기 다른 과제는 입력된 비트스트림의 헤더를 복호화하는 단계; 상기 헤더에 포함된 복호화 모드를 나타내는 정보에 따라 복수의 압축 테이블 중 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 제1 압축 테이블을 복원 하는 단계; 상기 복원된 제1 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 복호화 초기화를 수행하는 단계; 및 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 단계를 포함하는 신호의 복호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 의해 달성된다.
또한, 상기 다른 과제를 해결하기 위한 본 발명에 따른 신호의 복호화 시스템은 입력된 비트스트림의 헤더를 복호화하는 헤더 복호화부; 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 테이블이 압축된 제1 압축 테이블을 저장하고, 상기 헤더에 포함된 복호화 모드를 나타내는 정보를 기초로 상기 제1 압축 테이블을 출력하는 제1 메모리; 상기 제1 압축 테이블을 복원하는 복호화부; 상기 복원된 제1 압축 테이블을 이용하여 복호화 초기화를 수행하는 복호화 초기화부; 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 저장하는 제2 메모리; 및 상기 제2 메모리에 저장된 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 프레임 별 복호화 수행부를 포함한다.
본 발명에 따르면, 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하고, 시스템의 구동 시 상기 압축된 테이블 메모리를 필요에 따라 복원함으로써, 추가적인 복잡도의 증가를 최소화하면서 메모리 사용 용량을 줄일 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 신호의 복호화 시스템을 나타내는 블록도이다.
도 1을 참조하면, 신호의 복호화 시스템(100)은 헤더 복호화부(header decoding unit, 110), 제1 메모리(memory unit, 120), 무손실 복호화부(lossless decoding unit, 130), 복호화 초기부(decoding initialization unit, 140), 제2 메모리(150), 및 복호화 처리부(decoding processing unit, 160)를 포함한다.
또한, 신호의 복호화 시스템(100) 외부에 대용량 메모리(170) 및 무손실 부호화부(lossless encoding unit, 180)이 있을 수 있다. 설명의 편의상, 대용량 메모리(170) 및 무손실 부호화부(180)의 동작을 먼저 설명하기로 한다.
대용량 메모리(170)는 신호의 복호화 과정에서 이용되는 복수의 테이블 데이터를 저장한다. 보다 상세하게는, 대용량 메모리(170)는 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블 데이터를 저장한다. 여기서, 복호화 모드 정보에 따라 여러 가지 복호화 연산 과정들 중 특정 복호화 모드에 필요한 복호화 연산 과정들의 조합이 결정된다. 이 때, 테이블을 이용하면 추가적인 연산을 수행하지 않고 원하는 값을 얻을 수 있으므로, 신호 처리의 지연을 줄일 수 있다.
예를 들어, MPEG 서라운드 복호화 방식을 이용하여 오디오 신호를 복호화할 때, 비트스트림에 포함된 공간 파라미터를 이용하여 다운믹싱된 신호를 업믹싱함으로써 멀티 채널 신호를 생성한다. 구체적으로, 공간 파라미터로부터 변환된 매트릭스와 다운믹싱된 신호를 연산함으로써 다운믹싱된 신호는 멀티 채널 신호로 업믹싱 된다. 여기서, 공간 파라미터로부터 매트릭스를 구성하기 위하여 공간 파라미터에 대한 정보를 포함하는 테이블 데이터가 참조된다.
구체적으로, 대용량 메모리(170)는 신호의 프레임 별 복호화를 수행하기 전에 사용되는 테이블을 저장할 수 있다. 구체적으로, 대용량 메모리(170)는 오디오 신호의 복호화 모드가 바이노럴 모드 또는 스테레오 모드인 경우, 후속하는 프레임들에 대하여 대응하는 복호화 모드에 따라 복호화를 진행하도록 복호화의 초기화를 수행하기 위한 초기화 테이블을 저장할 수 있다. 예를 들어, 대용량 메모리(170)는 오디오 신호의 프레임 별 복호화를 수행하기 전에 사용되는 "머리 전달 함수 임펄스 계수"를 포함하는 초기화 테이블을 저장할 수 있다.
또한, 대용량 메모리(170)은 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 사용되는 테이블을 저장할 수 있다. 예를 들어, 대용량 메모리(170)는 오디오 신호에 대한 복호화 모드가 바이노럴 모드인 경우에 사용되는 "머리 전달 함수 파워 계수"를 포함하는 옵션 테이블을 저장할 수 있다. 여기서, "머리 전달 함수 파워 계수"는 오디오 신호에 대한 복호화 모드가 스테레오 모드인 경우에는 사용되지 않는다.
그리고, 대용량 메모리(170)은 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계 없이 사용되는 테이블을 저장할 수 있다. 구체적으로, 대용량 메모리(170)는 오디오 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계 없이 후속하는 프레임의 복호화에 사용되는 계수를 포함하는 프레임 테이블을 저장할 수 있다.
무손실 부호화부(180)는 대용량 메모리(170)에 저장된 복수의 테이블 데이터 중 소정의 테이블 데이터에 대해 무손실 부호화를 수행함으로써 소정의 테이블 데이터를 비트스트림 테이블 데이터로 압축한다. 예를 들어, 무손실 부호화부(180)는 대용량 메모리(170)에 저장된 복수의 테이블 데이터 중 신호의 프레임 별 복호화를 수행하기 전에 사용되는 테이블 데이터를 압축할 수 있다.
이하에서는, 신호의 복호화 시스템(100)에 포함된 각 블록의 동작에 대하여 설명하기로 한다.
헤더 복호화부(110)는 입력된 비트스트림(IN)에 포함된 헤더를 복호화하여 복호화 모드 정보를 추출한다. 여기서, 비트스트림은 오디오 신호의 부호화 결과로서 부호화단으로부터 제공받을 수 있다. 그러나, 이는 본 발명의 일 실시예에 불과하고, 비트스트림은 오디오 신호뿐만 아니라, 비디오 신호 또는 기타 멀티미디어 신호의 부호화 결과일 수 있음을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이해할 수 있다.
여기서, 헤더는 비트스트림에 대한 다양한 정보를 포함할 수 있다. 예를 들어, 헤더는 신호의 부호화 모드가 바이너럴 모드인지 스테레오 모드인지 등의 정보를 포함할 수 있다. 여기서, 복호화 모드 정보는 비트스트림을 복호화하기 위한 복호화 모드에 대한 정보이다. 예를 들어, 복호화 모드 정보는 부호화단에서의 부호화 모드에 대응되는 정보일 수 있다.
제1 메모리(120)는 무손실 부호화부(180)로부터 제공받은 비트스트림 테이블을 저장하고, 헤더 복호화부(110)로부터 입력된 복호화 모드 정보에 따라 저장된 비트스트림 테이블 중 특정 비트스트림 테이블을 선택한다. 보다 상세하게는, 제1 메모리(120)는 복호화 모드 정보에 따라 신호의 프레임 별 복호화를 수행하기 전의 복호화 초기화에 이용되는 비트스트림 테이블을 선택할 수 있다.
무손실 복호화부(130)는 제1 메모리(120)에서 선택된 비트스트림 테이블을 무손실 복호화함으로써 선택된 비트스트림 테이블을 테이블 데이터로 복원한다. 여기서, 무손실 복호화부(130)는 제1 메모리(120)에 저장된 비트스트림 테이블을 모두 복호화하는 것이 아니라, 제1 메모리(120)에 저장된 비트스트림 테이블 중 선택된 비트스트림 테이블에 대해서만 복호화를 수행하여 테이블 데이터로 복원한다. 이와 같이, 복원된 테이블 데이터는 별도의 메모리에 저장되지 않고, 임시 버퍼에 저장될 수 있다. 임시 버퍼에 저장된 테이블 데이터는 복호화 초기화가 완료되면 삭제될 수 있다.
복호화 초기화부(140)는 무손실 복호화부(130)에서 복원된 테이블 데이터를 이용하여 신호에 대한 복호화 초기화를 수행한다. 보다 상세하게는, 복호화 초기화부(140)는 테이블 데이터를 이용하여 비트스트림에 포함된 연속되는 프레임들에 대한 복호화 동작을 초기화한다.
제2 메모리(150)는 신호의 프레임 별 복호화에 이용되는 복수의 테이블을 저장한다. 여기서, 프레임 별 복호화를 수행할 때 이용되는 복수의 테이블은 별도의 부호화 과정을 통한 압축을 하지 않고 제2 메모리(150)에 저장된다.
복호화 처리부(160)는 제2 메모리(150)에서 제공된 테이블을 이용하여 비트스트림의 프레임 별 복호화를 수행한다.
도 2는 본 발명의 다른 실시예에 따른 신호의 복호화 시스템을 나타내는 블록도이다.
도 2를 참조하면, 신호의 복호화 시스템(200)은 헤더 복호화부(210), 제1 메모리(220), 무손실 복호화부(230), 복호화 초기부(240), 제2 메모리(250), 제3 메모리(260) 및 복호화 처리부(270)를 포함한다.
또한, 신호의 복호화 시스템(200) 외부에 대용량 메모리(280) 및 무손실 부호화부(290)이 있을 수 있다. 설명의 편의상, 대용량 메모리(280) 및 무손실 부호화부(290)의 동작을 먼저 설명하기로 한다.
대용량 메모리(280)는 신호의 복호화 과정에서 이용되는 복수의 테이블 데이터를 저장한다. 보다 상세하게는, 대용량 메모리(280)는 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블 데이터를 저장한다. 여기서, 복호화 모드 정보에 따라 여러 가지 복호화 연산 과정들 중 특정 복호화 모드에 필요한 복호화 연산 과정들의 조합이 결정된다. 이 때, 테이블을 이용하면 추가적인 연산을 수행하지 않고 원하는 값을 얻을 수 있으므로, 신호 처리의 지연을 줄일 수 있다.
구체적으로, 대용량 메모리(280)는 신호의 프레임 별 복호화를 수행하기 전에 사용되는 테이블을 저장할 수 있다. 또한, 대용량 메모리(280)은 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 사용되는 테이블을 저장할 수 있다. 그리고, 대용량 메모리(280)은 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계 없이 사용되는 테이블을 저장할 수 있다.
무손실 부호화부(290)는 대용량 메모리(280)에 저장된 복수의 테이블 데이터 중 소정의 테이블 데이터에 대해 무손실 부호화를 수행함으로써 소정의 테이블 데이터를 비트스트림 테이블 데이터로 압축한다. 보다 상세하게는, 무손실 부호화부(290)는 대용량 메모리(280)에 저장된 복수의 테이블 데이터 중 신호의 프레임 별 복호화를 수행하기 전에 사용되는 테이블 데이터 및 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 사용되는 테이블 데이터를 압축할 수 있다.
이하에서는, 신호의 복호화 시스템(200)에 포함된 각 블록의 동작에 대하여 설명하기로 한다.
헤더 복호화부(210)는 입력된 비트스트림(IN)에 포함된 헤더를 복호화하여 복호화 모드 정보를 추출한다. 여기서, 비트스트림은 오디오 신호의 부호화 결과로서 부호화단으로부터 제공받을 수 있다. 그러나, 이는 본 발명의 일 실시예에 불과하고, 비트스트림은 오디오 신호뿐만 아니라, 비디오 신호 또는 기타 멀티미디어 신호의 부호화 결과일 수 있음을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이해할 수 있다.
여기서, 헤더는 비트스트림에 대한 다양한 정보를 포함할 수 있다. 예를 들어, 헤더는 신호의 부호화 모드가 바이너럴 모드인지 스테레오 모드인지 등의 정보를 포함할 수 있다. 여기서, 복호화 모드 정보는 비트스트림을 복호화하기 위한 복호화 모드에 대한 정보이다. 예를 들어, 복호화 모드 정보는 부호화단에서의 부호화 모드에 대응되는 정보일 수 있다.
제1 메모리(220)는 무손실 부호화부(290)로부터 제공받은 비트스트림 테이블을 저장하고, 헤더 복호화부(210)로부터 입력된 복호화 모드 정보에 따라 저장된 비트스트림 테이블 중 특정 비트스트림 테이블을 선택한다. 보다 상세하게는, 제1 메모리(220)는 복호화 모드 정보에 따라 신호의 프레임 별 복호화를 수행하기 전의 복호화 초기화에 이용되는 비트스트림 테이블 및 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 사용되는 비트스트림 테이블을 선택할 수 있다. 예를 들어, 제1 메모리(220)는 ROM일 수 있다.
무손실 복호화부(230)는 제1 메모리(220)에서 선택된 비트스트림 테이블을 무손실 복호화함으로써 선택된 비트스트림 테이블을 테이블 데이터로 복원한다. 여기서, 무손실 복호화부(230)는 제1 메모리(220)에 저장된 비트스트림 테이블을 모두 복호화하는 것이 아니라, 제1 메모리(220)에 저장된 비트스트림 테이블 중 선택된 비트스트림 테이블에 대해서만 복호화를 수행하여 테이블 데이터로 복원한다. 이와 같이, 복원된 테이블 데이터 중 복호화 초기화에 이용되는 테이블 데이터는 별도의 메모리에 저장되지 않고, 임시 버퍼에 저장될 수 있다. 임시 버퍼에 저장된 테이블 데이터는 복호화 초기화가 완료되면 삭제될 수 있다.
복호화 초기화부(240)는 무손실 복호화부(230)에서 복원된 테이블 데이터를 이용하여 신호에 대한 복호화 초기화를 수행한다. 보다 상세하게는, 복호화 초기화부(240)는 테이블 데이터를 이용하여 비트스트림에 포함된 연속되는 프레임들에 대한 복호화 동작을 초기화한다.
제2 메모리(250)는 무손실 복호화부(230)에서 복원된 테이블 데이터 중 신호 의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 이용되는 테이블 테이터를 저장한다. 예를 들어, 제2 메모리(250)는 압축 저장된 테이블을 저장하고 있는 ROM이며, 복호화 모드에 따라 선택적으로 복원하여 RAM(Random Access Memory)에 저장하여 사용될 수 있다. 이 경우, 제2 메모리(250)는 복원된 테이블 데이터를 저장하므로 시스템 전체적으로 볼 때 용량이 조금 늘어난다. 하지만, 제1 메모리(220)는 압축된 비트스트림 테이블 데이터를 저장하므로 이미 전체적으로 시스템의 메모리 용량이 많이 줄어든 상태이다. 따라서, 전체적으로 메모리 사용 용량은 감소된다.
제3 메모리(260)는 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계없이 이용되는 복수의 테이블을 저장한다. 여기서, 복수의 테이블은 별도의 부호화 과정을 통한 압축을 하지 않고 제3 메모리(260)에 저장된다. 예를 들어, 제3 메모리(260)는 ROM일 수 있다.
복호화 처리부(160)는 제2 및 제3 메모리(250, 260)에서 제공된 테이블을 이용하여 비트스트림의 프레임 별 복호화를 수행한다.
도 3은 본 발명의 일 실시예에 따른 테이블 데이터 저장 방법을 나타내는 흐름도이다.
도 3을 참조하면, 300 단계에서 테이블 데이터가 테이블 메모리에 입력된다. 여기서, 테이블은 두 변수 사이의 값을 대응되도록 저장된 것이고, 테이블 데이터는 테이블에 포함된 값들을 나타낸다. 신호의 복호화 과정에서는 복호화를 개시하거나 프레임 별 복호화를 수행할 때 적용되는 복수 개의 테이블이 필요하다. 따라 서, 테이블 메모리에 저장되는 테이블은 복수 개이며, 그 용량도 많이 요구된다.
여기서, 테이블 메모리는 초기화 테이블 메모리, 옵션 테이블 메모리, 및 프레임 테이블 메모리로 분리할 수 있다. 여기서, 초기화 테이블 메모리는 신호의 프레임 별 복호화를 수행하기 전에 사용되는 테이블을 저장하는 메모리이고, 옵션 테이블 메모리는 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 따라 선택적으로 사용되는 테이블을 저장하는 메모리이며, 프레임 테이블 메모리는 신호의 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계없이 사용되는 테이블을 저장하는 메모리이다.
310 단계에서 입력된 테이블 데이터가 프레임 테이블 데이터인지 판단한다. 판단 결과, 입력된 테이블 데이터가 프레임 테이블 데이터가 아닌 경우에는 320 단계를 진행하고, 입력된 테이블 데이터가 프레임 테이블 데이터인 경우에는 340 단계를 진행한다.
320 단계에서 입력된 테이블 데이터가 초기화 테이블 또는 옵션 테이블에 해당하는 경우, 초기화 테이블 또는 옵션 테이블을 통계적 특성을 고려하여 무손실 부호화를 수행하여 압축한다. 이와 같이, 초기화 테이블 또는 옵션 테이블을 통계적 특성을 고려하여 압축하는 방법에 대하여 도 5A 내지 8을 참조하여 상술하기로 한다.
330 단계에서 압축된 테이블 데이터를 바이너리 포맷 데이터로 테이블 메모리에 저장한다.
340 단계에서 입력된 테이블 데이터가 프레임 테이블에 해당하는 경우, 입력 된 테이블 데이터를 테이블 메모리에 저장한다. 이 경우, 입력된 테이블 데이터에 대하여 별도의 압축을 수행하지 않고 바로 저장한다.
도 4는 본 발명의 일 실시예에 따른 압축된 테이블 데이터를 복원하여 신호의 복호화에 이용하는 방법을 나타내는 흐름도이다.
도 4를 참조하면, 본 실시예에 따른 압축된 테이블 데이터를 복원하여 신호의 복호화에 이용하는 방법은 도 2에 도시된 신호의 복호화 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 2에 도시된 신호의 복호화 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른 압축된 테이블 데이터를 복원하여 신호의 복호화에 이용하는 방법에도 적용된다.
400 단계에서 헤더 복호화부(210)는 입력된 비트스트림의 헤더를 복호화한다. 헤더 복호화부(210)는 헤더를 복호화하여 복호화 모드 정보를 추출하고, 추출된 복호화 모드 정보를 제1 메모리(220)에 제공한다.
410 단계에서 무손실 복호화부(230)는 복호화 모드 정보에 따라 바이너리 포맷 데이터로부터 필요한 테이블을 복원한다. 보다 상세하게는, 제1 메모리(220)는 복호화 모드 정보에 따라 저장된 비트스트림 테이블 중 특정 비트스트림 테이블을 선택하여 무손실 복호화부(230)에 제공하고, 무손실 복호화부(230)는 제1 메모리(220)로부터 제공받은 특정 비트스트림 테이블을 복호화하여 필요한 테이블을 복원한다. 예를 들어, 무손실 복호화부(230)는 초기화 테이블을 복원하거나 옵션 테이블을 복원할 수 있다.
420 단계에서 초기화 테이블을 임시 버퍼에 할당하여 복호화 초기화에 사용 한 후 임시 버퍼를 제거한다. 이 경우, 초기화 테이블은 임시 버퍼인 로컬 RAM에 저장되어 복호화 초기화 단계에 한 번 사용하고 제거된다. 따라서, 테이블 메모리인 ROM의 크기를 줄이면서, 최대 스택 사이즈 또는 RAM의 사용량은 증가되지 않는다.
430 단계에서 옵션 테이블을 글로벌 버퍼에 할당하여 프레임 별 복호화에 사용한다. 이 경우, 옵션 테이블은 글로벌 버퍼에 저장되어 프레임 별 복호화에 이용되므로 RAM의 사용량은 증가한다. 그러나, 복수의 옵션 테이블 중 복호화 모드 정보에 따라 선택된 특정 옵션 테이블만 RAM에 저장함으로써 전체적인 메모리 사용량은 줄일 수 있다.
440 단계에서 복호화 처리부(270)는 복원된 옵션 테이블 및 프레임 테이블을 이용하여 프레임 별 복호화를 수행한다.
도 5a는 MPEG 서라운드 디코더에서 프레임 별 복호화를 수행하기 전에 복호화 초기화에 사용되는 메모리 용량의 예를 나타내는 도면이다. 도 5b는 MPEG 서라운드 디코더에서 프레임 별 복호화를 수행할 때 사용되는 메모리 용량의 예를 나타내는 도면이다. 도 5a 및 5b는 MPEG 서라운드 디코더를 32 비트의 고정점(fixed-point)으로 구현한 경우 요구되는 테이블 메모리를 실험을 통해 예측한 결과이다.
먼저 도 5a를 참조하면, 신호의 프레임 별 복호화를 수행하기 전 특정 복호화 모드에서만 사용되는 "HRTF Impulse Coefficients"의 테이블은 127,040 바이트가 요구되고, 신호의 프레임 별 복호화를 수행하기 전에 복호화 모드의 종류에 관계 없이 사용되는 "Decorrelation Lattice Coefficients"의 테이블은 2,560 바이트 가 요구된다. 예를 들어, "HRTF Impulse Coefficients"의 테이블은 바이너럴 다운 믹싱 모드이고 HRTF의 필터링 모드일 때만 사용될 수 있다. 따라서, 신호의 프레임 별 복호화를 수행하기 전 복호화 초기화 과정에서 사용되는 테이블들은 129,600 바이트가 요구되며, 이는 전체 테이블들이 메모리에서 차지하는 용량 중 87%이다.
다음으로 도 5b를 참조하면, 프레임 별 복호화를 수행할 때 중 특정 복호화 모드에서만 사용되는 "BlindXXXmesh Coefficients"의 테이블은 5,208 바이트가 요구되고, "HRTF Power Coefficients"의 테이블은 1,680 바이트가 요구된다. 또한, 프레임 별 복호화를 수행할 때 복호화 모드의 종류에 관계 없이 사용되는 "SacPolyPhase Filterbank Coefficients"의 테이블은 5,120 바이트가 요구되고, 그 밖의 다른 테이블들은 8,000 바이트가 요구된다. 따라서, 프레임 별 복호화를 수행할 때 사용되는 테이블들은 20,008 바이트가 요구되며, 이는 전체 테이블들이 메모리에서 차지하는 용량 중 13%이다.
이와 같이, 특정 복호화 모드에서만 사용됨에도 불구하고 전체 메모리 용량의 85%를 차지하는 "HRTF Impulse Coefficients"의 테이블을 미리 압축하여 저장하고, 구동 시 압축된 메모리를 필요에 따라 복원하여 사용함으로써, 추가적인 복잡도의 증가를 최소화하면서 메모리의 사용용량을 줄일 수 있으므로, 적은 메모리 용량으로 MPEG 서라운드 디코더를 적용할 수 있다.
따라서, 이하에서는 도 6 내지 8을 참조하여, "HRTF Impulse Coefficients", 즉, 머리 전달 함수 임펄스 계수의 테이블을 미리 압축하여 메모리에 저장하고, 구동 시 압축된 테이블을 필요에 따라 복원하여 사용하는 방법에 대하여 설명하기로 한다.
도 6은 공간 파라미터와 머리 전달 함수 파라미터로부터 바이너럴 파라미터를 얻는 과정을 나타내는 개념도이다. 이하에서는 도 6을 참조하여 머리 전달 함수 및 바이너럴 효과의 개념을 설명하기로 한다.
도 6을 참조하면, 공간 파라미터는 음원의 공간상 위치를 나타내는 파라미터이고, 머리 전달 함수 파라미터는 머리 전달 함수의 임펄스 응답에 대한 파라미터이며, 바이너럴 파라미터는 바이너럴 사운드를 재생하기 위한 파라미터이다.
머리 전달 함수는 음원과 고막 사이의 음향학적인 전달함수로서, 주파수 도메인에서 입력 신호 스펙트럼과 출력 신호 스펙트럼 사이의 비로 정의된다. 이러한 머리 전달 함수는 무향실(anechoic chamber) 내에서 가짜 머리를 이용하여 여러 각도에 배치된 스피커에서 나오는 음들을 녹음하여 푸리에(Fourier) 변환하여 얻어진다. 이로써, 머리 전달 함수는 음원으로부터 사람의 귀로 전달되는 음향적 과정을 표현할 수 있으며, 사람이 음원의 위치를 판단하는 중요한 정보를 포함한다. 구체적으로, 머리 전달 함수는 두 귀 간의 시간 차와 두 귀 간의 레벨 차, 귓바퀴의 형상(pinna)을 포함하여 소리가 전달되어온 공간의 특성을 나타내는 정보를 포함한다.
특히, 머리 전달 함수는 위와 아래의 위상 정위에 결정적인 영향을 미치는 귓바퀴에 대한 정보를 포함하는데, 그 뒷바퀴에 대한 모델링이 쉽지 않아 주로 측정을 통해 얻어진다. 이러한 머리 전달 함수는 가짜 머리에 소리가 입력되는 각도에 따라 결과 값이 달라지므로, 여러 위치에서 입력되는 음들에 대해 임펄스 응답 을 수행하여 결과 값들에 대한 데이터베이스를 구축하여 사용한다. 이 경우, 머리 전달 함수의 차수(tap)가 높을수록 음질이 향상된다.
이하에서는 바이너럴 효과에 대해 설명하기로 한다. 인간의 귀는 얼굴 양쪽에 있기 때문에 음이 두 귀에 도달할 때까지의 거리 차가 발생한다. 이 거리 차는 음원과 두 귀에 대하여 시간차와 위상차를 발생시키므로 인간은 음원의 방향을 정확하게 판단할 수 있다. 이러한 청각 현상을 바이노럴 효과라고 한다.
이러한 바이노럴 효과를 이용한 바이노럴 사운드는 양쪽 귀에 들리는 소리를 두 개의 채널을 사용하여 스피커나 헤드폰으로 재현하는 기술을 말한다. 이 경우, 바이노럴 사운드를 구현하기 위해서 상술한 바와 같이 사람이 음원의 위치를 판단하는 중요한 정보를 포함하는 머리 전달 함수가 이용된다.
이와 같이, 스피커와 같은 음원의 위치를 나타내는 공간 파라미터와 음원에서 사람의 귀로 전달되는 음향적 과정을 나타내는 머리 전달 함수 파라미터를 이용하여 바이노럴 파라미터를 얻을 수 있으며, 이러한 바이노럴 파라미터를 이용하여 바이노럴 사운드를 구현할 수 있다.
따라서, 복호화 모드가 바이노럴 사운드 모드인 경우에 머리 전달 함수의 이용이 요구되므로, 머리 전달 함수의 임펄스 계수들을 포함한 테이블이 이용되는 것이다. 이하에서는, 머리 전달 함수의 임펄스 계수들을 포함한 테이블을 압축하고 복원하는 방법에 대하여 설명하기로 한다.
도 7a 내지 7c는 MPEG 서라운드 바이너럴 디코더에 필요한 머리 전달 함수의 데이터의 분포를 나타내는 그래프이다. 여기서, 도 7a 내지 7c은 각각 차수가 서로 다른 머리 전달 함수를 적용한 결과이다.
도 7a는 도 6에 제1 차수의 머리 전달 함수를 적용한 결과 값을 나타낸 것으로, 제1 내지 제5 스피커(61, 62, 63, 64, 65)로부터 양쪽 귀(L, R)에 입력되는 10개의 머리 전달 함수 파라미터에 따른 결과 값의 분포를 도시한 그래프이다.
도 7b는 도 6에 제2 차수의 머리 전달 함수를 적용한 결과 값을 나타낸 것으로, 제1 내지 제5 스피커(61, 62, 63, 64, 65)로부터 양쪽 귀(L, R)에 입력되는 10개의 머리 전달 함수 파라미터에 따른 결과 값의 분포를 도시한 그래프이다.
도 7c는 도 6에 제3 차수의 머리 전달 함수를 적용한 결과 값을 나타낸 것으로, 제1 내지 제5 스피커(61, 62, 63, 64, 65)로부터 양쪽 귀(L, R)에 입력되는 10개의 머리 전달 함수 파라미터에 따른 결과 값의 분포를 도시한 그래프이다.
도 6, 7a 내지 7c를 참조하면, 제1 스피커(61)로부터 왼쪽 귀(L)로 소리가 전달되는 경로와 제5 스피커(65)로부터 오른쪽 귀(R)로 소리가 전달되는 경로는 대칭적이며, 그에 따라 제1 스피커(61)로부터 왼쪽 귀(L)에 측정된 머리 전달 함수 파라미터와 제5 스피커(65)로부터 오른쪽 귀(R)에 측정된 머리 전달 함수 파라미터 사이의 상관도는 매우 높다. 마찬가지로, 제1 스피커(61)로부터 오른쪽 귀(R)로 소리가 전달되는 경로와 제5 스피커(65)로부터 왼쪽 귀(L)로 소리가 전달되는 경로는 대칭적이며, 그에 따라 제1 스피커(61)로부터 오른쪽 귀(R)에 측정된 머리 전달 함수 파라미터와 제5 스피커(65)로부터 왼쪽 귀(L)에 측정된 머리 전달 함수 파라미터 사이의 상관도는 매우 높다.
또한, 제2 스피커(62)로부터 왼쪽 귀(L)로 소리가 전달되는 경로와 제4 스피 커(64)로부터 오른쪽 귀(R)로 소리가 전달되는 경로는 대칭적이며, 그에 따라 제2 스피커(62)로부터 왼쪽 귀(L)에 측정된 머리 전달 함수 파라미터와 제4 스피커(64)로부터 오른쪽 귀(R)에 측정된 머리 전달 함수 파라미터 사이의 상관도는 매우 높다. 마찬가지로, 제2 스피커(62)로부터 오른쪽 귀(R)로 소리가 전달되는 경로와 제4 스피커(64)로부터 왼쪽 귀(L)로 소리가 전달되는 경로는 대칭적이며, 제2 스피커(62)로부터 오른쪽 귀(R)에 측정된 머리 전달 함수 파라미터와 제4 스피커(64)로부터 왼쪽 귀(L)에 측정된 머리 전달 함수 파라미터 사이의 상관도는 매우 높다.
그리고, 제3 스피커(63)로부터 왼쪽 귀(L)로 소리가 전달되는 경로와 제3 스피커(63)로부터 오른쪽 귀(R)로 소리가 전달되는 경로는 대칭적이며, 그에 따라 제3 스피커(63)로부터 왼쪽 귀(L)에 측정된 머리 전달 함수 파라미터와 제3 스피커(63)로부터 오른쪽 귀(R)에 측정된 머리 전달 함수 파라미터 사이의 상관도는 매우 높다.
이와 같은 머리 전달 함수의 공간 채널 간의 대칭성을 이용하여, 두 개의 음원으로부터 소리가 대칭적인 경로로 전달되는 경우에는 한 개의 음원에 대한 머리 전달 함수를 측정하고, 측정된 결과 값을 이용하여 다른 한 개의 음원에 대한 머리 전달 함수를 예측할 수 있다.
또한, 도 7a 내지 7c를 참조하면, 머리 전달 함수는 공간 채널 간의 대칭성뿐만 아니라, 동일 파라미터에서 머리 전달 함수를 적용한 결과 값인 머리 전달 함수 임펄스 계수들간의 상관 관계를 이용하여 부호화에 할당되는 비트 양을 조절할 수 있다.
도 7a를 참조하면, 71로 표시된 주파수 영역을 제외한 다른 영역은 주파수에 변화에 따라 머리 전달 함수 임펄스 계수의 변화가 크지 않고, 그 값도 0에 가깝다. 그러나, 71로 표시된 주파수 영역에서는 머리 전달 함수 임펄스 계수 값의 변화가 크고, 그 값도 크다. 따라서, 71로 표시된 주파수 영역을 부호화하는 경우 비트를 많이 할당하고, 71로 표시된 주파수 영역을 제외한 다른 영역을 부호화하는 경우 비트를 조금 할당하여 부호화 효율을 높일 수 있다.
마찬가지로, 도 7b를 참조하면, 72로 표시된 주파수 영역을 제외한 다른 영역은 주파수에 변화에 따라 머리 전달 함수 임펄스 계수의 변화가 크지 않고, 그 값도 0에 가깝다. 그러나, 72로 표시된 주파수 영역에서는 머리 전달 함수 임펄스 계수 값의 변화가 크고, 그 값도 크다. 따라서, 72로 표시된 주파수 영역을 부호화하는 경우 비트를 많이 할당하고, 72로 표시된 주파수 영역을 제외한 다른 영역을 부호화하는 경우 비트를 조금 할당하여 부호화 효율을 높일 수 있다.
또한, 도 7c를 참조하면, 73으로 표시된 주파수 영역을 제외한 다른 영역은 주파수에 변화에 따라 머리 전달 함수 임펄스 계수의 변화가 크지 않고, 그 값도 0에 가깝다. 그러나, 73으로 표시된 주파수 영역에서는 머리 전달 함수 임펄스 계수 값의 변화가 크고, 그 값도 크다. 따라서, 73으로 표시된 주파수 영역을 부호화하는 경우 비트를 많이 할당하고, 73으로 표시된 주파수 영역을 제외한 다른 영역을 부호화하는 경우 비트를 조금 할당하여 부호화 효율을 높일 수 있다.
도 8은 MPEG 서라운드 디코더에서 사용되는 머리 전달 함수 파라미터를 압축/복원하는 장치의 예를 나타내는 블록도이다.
도 8을 참조하면, 머리 전달 함수 파라미터를 압축/복원하는 장치는 무손실 부호화부(81), 저장부(82) 및 무손실 복호화부(83)를 포함한다. 도 1의 신호의 부호화 시스템과 도 8을 비교하면, 무손실 부호화부(81)는 도 1의 무손실 부호화부(180)에 대응되고, 저장부(82)는 제1 메모리(120)에 대응되며, 무손실 복호화부(83)는 도 1의 무손실 복호화부(130)에 대응된다.
무손실 부호화부(81)는 공간 채널 간 예측 수행부(811), 계수 간 예측 수행부(812), 및 엔트로피 부호화부(813)를 포함한다.
공간 채널 간 예측 수행부(81)는 머리 전달 함수의 각각의 파라미터들의 공간 채널 간 예측을 수행한다. 상술한 바와 같이, 대칭되는 공간 채널에서의 머리 전달 함수의 파라미터들은 높은 상관성이 있으므로, 이러한 특성을 이용하여 각 파라미터들에 대한 공간 채널 간 예측을 수행한다. 계수 간 예측 수행부(82)는 공간 채널 간 예측이 수행된 머리 전달 함수의 각각의 파라미터들에 대하여 계수 간 예측을 수행한다. 엔트로피 부호화부(83)는 공간 채널 간 예측 및 계수 간 예측이 수행된 머리 전달 함수의 각각의 파라미터들에 대하여 엔트로피 부호화를 수행한다.
저장부(82)는 엔트로피 부호화가 수행된 머리 전달 함수의 파라미터들을 바이너리 포맷의 데이터로 저장한다.
무손실 복호화부(83)는 엔트로피 복호화부(831), 계수 간 예측 보상부(832), 및 공간 채널 간 예측 보상부(833)을 포함한다.
엔트로피 복호화부(831)는 저장부(82)로부터 제공받은 바이너리 포맷의 데이터에 대하여 엔트로피 복호화를 수행한다. 계수 간 예측 보상부(832)는 복호화가 수행된 결과에 대해 계수 간 예측 보상을 수행한다. 공간 채널 간 예측 보상부(833)는 계수 간 예측 보상된 결과에 대하여 공간 채널 간 예측 보상을 수행한다.
본 발명은 핸드폰, 컴퓨터, 무선 장치(hand held device), 가전 영상 기기 등과 같은 음향 정보 기기의 저장/추력 장치에서 오디오 신호 또는 비디오 신호를 압축/복원하는데 이용될 수 있다. 또한, 본 발명은 멀티 채널 오디오 또는 MPEG 서라운드 디코더를 이용한 디지털 텔레비전 방송, 음악 다운로드 서비스, 스트리밍 서비스, 인터넷 라디오, 원격회의, 게임 오디오 장치 등에도 이용될 수 있다.
본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상 내에서 당업자에 의한 변형이 가능함은 물론이다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
도 1은 본 발명의 일 실시예에 따른 신호의 복호화 시스템을 나타내는 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 신호의 복호화 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 테이블 메모리 저장 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 압축된 테이블 데이터를 복원하여 신호의 복호화에 이용하는 방법을 나타내는 흐름도이다.
도 5a는 MPEG 서라운드 디코더에서 프레임 별 복호화를 수행하기 전에 사용되는 메모리 용량의 예를 나타내는 도면이다.
도 5b는 MPEG 서라운드 디코더에서 프레임 별 복호화를 수행할 때 사용되는 메모리 용량의 예를 나타내는 도면이다.
도 6은 공간 파라미터와 머리 전달 함수 파라미터로부터 바이너럴 파라미터를 얻는 과정을 나타내는 개념도이다.
도 7a 내지 7c는 MPEG 서라운드 바이너럴 디코더에 필요한 머리 전달 함수의 데이터의 분포를 나타내는 그래프이다.
도 8은 MPEG 서라운드 디코더에서 사용되는 머리 전달 함수 파라미터를 압축/복원하는 장치의 예를 나타내는 블록도이다.

Claims (21)

  1. 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하는 단계; 및
    상기 시스템의 구동 시 상기 압축된 테이블 메모리를 필요에 따라 복원하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  2. 제1항에 있어서,
    상기 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하는 단계는
    복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블들 중 소정의 테이블들을 압축하여 상기 테이블 메모리에 저장하는 것을 특징으로 하는 메모리 관리 방법.
  3. 제2항에 있어서,
    상기 시스템의 구동 시 상기 압축된 테이블 메모리를 필요에 따라 복원하는 단계는
    비트스트림에 포함된, 상기 복호화 모드들 중 어느 하나를 나타내는 정보에 따라 상기 테이블 메모리에 저장된 압축 테이블들 중 적어도 하나를 선택하는 단계; 및
    상기 선택된 압축 테이블을 상기 테이블 메모리로부터 읽어내어 복원하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  4. 제3항에 있어서,
    상기 테이블이 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 관계 없이 이용되는 테이블인 경우 상기 테이블을 압축하지 않고 상기 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  5. 제3항에 있어서,
    상기 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하는 단계는
    상기 테이블이 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 테이블인 경우 상기 테이블을 압축하여 제1 압축 테이블로 저장하는 단계; 및
    상기 테이블이 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 따라 선택적으로 이용되는 테이블인 경우 상기 테이블을 압축하여 제2 압축 테이블로 저장하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  6. 제5항에 있어서,
    상기 테이블이 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되 는 테이블인 경우 상기 제1 압축 테이블을 복원하여 임시 버퍼에 할당하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  7. 제5항에 있어서,
    상기 테이블이 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 따라 선택적으로 이용되는 테이블인 경우 상기 제2 압축 테이블을 복원하여 글로벌 버퍼에 할당하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  8. 제3항에 있어서,
    상기 시스템에 사용되는 테이블을 저장한 테이블 메모리를 압축하여 저장하는 단계는
    상기 소정의 테이블의 통계적 특성을 고려하여 무손실 부호화하여 상기 압축 테이블로 저장하는 것을 특징으로 하는 메모리 관리 방법.
  9. 제3항에 있어서,
    상기 시스템의 구동 시 상기 압축된 테이블 메모리를 필요에 따라 복원하는 단계는
    상기 선택된 압축 테이블을 무손실 복호화하여 복원하는 것을 특징으로 하는 메모리 관리 방법.
  10. 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블들 중 소정의 테이블들을 압축하여 메모리에 저장하는 단계;
    비트스트림에 포함된, 상기 복호화 모드들 중 어느 하나를 나타내는 정보에 따라 상기 메모리에 저장된 압축 테이블들 중 적어도 하나를 선택하는 단계; 및
    상기 선택된 압축 테이블을 상기 메모리로부터 읽어내어 복원하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 복수 개의 복호화 모드들을 지원하는 복호화 연산 과정들 각각에서 참조되는 정보를 포함하는 복수 개의 테이블들 중 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 테이블 또는 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 따라 선택적으로 이용되는 테이블이 압축된 결과를 저장하는 제1 메모리; 및
    상기 복수의 테이블들 중 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드들에 관계 없이 이용되는 테이블을 저장하는 제2 메모리를 포함하는 것을 특징으로 하는 메모리 시스템.
  12. 입력된 비트스트림의 헤더를 복호화하는 단계;
    상기 헤더에 포함된 복호화 모드를 나타내는 정보에 따라 복수의 압축 테이블 중 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 제1 압축 테이블을 복원하는 단계;
    상기 복원된 제1 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 복호화 초기화를 수행하는 단계; 및
    상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 단계를 포함하는 것을 특징으로 하는 신호의 복호화 방법.
  13. 제12항에 있어서,
    상기 복호화 초기화를 수행하는 단계는
    상기 복원된 제1 압축 테이블을 임시 버퍼에 할당하여 상기 비트스트림의 복호화 초기화를 수행하고, 복호화 초기화가 완료된 경우 상기 임시 버퍼를 제거하는 것을 특징으로 하는 신호의 복호화 방법.
  14. 제12항에 있어서,
    상기 복호화 모드 정보에 따라 상기 압축된 테이블 중 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드 정보에 따라 선택적으로 이용되는 제2 압축 테이블을 복원하는 단계를 더 포함하는 것을 특징으로 하는 신호의 복호화 방법.
  15. 제14항에 있어서,
    상기 비트스트림의 프레임 별 복호화를 수행하는 단계는
    상기 복원된 제2 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 것을 특징으로 하는 신호의 복호화 방법.
  16. 제14항에 있어서,
    상기 비트스트림의 프레임 별 복호화를 수행하는 단계는
    상기 복원된 제2 압축 테이블을 글로벌 버퍼에 할당하여 상기 비트스트림의 프레임 별 복호화를 수행하는 것을 특징으로 하는 신호의 복호화 방법.
  17. 입력된 비트스트림의 헤더를 복호화하는 단계;
    상기 헤더에 포함된 복호화 모드를 나타내는 정보에 따라 복수의 압축 테이블 중 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 제1 압축 테이블을 복원하는 단계;
    상기 복원된 제1 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하기 전에 복호화 초기화를 수행하는 단계; 및
    상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 단계를 포함하는 것을 특징으로 하는 신호의 복호화 방법을 실행하기 위한 프로그 램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  18. 입력된 비트스트림의 헤더를 복호화하는 헤더 복호화부;
    상기 비트스트림의 프레임 별 복호화를 수행하기 전에 이용되는 테이블이 압축된 제1 압축 테이블을 저장하고, 상기 헤더에 포함된 복호화 모드를 나타내는 정보를 기초로 상기 제1 압축 테이블을 출력하는 제1 메모리;
    상기 제1 압축 테이블을 복원하는 복호화부;
    상기 복원된 제1 압축 테이블을 이용하여 복호화 초기화를 수행하는 복호화 초기화부;
    상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 관계 없이 이용되는 테이블을 저장하는 제2 메모리; 및
    상기 제2 메모리에 저장된 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 프레임 별 복호화 수행부를 포함하는 것을 특징으로 하는 신호의 복호화 시스템.
  19. 제18항에 있어서,
    상기 제1 메모리는 상기 비트스트림의 프레임 별 복호화를 수행할 때 상기 복호화 모드에 따라 선택적으로 이용되는 테이블이 압축된 제2 압축 테이블을 저장하고, 상기 복호화 모드 정보를 기초로 상기 제2 압축 테이블을 출력하며,
    상기 복호화부는 제2 압축 테이블을 복원하는 것을 특징으로 하는 신호의 복 호화 시스템.
  20. 제19항에 있어서,
    상기 복원된 제2 압축 테이블을 저장하는 제3 메모리를 더 포함하는 것을 특징으로 하는 신호의 복호화 시스템.
  21. 제20항에 있어서,
    상기 프레임 별 복호화 수행부는
    상기 복원된 제2 압축 테이블을 이용하여 상기 비트스트림의 프레임 별 복호화를 수행하는 것을 특징으로 하는 신호의 복호화 시스템.
KR1020070095413A 2007-09-19 2007-09-19 메모리 관리 방법 및 메모리 시스템 KR20090030085A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070095413A KR20090030085A (ko) 2007-09-19 2007-09-19 메모리 관리 방법 및 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070095413A KR20090030085A (ko) 2007-09-19 2007-09-19 메모리 관리 방법 및 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20090030085A true KR20090030085A (ko) 2009-03-24

Family

ID=40696547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070095413A KR20090030085A (ko) 2007-09-19 2007-09-19 메모리 관리 방법 및 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20090030085A (ko)

Similar Documents

Publication Publication Date Title
US12046247B2 (en) Selective forward error correction for spatial audio codecs
CA2933734C (en) Coding independent frames of ambient higher-order ambisonic coefficients
RU2379768C2 (ru) Устройство и способ генерирования кодированного многоканального сигнала и устройство и способ декодирования кодированного многоканального сигнала
US7573912B2 (en) Near-transparent or transparent multi-channel encoder/decoder scheme
US8964994B2 (en) Encoding of multichannel digital audio signals
JP5027799B2 (ja) 符号化効率向上のためのパラメータの適応グループ化
JP7423585B2 (ja) Hoaデータ・フレーム表現のデータ・フレームの個々のもののチャネル信号に関連付けられた非差分的な利得値を含む符号化されたhoaデータ・フレーム表現
KR20160099531A (ko) 오디오 신호들의 파라메트릭 재구성
US8041041B1 (en) Method and system for providing stereo-channel based multi-channel audio coding
KR102284104B1 (ko) 입력 신호를 처리하기 위한 인코딩 장치 및 인코딩된 신호를 처리하기 위한 디코딩 장치
JP2024063226A (ja) DirACベースの空間オーディオ符号化のためのパケット損失隠蔽
CN114341976A (zh) 将基于场景的音频数据相关以用于心理声学音频编解码
CN106663434B (zh) 针对hoa数据帧表示的压缩确定表示非差分增益值所需的最小整数比特数的方法
KR20230153402A (ko) 다운믹스 신호들의 적응형 이득 제어를 갖는 오디오 코덱
KR101464977B1 (ko) 메모리 관리 방법, 및 멀티 채널 데이터의 복호화 방법 및장치
KR20090030085A (ko) 메모리 관리 방법 및 메모리 시스템
US20240304196A1 (en) Multi-band ducking of audio signals
RU2807473C2 (ru) Маскировка потерь пакетов для пространственного кодирования аудиоданных на основе dirac

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination