도 1은 본 발명의 일 실시예에 따라 공간 정보를 생성하는 원리를 도시하는 도면이다. 멀티 채널 오디오 신호에 대한 코딩 방식의 개념은, 인간이 오디오 신호를 3차원적으로 인식한다는 사실에 기초한다. 오디오 신호의 3차원 공간은 공간 정보를 사용하여 표현될 수 있으며, 이는 채널 레벨 차분(CLD; Channel Level Difference)과, 채널간 상관/일관성(ICC; Inter Cannel Correlation/Coherence)과, 채널 시간 차분(CTD; Channel Time Difference)과, 채널 예측 계수(CPC: Channel Prediction Coefficients) 등을 포함하지만, 이에 제한되는 것은 아니다. CLD는 2개의 오디오 채널간 에너지 (레벨) 차분을 의미하고, ICC는 2개의 오디오 채널간 상관(correlation) 또는 일관성의 양을 의미하며, CTD는 2 채널간 시간 차분을 의미한다.
CTD와 CLD 파라미터의 생성이 도 1에 도시된다. 원거리 사운드 소스(101)로부터 제1 다이렉트 사운드파(103)가 인간의 왼쪽 귀(107)에 도달하고, 제2 다이렉트 사운드파(102)가 인간의 머리 주변에서 회절된 후 인간의 오른쪽 귀(106)에 도달한다. 2개의 사운드파(102 및 103)는 도달 시간과 에너지 레벨에 있어 상호 상 이하다. CTD 파라미터와 CLD 파라미터는 사운드파(102와 103)의 도달 시간 및 에너지 레벨 차분에 기초하여 생성된다. 또한, 반사된 사운드파(104 및 105)가 양쪽 귀에(106 및 107)에 각각 도달하며, 이들은 상호 상관이 없다. ICC 파라미터는 사운드파(104 및 105)간 상관에 기초하여 생성될 수 있다.
인코더에서는, 멀티 채널 오디오 신호에서 공간 정보(예를 들어, 공간 파라미터들 등)가 추출되고, 다운믹스 신호가 생성된다. 다운믹스 신호와 공간 파라미터는 디코더에 전송된다. 이에 제한되는 것은 아니지만, 모노 신호, 스테레오 신호 또는 멀티 채널 오디오 신호를 포함하는 다운믹스 신호에 임의 개수의 오디오 채널들이 사용될 수 있다. 디코더에서는, 다운믹스 신호와 공간 파라미터들로부터 멀티 채널 업믹스 신호가 생성된다.
도 2는 본 발명의 일 실시예에 따라 오디오 신호를 인코딩하는 인코더의 블록도이다. 인코더는 다운믹싱부(202)와, 공간 정보 생성부(203)와, 다운믹스 신호 인코딩부(207)와 멀티플렉싱부(209)를 포함한다. 인코더의 다른 구성 또한 가능하다. 인코더는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 인코더는 집적 회로 칩, 칩 셋, 시스템 온 칩(SoC: System on Chip), 디지털 신호 프로세서, 범용 프로세서 및 다양한 디지털 장치와 아날로그 장치로 구현될 수 있다.
다운믹싱부(202)는 멀티 채널 오디오 신호(201)로부터 다운믹스 신호(204)를 생성한다. 도 2에서, x1, , xn은 입력 오디오 채널을 나타낸다. 전술된 바와 같이, 다운믹스 신호(204)는 모노 신호, 스테레오 신호 또는 오디오 신호일 수 있다. 도시된 예에서, x'1, , x'm은 다운 믹스 신호(204)의 채널 번호를 나타낸다. 일부 실시예에서, 인코더는 다운믹스 신호(204) 대신에 외부 공급 다운믹스 신호(205)(예를 들어, 정교한 다운믹스 등)를 처리한다.
공간 정보 생성부(203)는 멀티 채널 오디오 신호(201)로부터 공간 정보를 추출한다. 이 경우, 공간 정보란, 디코더에서 다운믹스 신호(204)를 멀티 채널 오디오 신호로 업믹싱하는데 사용되는 오디오 신호 채널과 관련되는 정보를 의미한다. 다운믹스 신호(204)는 멀티 채널 오디오 신호를 다운믹스함으로써 생성된다. 공간 정보는 인코딩되어 인코딩된 공간 정보 신호(206)를 제공한다.
다운믹스 신호 인코딩부(207)는, 다운믹싱부(202)에서 생성된 다운믹스 신호(204)를 인코딩하여, 인코딩된 다운믹스 신호(208)를 생성한다.
멀티플렉싱부(209)는 인코딩된 다운믹스 신호(208)와 인코딩된 공간 정보 신호(206)를 포함하는 비트스트림(210)을 생성한다. 비트스트림(210)은 다운스트림 디코더에 전송되고/전송되거나 기록 매체에 기록된다.
도 3은, 본 발명의 일 실시예에 따라, 인코딩된 오디오 신호를 디코딩하는 디코더의 블록도를 나타내는 도면이다. 디코더는, 디멀티플렉싱부(302)와, 다운믹스 신호 디코딩부(305)와, 공간 정보 디코딩부(307)와 업믹싱부(309)를 포함한다. 디코더는 하드웨어나 소프트웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 디코더는 집적 회로 칩, 칩셋, 시스템 온 칩(SoC: System on Chip), 디지털 신호 프로세서, 범용 프로세서 및 다양한 디지털 장치나 디바이스로 구현될 수 있다.
일부 실시예에서, 디멀티플렉싱부(302)는, 오디오 신호를 나타내는 비트스트림(301)을 수신하여, 이 비트스트림(301)으로부터 인크드된 다운믹스 신호(303)와 인코딩된 공간 정보 신호(304)를 분리한다. 도 3에서, x'1, , x'm은 다운믹스 신호(303)의 채널을 나타낸다. 다운믹스 신호 디코딩부(305)는 인코딩된 다운믹스 신호(303)를 디코딩하여 디코딩된 다운믹스 신호(306)를 출력한다. 디코더가 멀티 채널 오디오 신호를 출력할 수 없는 경우, 다운믹스 신호 디코딩부(305)는 다운믹스 신호(306)를 직접 출력할 수 있다. 도 3에서, y'1, , y'm은 다운믹스 신호 디코딩부(305)의 직접 출력 채널들을 나타낸다.
공간 정보 신호 디코딩부(307)는, 인코딩된 공간 정보 신호(304)로부터 공간 정보 신호의 구성 정보를 추출하고, 추출된 구성 정보를 사용하여 공간 정보 신호(304)를 디코딩한다.
업믹싱부(309)는 추출된 공간 정보(308)를 사용하여 다운믹스 신호(306)를 멀티 채널 오디오 신호(310)로 업믹스할 수 있다. 도 3에서, y1, , y'n은 업믹싱부(309)의 출력 채널 번호를 나타낸다.
도 4는 도 3에 도시된 디코더의 업믹싱부(309)에 포함될 수 있는 채널 변환 모듈의 블록도를 나타내는 도면이다. 일부 실시예에서, 업믹싱부(309)는 복수의 채널 변환 모듈을 포함할 수 있다. 채널 변환 모듈은 특정 정보를 사용하여 입력 채널의 개수와 출력 채널의 개수를 구별할 수 있는 개념적인 장치이다.
일부 실시예에서, 채널 변환 모듈은, 1개 채널을 2개 채널 및 장치 등으로 변환하는 OTT(One-To-Two) 박스와, 2개 채널을 3개 채널 및 장치 등으로 변환하는 TTT(Two-To-Three) 박스를 포함한다. OTT 박스 및/또는 TTT 박스는 여러가지 유용한 구성으로 배치될 수 있다. 예를 들어, 도 3에 도시된 업믹싱부(309)는 5-1-5 구성, 5-2-5 구성, 7-2-7 구성, 7-5-7 구성 등을 포함할 수 있다. 5-1-5 구성에서는, 5개의 채널들을 1개의 채널로 다운믹싱하여 1개의 채널을 갖는 다운믹스 신호가 생성되는데, 이는 차후 5개의 채널들로 업믹스될 수 있다. OTT 박스와 TTT 박스의 다양한 조합을 사용하는 다른 구성들도 동일한 방식으로 생성될 수 있다.
도 4를 참조하면, 업믹싱부(400)의 5-2-5 구성예가 도시된다. 5-2-5 구성에서는, 2개 채널을 갖는 다운믹스 신호(401)가 업믹싱부(400)에 입력된다. 도시된 예에는, 좌측 채널(L)과 우측 채널(R)이 업믹싱부(400)로의 입력으로서 제공된다. 본 실시예에서, 업믹싱부(400)는 1개의 TTT 박스(402)와 3개의 OTT 박스(406, 407 및 408)를 포함한다. 2개 채널을 갖는 다운믹스 신호(401)가 TTT 박스(TTT0)에 대한 입력으로서 제공되며, TTT 박스는 다운믹스 신호(401)를 처리하여 3개의 출력 채널(403, 404 및 405)을 제공한다. TTT 박스(402)에 대한 입력으로서 하나 이상의 공간 파라미터들(예를 들어, CPC, CLD, ICC 등)이 제공되어, 후술되는 바와 같이 다운믹스 신호(401)를 처리하는데 사용될 수 있다. 이러한 경우, CPC는 2개의 채널로부터 3개의 채널을 생성하는 예측 계수로서 설명될 수 있다.
TTT 박스(402)로부터의 출력으로서 제공되는 채널(403)은, 하나 이상의 공간 파라미터을 사용하여 2개의 출력 채널을 생성하는 OTT 박스(406)에 대한 입력으로서 제공된다. 도시된 예에서, 2개의 출력 채널은, 예를 들어, 서라운드 사운드 환경에서의 전방 좌측(FL; Front Left) 스피커 위치와 후방 좌측(BL; Backward Left) 스피커 위치를 나타낸다. 채널(404)은 하나 이상의 공간 파라미터를 사용하여 2개의 출력 채널을 생성하는 OTT 박스(407)에 대한 입력으로서 제공된다. 도시된 예에서, 2개의 출력 채널은 전방 우측(FR; Front Right) 스피커 위치와 후방 우측(BR; Backward Right) 스피커 위치를 나타낸다. 채널(405)는 2개의 출력 채널을 생성하는 OTT 박스(408)에 대한 입력으로서 제공된다. 도시된 예에서, 2개의 출력 채널은 센터(C; Center) 스피커 위치와 저주파 확장(LFE; Low Frequency Enhancement) 채널을 나타낸다. 이 경우, 공간 정보(예를 들어, CLD, ICC 등)는 OTT 박스들 각각에 대한 입력으로서 제공된다. 일부 실시예에서는, 레지듀얼 신호들(Res1, Res2)이 OTT 박스들(406 및 407)에 대한 입력으로서 제공될 수 있다. 이러한 실시예에서, 레지듀얼 신호는 센터 채널과 LFE 채널을 출력하는 OTT 박스(408)에 대한 출력으로서 제공되지 않을 수 있다.
도 4에 도시된 구성은 채널 변환 모듈용 구성의 일 예이다. OTT 박스와 TTT 박스의 다양한 조합을 포함하는 채널 변환 모듈용 다른 구성들도 가능하다. 채널 변환 모듈들 각각은 주파수 영역에서 동작할 수 있으므로, 채널 변환 모듈들 각각에 적용되는 파라미터 대역들의 개수가 정의될 수 있다. 파라미터 대역은 하나의 파라미터에 적용될 수 있는 적어도 하나의 주파수 대역을 의미한다. 파라미터 대역의 개수는 도 6b를 참조하여 설명된다.
도 5는 본 발명의 일 실시예에 따라 오디오 신호의 비트스트림을 구성하는 방법을 도시하는 도면이다. 도 5의 (a)는 공간 정보 신호만을 포함하는 오디오 신호의 비트스트림을 도시하고, 도 5의 (b) 및 (c)는 다운믹스 신호와 공간 정보 신 호를 포함하는 오디오 신호의 비트스트림을 도시한다.
도 5의 (a)를 참조하면, 오디오 신호의 비트스트림은 구성 정보(501)와 프레임(503)을 포함할 수 있다. 프레임(503)은 비트스트렘이세 반복될 수 있으며, 일부 실시예에서는 공간 오디오 정보를 포함하는 1개의 공간 프레임(502)을 포함한다.
일부 실시예에서, 구성 정보(501)는 1개의 공간 프레임(502) 내에서의 타임 슬롯의 총 개수와, 오디오 신호의 주파수 범위를 확장하는 파라미터 대역의 총 개수와, OTT 박스에서의 파라미터 대역의 개수와, TTT 박스에서의 파라미터 대역의 개수와, 레지듀얼 신호에서의 파라미터 대역의 개수를 나타내는 정보를 포함한다. 구성 정보(501)에는 원하는 바에 따라 다른 정보가 포함될 수 있다.
일부 실시예에서, 공간 프레임(502)은, 하나 이상의 공간 파라미터들(예를 들어, CLD, ICC 등)과, 프레임 타입과, 1개 프레임 내에서의 파라미터 세트들의 개수와 파라미터 세트들이 적용될 수 있는 타임 슬롯을 포함한다. 원하는 바에 따라 공간 프레임(502)에는 다른 정보가 포함될 수 있다. 구성 정보(501) 및 공간 프레임(502)에 포함되는 정보의 의미와 용도가 도 6 내지 10을 사용하여 설명될 것이다.
도 5의 (b)를 참조하면, 오디오 신호의 비트스트림은 구성 정보(504)와, 다운믹스 신호(505)와 공간 프레임(506)을 포함한다. 이 경우, 1개의 프레임(507)은 다운믹스 신호(505)와 공간 프레임(506)을 포함하고, 이러한 프레임(507)이 비트스트림에서 반복될 수 있다.
도 5의 (c)를 참조하면, 오디오 신호의 비트스트림은, 다운믹스 신호(508)와, 구성 정보(509)와 공간 프레임(510)을 포함한다. 이 경우, 1개의 프레임(511)은 구성 정보(509)와 공간 프레임(510)을 포함하고, 프레임(511)은 비트스트림에서 반복될 수 있다. 각 프레임(511)에 구성 정보(509)가 삽입되는 경우, 오디오 신호는 재생 장치에 의해 임의의 위치에서 재생될 수 있다.
도 5의 (c)는 구성 정보(509)가 프레임(511)마다 비트스트림에 삽입되는 것을 도시하는 것이지만, 주기적으로 또는 비주기적으로 반복되는 복수의 프레임마다 구성 정보(509)가 비트스트림에 삽입될 수 있다는 것은 자명할 것이다.
도 6a와 도 6b는 본 발명의 일 실시예에 따른 파라미터 세트, 타임 슬롯 및 파라미터 대역들 사이의 관계를 도시하는 도면이다. 파라미터 세트는 1개의 타임 슬롯에 적용되는 하나 이상의 공간 파라미터들을 의미한다. 공간 파라미터들은 CLD, ICC, CPC 등의 공간 정보를 포함할 수 있다. 타임 슬롯은 공간 파라미터들이 적용될 수 있는 오디오 신호의 시간 간격을 의미한다. 1개의 공간 프레임은 하나 이상의 타임 슬롯을 포함할 수 있다.
도 6a를 참조하면, 다수의 파라미터 세트들 1, , P가 공간 프레임에 사용될 수 있고, 각 파라미터 세트는 하나 이상의 데이터 필드 1, , Q-1를 포함할 수 있다. 오디오 신호의 전체 주파수 범위에 하나의 파라미터 세트가 적용될 수 있고, 이러한 파라미터 세트에서의 각 공간 파라미터는 해당 주파수 대역의 하나 이상의 위치에 적용될 수 있다. 예를 들어, 파라미터 세트가 20개의 공간 파라미터들을 포함하는 경우, 오디오 신호의 전체 주파수 대역은 20개의 영역(이하, 파라미터 대 역이라고 함)으로 분할될 수 있고, 파라미터 세트의 20개의 공간 파라미터들이 이러한 20개의 파라미터 대역에 적용될 수 있다. 파라미터들은 원하는 바에 따라 파라미터 대역들에 적용될 수 있다. 예를 들어, 저주파 파라미터 대역에 공간 파라미터들이 집중적으로 적용되고 고주파 파라미터 대역에는 듬성듬성하게 적용될 수 있다.
도 6b를 참조하면, 파라미트 세트들과 타임 슬롯들간 관계를 나타내는 시간/주파수 그래프가 도시된다. 도시된 예에서는, 1개의 공간 프레임에 12개의 타임 슬롯으로 정렬된 세트에 3개의 파라미터 세트들(파라미터 세트 1, 파라미터 세트 2, 파라미터 세트 3)이 적용된다. 이 경우, 오디오 신호의 전체 주파수 범위는 9개의 파라미터 대역들로 분할된다. 따라서, 수평축은 타임 슬롯의 개수를 나타내고 수직축은 파라미터 대역의 개수를 나타낸다. 3개의 파라미터 세트들 각각이 특정 타임 슬롯에 적용된다. 예를 들어, 첫번째 파라미터 세트(파라미터 세트 1)는 타임 슬롯 #1에 적용되고, 두번째 파라미터 세트(파라미터 세트 2)는 타임 슬롯 #5에 적용되고, 세번째 파라미터 세트(파라미터 세트 3)는 타임 슬롯 #9에 적용된다. 타임 슬롯들에 이러한 파라미터 세트들을 보간 및/또는 복사함으로써, 나머지 타임 슬롯들에도 이들 파라미터 세트가 적용될 수 있다. 일반적으로, 파라미터 세트들의 개수는 타임 슬롯들의 개수 이하일 수 있고, 파라미터 대역의 개수는 오디오 신호의 주파수 대역들의 개수 이하일 수 있다. 오디오 신호의 전체 시간-주파수 영역 대신에 오디오 신호의 일부 시간-주파수 영역에 대한 공간 정보를 인코딩함으로써, 인코더에서 디코더로 보내어지는 공간 정보의 양을 감소시킬 수 있다. 이러한 데이터 감소가 가능한 것은, 공지된 오디오 코딩 인식의 원리에 따르면 시간-주파수 영역에서의 공간 정보는 대개의 경우 인간의 청각 인식에 충분하기 때문이다.
개시된 실시예의 중요한 특징은, 파라미터 세트들이 적용되는 타임 슬롯 위치들을, 고정된 개수의 비트들 또는 가변 개수의 비트들을 사용하여, 인코딩하고 디코딩하는 것이다. 파라미터 대역들의 개수 또한 고정된 개수의 비트들로 또는 가변 개수의 비트들로 표현될 수 있다. 이에 제한되는 것은 아니지만, 공간 오디오 코딩에 사용되는 다른 정보로서, 시간 영역, 공간 영역 및/또는 주파수 영역과 관련된 정보를 포함하는 정보에도 가변 코딩 방식이 적용될 수 있다(예를 들어, 필터 뱅크로부터 출력되는 다수의 주파수 부대역에 적용됨).
도 7a는 본 발명의 일 실시예에 따른 공간 정보의 구성 정보를 나타내는 구문을 도시한다. 이러한 구성 정보는 다수의 비트들이 할당될 수 있는 복수의 필드들(701 내지 718)을 포함한다.
bsSamplingFrequencyIndex 필드(701)는 오디오 신호의 샘플링 처리로부터 취득되는 샘플링 주파수를 나타낸다. 샘플링 주파수를 나타내기 위해, bsSamplingFrequencyIndex 필드(701)에는 4 비트가 할당된다. bsSamplingFrequencyIndex 필드(701)의 값이 15, 즉 2진수 1111이면, 샘플링 주파수를 나타내기 위해 bsSamplingFrequency 필드(702)가 추가된다. 이 경우, bsSamplingFrequency 필드(702)에는 24 비트가 할당된다.
bsFrameLength 필드(703)는 1개의 공간 프레임 내의 타임 슬롯들의 총 개수(이하, numSlots이라 함)를 나타내고, numSlots와 bsFrameLength 필드(703) 사이에 는 numSlots = bsFrameLength + 1이라는 관계가 존재할 수 있다.
bsFreqRes 필드(704)는 오디오 신호의 전체 주파수 영역을 확장하는 파라미터 대역들의 총 개수를 나타낸다. bsFreqRes 필드(704)는 도 7B에서 설명될 것이다.
bsTreeConfg 필드(705)는 도 4를 참조하여 설명한 바와 같은 복수의 채널 변환 모듈들을 포함하는 트리 구성을 위한 정보를 나타낸다. 이러한 트리 구성을 위한 정보는, 채널 변환 모듈의 타입, 채널 변환 모듈들의 개수, 채널 변환 모듈에 사용된 공간 정보의 타입, 오디오 신호의 입력/출력 채널들의 개수 등의 정보를 포함한다.
트리 구성은, 채널 변환 모듈의 타입 또는 채널의 개수에 따라, 5-1-5 구성, 5-2-5 구성, 7-2-7 구성, 7-5-7 구성 등 중의 어느 하나일 수 있다. 트리 구성 중 5-2-5 구성이 도 4에 도시된다.
bsQuantMode 필드(706)는 공간 정보의 양자화 모드 정보를 나타낸다.
bsOneIcc 필드(707)는 1개의 ICC 파라미터 서브-세트가 모든 OTT 박스들에 대해 사용되는지 여부를 나타낸다. 이 경우, 파라미터 서브-세트는 특정 타임 슬롯 및 특정 채널 변환 모듈에 적용되는 파라미터 세트를 의미한다.
bsArbitraryDownmix 필드(708)는 임의의 다운믹스 이득의 존재여부를 나타낸다.
bsFixedGainSur 필드(709)는, LS(좌측 서라운드) 및 RS(우측 서라운드) 등의 서라운드 채널에 적용되는 이득을 나타낸다.
bsFixedGainLFE는 LFE 채널에 적용되는 이득을 나타낸다.
bsFixedGainDM은 다운믹스 신호에 적용되는 이득을 나타낸다.
bsMatrixMode 필드(712)는 스테레오 다운믹스 신호와 호환가능한 행렬이 인코더로부터 생성되는지 여부를 나타낸다.
bsTempShapeConfig 필드(713)는 디코더에서 임시 형태(예를 들어, TES(Tempora Envelope Shaping) 및/또는 TP(Temporal Shaping))의 동작 모드를 나타낸다.
bsDecorrConfig 필드(714)는 디코더의 상관해제기(decorrelator)의 동작 모드를 나타낸다.
마지막으로, bs3DaudioMode 필드(715)는, 다운믹스 신호가 3D 신호로 인코딩되는지 여부와, 역 HRTF 처리가 사용되는지 여부를 나타낸다.
인코더/디코더에서 각 필드의 정보가 결정/추출된 후, 채널 변환 모듈에 적용되는 파라미터 대역의 갯수에 대한 정보가 인코더/디코더에서 결정/추출된다. OTT 박스에 적용되는 파라미터 대역들의 개수가 먼저 결정/추출되고(716) 나서, TTT 박스에 적용되는 파라미터 대역들의 개수가 결정/추출된다(717). OTT 박스 및/또는 TTT 박스에 대한 파라미터 대역들의 개수는 이하 도 8a 내지 도 9b를 참조하여 상세히 설명될 것이다.
확장 프레임이 존재하는 경우, spatialExtensionConfig 블록(718)은 확장 프레임에 대한 구성 정보를 포함한다. spatialExtensionConfig 블록(718)에 포함된 정보가 이하 도 10a 내지 도 10d를 참조하여 설명될 것이다.
도 7b는 본 발명의 일 실시예에 따른 공간 정보 신호의 파라미터 대역들의 개수를 나타내는 표이다. numBands는 오디오 신호의 전체 주파수 영역에 대한 파라미터 대역들의 개수를 나타내고, bsFreqRes는 파라미터 대역들의 개수에 대한 인덱스 정보를 나타낸다. 예를 들어, 오디오 신호의 전체 주파수 영역은 원하는 바에 따른 파라미터 대역의 개수(예를 들어, 4, 5, 7, 10, 14, 20, 28 등)로 분할될 수 있다.
일부 실시예에서는, 각 파라미터 대역에 하나의 파라미터가 적용될 수 있다. 예를 들어, numBands가 28인 경우, 오디오 신호의 전체 주파수 영역은 28개의 파라미터 대역들로 분할되고, 이러한 28개의 파라미터 대역들 각각에 28개의 파라미터들이 각각 적용될 수 있다. 다른 예에서, numBands가 4인 경우, 소정 오디오 신호의 전체 주파수 영역은 4개의 파라미터 대역들로 분할되고, 이러한 4개의 파라미터 대역들 각각에는 4개의 파라미터들이 각각 적용될 수 있다. 도 7b에서, Reserve는 소정 오디오 신호의 전체 주파수 영역에 대한 파라미터 대역들의 개수가 결정되지 않은 것을 의미한다.
인간의 청각 기관은 코딩 방식에서 사용되는 파라미터 대역들의 개수에 민감하지 않다는 것을 주의하여야 한다. 따라서, 적은 개수의 파라미터 대역들을 사용하여도 보다 많은 개수의 파라미터 대역들이 사용된 경우에 비해 청취자에게 유사한 공간 오디오 효과를 제공할 수 있다.
numBands와는 달리, 도 7a에 도시된 bsFramelength 필드(703)가 나타내는 numSlots은 모든 값을 나타낼 수 있다. 그러나, 1개의 공간 프레임내의 샘플들의 개수가 numSlots에 의해 명확히 분할되는 경우, numSlots의 값은 제한될 것이다. 따라서, 실질적으로 표현되어야 할 numSlots의 최대값이 'b'라면, bsFrameLength 필드(703)의 모든 값은 ceil{log2(b)} 비트(들)로 표현될 수 있다. 이 경우, 'ceil(x)'는 값 'x' 이상의 최대 정수를 의미한다. 예를 들어, 1개의 공간 프레임이 72개의 타임 슬롯들을 포함하는 경우, ceil{log2(72)} = 7 비트가 bsFrameLength 필드(703)에 할당될 수 있고, 채널 변환 모듈에 적용되는 파라미터 대역들의 개수는 numBands 내에서 결정될 수 있다.
도 8a는, 본 발명의 일 실시예에 따라, OTT 박스에 적용되는 파라미터 대역들의 개수를 고정된 개수의 비트들로 나타내는 구문을 도시한다. 도 7a와 도 8a를 참조하면, 'i'는 '0'에서 'numOttBoxes 1'의 값을 갖고, 'numOttBoxes'는 OTT 박스의 총 개수이다. 즉, 'i'의 값이 각 OTT 박스를 나타내고, 각 OTT 박스에 적용되는 파라미터 대역들의 개수는 'i'의 값에 따라 표현된다. OTT 박스가 LFE 채널 모드를 갖는 경우, OTT 박스의 LFE 채널에 적용되는 파라미터 대역들의 개수(이하, bsOttBands라 함)는 고정된 개수의 비트들을 사용하여 표현될 수 있다. 도 8A에 도시된 예에서는, bsOttBands 필드(801)에 5 비트가 할당된다. OTT 박스가 LFE 채널 모드를 갖지 않는 경우, 총 개수의 파라미터 대역들(numBands)이 OTT 박스의 채널에 할당된다.
도 8b는, 본 발명의 일 실시예에 따라, OTT 박스에 적용되는 파라미터 대역들의 개수를 가변 개수의 비트들로 표현하는 구문을 도시한다. 도 8b는, 도 8a와 유사하지만, 도 8b에 도시된 bsOttBands 필드(802)가 가변 개수의 비트들로 표현된다는 점에서 도 8a와는 다르다. 구체적으로, numBands 이하의 값을 갖는 bsOttBands 필드(802)는 numBands를 사용하는 가변 개수의 비트로 표현될 수 있다.
numBands가 2^(n-1) 이상이고 2^(n) 미만인 범위에 들면, bsOttBands 필드(802)는 가변 n 비트로 표현될 수 있다.
예를 들어: (a) numBands가 40인 경우, bsOttBands 필드(802)는 6 비트로 표현되고; (b) numBands가 28 또는 20인 경우, bsOttBands 필드(802)는 5 비트로 표현되고; (c) numBands가 14 또는 10인 경우, bsOttBands 필드(802)는 4 비트로 표현되며; (d) numBands가 7, 5 또는 4인 경우, bsOttBands 필드(802)는 3 비트로 표현된다.
numBands가 2^(n-1) 초과이고 2^(n) 이하인 범위에 들면, bsOttBands 필드(802)는 가변 n 비트로 표현될 수 있다.
예를 들어: (a) numBands가 40인 경우, bsOttBands 필드(802)는 6 비트로 표현되고; (b) numBands가 28 또는 20인 경우, bsOttBands 필드(802)는 5 비트로 표현되고; (c) numBands가 14 또는 10인 경우, bsOttBands 필드(802)는 4 비트로 표현되고; (d) numBands가 7 또는 5인 경우, bsOttBands 필드(802)는 3 비트로 표현되며; (e) numBands가 4인 경우, bsOttBands 필드(802)는 2 비트로 된다.
bsOttBands 필드(802)는, numBands를 변수로서 취하여 가장 가까운 정수로 자리올림을 하는 함수(이하, 올림 함수(ceil function)이라 함)를 통해, 가변 개수의 비트들로 표현될 수 있다.
구체적으로, i) 0 < bsOttBands numBands 또는 0 bsOttBands < numBands인 경우, bsOttBands 필드(802)는 ceil(log2(numBands))의 값에 대응하는 개수의 비트들로 표현되거나, ii) 0 bsOttBands numBands인 경우, bsOttBands 필드(802)는 ceil(log2(numBands + 1))로 표현될 수 있다.
numBands(이하, numberBands라 함) 이하의 값이 임의로 결정되는 경우, bsBands 필드(802)는, numberBands를 변수로서 취하여 올림 함수를 통해, 가변 개수의 비트들로 표현될 수 있다.
구체적으로, i) 0 < bsOttBands numberBands 또는 0 bsOttBands < numberBands인 경우, bsOttBands 필드(802)는 ceil(log2(numberBands)) 비트들로 표현되거나, ii) 0 bsOttBands numberBands인 경우, bsOttBands 필드(802)는 ceil(log2(numberBands + 1))로 표현될 수 있다.
하나 이상의 OTT 박스가 사용되는 경우, bsOttBands의 조합은 이하의 수학식 1로 표현될 수 있다:
여기서, bsOttBandsi는 i번째 bsOttBands를 나타낸다. 예를 들어, OTT 박스가 3개 존재하고 bsOttBands 필드(802)에 대해 3개의 값(N=3)이 존재한다고 가정하 자. 이러한 예에서, 3개의 OTT 박스에 적용되는 bsOttBands 필드(802)의 3개의 값(이하, 각각, a1, a2, a3라 함)은, 각각, 2비트로 표현될 수 있다. 그러므로, a1, a2, a3 값을 표현하기 위해 총 6 비트가 필요하다. 그러나, a1, a2, a3 값이 그룹으로 표현되는 경우, 27개(= 3 * 3 * 3)의 경우가 발생할 수 있고, 이는 5 비트로 표현될 수 있어 1 비트를 절약하게 된다. numBands가 3이고 5 비트로 표현되는 그룹 값이 15인 경우, 그룹 값은 15 = 1 x (3^2) + 2 * (3^1) + 0 * (3^0)으로 표현될 수 있다. 따라서, 디코더는 수학식 1의 역을 적용하여 그룹 값 15로부터 bsOttBands 필드(802)의 3개의 값 a1, a2, a3을 각각 1, 2, 0으로 결정할 수 있다.
다수 OTT 박스의 경우, bsOttBands의 조합은 numberBands를 사용하는 수학식 2 내지 수학식 4(이하, 설명됨) 중 하나로서 표현될 수 있다. numberBands를 사용하는 bsOttBands의 표현은 수학식 1에서 numBands를 사용하는 표현과 유사하므로, 상세한 설명은 생략하고 그 식만을 이하에 개시하겠다.
도 9a는, 본 발명의 일 실시예에 따라, TTT 박스에 적용되는 파라미터 대역들의 개수를 고정된 개수의 비트들로 나타내는 구문을 도시한다. 도 7a와 도 9a를 참조하면, 'i'는 '0'에서 'numTttBoxes 1'의 값을 갖고, 'numTttBoxes'는 TTT 박스의 총 개수이다. 즉, 'i'의 값이 각 TTT 박스를 나타낸다. 각 TTT 박스에 적용되는 파라미터 대역들의 개수는 'i'의 값에 따라 표현된다. 일부 실시예에서, TTT 박스는 저주파 대역 범위와 고주파 대역 범위로 분할될 수 있고, 이러한 저주파 대역 범위와 고주파 대역 범위에는 서로 다른 처리가 적용될 수 있다. 다른 분할도 가능하다.
bsTTTDualMode 필드(901)는 소정의 TTT 박스가 저주파 대역 범위와 고주파 대역 범위에 대해 각각 서로 다른 모드들(이하, 듀얼 모드라 함)로 동작하는지 여부를 나타낸다. 예를 들어, bsTTTDualMode 필드(901)의 값이 0인 경우, 저주파 대역 범위와 고주파 대역 범위를 구별하지 않고 전체 대역 범위에 대해 1개의 모드가 사용된다. bsTTTDualMode 필드(901)의 값이 1인 경우, 저주파 대역 범위와 고주파 대역 범위에 대해 각각 서로 다른 모드가 사용된다.
bsTttModeLow 필드(902)는 소정의 TTT 박스의 동작 모드를 나타내는 것으로, 이는 다양한 동작 모드를 가질 수 있다. 예를 들어, TTT 박스는, CPC 파라미터와 ICC 파라미터 등을 사용하는 예측 모드, CLD 파라미터를 사용하는 에너지 기반 모 드 등을 가질 수 있다. TTT 박스가 듀얼 모드를 갖는 경우, 고주파 대역 범위에 대한 추가 정보가 필요할 것이다.
bsTttModeHigh 필드(903)는 TTT 박스가 듀얼 모드를 갖는 경우 고주파 대역 범위의 동작 모드를 나타낸다.
bsTttBandsLow 필드(904)는 TTT 박스에 적용되는 파라미터 대역들의 개수를 나타낸다.
bsTttBandsHigh 필드(905)는 numBands를 갖는다.
TTT 박스가 듀얼 모드를 갖는 경우, 저대역 범위는 0 이상 bsTttBandsLow 미만이고, 고대역 범위는 bsTttBandsLow 이상 bsTttBandsHigh 미만일 것이다.
TTT 박스가 듀얼 모드를 갖지 않는 경우, TTT 박스에 적용되는 파라미터 대역의 개수는 0 이상 numBands 미만일 것이다(907).
bsTttBandsLow 필드(904)는 고정된 개수의 비트들로 표현될 수 있다. 예를 들어, 도 9a에 도시된 바와 같이, bsTttBandsLow 필드(904)를 표현하기 위해 5 비트가 할당될 수 있다.
도 9b는, 본 발명의 일 실시예에 따라, TTT 박스에 적용되는 파라미터 대역들의 개수를 가변 개수의 비트들로 표현하는 구문을 도시한다. 도 9b는, 도 9a와 유사하지만, 도 9b에서는 bsTttBandsLow 필드(907)를 가변 개수의 비트들로 표현하고 도 9a에서는 bsTttBandsLow 필드(904)를 고정된 개수의 비트들로 표현한다는 점에서 도 9a와 도 9b는 다르다. 구체적으로, bsTttBandsLow 필드(907)는 numBands 이하의 값을 갖기 때문에, bsTttBandsLow 필드(907)는 numBands를 사용하는 가변 개수의 비트로 표현될 수 있다.
구체적으로, numBands가 2^(n-1) 이상이고 2^(n) 미만인 범위에 들면, bsTttBandsLow 필드(907)는 n 비트로 표현될 수 있다.
예를 들어: (i) numBands가 40인 경우, bsTttBandsLow 필드(907)는 6 비트로 표현되고; (ii) numBands가 28 또는 20인 경우, bsTttBandsLow 필드(907)는 5 비트로 표현되고; (iii) numBands가 14 또는 10인 경우, bsTttBandsLow 필드(907)는 4 비트로 표현되며; (iv) numBands가 7, 5 또는 4인 경우, bsTttBandsLow 필드(907)는 3 비트로 표현된다.
numBands가 2^(n-1) 초과이고 2^(n) 이하인 범위에 들면, bsTttBandsLow 필드(907)는 가변 n 비트로 표현될 수 있다.
예를 들어: (i) numBands가 40인 경우, bsTttBandsLow 필드(907)는 6 비트로 표현되고; (ii) numBands가 28 또는 20인 경우, bsTttBandsLow 필드(907)는 5 비트로 표현되고; (iii) numBands가 14 또는 10인 경우, bsTttBandsLow 필드(907)는 4 비트로 표현되고; (iv) numBands가 7 또는 5인 경우, bsTttBandsLow 필드(907)는 3 비트로 표현되며; (v) numBands가 4인 경우, bsOttBands 필드(802)는 2 비트로 된다.
bsTttBandsLow 필드(907)는, numBands를 변수로서 취하여 가장 가까운 정수로 자리올림하여 결정되는 개수의 비트들로 표현될 수 있다.
예를 들어: i) 0 < bsOttBandsLow numBands 또는 0 bsOttBandsLow < numBands인 경우, bsTttBandsLow 필드(907)는 ceil(log2(numBands))의 값에 대응하는 개수의 비트들로 표현되거나, ii) 0 bsOttBandsLow numBands인 경우, bsTttBandsLow 필드(907)는 ceil(log2(numBands + 1))로 표현될 수 있다.
numBands, 즉, numberBands 이하의 값이 임의로 결정되는 경우, bsTttBandsLow 필드(907)는, numberBands를 사용하여 가변 개수의 비트들로 표현될 수 있다.
구체적으로, i) 0 < bsOttBandsLow numberBands 또는 0 bsOttBandsLow < numberBands인 경우, bsTttBandsLow 필드(907)는 ceil(log2(numberBands))의 값에 대응하는 개수의 비트들로 표현되거나, ii) 0 bsOttBandsLow numberBands인 경우, bsTttBandsLow 필드(907)는 ceil(log2(numberBands + 1))의 값에 대응하는 개수의 비트들로 표현될 수 있다.
다수의 OTT 박스가 사용되는 경우, bsOttBandsLow의 조합은 이하의 수학식 5로 표현될 수 있다:
여기서, bsTttBandsLowi는 i번째 bsTttBandsLow를 나타낸다. 수학식 5의 의미는 수학식 1의 의미와 동일하므로, 수학식 5의 상세한 설명은 생략한다.
다수 OTT 박스의 경우, bsOttBandsLow의 조합은 numberBands를 사용하는 수학식 6 내지 수학식 8 중 하나로서 표현될 수 있다. 수학식 6 내지 수학식 8의 의미는 수학식 2 내지 수학식 4의 의미와 동일하므로, 수학식 6 내지 수학식 8의 상세한 설명은 생략한다.
채널 변환 모듈(예를 들어, OTT 박스 및/또는 TTT 박스 등)에 적용되는 파라미터 대역들의 개수는 numBands의 분할 값으로서 표현될 수 있다. 이 경우, 상술한 분할 값은, numBands의 절반 값 또는 특정 값으로 numBands를 나눈 결과 값을 사용한다.
일단, OTT 및/또는 TT 박스에 적용되는 파라미터 대역들의 개수가 결정되면, 상기 파라미터 대역들의 개수의 범위 내에서 각 OTT 박스 및/또는 각 TTT 박스에 적용될 수 있는 파라미터 세트들이 결정된다. 각 OTT 박스 및/또는 각 TTT 박스에 는 각 파라미터 세트가 타임 슬롯 단위로 적용될 수 있다. 즉, 하나의 타임 슬롯에 하나의 파라미터 세트가 적용될 수 있다.
지금까지의 설명에서 언급된 바와 같이, 1개의 공간 프레임은 복수의 타임 슬롯을 포함할 수 있다. 공간 프레임이 고정된 프레임 타입인 경우, 복수의 타임 슬롯에는 등간격으로 파라미터 세트가 적용될 수 있다. 공간 프레임이 가변 프레임 타입인 경우, 파라미터가 적용되는 타임 슬롯의 위치 정보가 필요하다. 이는 도 13a 내지 13c를 참조하여 후술될 것이다.
도 10a는 본 발명의 일 실시예에 따라 공간 확장 프레임에 대한 공간 확장 구성 정보를 나타내는 구문을 도시한다. 공간 확장 구성 정보는, bsSacExtType 필드(1001)와, bsSacExtLen 필드(1002)와, bsSacExtLenAdd 필드(1003)와, bsSacExtLenAddAdd 필드(1004)와, bsFillBits 필드(1007)를 포함한다. 다른 필드들도 가능하다.
bsSacExtType 필드(1001)는 공간 확장 프레임의 데이터 타입을 나타낸다. 예를 들어, 공간 확장 프레임은, 0, 레지듀얼 신호 데이터, 임의의 다운믹스 레지듀얼 신호 데이터 또는 임의의 트리 데이터로 채워질 수 있다.
bsSacExtLen 필드(1002)는 공간 확장 구성 정보의 바이트 개수를 나타낸다.
bsSacExtLenAdd 필드(1003)는, 공간 확장 구성 정보의 바이트 수가 예를 들어 15 이상인 경우, 공간 확장 구성 정보의 추가 바이트 개수를 나타낸다.
bsSacLenAddAdd 필드(1004)는, 공간 확장 구성 정보의 바이트 수가 예를 들어 270 이상인 경우, 공간 확장 구성 정보의 추가 바이트 개수를 나타낸다.
인코더/디코더에서 각 필드가 결정/추출된 후, 공간 확장 프레임에 포함되는 데이터 타입에 대한 구성 정보가 결정된다(1005).
앞서 설명에서 언급된 바와 같이, 공간 확장 프레임에는 레지듀얼 신호 데이터, 임의의 다운믹스 레지듀얼 신호 데이터, 트리 구성 데이터 등이 포함될 수 있다.
계속해서, 공간 확장 구성 정보의 길이 중 사용되지 않은 비트의 개수가 산출된다(1006).
bsFillBits 필드(1007)는 사용되지 않은 비트들을 채우기 위해 간과될 수 있는 데이터의 비트 개수를 나타낸다.
도 10b와 도 10c는, 본 발명의 일 실시예에 따라, 공간 확장 프레임에 레지듀얼 신호가 포함되는 경우, 레지듀얼 신호를 위한 공간 확장 정보를 나타내는 구문을 도시한다.
도 10b를 참조하면, bsResidualSamplingFrequencyIndex 필드(1008)는 레지듀얼 신호의 샘플링 주파수를 나타낸다.
bsResidualFramesPerSpatialFrame 필드(1009)는 공간 프레임 당 레지듀얼 프레임의 개수를 나타낸다. 예를 들어, 1개의 공간 프레임에 1개, 2개, 3개 또는 4개의 레지듀얼 프레임이 포함될 수 있다.
ResidualConfig 필드(1010)는 각 OTT 및/또는 TTT 박스에 적용되는 레지듀얼 신호에 대한 파라미터 대역의 개수를 나타낸다.
도 10c를 참조하면, bsResidualPresent 필드(1011)는 각 OTT 및/또는 TTT 박 스에 레지듀얼 신호가 적용되는지 여부를 나타낸다.
bsResidualBands 필드(1012)는, 각 OTT 및/또는 TTT 박스에 레지듀얼 신호가 존재하는 경우, 각 OTT 및/또는 TTT 박스에 존재하는 레지듀얼 신호의 파라미터 대역의 개수를 나타낸다. 레지듀얼 신호의 파라미터 대역의 개수는 고정된 개수의 비트들 또는 가변 개수의 비트들로 표현될 수 있다. 파라미터 대역의 개수가 고정된 개수의 비트로 표현되는 경우, 레지듀얼 신호는 오디오 신호의 파라미터 대역들의 총 개수 이하의 값을 가질 수 있다. 그러므로, 모든 파라미터 대역들의 개수를 나타내기 위해 필요한 비트 수(예를 들어, 도 10C에서의 5 비트 등)가 할당될 수 있다.
도 10d는, 본 발명의 일 실시예에 따라, 레지듀얼 신호의 파라미터 대역들의 개수를 가변 개수의 비트들로 표현하는 구문을 도시한다. beResidualBands 필드(1014)는 numBands를 사용하는 가변 개수의 비트들로 표현될 수 있다.
numBands가 2^(n-1) 이상이고 2^(n) 미만이면, beResidualBands 필드(1014)는 n 비트로 표현될 수 있다.
예를 들어: (i) numBands가 40인 경우, beResidualBands 필드(1014)는 6 비트로 표현되고; (ii) numBands가 28 또는 20인 경우, beResidualBands 필드(1014)는 5 비트로 표현되고; (iii) numBands가 14 또는 10인 경우, beResidualBands 필드(1014)는 4 비트로 표현되며; (iv) numBands가 7, 5 또는 4인 경우, beResidualBands 필드(1014)는 는 3 비트로 표현된다.
numBands가 2^(n-1) 초과이고 2^(n) 이하이면, beResidualBands 필드(1014) 는 가변 n 비트로 표현될 수 있다.
예를 들어: (i) numBands가 40인 경우, beResidualBands 필드(1014)는 6 비트로 표현되고; (ii) numBands가 28 또는 20인 경우, beResidualBands 필드(1014)는 5 비트로 표현되고; (iii) numBands가 14 또는 10인 경우, beResidualBands 필드(1014)는 4 비트로 표현되고; (iv) numBands가 7 또는 5인 경우, beResidualBands 필드(1014)는 3 비트로 표현되며; (v) numBands가 4인 경우, beResidualBands 필드(1014)는 2 비트로 된다.
또한, beResidualBands 필드(1014)는, numBands를 변수로서 취하여 가장 가까운 정수로 자리올림하여 결정되는 올림 함수에 의해 결정되는 비트 수로 표현될 수 있다.
구체적으로, i) 0 < beResidualBands numBands 또는 0 beResidualBands < numBands인 경우, beResidualBands 필드(1014)는 ceil(log2(numBands)) 비트들로 표현되거나, ii) 0 beResidualBands numBands인 경우, beResidualBands 필드(1014)는 ceil(log2(numBands + 1)) 비트로 표현될 수 있다.
일부 실시예에서는, numBands 이하인 값(numberBands를 사용하여 beResidualBands 필드(1014)가 표현될 수 있다.
구체적으로, i) 0 < beResidualBands numberBands 또는 0 beResidualBands < numberBands인 경우, beResidualBands 필드(1014)는 ceil(log2(numberBands)) 비트로 표현되거나, ii) 0 beResidualBands numberBands인 경우, beResidualBands 필드(1014)는 ceil(log2(numberBands + 1))의 값으로 표현될 수 있다.
복수의 레지듀얼 신호(N)가 존재하는 경우, beResidualBands의 조합은 이하의 수학식 9로 표현될 수 있다:
이 경우, bsResidualBandsi는 i번째 bsResidualBands를 나타낸다. 수학식 9의 의미는 수학식 1의 의미와 동일하므로, 수학식 9의 상세한 설명은 생략한다.
다수의 레지듀얼 신호가 존재하는 경우, bsResidualBands의 조합은 numberBands를 사용하는 수학식 10 내지 수학식 12 중 하나로서 표현될 수 있다. numberBands를 사용하여 bsResidualBands를 표현하는 것은 수학식 2 내지 수학식 4와 유사하므로, 상세한 설명은 생략한다.
레지듀얼 신호의 파라미터 대역들의 개수는 numBands의 분할 값으로서 표현될 수 있다. 이 경우, 상술한 분할 값은, numBands의 절반 값 또는 특정 값으로 numBands를 나눈 결과 값을 사용한다.
레지듀얼 신호는 다운믹스 신호 및 공간 정보 신호와 함께 오디오 신호의 비트스트림에 포함될 수 있고, 이러한 비트스트림은 디코더에 전송될 수 있다. 디코더는 이러한 비트스트림으로부터 상기 다운믹스 신호와, 공간 정보 신호 및 레지듀얼 신호를 추출할 수 있다.
계속해서, 다운믹스 신호는 공간 정보를 사용하여 업믹스된다. 한편, 레지듀얼 신호는 업믹스위 과정에서 다운믹스 신호에 적용된다. 구체적으로, 다운믹스 신호는 공간 정보를 사용하는 복수의 채널 변환 모듈에서 업믹스된다. 이와 같은 과정에서, 레지듀얼 신호가 채널 변환 모듈에 적용된다. 지금까지의 설명에서 언급된 바와 같이, 채널 변환 모듈은 복수의 파라미터 대역을 갖고, 파라미트 세트는 타임 슬롯 단위로 채널 변환 모듈에 적용된다. 레지듀얼 신호가 채널 변환 모듈에 적용되는 경우, 레지듀얼 신호가 적용되는 오디오 신호의 채널간 상관 정보를 업데이트하기 위해서는 레지듀얼 신호가 필요할 것이다. 이와 같이 업데이트된 채널관 상관 정보는 업믹싱 처리에 사용된다.
도 11a는 본 발명의 일 실시예에 따른 논-가이드 코딩(non-guided coding)을 위한 디코더를 나타내는 블록도이다. 논-가이드 코딩은 오디오 신호의 비트스트림에 공간 정보가 포함되지 않는 것을 의미한다.
일부 실시예에서, 디코더는 분석 필터 뱅크(filter bank; 1102)와, 분석부(1104)와, 공간 합성부(1006)와, 합성 필터 뱅크(1108)를 포함한다. 도 11a에는 스테레오 신호 타입의 다운 믹스 신호가 도시되었지만, 다른 타입의 다운믹스 신호가 사용될 수 있다.
동작시, 디코더는 다운믹스 신호(1101)를 수신하고, 분석 필터 뱅크(1102)는 상기 수신된 다운믹스 신호(1101)를 주파수 영역 신호(1103)로 변환한다. 분석부(1104)는 상기 변환된 다운믹스 신호(1103)로부터 공간 정보를 생성한다. 분석부(1104)가 슬롯 단위로 처리를 수행하여, 복수의 슬롯마다 공간 정보(1105)를 생성할 수 있다. 이 경우, 슬롯은 타임 슬롯을 포함한다.
공간 정보는 2단계로 생성될 수 있다. 첫째, 다운믹스 신호로부터 다운믹스 파라미터가 생성된다. 둘째, 상기 다운믹스 파라미터는 공간 파라미터 등의 공간 정보로 변환된다. 일부 실시예에서, 다운믹스 파라미터는 다운믹스 신호의 행렬 연산을 통해 생성될 수 있다.
공간 합성부(1106)는 상기 생성된 공간 정보(1105)와 다운믹스 신호(1103)를 합성하여 멀티 채널 오디오 신호(1107)를 생성한다. 상기 생성된 멀티 채널 오디오 신호(1107)는 합성 필터 뱅크(1108)를 통과하여 시간 영역 오디오 신호(1109)로 변환된다.
공간 정보는 소정 슬롯 위치들에 생성될 수 있다. 이러한 위치들간 거리는 동일할 수 있다(즉, 등거리). 예를들어, 공간 정보는 4개의 슬롯마다 생성될 수 있다. 또한, 공간 정보는 가변 슬롯 위치에 생성될 수 있다. 이 경우, 공간 정보가 생성되는 위치 정보가 비트스트림으로부터 추출될 수 있다. 상기 위치 정보는 가변 개수의 비트들로 표현될 수 있다. 상기 위치는 이전 슬롯 위치 정보로부터의 절대값 및 차분값으로서 표현될 수 있다.
논-가이드 코딩을 사용하는 경우, 오디오 신호의 각 채널에 대한 파라미터 대역들의 개수(이하, bsNumguidedBlindBands라 함)는 고정된 개수의 비트로 표현될 수 있다. bsNumguidedBlindBands는 numBands를 이용하는 가변 개수의 비트로 표현될 수 있다. 예를 들어, numBands가 2^(n-1) 이상이고 2^(n) 미만이면, bsNumguidedBlindBands는 가변 n 비트로 표현될 수 있다.
구체적으로, (a) numBands가 40인 경우, bsNumguidedBlindBands는 6 비트로 표현되고; (b) numBands가 28 또는 20인 경우, bsNumguidedBlindBands는 5 비트로 표현되고; (c) numBands가 14 또는 10인 경우, bsNumguidedBlindBands는 4 비트로 표현되며; (d) numBands가 7, 5 또는 4인 경우, bsNumguidedBlindBands는 3 비트로 표현된다.
numBands가 2^(n-1) 초과이고 2^(n) 이하이면, bsNumguidedBlindBands는 가변 n 비트로 표현될 수 있다.
예를 들어: (a) numBands가 40인 경우, bsNumguidedBlindBands는 6 비트로 표현되고; (b) numBands가 28 또는 20인 경우, bsNumguidedBlindBands는 5 비트로 표현되고; (c) numBands가 14 또는 10인 경우, bsNumguidedBlindBands는 4 비트로 표현되고; (d) numBands가 7 또는 5인 경우, bsNumguidedBlindBands는 3 비트로 표현되며; (e) numBands가 4인 경우, bsNumguidedBlindBands는 2 비트로 된다.
또한, bsNumguidedBlindBands는 numBands를 변수로서 취하는 자리올림 함수를 사용하여 가변 개수의 비트들로 표현될 수 있다.
예를 들어, i) 0 < bsNumguidedBlindBands numBands 또는 0 bsNumguidedBlindBands < numBands인 경우, bsNumguidedBlindBands는 ceil(log2(numBands)) 비트로 표현되거나, ii) 0 bsNumguidedBlindBands numBands인 경우, bsNumguidedBlindBands는 ceil(log2(numBands + 1)) 비트로 표현될 수 있다.
numBands 이하의 값, 즉 numberBands가 임의로 결정되는 경우, bsNumguidedBlindBands는 다음과 같이 표현될 수 있다.
구체적으로, i) 0 < bsNumguidedBlindBands numberBands 또는 0 bsNumguidedBlindBands < numberBands인 경우, bsNumguidedBlindBands는 ceil(log2(numberBands)) 비트들로 표현되거나, ii) 0 bsNumguidedBlindBands numberBands인 경우, bsNumguidedBlindBands는 ceil(log2(numberBands + 1))로 표현될 수 있다.
다수의 채널(N)이 사용되는 경우, bsNumguidedBlindBands의 조합은 이하의 수학식 13으로 표현될 수 있다:
여기서, bsNumguidedBlindBandsi는 i번째 bsNumguidedBlindBands를 나타낸다. 수학식 13의 의미는 수학식 1의 의미와 동일하므로, 수학식 13의 상세한 설명은 생략한다.
다수 채널이 존재하는 경우, bsNumguidedBlindBands는 numberBands를 사용하는 수학식 14 내지 수학식 16 중 하나로서 표현될 수 있다. numberBands를 사용하는 bsNumguidedBlindBands의 표현은 수학식 2 내지 수학식 4의 표현과 동일하므로, 수학식 14 내지 수학식 16의 상세한 설명은 생략한다.
도 11b는 본 발명의 일 실시예에 따라 파라미터 대역 밴드의 개수를 그룹으로서 표현하는 방법을 나타내는 도면이다. 파라미터 대역의 개수는, 채널 변환 모듈에 적용되는 파라미터 대역의 개수 정보와, 레지듀얼 신호에 적용되는 파라미터 대역의 개수 정보와, 논-가이드 코딩을 사용하는 경우 오디오 신호의 각 채널에 대한 파라미터 대역의 개수 정보를 포함한다. 파라미터 대역의 개수 정보가 복수 존재하는 경우, 복수의 개수 정보(예를 들어, bsOttBands, bsTttBands, bsResidualBands 및/또는 bsNumguidedBlindBands 등)는 적어도 하나의 그룹으로서 표현될 수 있다.
도 11b를 참조하면, 파라미터 대역의 개수 정보가 (kN + L)개 존재하고 각 파라미터 대역의 개수 정보를 표현하는데 Q비트가 필요한 경우, 복수개인 파라미터 대역의 개수 정보는 이하의 그룹으로 표현될 수 있다. 이 경우, 'k'와 'N'은 '0'이 아닌 임의의 정수이고, 'L'은 0 L < N을 충족시키는 임의의 정수이다.
그룹화 방법은, 파라미터 대역의 개수 정보 N개를 묶어서 k개의 그룹을 생성하는 단계와, 마지막 파라미터 대역의 개수 정보 L개를 묶어서 최종 그룹을 생성하는 단계를 포함한다. K개의 그룹은 M 비트로 표현될 수 있고, 최종 그룹은 p 비트로 표현될 수 있다. 이 경우, M 비트가 바람직하게는, 파라미터 대역의 개수 정보 각각을 그룹화하지 않고 표현하는 경우 사용되는 N*Q 비트보다 작다. P 비트가 바람직하게는, 파라미터 대역의 개수 정보 각각을 그룹화하지 않고 표현하는 경우 사용되는 L*Q 비트 이하이다.
예를 들어, 파라미터 대역의 개수 정보 2개가 각각 b1과 b2라고 가정하자. b1과 b2가 각각 5개의 값을 갖는 경우, b1과 b2 각각을 표현하는데 3 비트가 필요하다. 이 경우, 3 비트는 8개의 값을 값을 표현할 수 있더라도, 실질적으로는 5개의 값이 필요하다. 따라서, b1과 b2 각각은 3개의 여분을 갖는다. 그러나, b1과 b2를 함께 묶어서 그룹으로서 표현하는 경우는, 6 비트(= 3 비트 + 3 비트) 대신에 5 비트가 사용될 것이다. 구체적으로, b1과 b2의 모든 조합은 25개(= 5 * 5)의 타입을 갖기 때문에, b1과 b2의 그룹은 5 비트로 표현될 수 있다. 5 비트는 32개의 값을 표현할 수 있으므로, 그룹화 표현의 경우 7개의 여분이 생성된다. 그러나, b1과 b2를 그룹화하여 표현하는 경우, 그 여분은 b1과 b2를 각각 3 비트로 표현하는 경우의 여분보다 작다. 파라미터 대역들의 개수 정보 복수개를 그룹으로서 표현하는 방법은 이하와 같이 다양한 방식으로 구현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 40 가지의 값을 갖는 경우, N으로서 2, 3, 4, 5 또는 6을 사용하여 k개의 그룹이 생성된다. 이러한 k개의 그룹은 각각 11 비트, 16 비트, 22 비트, 27 비트, 32 비트로서 표현될 수 있다. 대안적으로, 이러한 k개의 그룹은 각 경우를 조합하여 표현된다.
파라미터 대역의 개수 정보 복수개가 각각 28가지의 값을 갖는 경우, N으로서 6을 사용하여 k개의 그룹이 생성되고, k는 29 비트로 표현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 20가지의 값을 갖는 경우, N으로서 2, 3, 4, 5, 6 또는 7을 사용하여 k개의 그룹이 생성된다. 이러한 k개의 그룹은 각각 9 비트, 13 비트, 18 비트, 22 비트, 26 비트 및 31 비트로서 표현될 수 있다. 대안적으로, 이러한 k개의 그룹은 각 경우를 조합하여 표현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 14가지의 값을 갖는 경우, N으로서 6을 사용하여 k개의 그룹이 생성된다. 이러한 k개의 그룹은 23비트로 표현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 10가지의 값을 갖는 경우, N으로서 2, 3, 4, 5, 6, 7, 8 또는 9를 사용하여 k개의 그룹이 생성된다. 이러한 k개의 그룹은 각각 7, 10, 14, 17, 20, 24, 27 및 30 비트로 표현될 수 있다. 대안적으로, 이러한 k개의 그룹이 각 경우를 조합하여 표현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 7가지의 값을 갖는 경우, N으로서 6, 7, 8, 9, 10 또는 11을 사용하여 k개의 그룹이 생성된다. 이러한 k개의 그룹은 각각 17, 20, 23, 26, 29 및 31 비트로 표현될 수 있다. 대안적으로, 이러한 k개의 그룹이 각 경우를 조합하여 표현될 수 있다.
파라미터 대역의 개수 정보 복수개가 각각 5가지의 값을 갖는 경우, N으로서 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 또는 13을 사용하여 k개의 그룹이 생성될 수 있다. 이러한 k개의 그룹은 각각 5, 7, 10, 12, 13, 17, 19, 21, 24, 26, 28 및 31 비트로 표현될 수 있다. 대안적으로, 이러한 k개의 그룹이 각 경우를 조합하여 표현될 수 있다.
또한, 파라미터 대역의 개수 정보 복수개는, 전술된 그룹으로서 표현되도록 구성될 수 있거나, 또는 파라미터 대역의 개수 정보 각각을 독립적인 비트 시퀀스로 하여 연속적으로 표현되도록 구성될 수 있다.
도 12는 본 발명의 일 실시예에 따라 공간 프레임의 구성 정보를 나타내는 구문을 도시한다. 공간 프레임은 FraminInfo 블록(1201)과, bsIndependencyFlag 블록(1201)과, Ottdata 블록(1203)과, Tttdata 블록(1204)과, SmgData 블록(1205)과, TempShapeData 블록(1206)을 포함한다.
FramingInfo 블록(1201)은 파라미터 세트의 개수에 대한 정보와 각 파라미터가 적용되는 타임 슬롯에 대한 정보를 포함한다. FramingInfo 블록(1201)은 도 13a에서 상세히 설명된다.
bsIndependencyFlag 필드(1202)는 현재 프레임이 이전 프레임에 대한 지식없이 디코딩될 수 있는지 여부를 나타낸다.
OttData 블록(1203)은 모든 OTT 박스에 대한 모든 공간 파라미터 정보를 포함한다.
TttData 블록(1204)은 모든 TTT 박스에 대한 모든 공간 파라미터 정보를 포함한다.
SmgData 블록(1205)은 비양자화된(dequantized) 공간 파라미터에 적용되는 임시 평탄화(temporal smoothing)에 대한 정보를 포함한다.
TempShapeData 블록(1206)은 비상관 신호에 적용되는 임시 엔빌로프 형상화(temporal envelope shaping)에 대한 정보를 포함한다.
도 13a는, 본 발명의 일 실시예에 따라, 파라미터 세트가 적용되는 타임 슬롯 위치 정보를 나타내는 구문을 도시한다. bsFramingType 필드(1301)는 오디오 신호의 공간 프레임이 고정된 프레임 타입인지 아니면 가변 프레임 타입인지를 나타낸다. 고정된 프레임은 미리 설정된 타임 슬롯에 파라미터 세트가 적용되는 프 레임을 의미한다. 예를 들어, 등간격으로 미리 설정된 타임 슬롯에 파라미터 세트가 적용된다. 가변 프레임은 파라미터 세트가 적용되는 타임 슬롯의 위치 정보를 별도로 수신하는 프레임을 의미한다.
bsNumParamSets 필드(1302)는 1개의 공간 프레임 내에서 파라미터 세트의 개수를 나타내며(이하, numParamSets라 함), numParamSets와 bsNumParamSets 사이에는 numParamSets = bsNumparaSets + 1의 관계가 성립된다.
예를 들어, 도 13A의 bsNumParasets 필드(1302)에 3 비트가 할당되면, 1개의 공간 프레임 내에는 최대 8개의 파라미터 세트가 제공될 수 있다. 할당되는 비트의 개수에 대해서는 제한이 없으므로, 공간 프레임 내에 보다 많은 파라미터 세트가 제공될 수 있다.
공간 프레임이 고정된 프레임 타입인 경우, 파라미터 세트가 적용되는 타임 슬롯의 위치 정보는 미리 설정된 규칙에 따라 결정될 수 있고, 파라미터 세트가 적용되는 타임 슬롯의 추가적인 위치 정보는 불필요하다. 그러나, 공간 프레임이 가변 프레임 타입인 경우, 파라미터 세트가 적용되는 위치 정보가 필요하다.
bsParamSlot 필드(1303)는 파라미터 세트가 적용되는 타임 슬롯의 위치 정보를 나타낸다. bsParamSlot 필드(1303)는 1개의 공간 프레임 내에서의 타임 슬롯의 개수, 즉, numSlots를 사용하여 가변 개수의 비토로 표현될 수 있다. 구체적으로, numSlots가 2^(n-1) 이상이고 2^(n) 미만인 범위에 들면, bsParamSlot 필드(1303)는 n 비트로 표현될 수 있다.
예를 들어: (i) numSlots가 64와 127 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 7 비트로 표현될 수 있고; (ii) numSlots가 32와 63 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 6 비트로 표현될 수 있고; (iii) numSlots가 16과 31 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 5 비트로 표현되고; (iv) numSlots가 8과 15 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 4 비트로 표현될 수 있고; (v) numSlots가 4와 7 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 3 비트로 표현될 수 있고; (vi) numSlots가 2와 3 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 2 비트로 표현될 수 있고; (vii) numSlots가 1인 경우, bsParamSlot 필드(1303)는 1 비트로 표현되고; (viii) numSlots가 0인 경우, bsParamSlot 필드(1303)는 0 비트로 표현될 수 있다. 이와 마찬가지로, numSlots가 64와 127 사이의 범위에 있는 경우, bsParamSlot 필드(1303)는 7 비트로 표현될 수 있다.
다수의 파라미터 세트N가 존재하는 경우, bsParamSlot은 수학식 17에 따라 표현될 수 있다.
이 경우, bsParamSlotsi는 I번째 파라미터 세트가 적용되는 타임 슬롯을 나타낸다. 예를 들어, numSlots가 3이고 bsParamSlot 필드(1303)가 10개의 값을 가질 수 있다고 가정하자. 이 경우, bsParamSlot 필드(1303)에 대한 3개의 정보(이 하, 각각, c1, c2, c3라 함)가 필요하다. c1, c2, c3 각각을 표현하기 위해서는 4 비트가 필요하므로, 총 12 비트가 필요하다. c1, c2, c3를 함께 그룹으로 묶어서 표현하는 경우, 1,000개(= 10 * 10 * 10)의 경우가 발생할 수 있고, 이는 10 비트로 표현될 수 있어, 2 비트를 절약하게 된다. numSlots가 3이고 5 비트로 표현되는 그룹 값이 31인 경우, 그룹 값은 31 = 1 x (3^2) + 5 * (3^1) + 7 * (3^0)으로 표현될 수 있다. 따라서, 디코더 장치는 수학식 17의 역을 적용하여 c1, c2, c3을 각각 1, 5, 7로 결정할 수 있다.
도 13b는 본 발명의 일 실시예에 따라 파라미터 세트가 절대값 및 차분값으로서 적용되는 타임 슬롯의 위치 정보를 나타내는 구문을 도시한다. 공간 프레임이 가변 프레임 타입인 경우, 도 13a에서의 bsParamSlot 필드(1301)는 bsParamSlot 정보가 단조 증가한다는 사실을 이용하여 절대값 및 차분값으로 표현될 수 있다.
예를 들어: (i) 첫번째 파라미터 세트가 적용되는 타임 슬롯의 위치는 절대값, 즉, bsParamSlot[0]으로 생성될 수 있고; (ii) 두번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 위치는 절대값, 즉, bsParamSlot[ps]와 bsParamSlot[ps-1] 사이의 difference value 또는 difference value 1로 생성될 수 있다(이하, bsDiffParamSlot[ps]라 함). 이 경우, ps는 파라미터 세트를 의미한다.
bsParamSlot[0] 필드(1304)는 numSlots과 numParamSets를 사용하여 산출되는 개수의 비트로 표현될 수 있다(이하, nBitsParamSlot(0)라 함).
bsDiffParamSlot[ps] 필드(1305)는 numSlots, numParamSetst 및 이전 파라미터 세트가 적용된 타임 슬롯의 위치를 이용하여 산출되는 개수의 비트로 표현될 수 있다(이하, nBitParamSlot(ps)라 함).
구체적으로, 최소 개수의 비트로 bsParamSlot[ps]를 표현하기 위해서, bsParamSlot[ps]를 표현하는 비트의 개수는 이하의 규칙에 따라 결정될 수 있다: (i) 복수의 bsParamSlot[ps]는 오름차 순으로 증가한다(bsParamSlot[ps] > bsParamSlot[ps-1]); (ii) bsParamSlot[0]의 최대값은 numSlots NumParamSets이다; (iii) 0 < ps < numParamSets인 경우, bsParamSlot[ps]는 bsParamSlot[ps-1] + 1과 numSlots numParamSets + ps 사이값 만을 갖는다.
예를 들어, numSlots가 10이고 numParamSets가 3인 경우, bsParamSlot[ps]는 오름차순으로 증가하기 때문에, bsParamSlot[0]의 최대값은 10 3 = 7이 된다. 즉, bsParamSlot[0]는 0 내지 7 중의 값으로부터 선택되어야 한다. 이는 bsParamSlot[0]이 7 이상의 값을 갖는 경우 나머지 파라미터 세트들에 대한 타임 슬롯의 개수가 불충분하기 때문이다.
bsParamSlot[0]이 5인 경우, 두번째 파라미터 세트에 대한 타임 슬롯 위치 bsParamSlot[1]은 5 + 1 = 6과 10 3 + 1 = 8 사이의 값중에서 선택되어야 한다.
bsParamSlot[1]이 7이면, bsParamSlot[2]은 8 또는 9가 될 수 있다. bsParamSlot[1]이 8이면, bsParamSlot[2]는 9가 될 수 있다.
따라서, bsParamSlot[ps]는 고정된 비트로서 표현되는 대신 위 특징을 사용하여 가변 개수의 비트로 표현될 수 있다.
bsParamSlot[ps]를 비트스트림에 구성함에 있어서, ps가 0인 경우, bsParamSlot[0]은 nBitsParamSlot(0)에 대응하는 개수의 비트에 의해 절대값으로서 표현될 수 있다. ps가 0보다 큰 경우, bsParamSlot[ps]는 nBitsParaSlot(ps)에 대응하는 개수에 의해 절대값으로서 표현될 수 있다. 비트스트림으로부터 위와 같이 구성된 bsParamSlot[ps]를 판독할 때, 각 데이터에 대한 비트스트림의 길이, 즉, nBitsParamSlot[ps]는 수학식 18을 사용하여 표현될 수 있다.
구체적으로, nBitsParamSlot[ps]는 nBitsParamSlot[0] = fb(numSlots numParaSets + 1)로 표현될 수 있다. 0 < ps < numParamSets이면, nBitsParamSlot[ps]는 nBitsParamSlot[ps] = fb(numSlots numParaSets + ps bsParamSlot[ps-1])로 표현될 수 있다. nBitsParamSlot[ps]는 수학식 18을 7 비트까지 연장한 수학식 19을 사용하여 결정될 수 있다.
함수 fb(x)의 예는 아래와 같이 설명된다. numSlots가 15이고 numParamSets가 3인 경우, 위 함수는 nBitsParamSlot[1] = fb(15 3 + 1 7) = 3 비트를 구할 수 있다. 이 경우, bsDiffParamSlot[1] 필드(1305)는 3 비트로 표현될 수 있다.
3 비트로 표현되는 값이 3인 경우, bsParamSlot[1]은 7 + 3 = 10이 된다. 따라서, nBitsParamSlot[2] = fb(15 3 + 2 10) = 2 비트가 된다. 이 경우, bsDiffParamSlot[1] 필드(1305)는 2 비트로 표현될 수 있다. 레지듀얼 타임 슬롯의 개수가 레지듀얼 파라미터 세트의 개수와 동일한 경우, bsDiffParamSlot[ps] 필드에는 0 비트가 할당될 것이다. 환언하면, 파라미터 세트가 적용되는 타임 슬롯의 위치를 표현하기 위한 추가 정보가 필요없다.
따라서, bsParamSlot[ps]에 대한 비트의 개수는 가변적으로 결정될 수 있다. bsParamSlot[ps]에 대한 비트의 개수는 디코더에서 함수 fb(x)를 사용하여 비트스트림으로부터 판독될 수 있다. 일부 실시예에서, 함수 fb(x)는 함수 ceil(log2(x))를 포함할 수 있다.
절대값과 차분값으로 표현되는 bsParamSlot[ps]에 대한 정보를 디코더에서 비트스트림으로부터 판독할 때, 먼저, 비트스트림으로부터 bsParamSlot[0]이 판독되고 나서, 0 < ps < numParamSets에 대한 bsDiffParamSlot[ps]가 판독될 것이다. 그리고, 0 ps < numParamSets 간격에 대한 bsParamSlot[ps]는 bsParamSlot[0]과 bsDiffParamSlot[ps]를 사용하여 구할 수 있다. 예를 들어, 도 13b에 도시된 바와 같이, bsParamSlot[ps]는 bsParamSlot[ps-1]에 bsDiffParamSlot[ps] + 1을 더하여 구할 수 있다.
도 13c는, 본 발명의 일 실시예에 따라, 파라미터 세트가 적용되는 타임 슬롯의 위치 정보를 나타내는 구문을 도시하는 도면이다. 복수의 파라미터 세트가 존재하는 경우, 복수의 파라미터 세트에 대한 복수의 bsParamSlots(1307)는 적어도 하나의 그룹으로서 표현될 수 있다.
bsParamSlots(1307)의 개수가 (kN + L)이고, bsParamSlots(1307) 각각을 표현하는데 Q비트가 필요한 경우, bsParamSlots(1307)은 이하의 그룹으로서 표현될 수 있다. 이 경우, 'k'와 'N'은 '0'이 아닌 임의의 정수이고, 'L'은 0 L < N을 충족시키는 임의의 정수이다.
그룹화 방법은, N개의 bsParamSlots(1307)을 묶어서 k개의 그룹을 생성하는 단계와, 마지막 L개의 bsParamSlots(1307)을 묶어서 최종 그룹을 생성하는 단계를 포함한다. k개의 그룹은 M 비트로 표현될 수 있고, 최종 그룹은 p 비트로 표현될 수 있다. 이 경우, M 비트가 바람직하게는, bsParamSlots(1307) 각각을 그룹화하지 않고 표현하는 경우 사용되는 N*Q 비트보다 작다. P 비트가 바람직하게는, bsParamSlots(1307) 각각을 그룹화하지 않고 표현하는 경우 사용되는 L*Q 비트 이하이다.
예를 들어, 2개의 파라미터 세트에 대한 한 쌍의 bsParamSlots(1307)가 각각 d1과 d2라고 가정하자. d1과 d2가 각각 5개의 값을 갖는 경우, d1과 d2 각각을 표현하는데 3 비트가 필요하다. 이 경우, 3 비트는 8개의 값을 값을 표현할 수 있더라도, 실질적으로는 5개의 값이 필요하다. 따라서, d1과 d2 각각은 3개의 여분을 갖는다. 그러나, d1과 d2를 함께 묶어서 그룹으로서 표현하는 경우는, 6 비트(= 3 비트 + 3 비트) 대신에 5 비트가 사용될 것이다. 구체적으로, d1과 d2의 모든 조합은 25개(= 5 * 5)의 타입을 갖기 때문에, d1과 d2의 그룹은 5 비트로 표현될 수 있다. 5 비트는 32개의 값을 표현할 수 있으므로, 그룹화 표현의 경우 7개의 여분이 생성된다. 그러나, d1과 d2를 그룹화하여 표현하는 경우, 그 여분은 d1과 d2를 각각 3 비트로 표현하는 경우의 여분보다 작다.
그룹을 구성할 때, 그룹에 대한 데이터는, 초기값에 대한 bsParamSlot[0]과, 2번째 이상의 값에 대한 bsParamSlot[ps]의 쌍들간 차분값을 사용하여 구성될 수 있다.
그룹을 구성할 때, 파라미터 세트의 개수가 1이면 그룹화하지 않고 비트가 직접 할당될 수 있으며, 파라미터 세트의 개수가 2 이상이면 그룹화를 완료한 후 비트가 할당될 수 있다.
도 14는 본 발명의 일 실시예에 따른 인코딩 방법의 흐름도이다. 본 발명에 따른 오디오 신호의 인코딩 방법 및 인코더의 동작이 이하에 설명된다.
먼저, 1개의 공간 프레임에서 타임 슬롯의 총 개수(numSlots)와 오디오 신호의 파라미터 대역의 총 개수(numBands)가 결정된다(S1401).
그리고, 채널 변환 모듈에 적용되는 파라미터의 개수 및/또는 레지듀얼 신호가 결정된다(S1402).
OTT 박스가 LFE 채널 모드를 갖는 경우, OTT 박스에 적용되는 파라미터 대역의 개수는 별도로 결정된다.
OTT 박스가 LFE 채널 모드를 갖지 않는 경우, OTT 박스에 적용되는 파라미터 대역의 개수로서 numBands가 사용된다.
계속해서, 공간 프레임의 타입이 판정된다. 이 경우, 공간 프레임은 고정된 프레임 타입과 가변 프레임 타입으로 분류된다.
공간 프레임이 가변 프레임 타입인 경우(S1403), 1개의 공간 프레임 내에서 사용되는 파라미터 세트의 개수가 결정된다(S1406). 이 경우, 파라미터 세트는 타임 슬롯 단위로 채널 변환 모듈에 적용될 수 있다.
계속해서, 파라미터 세트가 적용되는 타임 슬롯의 위치가 결정된다(S1407). 이 경우, 파라미터 세트가 적용되는 타임 슬롯의 위치는 절대값과 차분값으로서 표현될 수 있다. 예를 들어, 첫번째 파라미터 세트가 적용되는 타임 슬롯의 위치는 절대값으로서 표현될 수 있고, 두번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 위치는 이전 타임 슬롯의 위치로부터의 차분값으로서 표현될 수 있다. 이 경우, 파라미터 세트가 적용되는 타임 슬롯의 위치는 가변 개수의 비트로서 표현될 수 있다.
구체적으로, 첫번째 파라미터 세트가 적용되는 타임 슬롯의 위치는, 타임 슬롯의 총 개수와 파라미터 세트의 총 개수를 사용하여 산출되는 비트의 개수로 표현될 수 있다. 두번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 위치는, 타임 슬롯의 총 개수와, 파라미터 세트의 총 개수와, 이전 파라미터 세트가 적용되는 타임 슬롯의 위치를 사용하여 산출되는 비트의 개수로 표현될 수 있다.
공간 프레임이 고정된 프레임 타입인 경우, 1개의 공간 프레임에 사용된 파라미터 세트의 개수가 결정된다(S1404). 이 경우, 파라미터 세트가 적용되는 타임 슬롯의 위치는 미리 설정된 규칙을 사용하여 결정된다. 예를 들어, 파라미터 세트가 적용되는 타임 슬롯의 위치는, 이전 파라미터 세트가 적용되는 타임 슬롯의 위치로부터 등간격을 갖도록 결정될 수 있다(S1405).
계속해서, 다운믹싱부와 공간 생성부는, 앞서 결정된 타임 슬롯의 총 개수와, 파라미터 대역의 총 개수와, 채널 변환부에 적용되어야 할 파라미터 대역의 총 개수와, 1개의 공간 프레임에서의 파라미터 세트의 총 개수와, 파라미터 세트가 적용되는 타임 슬롯의 위치 정보를 사용하여, 다운믹스 신호와 공간 정보를 각각 생성한다(S1408).
마지막으로, 멀티플렉싱부는 다운믹스 신호와 공간 정보를 포함하는 비트스트림을 생성하여(S1409), 이 생성된 비트스트림을 디코더에 전송한다(S1409).
도 15는 본 발명의 일 실시예에 따른 디코딩 방법의 흐름도이다. 본 발명에 따른 오디오 신호의 디코딩 방법 및 디코더의 동작이 이하 설명될 것이다.
먼저, 디코더는 오디오 신호의 비트스트림을 수신한다(S1501). 디멀티플렉 싱부는 수신된 비트스트림으로부터 다운믹스 신호와 공간 정보 신호를 분리한다(S1502). 계속해서, 공간 정보 신호 디코딩부는, 공간 정보 신호의 구성 정보로부터, 1개의 공간 프레임에서의 타임 슬롯의 총 개수, 파라미터 대역의 총 개수 및 채널 변환 모듈에 적용되는 파라미터 대역의 개수에 대한 정보를 추출한다(S1503).
공간 프레임이 가변 프레임 타입인 경우(S1504), 1개의 공간 프레임에서의 파라미터 세트의 개수와 파라미터 세트가 적용되는 타임 슬롯의 위치 정보가 공간 프레임으로브터 추출된다(S1505). 타임 슬롯의 위치 정보는 고정된 개수의 비트 또는 가변 개수의 비트로 표현될 수 있다. 이 경우, 첫번째 파라미터 세트가 적용되는 타임 슬롯의 위치 정보는 절대값으로서 표현될 수 있고, 2번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 위치 정보는 차분값으로서 표현될 수 있다. 2번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 실제 위치 정보는 이전 파라미터 세트가 적용된 타임 슬롯의 위치 정보에 차분값을 더하여 구해질 수 있다.
마지막으로, 추출된 정보를 사용하여 다운믹스 신호가 멀티 채널 오디오 신호로 변환된다(S1506).
본 명세서에 개시된 실시예들은 종래의 오디오 코딩 방식에 비해 여러가지 장점을 제공한다.
첫째, 멀티 채널 오디오 신호의 코딩에 있어서, 파라미터 세트가 적용되는 타임 슬롯의 위치를 가변 개수의 비트로 표현함으로써, 전송 데이터량을 감소시킬수 있다.
둘째, 첫째 파라미터 세트가 적용되는 타임 슬롯의 위치를 절대값으로 표현 하고, 두번째 이상의 파라미터 세트가 적용되는 타임 슬롯의 위치를 차분값으로 표현함으로써, 전송 데이터량을 감소시킬 수 있다.
셋째, OTT 박스 및/또는 TTT 박스 등에 적용되는 파라미터 대역의 개수를 고정된 개수의 비트 또는 가변 개수의 비트로 표현함으로써, 전송 데이터량을 감소시킬 수 있다. 이 경우, 파라미터 세트가 적용되는 타임 슬롯의 위치는 전술된 원리를 사용하여 표현될 수 있고, 여기서 파라미터 세트는 파라미터 대역의 개수 범위내에 존재한다.
도 16은 도 1 내지 도 15를 참조하여 설명된 오디오 인코더/디코더를 구현하는 장치 구조(1600)의 일 예를 나타내는 블록도이다. 이 장치 구조(1600)는, 퍼스널 컴퓨터, 서버 컴퓨터, 가전 장치, 이동 전화, PDA, 전자 태블릿, 텔레비전 시스템, 텔레비전 셋톱 박스, 게임 콘솔, 매체 재생기, 음악 재생기, 네비게이션 시스템 및 오디오 신호를 디코딩할 수 있는 임의의 기타 장치를 포함하는 다양한 장치에 적용될 수 있지만 이에 제한되는 것은 아니다. 이들 장치 중 일부는 하드웨어와 소프트웨어의 조합을 사용하여 변경된 구조를 구현할 수 있다.
본 구조(1600)는, 하나 이상의 프로세서(1602)(예를 들어, PowerPC, Intel Pentium 4 등)와, 하나 이상의 디스플레이 장치(1604)(예를 들어, CRT, LCD 등)와, 오디오 서브시스템(1606)(예를 들어, 오디오 하드웨어/소프트웨어)와, 하나 이상의 네트워크 인터페이스(1608)(예를 들어, Ethernet, FireWire, USB 등)와, 입력 장치(1610)(예를 들어, 키보드, 마우스 등)와 하나 이상의 컴퓨터 판독가능 매체(1612)(예를 들어, RAM, ROM, SDRAM, 하드 디스크, 광 디스크, 플래시 메모리 등)를 포함한다. 이들 구성요소는 하나 이상의 버스(1614)(예를 들어, EISA, PCI, PCI Express 등)를 통해 통신하고 데이터를 교환할 수 있다.
컴퓨터 판독가능 매체라는 용어는 프로세서(1602)에게 실행용 명령어를 제공하는 임의의 매체를 일컫는 것으로, 불휘발성 매체(예를 들어, 광 디스크나 자기 디스크 등), 휘발성 매체(예를 들어, 메모리 등) 및 전송 매체를 포함하지만 이에 제한되는 것은 아니다. 전송 매체는, 동축 케이블, 구리 배선 및 광 섬유를 포함하지만 이에 제한되는 것은 아니다. 전송 매체는 또한 음향파, 광파 또는 무선 주파수 파형의 형태를 취할 수 있다.
컴퓨터 판독가능 매체(1612)는, 운영 체제(1616)(예를 들어, Mac OS, Windows, Linux 등)와, 네트워크 통신 모듈(1618)과, 오디오 코덱(1620)과 하나 이상의 응용 프로그램(1622)을 더 포함한다.
운영 체제(1616)는 멀티 유저, 멀티프로세싱, 멀티태스킹, 멀티스레딩, 실시간 등일 수 있다. 운영 체제(1616)는, 입력 장치(1610)로부터 입력을 인식하고; 디스플레이 장치(1604)와 서브 시스템(1606)에 출력을 보내고; 컴퓨터 판독가능 매체(1612)(예를 들어, 메모리 또는 기록 장치 등) 상에 파일과 디렉토리를 유지하고; 주변 장치(예를 들어, 디스크 드라이브, 프린터 등)를 제어하고; 하나 이상의 버스(1614) 상에서의 트래픽을 관리하는 기본 태스크를 수행하지만 이에 제한되는 것은 아니다.
네트워크 통신 모듈(1618)은 네트워크 접속을 수립하고 유지하는 다양한 구성요소(예를 들어, TCP/IP, HTTP, Ethernet 등의 통신 프로토콜을 구현하는 소프트 웨어 등)를 포함한다. 네트워크 통신 모듈(1618)은 장치 구조(1600)의 운영자가 정보(예를 들어, 오디오 콘텐츠 등)를 찾아 네트워크(예를 들어, 인터넷 등)를 검색하게 할 수 있는 브라우저를 포함할 수 있다.
오디오 코덱(1620)은 도 1 내지 도 15를 참조하여 설명된 인코딩 및/또는 디코딩 프로세스의 전부 또는 일부를 구현하는 담당을 한다. 일부 실시예에서, 오디오 코덱은 하드웨어(예를 들어, 프로세서(1602), 오디오 서브시스템(1606) 등)와 연동하여 본 명세서에 설명된 본 발명에 따라 오디오 신호를 인코딩 및/또는 디코딩하는 것을 포함하여 오디오 신호를 처리한다.
응용 프로그램(1622)은 오디오 콘텐츠와 관련된 임의의 소프트웨어를 포함할 수 있고, 오디오 콘텐츠는 매체 재생기, 음악 재생기(예를 들어, MP3 재생기 등), 이동 전화 애플리케이션, PDA, 텔레비전 시스템, 셋톱 박스 등에서 인코딩 및/또는 디코딩되지만 이에 제한되는 것은 아니다. 일 실시예에서, 오디오 코덱은 애플리케이션 서비스 제공업자가 네트워크(예를 들어, 인터넷 등)를 통해 인코딩/디코딩 서비스를 제공하는데 사용될 수 있다.
지금까지의 설명에서는, 설명의 목적상, 본 발명의 완전한 이해를 제공하기 위해 몇몇 특정 상세가 개시되었다. 그러나, 당업자라면 본 발명이 이러한 특정 상세 없이도 실행될 수 있다는 것을 이해할 것이다. 또한, 본 발명을 불명료하게 하는 것을 방지하기 위해 구조 및 장치는 블록도 형태로 도시되었다.
특히, 당업자라면, 다른 구조 및 그래픽 환경이 사용될 수 있고, 앞서 설명된 것과는 다른 그래픽 툴과 제품을 사용하여 본 발명이 구현될 수 있다는 점을 이 해할 것이다. 특히, 클라이언트/서버 어프로치는 본 발명의 대시보드(dashboard) 기능을 제공하는 구조의 일 예일 뿐으로; 당업자라면 클라이언트/서버 어프로치가 아닌 다른 것이 사용될 수 있다는 점을 이해할 것이다.
상세한 설명 중 일부는 컴퓨터 메모리 내에서의 데이터 비트에 대한 연산의 알고리즘과 심볼 표현으로 제공되었다. 이들 알고리즘 설명과 표현은 데이터 처리 분야의 당업자들이 다른 당업자들에게 자신의 작업의 본질을 가장 효과적으로 전달하는 수단이다. 일반적으로, 그리고 본 명세서에서 알고리즘은 소망하는 결과에 이르는 단계들의 일련의 시퀀스로 인식된다. 이러한 단계는 물리량의 조작을 필요로 한다. 일반적으로, 반드시 그럴 필요는 없지만, 이러한 량은 저장되거나, 전송되거나, 조합되거나, 비교되거나 달리 조작될 수 있는 전기 신호 또는 자기 신호의 형태를 취한다. 주로 통상적인 용도의 이유로, 이들 신호를 비트, 값, 엘리먼트, 심볼, 캐릭터, 술어, 넘버 등으로 일컫는 것이 편리하다.