KR0169663B1 - 피티에스 벡터양자화 부호기의 램 억세스장치 - Google Patents

피티에스 벡터양자화 부호기의 램 억세스장치 Download PDF

Info

Publication number
KR0169663B1
KR0169663B1 KR1019940038211A KR19940038211A KR0169663B1 KR 0169663 B1 KR0169663 B1 KR 0169663B1 KR 1019940038211 A KR1019940038211 A KR 1019940038211A KR 19940038211 A KR19940038211 A KR 19940038211A KR 0169663 B1 KR0169663 B1 KR 0169663B1
Authority
KR
South Korea
Prior art keywords
vector
ram
code
address
image data
Prior art date
Application number
KR1019940038211A
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 KR1019940038211A priority Critical patent/KR0169663B1/ko
Application granted granted Critical
Publication of KR0169663B1 publication Critical patent/KR0169663B1/ko

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 PTS VQ 엔코더의 램 억세스장치에 관한 것으로, 램 억세스장치(10)와; 계산부(20); 프리패치부(30); 및 코드 발생부(40)를 구비하는 PTS VQ 엔코더에 있어서, 슬라이스 단위로 영상 데이타를 저장하는 M개의 램((11-1~11-m)과; 상기 램(11-1~11-m)을 선택하기 위한 램 선택신호(CS)를 벡터의 크기에 따라 순차적으로 발생하는 램 선택신호 발생기(12); 상기 선택된 램으로부터 영상 데이타를 읽어오기 위하여 벡터의 크기에 따라 순차적으로 어드레스를 발생하는 어드레스 발생부(13); 상기 램 선택신호(CS)에 의해 선택된 램으로부터 상기 어드레스 발생부(13)의 어드레스에 따라 영상 데이타를 읽어와 입력벡터(Vin)를 형성하는 벡터 레지스터셋(14)으로 구성되어 프레임 메모리(3)에 저장된 한 프레임의 영상 데이타 중에서 슬라이스(slice)와 같은 로우 영상 데이타를 M개의 램(11-1~11-m)에 저장하여 소정 크기(예를 들면, 4 X 2)의 입력벡터(Vin)를 형성한다.

Description

피티에스 벡터양자화 부호기의 램 억세스장치
제1도는 본 발명이 적용되는 PTSVG 엔코더를도시한 블럭도.
제2도는 본 발명에 따른 램 억세스장치의 세부 블럭도.
제3도는 제2도에도시된 램 선택신호 발생부의 구현예.
제4도는 제2도에도시된 어드레스 발생부의 예.
제5도는 제1도에도시된 계산부의 세부 블럭도.
제6도는 제1도에도시된 프리패치부의 세부 블럭도.
제7도는 제6도에도시된 램리드부의 세부 블럭도.
제8도는 제1도에도시된 코드발생부의 세부 블럭도.
제9도는 일반적인 TSVG의 구조 예를도시한 구조도.
제10도는 본 발명에 적용되는 PTSVG의 구조 예를도시한도면.
제11도는 잘려진 나무 집합(PTS)을 형성할 때 왜곡치(D)와 비트율(R)의 관계를도시한 특성 그래프이다.
*도면의 주요부분에 대한 부호의 설명
3 : 프레임 메모리 5 : 부호책(codebook) 램
10 : 램 억세스부 11-1~11-m : 램(RAM)
12 : 램 선택신호 발생부 13 : 어드레스 발생부
14 : 벡터 레지스터 셋 16 : 입력 벡터 버퍼
20 : 계산부 21, 22 : 제1, 2롬
23, 24 : 제1, 2감산기 25 : 곱셈기
26 : 가산기 27 : 부호판단부
30 : 프리패치부 31 : 램리드부
31-1 : 어드레스 발생부 31-2 : 데이터 버퍼
31-3 : 디멀티플렉서 31-4, 6, 8~11 : 레지스터
31-5, 7 : 멀티플렉서 31-12 : 0 비교기
32, 33, 34, 35 : 레지스터 36 : 멀티플렉서
37 : 우측 벡터 버퍼 38 : 좌측 벡터 버퍼
40 : 코드발생부 41 : 시프트레지스터
42 : 지연기 43 : 오아게이트
44 : 가산기 45 : 출력 버퍼
본 발명은 영상 데이타를 압축하여 전송할 수 있는 벡터양자화(Vector Quantization : 이하 VQ라 한다)의 엔코더(Encoder)에 관한 것으로 특히, 잘려진 나무 구조의 벡터양자화(Pruned Tree Structured VQ : 이하 PTS VQ라 한다)를 수행하는 엔코더(Encoder)에서 프레임 메모리로부터 영상 데이타를 읽어 와, 입력벡터를 형성하는 램 억세스장치에 관한 것이다.
일반적으로 벡터양자화(VQ)는 K 공간의 벡터를 유한개의 부호책(codebook)에 매핑(mapping)시키는 방식으로서, 영상신호의 압축에 효율적인 방법 중의 하나로, HDTV, MPEG 등에 대한 관심의 고조와 함께 많이 연구되고 있고, 특히 복호기(Decoder)의 구조가 간단하고, 1 bpp(bit per pixel) 이하의 낮은 비트율에서 성능이 뛰어나다는 평가를 받고 있다.
이러한 VQ는 벡터의 차원이 커질수록 그 성능이 향상되나, 실제부호화 과정상에서 계산량이 차원의 증가에 따라 급격히 증가하고, 부호책의 설계가 어려워지기 때문에 벡터의 차원은 적정 수준으로 제한된다.
앞서 설명한 바와 같이 VQ는 K 공간의 벡터를 유한개의 부호책으로 매핑시키는 것이므로, 다음 식1과 같이 표현된다.
Q(X)= min-1 d(X,X k) ---- 식1
상기 식1에서 k=1....N 이고, min-1은 왜곡치를 최소화하는 부호책(codebook)상의 Xk를 나타내며, d는 왜곡계수(distortion measure)를 나타낸다.
VQ 엔코더는 상기 식1과 같이 입력벡터 X에 대해 부호책으로부터 왜곡치가 최소인 부호벡터 Xk를 찾아(search) 입력벡터 X나 부호벡터 Xk대신에 부호벡터 Xk를 표시하는 지표 (INDEX)를 송신하여 고도의 압축을 이룩하게 되고, 수신측의 VQ 디코더에서는 수신된 지표(INDEX)로부터 룩업테이블을 사용하여 송신측과 동일한 부호책으로부터 해당 부호벡터 Xk를 찾아 원래의 정보를 복원하게 된다.
이 때, VQ 엔코더는 입력벡터 X로부터 왜곡치가 최소인 부호벡터 Xk를 찾기 위한 과정이 복잡하나 VQ 디코더는 지표(INDEX)로부터 해당 부호를 꺼내기만 하므로 간단하게 구현될 수 있다.
한편, 상기 식1로부터 주어지는 VQ의 부호책(codebook)을 만드는 일반적인 방법으로는 LBG(Linde, Buzo 및 Gray : 인명임) 알고리즘이 널리 사용되는데, LBG 알고리즘의 개요는 부호벡터는 입력벡터에 가장 가까운 (distortion 측면에서) 부호벡터이어야 한다는 조건 (nearest neighbor condition)과 같은 부호벡터로 부호화되는 벡터들의 중심점(distortion 측면에서)이 부호벡터이어야 한다는 조건(centroid condition)의 두가지 제한 조건에 따라 반복적으로 부호책을 만들어 나가는 것이다.
이와 같이 부호책이 완성된 후, VQ 엔코더는 입력벡터와 부호책의 부호벡터를 비교하여 왜곡치를 최소로 하는 부호벡터를 찾아 지표(INDEX)를 구해야 한다. 그런데, 부호책의 크기가 상당히 크고, 벡터의 차원이 증가함에 따라 기하급수적으로 부호책의 크기가 증가하기 때문에 입력벡터와 부호책의 모든 벡터를 비교하여 왜곡치를 계산하는 FVQ(Full search VQ)는 비 효율적이어서 실용적이 없다.
이를 개선하기 위하여 나무 구조의 VQ(TSVQ : Tree search VQ)가 제안된 바, 상기 TSVQ는 제9도에도시된 바와 같이 부호벡터를 이진 나무 구조(binary tree structure)로 배열하여 계산량을 로그 수준으로 떨어뜨린 것이다.
제9도에 있어서, 입력벡터는 각 트리 구조로 배열된 부호벡터들과 계산되어 왜곡치를 최소로 하는 부호벡터를 좌측가지 혹은 우측가지로 찾아가는 바, 단자 노드(terminal node)에 이르면 이때의 부호벡터를 입력벡터에 대한 가장 근사한 벡터로서 매핑(mapping)하고, 상기 단자 노드에 이르기까지의 경로(path)를 인덱스로 전송한다. 따라서, 균형된 나무 구조의 각 단자 노드는 루트(root)로부터 동일한 경로의 길이(L) (이하, 깊이라고도 한다)를 가지므로 전송되는 인덱스는 항등비트율(CBR : Constant Bit Rate)의 특성을 갖는다.
한편, 계층 부호화(Layered coding)에 대한 관심이 증가하면서 VQ의 CBR 성질을 개선하기 위하여 PVQ가 등장하였고, 이를 TSVQ에 적용하여 제10도에도시된 바와 같이 PTS VQ 구조가 제안되었다. 제10도에 있어서, 잘리워진 비균형적인 나무 구조와 제9도의 정상 나무 구조와의 차잇점은 잘리워진 부분의 깊이는 원래의 나무 구조의 깊이 L보다 하나가 적어진 'L-1'인 점이다. 따라서, 이 부분에 종전의 원 나무(original tree) 구조에서 단순한 노드였던 것이 단자 노드(terminal node)가 되고, 부호화과정시 입력벡터가 이 새로운 단자 노드에도달하게 되면, 부호화 경로의 길이는 원래의 나무 구조에서 주어진 항상 일정한 경로길이 L이 아니라 L-1이 된다.
따라서, 잘리워진 비균형적인 나무 구조(PTS)의 부호기는 결국 원 나무 구조의 비트율보다 적은 평균 비트율(R)로서 가변 비트율(VBR : Variable Bit Rate)의 부호화를 시행하게 된다.
반면에, 평균 왜곡치(D)는 잘리워진 가지에 의해 낮추어질 수 있는 왜곡율, 그 가지를 제거했으므로 해서 증가하게 된다. 따라서, 가지를 제거함으로해서 평균 비트율(R)은 감소하였으나, 평균 왜곡치(D)는 증가하게 되는 것이다.
여기서, 평균 비트율(R)과 평균 왜곡치(D)의 적당한 트레이드오프(trade-off)를 생각할 수 있는 바, 잘리워진 나무 구조는 원래의 완벽한 나무 구조와 평균 왜곡치와 평균 비트율이 다르게 되고, 이를 각각 d(S), 1(S)로 표기한다. 또한, 원래의 나무(T)에서 잘리워진 나무 (이하, 서브트리(sub tree)라 한다) S로부터 더욱 더 가지를 잘라 낸, 또 하나의 서브트리 S'를 표시한다면 다음과 같은 식이 성립한다.
ifS'Sthen,d(S')d(S)andl(S')l(S)---- 식2
상기 식2로부터 추론컨데, 주어진 나무 구조 T로부터 가지를 잘라가서 평균 비트율이 어떤 적당한 실수(real number) R보다 크지 않게 하면서, 가장 평균 왜곡치가 적은 서브트리 S를 구하는 방법을 생각할 수 있는데, 이를 식으로 표시하면 다음과 같다.
D(R)= mind(S),ST:l(S)R---- 식3
상기 식3과 같이 주어진 비트율 R에 관하여 이를 만족시키는 서브트리를 찾는 것은 모든 서브트리에 대하여 하나 하나 가지를 제거해 나가면서 최적의 서브트리를 찾아가는 시행착오적인 방법이다. 따라서, 제11도의 R-D 곡선상의 오목한 면(convex hull)을 따라 가도록 최적으로 원 나무 구조를 잘라나가는 방법이 필요하게 되는 바, 이러한 방법으로 BFOS 알고리즘이 제안되었다. BFOS는 1988년 Breiman, Friedman, Olshen, Stone에 의해 개발된 최적의 알고리즘으로서, 선형적인 나무 함수에 적용된다. 제11도에 있어서, 횡축은 평균 비트율(R)을 나타내고, 종축은 평균 왜곡치(D)를 나타낸다. 우측 최하의 점(P1)은 평균 왜곡치(D)가 가장 작고 평균 비트율(R)이 가장 큰 원래의 나무 구조를 나타내고, 이 점(P1)의 좌측에 있는 점들은 각각 잘리워진 나무 구조(즉, 서브트리)들을 나타낸다. 따라서, 잘리워진 나무 구조들의 평균 비트율(R)은 원래의 나무 구조보다 작아지나 평균 왜곡치(D)는 증가하는 것을 알 수 있고, 오목한 면(Convex hull)을 따라 적절하게 잘리워진 나무 구조를 찾을 수 있다.
이상에서 설명한 바와 같이 영상신호의 압축을 위해서 벡터양자화가 효율적이나 벡터차원의 증가에 따라 부호책의 크기가 엄청나게 커지므로 적당한 비트율을 가지면서 왜곡치를 최소화할 수 있도록 효율적인 부호책을 구현할 필요는 바, 이를 위해 실시간 영상신호에 적용하기 위하여 가변 비트율의 PTS VQ가 제안되었다.
따라서, 본 발명은 상기와 같은 PTS VQ 엔코더를 하드웨어로 구현하여 고속으로 부호화할 수 있는 PTS 엔코더에 있어서 영상데이타를 읽어와 입력벡터를 형성하는 램 억세스장치를 제공하는 데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 장치는 상기 영상 데이타를 읽어와 입력벡터를 형성하는 램 억세스부와; 상기 부호책으로부터 부호벡터를 미리 읽어와 좌측 부호벡터와 우측 부호벡터를 출력하고, 결과신호에 따라 선택된 가지의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 단자 노드에도달하면 완료신호를 발생하는 프리패치부; 상기 입력벡터를 프리 패치된 좌측 부호벡터 및 우측 부호벡터와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호를 출력하는 계산부; 및 상기 계산부의 결과신호에 따라 해당 부호벡터의 인덱스코드를 생성하여 상기 완료신호에 따라 출력하는 코드발생부를 구비한 PTS VQ 엔코더에 있어서, 상기 램 억세스부가, 슬라이스 단위로 영상 데이타를 저장하는 M개의 램과; 상기 램을 선택하기 위한 램 선택신호(CS)를 벡터의 크기에 따라 순차적으로 발생하는 램 선택신호 발생부; 상기 선택된 램으로부터 영상 데이타를 읽어오기 위하여 벡터의 크기에 따라 순차적으로 어드레스를 발생하는 어드레스 발생부; 및 상기 램 선택신호(CS)에 의해 선택된 램으로부터 상기 어드레스 발생부의 어드레스에 따라 영상 데이타를 읽어와 입력벡터(Vin)를 형성하는 벡터 레지스터셋을 구비한 것을 특징으로 한다.
이하, 첨부한 예시도면을 참조하여 본 발명을 자세히 설명하기로 한다.
제1도는 본 발명이 적용되는 PTS VQ 엔코더를도시한 블럭도이다. 제1도에서 PTS VQ 엔코더는 영상 데이타를 읽어와 입력벡터(Vin)를 형성하는 램 억세스부(10)와; 부호책(5)으로부터 부호벡터를 미리 읽어와 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 출력하고, 결과신호(COMPUTE)에 따라 선택된 가지(branch)의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 단자 노드(terminal node)에도달하면 완료신호(COMPLETE)를 발생하는 프리패치부(30); 상기 입력벡터(Vin)를 프리 패치된 좌측 부호벡터(VL) 및 우측 부호벡터(VR)와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호(COMPUTE)를 출력하는 계산부(20); 및 상기 계산부(20)의 결과 신호에 따라 해당 부호벡터의 인덱스 코드를 생성하여 상기 완료신호(COMPLETE)에 따라 출력하는 코드 발생부(40)를 구비하여 프레임 메모리(3)에 저장된 영상 데이타를 읽어와 부호책(5)으로부터 부호벡터를 읽어와 코드(VECTOR CODE)를 발생한다.
제2도는 본 발명에 따른 램 억세스부(10)를도시한 블럭도로서, 프레임 메모리(3)에 저장된 한 프레임의 영상 데이타 중에서 슬라이스(slice)와 같은 로우(row) 영상 데이타를 M개의 램(11-1~11-m)에 저장하여 소정 크기(예를 들면, 4 X 2)의 입력벡터(Vin)를 형성하는 바, 상기 슬라이스 단위로 영상 데이타를 저장하는 M개의 램(11-1~11-m)과; 상기 램(11-1~11-m)를 선택하기 위한 램 선택신호(CS)를 벡터의 크기에 따라 순차적으로 발생하는 램 선택신호 발생부(12); 상기 선택된 램으로부터 영상 데이타를 읽어오기 위하여 벡터의 크기에 따라 순차적으로 어드레스를 발생하는 어드레스 발생부(13); 상기 램 선택신호(CS)에 의해 선택된 램으로부터 상기 어드레스 발생부(13)의 어드레스에 따라 영상 데이타를 읽어와 입력벡터(INPUT VECTOR)를 형성하는 벡터 레지스터셋(14)으로 구성된다.
제3도는 제2도에도시된 램 선택신호 발생부(12)의 구현 예로서, M/2비트의 시프트 레지스터(15)로 구현되어 완료신호(COMPLETE)에 따라 시프트하여 한 쌍의 램을 선택하기 위한 램 선택신호(CS)를 발생한다.
제4도는 제2도에도시된 어드레스 발생부(13)의 구현 예로서, 프리패치부(40)의 완료신호(COMPLETE)에 따라 4 다운 카운트하는 카운터(13-2)와; 상기 카운터(13-2)의 출력이 0인지 비교하는 비교기(13-3); 완료신호(COMPLETE)에 따라 카운트하여 모듈로 N/4 으로 동작하는 모듈로 카운터(13-1); 상기 모듈로 카운터(13-1)의 출력에 따라 클리어되고 어드레스를 저장하는 레지스터(13-4); 및 상기 비교기(13-3)의 출력에 따라 클리어되고 상기 어드레스 레지스터(13-4)의 출력을 1 증가시켜 램(11-1~m)으로 출력하며 상기 어드레스 레지스터(13-4)로 궤환하는 가산기(13-5)를 구비한다.
제5도는 제1도에도시된 계산부(20)의 세부 블럭도로서, 좌측 부호벡터(VL)에 따라 테이블을 억세스하여 미리 산출된 자승값을 출력하는제1 롬(21)과; 우측 부호벡터(VR)에 따라 테이블을 억세스하여 미리 산출된 자승값을 출력하는 제2 롬(22); 상기 제1 롬(21)과 제2 롬(22)의 출력을 감산하는 제1 감산기(23); 상기 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 입력받아 감산하는 제2 감산기(24); 상기 제2 감산기(24)의 출력과 입력벡터(Vin)를 입력받아 소정의 내적(inner-product)을 수행하는 곱셈기(25); 상기 제1 감산기(23)의 출력과 상기 곱셈기(25)의 출력을 가산하는 가산기(26); 및 상기 가산기(26)의 출력을 입력받아 부호를 판단하여 왜곡이 적은 좌측가지 또는 우측가지를 선택하기 위한 결과신호(COMPUTE)를 발생하는 부호판단부(27)를 구비한다.
제6도는 제1도에도시된 프리패치부(30)의 세부 블럭도로서, 바이너리 트리 구조로 부호벡터가 저장된 램(5)을 억세스하여 현재 노드로부터 좌측 노드의 좌측 부호벡터와 우측 부호벡터를 읽어오고, 현재 노드로부터 우측 노드의 좌측 부호벡터와 우측 부호벡터를 읽어오는 램리드부(31)와; 램리드부(31)가 읽어온 우측 노드의 우측 부호벡터를 저장하는 RR레지스터(32); 램리드부(31)가 읽어온 우측 노드의 좌측 부호벡터를 저장하는 RL레지스터(33); 램리드부(31)가 읽어온 좌측 노드의 우측 부호벡터를 저장하는 LR레지스터(34); 램리드부(31)가 읽어온 좌측 노드의 좌측 부호벡터를 저장하는 LL레지스터(35); 계산부(20)의 결과신호(COMPUTE)에 따라 상기 RR레지스터(32) 및 RL레지스터(33) 혹은 LR레지스터(34) 및 LL레지스터(35)를 선택하는 멀티플렉서(36)를 구비한다.
즉, 멀티플렉서(36)는 계산부(20)가 우측 가지를 선택하기 위하여 1를 출력하면, RR레지스터(32)에 저장된 부호벡터를 우측 부호벡터(VR)로서 출력하고, RL레지스터(33)에 저장된 부호벡터를 좌측 부호벡터(VL)로서 출력한다. 또한, 계산부(20)가 좌측 가지를 선택하기 위하여 0을 출력하면 LR레지스터(34)에 저장된 부호벡터를 우측 부호벡터(VR)로서 출력하고, LL레지스터(35)에 저장된 부호벡터를 좌측 부호벡터(VL)로서 출력한다.
제7도는 제6도에도시된 램리드부(31)의 세부 블럭도로서, 바이너리 트리 구조의 부호책 램(5)을 억세스하기 위하여 현재 노드의 좌측 촤일드 어드레스를 저장하는 PL레지스터(31-4); 현재 노드의 우측 촤일드 어드레스를 저장하는 PR레지스터(31-6); 상기 PL레지스터(31-4)의 어드레스에 따라 좌측 부호벡터 및 촤일드 어드레스와 우측 부호벡터 및 촤일드 어드레스를 읽어 오고, PR레지스터(31-6)의 어드레스에 따라 좌측 부호벡터 및 촤일드 어드레스와 우측 부호벡터 및 촤일드 어드레스를 읽기 위한 어드레스를 출력하는 어드레스 발생부(31-1); 어드레스 발생부(31-1)의 제어에 따라 부호책(5)으로부터 읽어온 데이타를 디멀티플렉싱하여 어드레스와 벡터를 구분하는 디멀티플렉서(31-3); 상기 디멀티플렉서(31-3)로부터 PR어드레스가 지칭하는 노드의 우측 촤일드 어드레스를 저장하는 RR레지스터(31-8); 상기 디멀티플렉서(31-3)로부터 PR어드레스가 지칭하는 노드의 좌측 촤일드 어드레스를 저장하는 RL레지스터(31-9); 상기 디멀티플렉서(31-3)로부터 PL어드레스가 지칭하는 노드의 우측 촤일드 어드레스를 저장하는 LR레지스터(31-10); 상기 디멀티플렉서(31-3)로부터 PL어드레스가 지칭하는 노드의 좌측 촤일드 어드레스를 저장하는 LL레지스터(31-11); 계산부(20)의 계산결과에 따라 좌측 노드 및 우측 노드의 어드레스를 선택하는 멀티플렉서(31-5, 31-7) 및 상기 PR 및 PL어드레스를 0과 비교하여 0이면 완료신호(COMPLETE)를 발생하는 0 비교기(31-12)를 구비한다.
제8도는 제1도에도시된 코드발생부(40)의 세부 블럭도로서 계산 결과값을 입력받아 시프트(shift)시키는 시프트 레지스터(41)와; 계산결과에 따라 카운트업하여 소정 값이 되면 캐리를 발생하는 가산기(44); 상기 가산기(44)의 캐리나 완료신호에 따라 상기 시프트된 레지스터값을 출력하는 출력버퍼(45); 및 상기 캐리와 완료신호의 논리합 신호를 지연시켜 상기 시프트 레지스터(41) 및 가산기(44)를 클리어(clear)시키는 지연기(42)를 구비한다.
상기와 같이 구성되는 본 발명에 따른 PTS VQ 엔코더의 동작을 자세히 설명하기로 한다.
먼저, 개괄적으로 동작을 설명하면, 유한개의 부호벡터를 잘리워진 바이너리 트리 구조(PTS)로 저장하고 있는 부호책(codebook)의 각 노드는 다음과 같은 구조를 가지고 있다.
즉, 각 노드는 자신의 부호벡터를 가지고 있고, 좌측 가지(branch)로 이어지는 노드의 어드레스인 좌측 촤일드 어드레스와 우측 가지로 이어지는 노드의 어드레스인 우측 촤일드 어드레스를 가지고 있다. 따라서, 입력벡터가 입력되면 루트(root)에 기록된 좌측 촤일드 어드레스가 지시하는 노드의 부호벡터와 우측 촤일드 어드레스가 지시하는 노드의 부호벡터를 읽어와 입력벡터와 각각 왜곡치를 계산하여 어느 쪽의 왜곡치가 더 작은지를 판단하여 작은 쪽을 선택한다. 이 때, 우측 노드의 부호벡터로부터 계산한 왜곡치가 더 작으면 우측을 선택하여 계산결과로 1을 출력하고, 반대로 좌측 노드의 부호벡터로부터 계산한 왜곡치가 더 작으면 좌측을 선택하여 계산 결과로 0을 출력한다.
만일, 우측 노드의 왜곡치가 작아 1을 선택하였다면, 프리패치부(30)는 우측 촤일드 어드레스가 가리키는 노드의 어드레스를 억세스하여 표1과 같은 자료구조를 읽어와 좌측 촤일드 어드레스가 가리키는 노드의 벡터와 우측 촤일드 어드레스가 가리키는 노드의 부호벡터를 읽어와 다시 입력벡터와 왜곡치를 계산하여 왜곡치가 작은 쪽을 선택한다.
이와 같이 입력벡터에 대해 프리 패치된 좌측 부호벡터 및 우측 부호벡터와 각각 왜곡치를 계산하여 보다 왜곡치가 작은 쪽의 가지를 선택하는 과정을 단자 노드에도달할 때까지 반복하고, 단자 노드에 이르게 되면, 이 때의 경로의 인덱스를 전송할 코드로서 생성하게 된다. 이 때, 단자 노드의 좌측 촤일드 어드레스 및 우측 촤일드 어드레스는 0이므로 단자 노드에도달한 것을 인지할 수 있고, 이를 검출하면 완료신호(COMPLETE)를 발생하여 단자 노드에 이르기까지의 인덱스를 출력하고, 다음 입력벡터를 입력받아 다른 영상 데이타에 대해 PTS VQ 엔코딩을 수행한다.
이어서, 각 구성 블럭별로 동작을 설명하면 다음과 같다.
램 억세스부(10)는 프레임 메모리(3)로부터 한 열(row)의 데이타를 로딩하여 M개의 메모리(11-1~11-m)에 저장한 후 입력벡터(Vin)의 크기에 따라 적당히 읽어와 입력벡터를 생성한다. 예를 들어, 입력벡터(Vin)가 (4 X 2)의 크기를 가진다면, M개의 램들 중에서 순차적으로 2개의 램씩 선택하고, 선택된 램쌍으로부터 순차적으로 4번 어드레스를 출력하여 전체 8 바이트의 데이타를 읽어와 입력벡터 버퍼(16)에 저장한다.
한편, 프리패치부(30)는 상기 표1과 같은 자료구조를 가지고 잘려진 나무 구조(PTS)로 저장된 부호책 램(5)으로부터 현재 노드의 우측 촤일드 어드레스(PR)가 지시하는 우측 노드를 억세스하여 이 우측 노드의 우측 촤일드 어드레스(RR) 및 좌측 촤일드 어드레스(RL)와 부호벡터(V)를 읽어오고, 이어서 우측 촤일드 어드레스(RR)가 지시하는 노드의 부호벡터(VR)와 좌측 촤일드 어드레스(RL)가 지시하는 부호벡터(VR)를 읽어오고, 현재 노드의 좌측 촤일드 어드레스(PL)가 지시하는 좌측 노드를 억세스하여 이 좌측 노드의 좌측 촤일드 어드레스(LL) 및 우측 촤일드 어드레스(LR)와 부호벡터(V)를 읽어오고, 이어서 좌측 촤일드 어드레스(LL)가 지시하는 노드의 부호벡터(VL)와 우측 촤일드 어드레스(LR)가 지시하는 부호벡터(VL)를 읽어온다.
여기서, 계산부(20)에서 입력벡터와 계산되는 좌측 벡터와 우측 벡터는 현재 노드의 좌측 촤일드 어드레스와 우측 촤일드 어드레스 지시하는 좌측 노드 및 우측 노드의 벡터인 것을 알 수 있다. 따라서, 상기 표1과 같은 자료구조 형태인 노드들을 부호책(5)으로부터 미리 읽어와 내부의 레지스터에 저장해 놓고 사용하면 신속하게 처리할 수 있다.
또한, 현재 노드의 좌측 및 우측 촤일드 어드레스가 0이면 단자 노드이므로 해당 입력벡터에 대한 서치가 완료된 것이므로, 완료신호(COMPLETE)를 발생하여 램 억세스부(10)가 다음 입력벡터를 입력하도록 하고, 코드 발생부(40)가 해당 입력벡터의 코드값을 전송토록한다.
계산부(20)는 상기 입력벡터(16)로부터 입력벡터(Vin)를 입력한 후, 우측 벡터버퍼(37) 및 좌측 벡터버퍼(38)로부터 각각 좌측 부호벡터(V) 및 우측 부호벡터(V)를 입력한 후 다음 식4에 따라 계산하여 어느 쪽이 더 왜곡치가 적은 지를 계산한다.
( VL- Vin)2- ( VR- Vin)2
= V2 L- V2 R+ 2 ( VR- VL) ㆍVi---- 식4
상기 식4와 같이 좌측 부호벡터(VL)와 입력벡터(Vin) 간의 왜곡치에 우측 부호벡터(VR)와 입력벡터(Vin)간의 왜곡치를 뺀 결과, 부호가 양(+)이면, 좌측 벡터와의 왜곡치가 크므로 1을 출력하여 우측 가지를 선택하고, 부호가 음(-)이면 0을 출력하여 좌측 가지를 선택한다. 이 때, 부호책 구성시에 좌측 부호벡터와 우측 부호벡터값이 항시 다르도록 되어 있으므로 식4에 따른 계산결과가 0이 되지 않는다.
코드 발생부(40)는 상기 계산부(20)의 계산 결과값을 입력한 후 시프트하여 입력벡터의 코드(즉, 인덱스)를 형성한 후 프리패치부(30)의 완료신호(COMPLETE)에 따라 전송한다.
이 때, 시프트 레지스터(41)의 크기는 부호책(5)의 경로 길이(L), 전송할 코드의 최대 크기 및 차원등과 관련하여 결정되고, 하나의 전송코드가 완성되면 프리패치부(30)의 완료신호(COMPLETE)에 따라 전송한다.
예를 들어, 32비트 시프트 레지스터를 사용하여 32비트의 벡터코드(즉, 인덱스)를 생성한다고 하면, 부호책의 최대 경로(L)는 32이어야 한다. 따라서, 가산기 또는 카운터를 사용하여 모드 32연산을 하여 계산부(20)의 출력 갯수가 32개가 되면 생성된 인덱스 코드를 전송하고, 시프트 레지스터를 클리어시켜야 한다.
한편, 본 발명에 따른 PTS VQ 에서는 경로 길이(L)이 입력벡터에 따라 다를 수 가 있으므로, 즉 잘리워진 가지의 단자 노드에서 서치가 완료될 경우에는 계산부(20)의 계산결과가 최대 경로길이인 32개가 되기 전에 인덱스 코드 형성이 완료되고, 따라서 가변 비트율(VBR)이 가능하게 된다.
이상에서 살펴본 바와 같이 본 발명은 PTS VQ에 따른 부호책으로부터 입력벡터에 따라 가변 비트율의 인덱스 코드를 생성하는 엔코더를 간단한 하드웨어로 구현하여 데이타 처리 속도를 개선하고, 시스템의 성능을 향상시킨 효과가 있다. 특히, 아직 연구 개발단계의 첨단 분야인 벡터양자화 부호기를 국내에서도 하드웨어로 구현하여 영상 데이타 압축처리분야에 널리 사용하므로써 영상 관련 제품의 국제경쟁력을 향상시킬 수 있는 효과가 있다.

Claims (3)

  1. 부호책(5)과; 영상 데이타를 읽어와 입력벡터(Vin)를 형성하는 램 억세스부(10); 상기 부호책(5)으로부터 부호벡터를 미리 읽어와 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 출력하고, 결과신호(COMPUTE)에 따라 선택된 가지의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 단자 노드에도달하면 완료신호(COMPLETE)를 발생하는 프리패치부(30); 상기 입력벡터(Vin)를 프리 패치된 좌측 부호벡터(VL) 및 우측 부호벡터(VR)와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호(COMPUTE)를 출력하는 계산부(20); 및 상기 계산부(20)의 결과신호(COMPUTE)에 따라 해당 부호벡터의 인덱스 코드를 생성하여 상기 완료신호(COMPLETE)에 따라 출력하는 코드 발생부(40)를 구비하는 PTS VQ 엔코더에 있어서, 상기 램 억세스부(10)가, 슬라이스 단위로 영상 데이타를 저장하는 M개의 램(11-1~11-m)과; 상기 램(11-1~11-m)을 선택하기 위한 램 선택신호(CS)를 벡터의 크기에 따라 순차적으로 발생하는 램 선택신호 발생부(12); 상기 선택된 램으로부터 영상 데이타를 읽어오기 위하여 벡터의 크기에 따라 순차적으로 어드레스를 발생하는 어드레스 발생부(13); 및 상기 램 선택신호(CS)에 의해 선택된 램으로부터 상기 어드레스 발생부(13)의 어드레스에 따라 영상 데이타를 읽어와 입력벡터(Vin)를 형성하는 벡터 레지스터셋(14)으로 구성되는 것을 특징으로 하는 피티에스 벡터양자화 부호기의 램 억세스장치.
  2. 제1항에 있어서, 상기 램 선택신호 발생부(12)는 M/2 비트의 시프트 레지스터(15)로 구현되어 완료신호에 따라 시프트하여 한 쌍의 램을 선택하기 위한 램 선택신호(CS)를 발생하는 것을 특징으로 하는 피티에스 벡터양자화 부호기의 램 억세스장치.
  3. 제1항에 있어서, 상기 어드레스 발생부(13)는 프리패치부(40)의 완료신호에 따라 4 다운 카운트하는 카운터(13-2)와; 상기 카운터(13-2)의 출력이 0인지 비교하는 비교기(13-3); 완료신호에 따라 카운트하여 모듈로 N/4 으로 동작하는 모듈로 카운터(13-1); 상기 모듈로 카운터(13-1)의 출력에 따라 클리어되고 어드레스를 저장하는 레지스터(13-4); 및 상기 비교기(13-3)의 출력에 따라 클리어되고 상기 어드레스 레지스터(13-4)의 출력을 1 증가시켜 램((11-1~m)으로 출력하며 상기 어드레스 레지스터(13-4)로 궤환하는 가산기(13-5)를 구비한 것을 특징으로 하는 피티에스 벡터양자화 부호기의 램 억세스장치.
KR1019940038211A 1994-12-28 1994-12-28 피티에스 벡터양자화 부호기의 램 억세스장치 KR0169663B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940038211A KR0169663B1 (ko) 1994-12-28 1994-12-28 피티에스 벡터양자화 부호기의 램 억세스장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940038211A KR0169663B1 (ko) 1994-12-28 1994-12-28 피티에스 벡터양자화 부호기의 램 억세스장치

Publications (1)

Publication Number Publication Date
KR0169663B1 true KR0169663B1 (ko) 1999-03-20

Family

ID=19404469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940038211A KR0169663B1 (ko) 1994-12-28 1994-12-28 피티에스 벡터양자화 부호기의 램 억세스장치

Country Status (1)

Country Link
KR (1) KR0169663B1 (ko)

Similar Documents

Publication Publication Date Title
US5398069A (en) Adaptive multi-stage vector quantization
US5414527A (en) Image encoding apparatus sensitive to tone variations
JP3017380B2 (ja) データ圧縮方法及び装置並びにデータ伸長方法及び装置
US6038258A (en) Encoding and decoding system of motion image containing arbitrary object
JPH09507347A (ja) 4分木構造walsh変換ビデオ/イメージ符号化
WO1995014350A1 (en) Quadtree-structured walsh transform coding
US4366506A (en) Picture transfer method and apparatus therefor
US5933105A (en) Context-based arithmetic encoding/decoding method and apparatus
KR950001947B1 (ko) 패턴처리장치
KR19980085643A (ko) 주위 화소값의 적응 임계치를 이용한 이진 영상 보간 방법
KR980003999A (ko) Cdf 연산영역에 근거한 히스토그램 등화회로 및 그 방법
KR0169662B1 (ko) 다수의 부호책을 갖는 피티에스 벡터양자화 부호기
KR0169663B1 (ko) 피티에스 벡터양자화 부호기의 램 억세스장치
KR101028161B1 (ko) 평판 표시 장치 메모리를 위한 데이터 압축-복원 방법과 이를 이용한 히스토그램 데이터 처리, lut 데이터 압축 및 프레임 레이트 향상 방법
US7177479B2 (en) Loss-less compression of still images at enhanced speed
KR0169659B1 (ko) 피티에스 백터양자화 부호기의 코드발생기
KR0169666B1 (ko) 피티에스 벡터양자화 부호기의 왜곡치 계산장치
KR0169658B1 (ko) 피티에스 벡터양자화 부호기
KR0169660B1 (ko) 피티에스 벡터양자화 부호기의 프리패치장치
KR0169661B1 (ko) 계층부호화를 위한 피티에스 벡터양자화 부호기
CN100429946C (zh) 用于处理数字运动图象的方法和装置
Lee et al. Dynamic finite state VQ of colour images using stochastic learning
JPH07249995A (ja) データ符号化装置
US6084987A (en) Collaborative judgement in statistical coding
JPH1098620A (ja) 画像処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111004

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee