KR102105606B1 - 데이터 압축 장치 - Google Patents
데이터 압축 장치 Download PDFInfo
- Publication number
- KR102105606B1 KR102105606B1 KR1020140066877A KR20140066877A KR102105606B1 KR 102105606 B1 KR102105606 B1 KR 102105606B1 KR 1020140066877 A KR1020140066877 A KR 1020140066877A KR 20140066877 A KR20140066877 A KR 20140066877A KR 102105606 B1 KR102105606 B1 KR 102105606B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- data
- scaling
- header information
- bits
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
Abstract
본 발명은 데이터 압축 장치에 관한 것이다. 본 발명의 데이터 압축 장치는 블록 단위로 구분된 I/Q 데이터 블록으로부터 압축 데이터의 블록 헤더 정보를 추출하는 헤더 정보 추출부, 블록 헤더 정보에 근거하여 I/Q 데이터 블록을 블록 스케일링한 I/Q 데이터 스케일링 블록을 생성하는 블록 스케일링부, 및 블록 헤더 정보에 근거한 블록 헤더와 I/Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함한다.
Description
본 발명은 데이터 압축 장치에 관한 것으로, 블록 스케일링을 통해 데이터를 압축하는 데이터 압축 장치에 관한 것이다.
데이터 전송 효율을 높이기 위한 기술로 데이터 압축 기술이 있다. 이와 같이, 원본 데이터를 압축을 통해 크기가 감소된 압축된 데이터로 전송하면 데이터 전송에 소요되는 자원을 줄일 수 있다.
예를 들어, 롱 텀 에볼루션(LTE: Long Term Evolution) 기술을 사용하는 이동 통신 시스템을 대상으로 하는 데이터 압축을 살펴보기로 한다. 이동 통신 시스템의 기지국은 일체형 기지국이 분산형 기지국 형태로 진화함에 따라, 리모트 라디오 헤드(Remote Radio Heads, 이하 'RRH'(RRH)라 칭하기로 함)와 기저대역 유닛(Baseband Unit, 이하 'BBU'라 칭하기로 함)로 구성되고 있다.
RRH는 기저대역 신호를 무선 신호로 변환하여 전송하고, 수신되는 무선 신호를 기저대역 신호로 변환한다. 또한, BBU는 기저대역의 신호를 처리하고, 이동 단말들과 통신하기 위해 RRH와 정보를 교환한다.
이때, RRH와 BBU 간의 연결에는 주로 광케이블이 사용되고 있으며, 광케이블의 추가 매설에는 많은 비용을 필요로 한다. 또한, 다중입출력(MIMO: Multiple Input Multiple Output)기술의 도입으로 요구되는 안테나의 수가 늘어났으며, 안테나 수의 증가로 광케이블을 통해 교환할 데이터 양도 증가하고 있다. 이와 같이, 광케이블과 같은 자원의 사용을 줄이기 위해 데이터 크기를 줄이기 위한 다양한 데이터 압축 기술이 제안되고 있다.
이러한 압축 기술들 중의 하나로, 블록 스케일링 기법이 있다. 이러한 블록 스케일링 기법은 데이터를 블록 단위로 구분하고, 구분된 블록 단위의 데이터를 압축하여 전송한다. 하지만, 이러한 블록 스케일링 기법은 고정된 블록 크기로 설정됨에 따라 설정된 블록의 크기가 클수록 전송 지연이 커지는 문제점이 있었다.
본 발명의 목적은 전송 지연의 증가를 최소화하는 블록 크기로 데이터를 압축하는 데이터 압축 장치를 제공함에 있다.
본 발명에 따른 데이터 압축 장치는 수신된 동위상(I) 데이터와 직교위상(Q) 데이터를 저장하고, 상기 저장된 I 데이터와 Q 데이터 각각을 블록 단위로 구분하여 출력하는 데이터 저장부, 상기 블록 단위로 구분된 I 데이터 블록과 Q 데이터 블록으로부터 획득한 최대값을 기준으로 미리 결정된 패딩 데이터를 이용하여 블록 헤더 정보를 추출하는 헤더 정보 추출부, 상기 블록 헤더 정보에 근거하여 상기 I 데이터 블록과 상기 Q 데이터 블록을 블록 스케일링한 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 생성하는 블록 스케일링부, 및 상기 블록 헤더 정보에 근거한 블록 헤더, 상기 I 데이터 스케일링 블록, 및 상기 Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함한다.
이 실시예에 있어서, 상기 헤더 정보 추출부는 상기 I 데이터 블록과 상기 Q 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 최대값을 결정하는 최대크기의 샘플 결정부, 및 상기 최대값으로부터 상기 패딩 데이터의 비트수를 이용하여 상기 블록 헤더 정보를 생성하는 헤더 정보 생성부를 포함한다.
이 실시예에 있어서, 상기 블록 헤더 정보는 하기의 수학식으로 생성되고, , 상기 G(k)는 상기 블록 헤더 크기 정보이고, 상기 A(k)는 상기 최대값이고, 상기 Qd는 상기 패딩 데이터의 비트수이다.
이 실시예에 있어서, 상기 패딩 데이터의 비트수는 상기 I 데이터 블록과 상기 Q 데이터 블록에 사용할 수 있는 최대 비트수를 기준으로 상기 블록 헤더에 할당되는 비트수와 1을 감산하여 획득한다.
이 실시예에 있어서, 상기 블록 스케일링부는 상기 블록 헤더 정보에 근거하여 상기 I 데이터 블록과 상기 Q 데이터 블록의 스케일링을 위한 블록 스케일링 값을 결정하는 스케일링 결정부, 및 상기 I 데이터 블록과 상기 Q 데이터 블록 각각을 상기 블록 스케일링 값과 연산하여 상기 I 데이터 스케일링 블록과 상기 Q 데이터 스케일링 블록을 생성하는 스케일링 블록 생성부를 포함한다.
이 실시예에 있어서, 상기 블록 스케일링 값은 하기의 수학식으로 결정되고, , 상기 G(k)는 상기 블록 헤더 크기 정보이고, 상기 Qd는 상기 패딩 데이터의 비트수이고, 상기 Qq는 상기 블록 스케일링 후 각 샘플들에 할당된 비트수이다.
본 발명에 따른 데이터 압축 장치는 수신된 동위상(I) 데이터와 직교위상(Q) 데이터를 I 데이터와 Q 데이터 각각으로 분배하는 데이터 분배부, 상기 분배된 I 데이터를 저장하고, 상기 저장된 I 데이터를 블록 단위로 구분하여 출력하는 제 1 데이터 저장부, 상기 블록 단위로 구분된 I 데이터 블록으로부터 획득한 제 1 최대값을 기준으로 미리 결정된 제 1 패딩 데이터를 이용하여 제 1 블록 헤더 정보를 추출하는 제 1 헤더 정보 추출부, 상기 제 1 블록 헤더 정보에 근거하여 상기 I 데이터 블록을 블록 스케일링한 I 데이터 스케일링 블록을 생성하는 제 1 블록 스케일링부, 상기 분배된 Q 데이터를 저장하고, 상기 저장된 Q 데이터를 블록 단위로 구분하여 출력하는 제 2 데이터 저장부, 상기 블록 단위로 구분된 Q 데이터 블록으로부터 획득한 제 2 최대값을 기준으로 미리 결정된 제 2 패딩 데이터를 이용하여 제 2 블록 헤더 정보를 추출하는 제 2 헤더 정보 추출부, 상기 제 2 블록 헤더 정보에 근거하여 상기 Q 데이터 블록을 블록 스케일링한 Q 데이터 스케일링 블록을 생성하는 제 2 블록 스케일링부, 및 상기 제 1 및 제 2 블록 헤더 정보에 근거하여 I 블록 헤더와 Q 블록 헤더를 생성하고, 상기 I 블록 헤더와, 상기 Q 블록 헤더, 상기 I 데이터 스케일링 블록, 상기 Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함한다.
이 실시예에 있어서, 상기 제 1 헤더 정보 추출부는 상기 제 I 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 제 1 최대값을 결정하는 제 1 최대크기의 샘플 결정부, 및 상기 제 1 최대값으로부터 상기 제 1 패딩 데이터의 비트수를 이용하여 상기 제 1 블록 헤더 정보를 생성하는 제 1 헤더 정보 생성부를 포함한다.
이 실시예에 있어서, 상기 제 1 블록 헤더 정보는 하기의 수학식으로 생성되고, , 상기 GI(k)상기 제 1 블록 헤더 정보이고, 상기 AI(k)는 상기 제 1 최대값이고, 상기 Qdi는 상기 제 1 패딩 데이터의 비트수이다.
이 실시예에 있어서, 상기 제 1 패딩 데이터의 비트수는 상기 I 데이터 블록에 사용할 수 있는 최대 비트수를 기준으로 상기 제 1 블록 헤더에 할당되는 비트수와 1을 감산하여 획득한다.
이 실시예에 있어서, 상기 제 1 블록 스케일링부는 상기 제 1 블록 헤더 정보에 근거하여 상기 I 데이터 블록의 스케일링을 위한 제 1 블록 스케일링 값을 결정하는 제 1 스케일링 결정부, 및 상기 I 데이터 블록을 상기 제 1 블록 스케일링 값과 연산하여 상기 I 데이터 스케일링 블록을 생성하는 제 1 스케일링 블록 생성부를 포함한다.
이 실시예에 있어서, 상기 제 1 블록 스케일링 값은 하기의 수학식으로 결정되고, , 상기 GI(k)는 상기 제 1 블록 헤더 정보이고, 상기 Qdi는 상기 제 1 패딩 데이터의 비트수이고, 상기 Qq는 상기 블록 스케일링 후 각 샘플들에 할당된 비트수이다.
이 실시예에 있어서, 상기 제 2 헤더 정보 추출부는 상기 제 Q 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 제 2 최대값을 결정하는 제 2 최대크기의 샘플 결정부, 및 상기 제 2 최대값으로부터 상기 제 2 패딩 데이터의 비트수를 이용하여 상기 제 2 블록 헤더 정보를 생성하는 제 2 헤더 정보 생성부를 포함한다.
이 실시예에 있어서, 상기 제 2 블록 헤더 정보는 하기의 수학식으로 생성되고, , 상기 GQ(k)는 상기 제 2 블록 헤더 정보이고, 상기 AQ(k)는 상기 제 2 최대값이고, 상기 Qdq는 상기 제 2 패딩 데이터의 비트수이다.
이 실시예에 있어서, 상기 제 2 패딩 데이터의 비트수는 상기 Q 데이터 블록에 사용할 수 있는 최대 비트수를 기준으로 상기 제 2 블록 헤더에 할당되는 비트수와 1을 감산하여 획득한다.
이 실시예에 있어서, 상기 제 2 블록 스케일링부는 상기 제 2 블록 헤더 정보에 근거하여 상기 Q 데이터 블록의 스케일링을 위한 제 2 블록 스케일링 값을 결정하는 제 2 스케일링 결정부, 및 상기 Q 데이터 블록을 상기 제 2 블록 스케일링 값과 연산하여 상기 Q 데이터 스케일링 블록을 생성하는 제 2 스케일링 블록 생성부를 포함한다.
이 실시예에 있어서, 상기 제 2 블록 스케일링 값은 하기의 수학식으로 결정되고,
본 발명의 데이터 압축 데이터 블록에 포함된 헤더의 크기를 감소시킴으로써, 압축된 데이터 스트림에 포함된 데이터 블록의 크기를 감소시켜 전송 지연의 발생을 최소화할 수 있다.
도 1은 본 발명에 따른 데이터 압축 장치를 예시적으로 도시한 도면,
도 2는 도 1에 도시된 헤더 정보 추출부를 예시적으로 도시한 도면,
도 3은 본 발명에 따른 데이터 블록에 포함된 샘플들의 진폭을 도시한 그래프,
도 4는 도 1에 도시된 블록 스케일링부를 예시적으로 도시한 도면,
도 5는 본 발명에 따른 데이터 블록으로부터 블록 스케일링을 통해 획득된 스케일링 블록을 예시적으로 도시한 도면,
도 6은 본 발명에 따른 압축 데이터에 포함된 블록 헤더를 예시적으로 도시한 도면,
도 7은 본 발명에 따른 블록 헤더를 사용하여 데이터 블록의 크기를 감소시키는 동작을 예시적으로 도시한 도면,
도 8은 도 1에 도시된 데이터 압축 장치의 데이터 압축 동작을 예시적으로 도시한 순서도,
도 9는 본 발명의 다른 실시예에 따른 데이터 압축 장치를 예시적으로 도시한 도면,
도 10은 도 9에 도시된 제 1 헤더 정보 추출부를 예시적으로 도시한 도면,
도 11은 도 9에 도시된 제 1 블록 스케일링부를 예시적으로 도시한 도면,
도 12는 도 9에 도시된 제 2 헤더 정보 추출부를 예시적으로 도시한 도면, 및
도 13은 도 9에 도시된 제 2 블록 스케일링부를 예시적으로 도시한 도면이다.
도 2는 도 1에 도시된 헤더 정보 추출부를 예시적으로 도시한 도면,
도 3은 본 발명에 따른 데이터 블록에 포함된 샘플들의 진폭을 도시한 그래프,
도 4는 도 1에 도시된 블록 스케일링부를 예시적으로 도시한 도면,
도 5는 본 발명에 따른 데이터 블록으로부터 블록 스케일링을 통해 획득된 스케일링 블록을 예시적으로 도시한 도면,
도 6은 본 발명에 따른 압축 데이터에 포함된 블록 헤더를 예시적으로 도시한 도면,
도 7은 본 발명에 따른 블록 헤더를 사용하여 데이터 블록의 크기를 감소시키는 동작을 예시적으로 도시한 도면,
도 8은 도 1에 도시된 데이터 압축 장치의 데이터 압축 동작을 예시적으로 도시한 순서도,
도 9는 본 발명의 다른 실시예에 따른 데이터 압축 장치를 예시적으로 도시한 도면,
도 10은 도 9에 도시된 제 1 헤더 정보 추출부를 예시적으로 도시한 도면,
도 11은 도 9에 도시된 제 1 블록 스케일링부를 예시적으로 도시한 도면,
도 12는 도 9에 도시된 제 2 헤더 정보 추출부를 예시적으로 도시한 도면, 및
도 13은 도 9에 도시된 제 2 블록 스케일링부를 예시적으로 도시한 도면이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다.
본 발명에서 제안된 데이터 압축 장치는 블록 스케일링 기법을 사용하여 데이터를 압축한다. 데이터 압축 장치는 예를 들어, 롱텀에볼루션(LTE: Long Term Evolution) 방식을 사용하는 리모트 라디오 헤드(Remote Radio Heads, 이하 'RRH'라 칭하기로 함)와 기저대역 유닛(Baseband Unit, 이하 'BBU'라 칭하기로 함)에서 데이터의 송수신에 이용될 수 있다. 이와 같은 이동 통신 시스템에 사용되는 것은 예시적으로 설명된 것으로, 이러한 이동 통신 시스템뿐만 아니라 데이터를 송수신하는 다른 다양한 시스템에도 활용될 수 있다.
도 1은 본 발명에 따른 데이터 압축 장치를 예시적으로 도시한 도면이다.
도 1을 참조하면, 데이터 압축 장치(100)는 데이터 저장부(110), 헤더 정보 추출부(120), 블록 스케일링부(130), 및 압축 데이터 생성부(140)를 포함한다.
데이터 저장부(110)는 수신된 데이터 스트림을 저장한다. 예를 들어, 데이터 스트림은 실수 성분에 대응되는 동위상(이하 'I'라 칭하기로 함) 데이터와 복수 성분에 대응되는 직교위상(이하 'Q'라 칭하기로 함) 데이터를 포함한다. 따라서, 데이터 스트림(Sd(i))은 하기의 수학식 1과 같이 나타낼 수 있다.
여기서, i는 샘플 인덱스를 나타낸다. I(i)는 I 데이터 샘플을 나타내고, Q(i)는 Q 데이터 샘플을 나타낸다.
이와 같이, 데이터 저장부(110)는 I 데이터와 Q 데이터를 저장한다. 데이터 저장부(110)는 저장된 I 데이터와 Q 데이터를 블록 단위로 구분(I 데이터 블록, Q 데이터 블록)하여 헤더 정보 추출부(120)와 블록 스케일링부(130) 각각으로 출력한다. 여기서, I 데이터 블록과 Q 데이터 블록 각각은 일정한 비트수로 구성된 복수개의 샘플들로 구성될 수 있다.
헤더 정보 추출부(120)는 블록 단위로 구분된 I 데이터 블록과 Q 데이터 블록을 수신한다. 헤더 정보 추출부(120)는 I 데이터 블록과 Q 데이터 블록으로부터 압축 데이터에 포함될 블록 헤더 정보를 추출한다. 즉, 헤더 정보 추출부(120)에서 추출된 블록 헤더 정보는 블록 헤더이다. 여기서, 블록 헤더 정보는 I 데이터 블록과 Q 데이터 블록을 구성하는 샘플들 중에서 절대값의 최대값과 미리 결정된 패딩 데이터의 비트수를 이용하여 생성된다. 헤더 정보 추출부(120)는 추출된 블록 헤더 정보를 블록 스케일링부(130)와 압축 데이터 생성부(140)로 각각 출력한다.
블록 스케일링부(130)는 블록 단위로 구분된 I 데이터 블록과 Q 데이터 블록을 수신한다. 또한, 블록 스케일링부(130)는 블록 헤더 정보를 수신한다. 블록 스케일링부(130)는 블록 헤더 정보와 패딩 데이터를 이용하여 I 데이터 블록과 Q 데이터 블록을 블록 스케일링한다. 이를 통해, 블록 스케일링부(130)는 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 생성한다. 여기서, 생성된 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록은 I 데이터 블록과 Q 데이터 블록에 비하여 블록 내 포함된 샘플들의 비트수 감소로 인해 크기가 감소한다.
압축 데이터 생성부(140)는 블록 헤더 정보를 수신한다. 블록 헤더는 블록 헤더 정보를 포함하며, I 데이터 스케일링 블록과 Q 데이터 스케일링 블록의 압축 복원을 위한 블록 헤더 정보를 포함한다.
또한, 압축 데이터 생성부(140)는 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 수신한다. 압축 데이터 생성부(140)는 블록 헤더, I 데이터 스케일링 블록, 및 Q 데이터 스케일링 블록을 결합하여 압축 데이터 스트림을 생성한다. 압축 데이터 생성부(140)는 생성된 압축 데이터 스트림을 출력한다. 한편, 압축 데이터 스트림을 수신한 수신단에서는 블록 헤더에 포함된 블록 헤더 정보 추출 시 일부 비트들을 ‘1’로 패딩하여 복원한다. 이를 통해, 기존의 블록 스케일링 방식에 비하여 블록 헤더를 구성하는 비트수를 감소시킬 수 있다.
본 발명의 블록 스케일링부(130)는 I 데이터 블록과 Q 데이터 블록을 구성하는 샘플들의 최대값을 기준으로 획득된 블록 헤더와 미리 결정된 패딩 데이터를 이용하여 블록 스케일링을 한다. 이를 통해, 블록 스케일링 되는 데이터 스케일링 블록(즉, I 데이터 스케일링 블록과 Q 데이터 스케일링 블록)의 크기는 각 블록에 포함된 데이터 샘플들의 최대값에 따라 블록 단위로 가변될 수 있으므로, 블록 크기에 따른 전송 지연을 최소화할 수 있다.
특히, 본 발명의 압축 데이터 생성부(140)는 미리 결정된 패딩 데이터를 이용하여 블록 헤더의 크기를 감소시킴으로써, 데이터 스케일링 블록의 크기를 더욱 유연한 형태로 생성할 수 있다. 이를 통해, 데이터 압축 장치(100)는 데이터 전송 지연의 발생을 최소화시킬 수 있다.
도 2는 도 1에 도시된 헤더 정보 추출부를 예시적으로 도시한 도면이다.
도 2를 참조하면, 헤더 정보 추출부(120)는 최대크기의 샘플 결정부(121)와 헤더 정보 생성부(122)를 포함한다.
최대크기의 샘플 결정부(121)는 I 데이터 블록과 Q 데이터 블록을 수신한다. 최대크기의 샘플 결정부(121)는 I 데이터 블록에 포함된 샘플들과 Q 데이터 블록에 포함된 샘플들 각각에 대해 절대값을 연산한다. 이후, 최대크기의 샘플 결정부(121)는 절대값이 연산된 샘플들 중에서 최대값(A(k))을 결정한다. 최대크기의 샘플 결정부(121)는 결정된 최대값(A(k))을 헤더 정보 생성부(122)로 출력한다.
헤더 정보 생성부(122)는 수신된 최대값(A(k))에 근거하여 블록 헤더 정보(G(k))를 생성한다. 헤더 정보 생성부(122)에서 블록 헤더 정보의 생성은 하기의 수학식 2와 같이 나타낼 수 있다.
여기서, A(k)는 I 데이터 블록과 Q 데이터 블록을 구성하는 샘플들의 절대값들 중에서 최대값을 나타낸다. 예를 들어, k는 블록 인덱스가 될 수 있다. 또한, Qd는 미리 결정된 패딩 데이터의 비트수이다. 여기서, 블록 헤더 정보(G(k))는 A(k)를 2Qd로 나눈 후, 내림 연산을 통해 획득할 수 있다. 패딩 데이터의 비트수(Qd)는 하기의 수학식 3과 같이 나타낼 수 있다.
여기서, Qa는 I 데이터 블록과 Q 데이터 블록의 샘플들에서 I값과 Q값의 표현에 사용될 수 있도록 허용한 최대 비트수이다. Qs는 블록 헤더를 나타내는데에 할당된 비트수이다. 예를 들면, Qa와 Qs는 미리 결정될 수 있다. 이와 같이, 헤더 정보 생성부(122)는 패딩 데이터의 비트수(Qd)를 생성하기 위해 상기 I 데이터 블록과 상기 Q 데이터 블록에 사용할 수 있는 최대 비트수(Qa)를 기준으로 블록 헤더에 할당되는 비트수(Qs)와 1을 감산하여 획득할 수 있다.
즉, 헤더 정보 생성부(122)는 A(k)의 하위 Qd비트를 제거한 후, 나머지 하위 Qs비트를 선택하여 G(k)의 값으로 결정한다. 이를 통해, 헤더 정보 생성부(122)는 생성된 블록 헤더 정보(G(k)), 즉 블록 헤더를 블록 스케일링부(130)와 압축 데이터 생성부(140)로 각각 출력한다.
도 3은 본 발명에 따른 데이터 블록에 포함된 샘플들의 진폭을 도시한 그래프이다.
도 3을 참조하면, 그래프에 포함된 샘플들은 I 데이터 블록의 샘플들 또는 Q 데이터 블록의 샘플들일 수 있다. 그래프의 세로축은 진폭을 나타내고, 가로축은 시간에 따른 샘플들을 나타낸다.
최대크기의 샘플 결정부(121)는 I 데이터 블록과 Q 데이터 블록의 샘플들의 절대값의 최대값(A(k))을 결정한다. 최대크기의 샘플 결정부(121)는 I 데이터 블록과 Q 데이터 블록들 중에서 샘플(S5)의 값이 최대값을 가지므로, 샘플(S5)의 값을 최대값(A(k))으로 결정할 수 있다.
여기서는, 설명의 편의를 위하여 하나의 데이터 블록(I 데이터 블록(또는 Q 데이터 블록))에 대한 샘플들의 진폭을 도시하였으나, 최대크기의 샘플 결정부(121)는 다른 데이터 블록(Q 데이터 블록(또는 I 데이터 블록))(미도시)의 샘플들도 함께 고려하여 위의 최대값(A(k))를 결정한다.
도 4는 도 1에 도시된 블록 스케일링부를 예시적으로 도시한 도면이다.
도 4를 참조하면, 블록 스케일링부(130)는 스케일링 결정부(131)와 스케일링 블록 생성부(132)를 포함한다.
스케일링 결정부(131)는 블록 헤더 정보(G(k))에 근거하여 I 데이터 블록과 Q 데이터 블록의 스케일링을 위한 블록 스케일링 값을 결정한다. 스케일링 결정부(131)는 블록 스케일링 값(Sca)을 하기의 수학식 4를 이용하여 결정할 수 있다.
여기서, Qq는 블록 스케일링 후, 각 샘플들에게 할당될 비트수이고, G(k)는 블록 헤더 정보이다. Qd는 미리 결정된 패딩 데이터의 비트수이다.
여기서, 블록 스케일링 값(Sca)의 분모는 G(k)의 이진수의 값을 Qd비트만큼 쉬프트 레프트한 후, 하위 Qd비트를 예를 들어, 모두 1로 채운 값이다. 또한, 블록 스케일링 값(Sca)의 분자는 (Qq-1)비트로 표현할 수 있는 최대값(모두 '1'의 값을 가짐)이다.
스케일링 블록 생성부(132)는 I 데이터 블록과 Q 데이터 블록을 수신한다. 스케일링 블록 생성부(132)는 블록 스케일링 값(Sca)을 수신하여 I 데이터 블록과 Q 데이터 블록 각각에 대해 블록 스케일링을 수행한다.
여기서, 블록 스케일링 동작은 하기의 수학식 5로 나타내었다.
여기서, Sd(i)는 I 데이터 블록과 Q 데이터 블록이고, Ss(i)는 스케일링된 데이터 블록이다. 또한, i는 Nsk, ..., Ns(k+1)-1로 나타낼 수 있다.
따라서, 스케일링 블록 생성부(132)는 I/Q 데이터 블록에 블록 스케일링 값(Sca)을 곱셈 연산하여 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 생성한다. 이때, 스케일링 블록 생성부(132)는 곱셈 연산을 통해 획득된 값들 중에서 소수점 이하는 반올림 연산을 한다. 여기서, 반올림 연산을 예시적으로 설명된 것으로, Ss(i)는 결정된 실수를 정수로 변환하기 위해서 내림 연산 또는 올림 연산을 수행할 수도 있다. 한편, 수신단에서는 Ss(i)와 G(k)를 이용하면, 압축된 신호의 복원이 가능하다.
스케일링 블록 생성부(132)는 생성된 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 압축 데이터 생성부(140)로 출력한다.
도 5a와 5b는 본 발명에 따른 데이터 블록으로부터 블록 스케일링을 통해 획득된 스케일링 블록들을 예시적으로 도시한 도면이다.
도 5a를 참조하면, I 데이터 블록(210)이 도시된다. 예를 들면, I 데이터 블록(210)은 32개의 샘플들을 포함한다. 여기서, 각 샘플들이 가질 수 있는 최대 비트수(Qa)는 15비트라 가정한다. 이때, 1비트는 부호 비트로 사용될 수 있고, 나머지 14비트는 정보 비트로 사용될 수 있다.
그러므로, 각 샘플들이 나타낼 수 있는 값은 -214 내지 214-1 범위 내의 값을 가질 수 있다.
스케일링 블록 생성부(132)에서 I 데이터 블록(210)을 블록 스케일링한 결과 획득한 I 데이터 스케일링 블록(310)이 도시되어 있다.
I 데이터 스케일링 블록(310)은 32개의 샘플들을 포함한다. 예를 들면, 블록 스케일링 동작을 통해 각 샘플들은 11비트로 압축되었다. 이때, 1비트는 부호비트이고, 나머지 10비트는 정보 비트로 사용될 수 있다. 그러므로, 각 샘플들이 나타낼 수 있는 값은 -210 내지 210-1 범위 내의 값을 가질 수 있다.
도 5b를 참조하면, Q 데이터 블록(250)이 도시된다. 예를 들면, Q 데이터 블록(250)은 32개의 샘플들을 포함한다. 여기서, 각 샘플들이 가질 수 있는 최대 비트수(Qa)는 15비트라 가정한다. 이때, 1비트는 부호 비트로 사용될 수 있고, 나머지 14비트는 정보 비트로 사용될 수 있다.
그러므로, 각 샘플들이 나타낼 수 있는 값은 -214 내지 214-1 범위 내의 값을 가질 수 있다.
스케일링 블록 생성부(132)에서 Q 데이터 블록(250)을 블록 스케일링한 결과 획득한 Q데이터 스케일링 블록(350)이 도시되어 있다.
Q 데이터 스케일링 블록(310)은 32개의 샘플들을 포함한다. 예를 들면, 블록 스케일링 동작을 통해 각 샘플들은 11비트로 압축되었다. 이때, 1비트는 부호비트이고, 나머지 10비트는 정보 비트로 사용될 수 있다.
그러므로, 각 샘플들이 나타낼 수 있는 값은 -210 내지 210-1 범위 내의 값을 가질 수 있다.
도 5a와 도 5b를 통해 살펴보면, 수학식 4와 5의 Qq값은 11이 될 수 있다.
이와 같이, 본 발명의 블록 스케일링 동작은 I 데이터 블록과 Q 데이터 블록의 최대값(A(k))에 근거하여 획득된 블록 헤더 정보(G(k))를 이용하여 블록 스케일링 한다. 그러므로, 입력된 I 데이터와 Q 데이터를 블록 헤더 정보(G(k))를 이용하여 계산된 블록 스케일링 값(Sca)으로 블록 스케일링함으로써 I 데이터와 Q 데이터는 압축될 수 있다.
도 6은 본 발명에 따른 압축 데이터에 포함된 블록 헤더를 예시적으로 도시한 도면이다.
도 6을 참조하면, I 데이터 샘플 또는 Q 데이터 샘플(211)은 15비트로 구성될 수 있다. 이때, 샘플들의 절대값의 최대값(A(k))(220)은 14비트라 가정한다.
이때, 블록 헤더(321)는 수학식 2에 근거하여 획득된 정보를 이용하여 설정될 수 있다. 예를 들어, Qa가 15이고, Qq가 11이면, Qs를 8로 설정할 수 있다. 이때, Qd는 수학식 4에 의해 6(15-8-1)으로 설정될 수 있다. 따라서, 수학식 2에 의해 14비트(Qa-1)의 값을 갖는 A(k)(=214)를 2Qd(=26) 나누면 28의 값을 갖는 G(k)를 획득할 수 있다. 이를 통해, 블록 헤더 정보(G(k))는 8비트로 설정될 수 있다.
블록 스케일링을 통한 데이터 압축 및 복원에 사용되는 정보(320)는 블록 헤더(321)와 패딩 데이터(322)를 포함한다.
따라서, 본 발명의 블록 헤더(321)는 블록 헤더 정보(G(k))를 포함하고, 8비트로 구성될 수 있다. 블록 헤더(321)는 8비트로 구성됨에 따라, 블록 스케일링을 위해서는 6비트의 패딩 데이터(패딩 비트들)(322)를 모두 ‘1’로 설정하여 블록 스케일링 동작에 사용될 수 있다.
또한, 본 발명의 블록 헤더(321)를 수신하여 압축 복원을 할 경우에도 전체 패딩 데이터들(일예로, 6비트)을 일예로, 비트 '1'들로 패딩한 후 압축 복원을 한다.
위의 도 5와 도 6을 참조하면, Ns는 32비트 샘플의 값을 나타낸다고 가정한다. 이때, 32개의 I/Q 데이터 샘플들 각각(211)은 15비트(Qa)로 나타낼 수 있다. 이때, I 데이터 블록과 Q 데이터 블록을 각각 11비트로 압축하고, 하나의 블록 헤더에 16비트(Qs)를 할당한다고 가정한다.
압축된 정보의 총 비트수는 하기의 수학식 6과 같이 계산될 수 있다.
하지만, 전송 지연을 감소시키기 위해 블록의 크기를 반으로 줄일 때, 동일한 압축률을 고려한다고 가정한다.
이때, 압축된 정보의 총 비트수는 하기의 수학식 7과 같이 계산될 수 있다.
블록의 크기가 절반으로 감소하면, Ns와 Qs가 절반으로 감소되어야 한다.
기존의 블록 헤더는 16비트로 구성되어야 하지만, 본 발명에서 제안된 블록 헤더는 도 6에서 설명한 바와 같이 8비트로 나타낼 수 있다. 따라서, 본 발명에서 제안된 블록 스케일링 장치는 헤더의 크기를 감소시킬 수 있음으로, 블록의 크기를 추가로 감소시킬 수 있다.
도 7은 본 발명에 따른 블록 헤더를 사용하여 데이터 블록의 크기를 감소시키는 동작을 예시적으로 도시한 도면이다.
도 7을 참조하면, 압축 데이터 생성부(140)는 일예로, 블록 스케일링을 통해 압축된 데이터 블록(310)을 절반으로 나누어 블록의 크기를 감소시킬 수 있다.
압축 데이터 생성부(140)에 의해 하나의 데이터 블록(310)은 제 1 데이터 블록(311)과 제 2 데이터 블록(312)으로 나뉘어진다. 여기서, 데이터 블록은 I 데이터 블록이거나 Q 데이터 블록일 수 있다. 제 1 데이터 블록(311)은 제 1 샘플 내지 제 16 샘플을 포함할 수 있고, 제 2 데이터 블록(312)은 제 17 샘플 내지 제 32 샘플을 포함할 수 있다.
압축 데이터 생성부(140)는 제 1 데이터 블록(311)과 제 2 데이터 블록(312)을 전송할 때, 압축 복원 또는 압축 해제를 위해 도 6에서 설명된 블록 헤더(321)를 각각 포함하여 전송할 수 있다.
이와 같이, 압축 데이터 생성부(140)는 블록 헤더를 이용하여 데이터 스케일링 블록의 크기를 감소시킬 수 있다. 감소된 데이터 블록을 통해 헤더 정보 추출부(120)로부터 획득된 A(k)값은 샘플들의 개수가 감소된 데이터 블록으로부터 획득됨에 따라 데이터 스케일링 블록의 크기의 추가적인 감소가 가능하다.
특히, 제안된 데이터 압축 장치(100)를 통해 데이터를 수신하는 수신단에서는 블록 크기 감소로 인해 데이터의 전송 지연을 감소시킬 수 있다.
여기서는, 설명의 편의를 위하여 I 데이터 블록 또는 Q 데이터 블록 중 하나의 데이터 블록을 분할하는 것을 예시적으로 도시한다. 하지만, 다른 데이터 블록에 대해서도 동일하게 분할할 수 있다.
도 8은 도 1에 도시된 데이터 압축 장치의 데이터 압축 동작을 예시적으로 도시한 순서도이다.
도 8을 참조하면, 데이터 저장부(110)는 수신된 I 데이터와 Q 데이터를 저장한다(S110단계). 이때, I 데이터와 Q 데이터는 데이터 스트림 형태로 수신될 수 있다.
데이터 저장부(110)는 I 데이터와 Q 데이터를 블록 단위로 구분한 I 데이터 블록과 Q 데이터 블록을 생성한다(S120단계). 데이터 저장부(110)는 I 데이터 블록과 Q 데이터 블록을 헤더 정보 추출부(120)와 블록 스케일링부(130)로 출력한다.
헤더 정보 추출부(120)는 I 데이터 블록과 Q 데이터 블록을 수신하고, I 데이터 블록과 Q 데이터 블록으로부터 획득된 최대값으로부터 미리 결정된 패딩 데이터를 이용하여 블록 헤더 정보를 추출한다(S130단계). 여기서, 패딩 데이터는 블록 스케일링을 통한 데이터 압축 동작 또는 복원 동작 시 블록 헤더와 함께 패딩되는 데이터이다. 블록 헤더 정보는 수학식 2를 통해 획득할 수 있다. 이를 통해, 헤더 정보 추출부(120)는 블록 헤더 정보를 획득할 수 있다. 여기서, 블록 헤더 정보는 블록 헤더에 포함되는 정보이다. 따라서, 헤더 정보 추출부(120)는 블록 헤더 정보, 즉 블록 헤더를 블록 스케일링부(130)와 압축 데이터 생성부(140)로 출력한다.
블록 스케일링부(130)는 블록 스케일링 값을 이용하여 I 데이터 블록과 Q 데이터 블록을 블록 스케일링하여 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 생성한다(S140단계). 이때, 블록 스케일링부(130)는 헤더 정보 추출부(120)로부터 수신된 블록 헤더 정보를 이용하여 블록 스케일링 값을 계산한다. 블록 스케일링부(130)는 블록 스케일링된 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 압축 데이터 생성부(140)로 출력한다.
압축 데이터 생성부(140)는 블록 헤더, I 데이터 스케일링 블록, 및 Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성한다(S150단계). 이때, 압축 데이터는 압축 데이터 스트림의 형태를 가질 수 있다.
압축 데이터 생성부(140)는 모든 I 데이터와 Q 데이터의 압축이 완료되었는지 판단한다(S160단계).
S160단계의 판단결과, 모든 I 데이터와 Q 데이터의 압축이 완료되면, 종료한다. 하지만, S160단계의 판단결과, 모든 I 데이터와 Q 데이터의 압축이 완료되지 않았으면, S120단계로 진행하여 다음 I 데이터 블록과 Q 데이터 블록을 생성한다.
이를 통해, 본 발명은 블록의 크기가 클 경우에 I 블록과 Q 블록 내에 포함된 샘플들 중에서 큰 값과 작은 값의 차이가 클 확률이 높다. 큰 값을 기준으로 블록 내의 신호를 스케일링하는 원리를 이용함에 따라 큰 값으로 인해 작은 값의 신호가 유실되는 현상이 발생한다. 이러한 신호의 유실은 신호를 왜곡시킨다. 따라서, 본 발명에서는 블록의 크기를 감소시킬 수 있는 헤더 구조를 통해 신호 왜곡의 문제를 감소시킬 수 있다.
한편, 통계적으로 I 신호와 Q 신호는 독립된 신호로 간주할 수 있다. 그러므로, 블록 내의 I 데이터 블록의 샘플의 최대 절대값이 클 경우, Q 데이터 블록의 샘플의 최대 절대값이 크다는 보장은 없다. 따라서, I 데이터 블록과 Q 데이터 블록 간에 샘플의 최대 절대값이 차이가 크면, 큰 값을 기준으로 블록 스케일링함에 따라 작은 값의 신호가 유실될 수 있다. 따라서, I 데이터 블록과 Q 데이터 블록의 블록 스케일링 값을 별도로 적용하면 I 데이터 블록과 Q 데이터 블록에 동일한 블록 스케일링 값을 적용하는 경우에 비하여 신호 왜곡을 더욱 감소시킬 수 있다.
이와 같이, 블록 스케일링 값을 별도로 적용하는 데이터 압축 장치의 구조를 하기에서 설명하기로 한다.
도 9는 본 발명의 다른 실시예에 따른 데이터 압축 장치를 예시적으로 도시한 도면이다.
도 9를 참조하면, 데이터 압축 장치(400)는 데이터 분배부(410), 제 1 데이터 저장부(420), 제 1 헤더 정보 추출부(430), 제 1 블록 스케일링부(440), 제 2 데이터 저장부(450), 제 2 헤더 정보 추출부(460), 제 2 블록 스케일링부(470), 및 압축 데이터 생성부(480)를 포함한다.
데이터 분배부(410)는 수신된 데이터 스트림으로부터 I 데이터와 Q 데이터를 분배한다. 데이터 분배부(410)는 분배된 I 데이터를 제 1 데이터 저장부(420)로 출력하고, 분배된 Q 데이터를 제 2 데이터 저장부(450)로 출력한다.
제 1 데이터 저장부(420)는 I 데이터를 저장한다. 제 1 데이터 저장부(420)는 저장된 I 데이터를 블록 단위로 구분(I 데이터 블록)하여 제 1 헤더 정보 추출부(430)와 제 1 블록 스케일링부(440) 각각으로 출력한다.
제 1 헤더 정보 추출부(430)는 블록 단위로 구분된 I 데이터 블록을 수신한다. 제 1 헤더 정보 추출부(430)는 I 데이터 블록으로부터 압축 데이터에 포함될 제 1 블록 헤더 정보를 추출한다. 여기서, 제 1 블록 헤더 정보는 I 데이터 블록을 구성하는 샘플들 중에서 절대값의 최대값과 미리 결정된 패딩 데이터의 비트수를 이용하여 생성된다. 제 1 헤더 정보 추출부(430)는 추출된 제 1 블록 헤더 정보, 즉 제 1 블록 헤더를 제 1 블록 스케일링부(440)와 압축 데이터 생성부(480)로 각각 출력한다.
제 1 블록 스케일링부(440)는 블록 단위로 구분된 I 데이터 블록을 수신한다. 또한, 제 1 블록 스케일링부(440)는 제 1 블록 헤더 정보를 수신한다. 제 1 블록 스케일링부(440)는 제 1 블록 헤더 정보와 패딩 데이터를 이용하여 I 데이터 블록을 블록 스케일링한다. 이를 통해, 제 1 블록 스케일링부(440)는 I 데이터 스케일링 블록을 생성한다. 여기서, 생성된 I 데이터 스케일링 블록은 I 데이터 블록에 비하여 블록 내 포함된 샘플들의 비트수 감소로 인해 크기가 감소한다.
제 2 데이터 저장부(450)는 Q 데이터를 저장한다. 제 2 데이터 저장부(450)는 저장된 Q 데이터를 블록 단위로 구분(Q 데이터 블록)하여 제 2 헤더 정보 추출부(460)와 제 1 블록 스케일링부(470) 각각으로 출력한다.
제 2 헤더 정보 추출부(460)는 블록 단위로 구분된 Q 데이터 블록을 수신한다. 제 2 헤더 정보 추출부(460)는 Q 데이터 블록으로부터 압축 데이터에 포함될 제 2 블록 헤더 정보를 추출한다. 여기서, 제 2 블록 헤더 정보는 Q 데이터 블록을 구성하는 샘플들 중에서 절대값의 최대값과 미리 결정된 패딩 데이터의 비트수를 이용하여 생성된다. 제 2 헤더 정보 추출부(460)는 추출된 제 2 블록 헤더 정보, 즉 제 2 블록 헤더를 제 2 블록 스케일링부(470)와 압축 데이터 생성부(480)로 각각 출력한다.
제 2 블록 스케일링부(470)는 블록 단위로 구분된 Q 데이터 블록을 수신한다. 또한, 제 2 블록 스케일링부(470)는 제 2 블록 헤더 정보를 수신한다. 제 2 블록 스케일링부(470)는 제 2 블록 헤더 정보와 패딩 데이터를 이용하여 Q 데이터 블록을 블록 스케일링한다. 이를 통해, 제 2 블록 스케일링부(470)는 Q 데이터 스케일링 블록을 생성한다. 여기서, 생성된 Q 데이터 스케일링 블록은 Q 데이터 블록에 비하여 블록 내 포함된 샘플들의 비트수 감소로 인해 크기가 감소한다.
압축 데이터 생성부(480)는 제 1 블록 헤더 정보를 수신한다. 제 1 블록 헤더 정보는 제 1 블록 헤더에 포함되는 정보이다. 여기서, 제 1 블록 헤더는 I 데이터 스케일링 블록의 압축 복원을 위한 블록 스케일링 정보를 포함한다. 압축 데이터 생성부(480)는 제 2 블록 헤더 정보를 수신한다. 제 2 블록 헤더 정보는 제 2 블록 헤더에 포함되는 정보이다. 제 2 블록 헤더는 제 2 데이터 스케일링 블록의 압축 복원을 위한 블록 스케일링 정보를 포함한다.
또한, 압축 데이터 생성부(480)는 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 수신한다.
이를 통해, 압축 데이터 생성부(480)는 제 1 블록 헤더, 제 2 블록 헤더, I 데이터 스케일링 블록, 및 Q 데이터 스케일링 블록을 결합하여 압축 데이터 스트림을 생성한다. 압축 데이터 생성부(480)는 생성된 압축 데이터 스트림을 출력한다.
이와 같이, 본 발명의 데이터 압축 장치(400)는 데이터 압축을 위해 I 신호와 Q 신호를 각각 구분하여 독립적으로 처리하는 구조를 이용함으로써, I 데이터와 Q 데이터 간의 신호 크기 차이로 인한 신호 왜곡을 감소시킬 수 있다.
도 10은 도 9에 도시된 제 1 헤더 정보 추출부를 예시적으로 도시한 도면이다.
도 10을 참조하면, 제 1 헤더 정보 추출부(430)는 제 1 최대크기의 샘플 결정부(431)와 제 1 헤더 정보 생성부(432)를 포함한다.
제 1 최대크기의 샘플 결정부(431)는 I 데이터 블록을 수신한다. 최대크기의 샘플 결정부(431)는 I 데이터 블록에 포함된 샘플들 각각에 대해 절대값을 연산한다. 이후, 제 1 최대크기의 샘플 결정부(431)는 절대값이 연산된 샘플들 중에서 최대값(AI(k))을 결정한다. 제 1 최대크기의 샘플 결정부(431)는 결정된 최대값(AI(k))을 제 1 헤더 정보 생성부(432)로 출력한다.
제 1 헤더 정보 생성부(432)는 수신된 최대값(AI(k))에 근거하여 블록 헤더 정보(GI(k))를 생성한다. 제 1 헤더 정보 생성부(432)에서 블록 헤더 정보의 생성은 하기의 수학식 8과 같이 나타낼 수 있다.
여기서, AI(k)는 I 데이터 블록과 Q 데이터 블록을 구성하는 샘플들의 절대값들 중에서 최대값을 나타낸다. 또한, Qdi는 미리 결정된 제 1 패딩 데이터의 비트수이다. 여기서, 블록 헤더 정보(GI(k))는 AI(k)를 2Qdi로 나눈 후, 내림 연산을 통해 획득할 수 있다. 제 1 패딩 데이터의 비트수(Qdi)는 하기의 수학식 9과 같이 나타낼 수 있다.
여기서, Qa는 I 데이터 블록의 샘플들에서 I 값의 표현에 사용될 수 있도록 허용한 최대 비트수이다. Qsi는 제 1 블록 헤더를 나타내는데에 할당된 비트수이다. 예를 들면, Qa와 Qsi는 미리 결정될 수 있다. 이와 같이, 제 1 헤더 정보 생성부(432)는 제 1 패딩 데이터의 비트수(Qdi)를 생성하기 위해 상기 I 데이터 블록 또는 Q 데이터 블록에 사용할 수 있는 최대 비트수(Qa)를 기준으로 제 1 블록 헤더에 할당되는 비트수(Qsi)와 1을 감산하여 획득할 수 있다.
즉, 제 1 헤더 정보 생성부(432)는 A(k)의 하위 Qdi비트를 제거한 후, 나머지 하위 Qsi비트를 선택하여 GI(k)의 값으로 결정한다. 이를 통해, 제 1 헤더 정보 생성부(432)는 생성된 제 1 블록 헤더 정보(GI(k)), 즉 제 1 블록 헤더를 제 1 블록 스케일링부(440)와 압축 데이터 생성부(480)로 각각 출력한다.
즉, 제 1 헤더 크기 정보 생성부(432)는 A(k)의 하위 Qdi비트를 제거한 후, 나머지 하위 Qsi비트를 선택하여 GI(k)의 값으로 결정한다. 이를 통해, 제 1 헤더 크기 정보 생성부(432)는 생성된 블록 헤더 크기 정보(GI(k))를 제 1 블록 스케일링부(440)와 압축 데이터 생성부(480)로 각각 출력한다.
도 11은 도 9에 도시된 제 1 블록 스케일링부를 예시적으로 도시한 도면이다.
도 11을 참조하면, 제 1 블록 스케일링부(440)는 제 1 스케일링 결정부(441)와 제 1 스케일링 블록 생성부(442)를 포함한다.
제 1 스케일링 결정부(441)는 블록 헤더 정보(GI(k))에 근거하여 I 데이터 블록의 스케일링을 위한 제 1 블록 스케일링 값(Scai)을 결정한다. 제 1 스케일링 결정부(441)는 제 1 블록 스케일링 값(Scai)을 하기의 수학식 10을 이용하여 결정할 수 있다.
여기서, Qq는 블록 스케일링 후, 각 샘플들에게 할당될 비트수이고, GI(k)는 블록 헤더 정보이다. Qdi는 미리 결정된 제 1 패딩 데이터의 비트수이다.
여기서, 제 1 블록 스케일링 값(Scai)의 분모는 GI(k)의 이진수의 값을 Qdi비트만큼 쉬프트 레프트한 후, 하위 Qdi비트를 예를 들어, 모두 '1'로 채운 값이다. 또한, 제 1 블록 스케일링 값(Scai)의 분자는 (Qq-1)비트로 표현할 수 있는 최대값(모두 '1'의 값을 가짐)이다.
제 1 스케일링 블록 생성부(442)는 I 데이터 블록을 수신한다. 제 1 스케일링 블록 생성부(442)는 블록 스케일링 값(Scai)을 수신하여 I 데이터 블록에 대해 블록 스케일링을 수행한다.
제 1 스케일링 블록 생성부(442)는 I 데이터 블록을 수신한다. 제 1 스케일링 블록 생성부(442)는 블록 스케일링 값(Scai)을 수신하여 I 데이터 블록에 대해 블록 스케일링을 수행한다.
여기서, 블록 스케일링 동작은 하기의 수학식 11로 나타내었다.
여기서, real(Sd(i))은 I 데이터 블록이고, real(Ss(i))은 스케일링된 I 데이터 블록이다. 또한, i는 Nsk, ..., Ns(k+1)-1로 나타낼 수 있다.
따라서, 제 1 스케일링 블록 생성부(442)는 I 데이터 블록에 블록 스케일링 값(Scai)을 곱셈 연산하여 I 데이터 스케일링 블록을 생성한다. 이때, 제 1 스케일링 블록 생성부(442)는 곱셈 연산을 통해 획득된 값들 중에서 소수점 이하는 반올림 연산을 한다. 여기서, 반올림 연산을 예시적으로 설명된 것으로, real(Ss(i))는 결정된 실수를 정수로 변환하기 위해서 내림 연산 또는 올림 연산을 수행할 수도 있다. 한편, 수신단에서는 real(Ss(i))과 GI(k)를 이용하면, 압축된 신호의 복원이 가능하다.
제 1 스케일링 블록 생성부(442)는 생성된 I 데이터 스케일링 블록을 압축 데이터 생성부(480)로 출력한다.
도 12는 도 9에 도시된 제 2 헤더 정보 추출부를 예시적으로 도시한 도면이다.
도 12를 참조하면, 제 2 헤더 정보 추출부(460)는 제 2 최대크기의 샘플 결정부(461)와 제 2 헤더 정보 생성부(462)를 포함한다.
제 2 최대크기의 샘플 결정부(461)는 I 데이터 블록을 수신한다. 최대크기의 샘플 결정부(461)는 I 데이터 블록에 포함된 샘플들 각각에 대해 절대값을 연산한다. 이후, 제 2 최대크기의 샘플 결정부(461)는 절대값이 연산된 샘플들 중에서 최대값(AQ(k))을 결정한다. 제 2 최대크기의 샘플 결정부(461)는 결정된 최대값(AQ(k))을 제 2 헤더 정보 생성부(462)로 출력한다.
제 2 헤더 정보 생성부(462)는 수신된 최대값(AQ(k))에 근거하여 블록 헤더 정보(GQ(k))를 생성한다. 제 2 헤더 정보 생성부(462)에서 블록 헤더 정보의 생성은 하기의 수학식 12와 같이 나타낼 수 있다.
여기서, AQ(k)는 Q 데이터 블록을 구성하는 샘플들의 절대값들 중에서 최대값을 나타낸다. 또한, Qdq는 미리 결정된 제 2 패딩 데이터의 비트수이다. 여기서, 블록 헤더 정보(GQ(k))는 AQ(k)를 2Qdq로 나눈 후, 내림 연산을 통해 획득할 수 있다. 제 2 패딩 데이터의 비트수(Qdq)는 하기의 수학식 13과 같이 나타낼 수 있다.
여기서, Qa는 Q 데이터 블록의 샘플들에서 Q 값의 표현에 사용될 수 있도록 허용한 최대 비트수이다. Qsq는 제 2 블록 헤더를 나타내는데에 할당된 비트수이다. 예를 들면, Qa와 Qsq는 미리 결정될 수 있다. 이와 같이, 제 2 헤더 정보 생성부(462)는 제 2 패딩 데이터의 비트수(Qdq)를 생성하기 위해 상기 I 데이터 블록 또는 Q 데이터 블록에 사용할 수 있는 최대 비트수(Qa)를 기준으로 제 2 블록 헤더에 할당되는 비트수(Qsq)와 1을 감산하여 획득할 수 있다.
즉, 제 2 헤더 정보 생성부(462)는 A(k)의 하위 Qdq비트를 제거한 후, 나머지 하위 Qsq비트를 선택하여 GQ(k)의 값으로 결정한다. 이를 통해, 제 2 헤더 정보 생성부(462)는 생성된 제 2 블록 헤더 정보(GQ(k)), 즉 제 2 블록 헤더를 제 2 블록 스케일링부(470)와 압축 데이터 생성부(480)로 각각 출력한다.
도 13은 도 9에 도시된 제 2 블록 스케일링부를 예시적으로 도시한 도면이다.
도 13을 참조하면, 제 2 블록 스케일링부(470)는 제 2 스케일링 결정부(471)와 제 2 스케일링 블록 생성부(472)를 포함한다.
제 2 스케일링 결정부(471)는 블록 헤더 정보(GQ(k))에 근거하여 Q 데이터 블록의 스케일링을 위한 제 2 블록 스케일링 값(Scaq)을 결정한다. 제 2 스케일링 결정부(471)는 제 2 블록 스케일링 값(Scaq)을 하기의 수학식 14를 이용하여 결정할 수 있다.
여기서, Qq는 블록 스케일링 후, 각 샘플들에게 할당될 비트수이고, GQ(k)는 블록 헤더 정보이다. Qdq는 미리 결정된 제 2 패딩 데이터의 비트수이다.
여기서, 제 2 블록 스케일링 값(Scaq)의 분모는 GQ(k)의 이진수의 값을 Qdq비트만큼 쉬프트 레프트한 후, 하위 Qdq비트를 예를 들어, 모두 1로 채운 값이다. 또한, 제 2 블록 스케일링 값(Scaq)의 분자는 (Qq-1)비트로 표현할 수 있는 최대값(모두 '1'의 값을 가짐)이다.
제 2 스케일링 블록 생성부(472)는 Q 데이터 블록을 수신한다. 제 2 스케일링 블록 생성부(472)는 블록 스케일링 값(Scaq)을 수신하여 Q 데이터 블록에 대해 블록 스케일링을 수행한다.
여기서, 블록 스케일링 동작은 하기의 수학식 15로 나타내었다.
여기서, imag(Sd(i))은 Q 데이터 블록이고, imag(Ss(i))은 스케일링된 Q 데이터 블록이다. 또한, i는 Nsk, ..., Ns(k+1)-1로 나타낼 수 있다.
따라서, 제 2 스케일링 블록 생성부(472)는 I 데이터 블록에 블록 스케일링 값(Scaq)을 곱셈 연산하여 Q 데이터 스케일링 블록을 생성한다. 이때, 제 2 스케일링 블록 생성부(472)는 곱셈 연산을 통해 획득된 값들 중에서 소수점 이하는 반올림 연산을 한다. 여기서, 반올림 연산을 예시적으로 설명된 것으로, imag(Ss(i))는 결정된 실수를 정수로 변환하기 위해서 내림 연산 또는 올림 연산을 수행할 수도 있다. 한편, 수신단에서는 imag(Ss(i))과 GQ(k)를 이용하면, 압축된 신호의 복원이 가능하다.
제 1 스케일링 블록 생성부(472)는 생성된 Q 데이터 스케일링 블록을 압축 데이터 생성부(480)로 출력한다.
도 9 내지 도 13에서는 I 데이터와 Q 데이터를 독립적으로 분리하여 블록 스케일링 하는 데이터 압축 장치(400)를 설명하였다. 이를 통해, I 데이터 블록과 Q 데이터 블록을 서로 다른 블록 스케일링 팩터를 사용함에 따라, I 데이터와 Q 데이터 간의 차이에 따른 신호 왜곡을 더욱 감소시킬 수 있다.
이와 같이, 본 발명에서 제안된 데이터 압축 장치들은 예를 들면 분산형 기지국의 아키텍쳐인 무선 유닛(RU: Radio Unit)(또는, RRH)과 디지털 유닛(DU: Digital)(또는, BBU) 간의 광 인터페이스뿐만 아니라 통신 신호의 압축 및 복원, 디지털 신호의 압축 및 복원 등에 적용될 수 있으며, 다른 압축 및 복원 알고리즘과 병행하여 사용될 수도 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100, 400: 데이터 압축 장치들
110, 420, 450: 데이터 저장부들
120, 430, 460: 헤더 정보 추출부들
130, 440, 470: 블록 스케일링부들
140, 480: 압축 데이터 생성부들
121, 431, 461: 최대크기의 샘플 결정부들
122, 432, 462: 헤더 정보 생성부들
131, 441, 471: 스케일링 결정부들
132, 442, 472: 스케일링 블록 생성부들
410: 데이터 분배부
110, 420, 450: 데이터 저장부들
120, 430, 460: 헤더 정보 추출부들
130, 440, 470: 블록 스케일링부들
140, 480: 압축 데이터 생성부들
121, 431, 461: 최대크기의 샘플 결정부들
122, 432, 462: 헤더 정보 생성부들
131, 441, 471: 스케일링 결정부들
132, 442, 472: 스케일링 블록 생성부들
410: 데이터 분배부
Claims (17)
- 수신된 동위상(I) 데이터와 직교위상(Q) 데이터를 저장하고, 상기 저장된 I 데이터와 Q 데이터 각각을 블록 단위로 구분하여 출력하는 데이터 저장부;
상기 블록 단위로 구분된 I 데이터 블록과 Q 데이터 블록으로부터 획득한 최대값을 기준으로 미리 결정된 패딩 데이터를 이용하여 블록 헤더 정보를 추출하는 헤더 정보 추출부;
상기 블록 헤더 정보에 근거하여 상기 I 데이터 블록과 상기 Q 데이터 블록을 블록 스케일링한 I 데이터 스케일링 블록과 Q 데이터 스케일링 블록을 생성하는 블록 스케일링부; 및
상기 블록 헤더 정보에 근거한 블록 헤더, 상기 I 데이터 스케일링 블록, 및 상기 Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함하는 데이터 압축 장치. - 제 1 항에 있어서,
상기 헤더 정보 추출부는
상기 I 데이터 블록과 상기 Q 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 최대값을 결정하는 최대크기의 샘플 결정부; 및
상기 최대값으로부터 상기 패딩 데이터의 비트수를 이용하여 상기 블록 헤더 정보를 생성하는 헤더 정보 생성부를 포함하는 데이터 압축 장치. - 제 3 항에 있어서,
상기 패딩 데이터의 비트수는 상기 I 데이터 블록과 상기 Q 데이터 블록에 사용할 수 있는 최대 비트수에서 상기 블록 헤더에 할당되는 비트수 및 1을 감산하여 획득하는 데이터 압축 장치. - 제 3 항에 있어서,
상기 블록 스케일링부는
상기 블록 헤더 정보에 근거하여 상기 I 데이터 블록과 상기 Q 데이터 블록의 스케일링을 위한 블록 스케일링 값을 결정하는 스케일링 결정부; 및
상기 I 데이터 블록과 상기 Q 데이터 블록 각각을 상기 블록 스케일링 값과 연산하여 상기 I 데이터 스케일링 블록과 상기 Q 데이터 스케일링 블록을 생성하는 스케일링 블록 생성부를 포함하는 데이터 압축 장치. - 수신된 동위상(I) 데이터와 직교위상(Q) 데이터를 I 데이터와 Q 데이터 각각으로 분배하는 데이터 분배부;
상기 분배된 I 데이터를 저장하고, 상기 저장된 I 데이터를 블록 단위로 구분하여 출력하는 제 1 데이터 저장부;
상기 블록 단위로 구분된 I 데이터 블록으로부터 획득한 제 1 최대값을 기준으로 미리 결정된 제 1 패딩 데이터를 이용하여 제 1 블록 헤더 정보를 추출하는 제 1 헤더 정보 추출부;
상기 제 1 블록 헤더 정보에 근거하여 상기 I 데이터 블록을 블록 스케일링한 I 데이터 스케일링 블록을 생성하는 제 1 블록 스케일링부;
상기 분배된 Q 데이터를 저장하고, 상기 저장된 Q 데이터를 블록 단위로 구분하여 출력하는 제 2 데이터 저장부;
상기 블록 단위로 구분된 Q 데이터 블록으로부터 획득한 제 2 최대값을 기준으로 미리 결정된 제 2 패딩 데이터를 이용하여 제 2 블록 헤더 정보를 추출하는 제 2 헤더 정보 추출부;
상기 제 2 블록 헤더 정보에 근거하여 상기 Q 데이터 블록을 블록 스케일링한 Q 데이터 스케일링 블록을 생성하는 제 2 블록 스케일링부; 및
상기 제 1 블록 헤더 정보, 상기 제 2 블록 헤더 정보, 상기 I 데이터 스케일링 블록, 및 상기 Q 데이터 스케일링 블록을 이용하여 압축 데이터를 생성하는 압축 데이터 생성부를 포함하는 데이터 압축 장치. - 제 7 항에 있어서,
상기 제 1 헤더 정보 추출부는
상기 I 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 제 1 최대값을 결정하는 제 1 최대크기의 샘플 결정부; 및
상기 제 1 최대값으로부터 상기 제 1 패딩 데이터의 비트수를 이용하여 상기 제 1 블록 헤더 정보를 생성하는 제 1 헤더 정보 생성부를 포함하는 데이터 압축 장치. - 제 9 항에 있어서,
상기 제 1 패딩 데이터의 비트수는 상기 I 데이터 블록에 사용할 수 있는 최대 비트수에서 상기 제 1 블록 헤더에 할당되는 비트수 및 1을 감산하여 획득하는 데이터 압축 장치. - 제 9 항에 있어서,
상기 제 1 블록 스케일링부는
상기 제 1 블록 헤더 정보에 근거하여 상기 I 데이터 블록의 스케일링을 위한 제 1 블록 스케일링 값을 결정하는 제 1 스케일링 결정부; 및
상기 I 데이터 블록을 상기 제 1 블록 스케일링 값과 연산하여 상기 I 데이터 스케일링 블록을 생성하는 제 1 스케일링 블록 생성부를 포함하는 데이터 압축 장치. - 제 7 항에 있어서,
상기 제 2 헤더 정보 추출부는
상기 Q 데이터 블록에 포함된 샘플들의 절대값들 중에서 상기 제 2 최대값을 결정하는 제 2 최대크기의 샘플 결정부; 및
상기 제 2 최대값으로부터 상기 제 2 패딩 데이터의 비트수를 이용하여 상기 제 2 블록 헤더 정보를 생성하는 제 2 헤더 정보 생성부를 포함하는 데이터 압축 장치. - 제 14 항에 있어서,
상기 제 2 패딩 데이터의 비트수는 상기 Q 데이터 블록에 사용할 수 있는 최대 비트수에서 상기 제 2 블록 헤더에 할당되는 비트수 및 1을 감산하여 획득하는 데이터 압축 장치. - 제 14 항에 있어서,
상기 제 2 블록 스케일링부는
상기 제 2 블록 헤더 정보에 근거하여 상기 Q 데이터 블록의 스케일링을 위한 제 2 블록 스케일링 값을 결정하는 제 2 스케일링 결정부; 및
상기 Q 데이터 블록을 상기 제 2 블록 스케일링 값과 연산하여 상기 Q 데이터 스케일링 블록을 생성하는 제 2 스케일링 블록 생성부를 포함하는 데이터 압축 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140066877A KR102105606B1 (ko) | 2014-06-02 | 2014-06-02 | 데이터 압축 장치 |
US14/684,698 US9831894B2 (en) | 2014-06-02 | 2015-04-13 | Data compression apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140066877A KR102105606B1 (ko) | 2014-06-02 | 2014-06-02 | 데이터 압축 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150139088A KR20150139088A (ko) | 2015-12-11 |
KR102105606B1 true KR102105606B1 (ko) | 2020-05-04 |
Family
ID=54702388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140066877A KR102105606B1 (ko) | 2014-06-02 | 2014-06-02 | 데이터 압축 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9831894B2 (ko) |
KR (1) | KR102105606B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10135599B2 (en) * | 2016-08-05 | 2018-11-20 | Nokia Technologies Oy | Frequency domain compression for fronthaul interface |
KR102389035B1 (ko) | 2017-12-06 | 2022-04-22 | 한국전자통신연구원 | 압축 데이터 송수신 방법 및 이를 위한 장치 |
EP3874597A4 (en) | 2018-10-31 | 2022-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | METHODS, APPARATUS AND MACHINE READABLE MEDIA FOR SIGNALING IN A BASE STATION |
KR102185918B1 (ko) * | 2019-08-01 | 2020-12-02 | 주식회사 크로스웍스 | 광 통신을 위한 데이터 압축 및 복원 처리 방법 및 그를 위한 장치 |
CN113329443A (zh) * | 2021-04-26 | 2021-08-31 | 新华三技术有限公司成都分公司 | 一种基带数据合并方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005152B2 (en) * | 2008-05-21 | 2011-08-23 | Samplify Systems, Inc. | Compression of baseband signals in base transceiver systems |
US8174428B2 (en) | 2008-05-21 | 2012-05-08 | Integrated Device Technology, Inc. | Compression of signals in base transceiver systems |
KR20110020195A (ko) | 2009-08-21 | 2011-03-02 | 엘지전자 주식회사 | 복수의 상향링크 주파수 상으로 데이터 블록 전송 방법 및 장치 |
US8301803B2 (en) | 2009-10-23 | 2012-10-30 | Samplify Systems, Inc. | Block floating point compression of signal data |
US8472754B1 (en) * | 2010-11-11 | 2013-06-25 | Amazon Technologies, Inc. | Image artifact prevention |
KR20120072207A (ko) | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 선택적 하위 계층 매크로 블록 디코딩 방법 |
KR20120088488A (ko) | 2011-01-31 | 2012-08-08 | 한국전자통신연구원 | 시간적 움직임 벡터 저장 방법 및 그 장치 |
US8923386B2 (en) * | 2011-02-11 | 2014-12-30 | Alcatel Lucent | Method and apparatus for signal compression and decompression |
US9059970B1 (en) * | 2014-04-28 | 2015-06-16 | Innowireless Co., Ltd. | Method of compressing and decompressing I/Q sample data in cloud radio access network |
-
2014
- 2014-06-02 KR KR1020140066877A patent/KR102105606B1/ko active IP Right Grant
-
2015
- 2015-04-13 US US14/684,698 patent/US9831894B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20150139088A (ko) | 2015-12-11 |
US9831894B2 (en) | 2017-11-28 |
US20150348231A1 (en) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102105606B1 (ko) | 데이터 압축 장치 | |
EP2946538B1 (en) | Compression and de-compression of complex valued ofdm data for a radio base station | |
JP5982569B2 (ja) | 基地局システム及び通信装置 | |
CN102790999B (zh) | 一种数据压缩、传输、接收及解压缩方法及相应装置 | |
US8842724B1 (en) | Data compression and decompression method between digital unit and radio unit in cloud radio access network | |
US9654192B2 (en) | Apparatus and method for channel feedback in multiple input multiple output system | |
CN108134805B (zh) | 一种数据同步压缩还原算法及装置 | |
US9059970B1 (en) | Method of compressing and decompressing I/Q sample data in cloud radio access network | |
EP3065324A1 (en) | Method and device for processing signal sampling-point data | |
CN103546402A (zh) | 一种发送信号的方法、装置和系统 | |
KR20140078308A (ko) | 고속데이터 직렬접속 정합장치, 그 cpri 송신방법 및 수신방법 | |
US10181935B2 (en) | Pilot configuration method and apparatus | |
CN115336202A (zh) | 一种极化码的编译码方法及装置 | |
KR101677991B1 (ko) | 블록 적응 양자화 기법을 이용한 영상 레이더 원시데이터의 압축 방법 | |
WO2016015286A1 (en) | Methods and apparatuses for data compression and decompression | |
JP2017513380A (ja) | 物理層データ伝送方法およびデータ伝送デバイス | |
KR102389035B1 (ko) | 압축 데이터 송수신 방법 및 이를 위한 장치 | |
US20230023553A1 (en) | Method of combining compressed signal | |
CN114095137A (zh) | 一种无线通信的方法及装置 | |
KR100842817B1 (ko) | Mdsa를 이용한 저 연산량 mimo 수신방식 | |
US10103925B2 (en) | I/Q signal transmission method and system, and apparatus | |
CN105827359B (zh) | 信道特征信息反馈方法及基站 | |
KR20230012872A (ko) | 프론트홀 다중화 장치 | |
JP6633608B2 (ja) | 送信装置及び受信装置 | |
Wiewel | FPGA implementation of an energy-efficient real-time image compression algorithm for the EIVE satellite mission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |