KR0169661B1 - 계층부호화를 위한 피티에스 벡터양자화 부호기 - Google Patents
계층부호화를 위한 피티에스 벡터양자화 부호기 Download PDFInfo
- Publication number
- KR0169661B1 KR0169661B1 KR1019940038209A KR19940038209A KR0169661B1 KR 0169661 B1 KR0169661 B1 KR 0169661B1 KR 1019940038209 A KR1019940038209 A KR 1019940038209A KR 19940038209 A KR19940038209 A KR 19940038209A KR 0169661 B1 KR0169661 B1 KR 0169661B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- code
- layer
- node
- register
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 계층부호화를 위한 PTS VQ 엔코더에 관한 것으로, 영상데이타를 읽어와 입력벡터(Vin)를 형성하는 램억세스부(10)와; 상기 부호책(5)으로부터 부호벡터를 미리 읽어와 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 출력하고, 결과신호에 따라 선택된 가지(BRANCH)의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 제1계층의 끝 노드에 도달하면 제1계층종료 플래그(1st END FLAG)를 발생하고, 단자 노드(terminal node)에 도달하면 완료신호(complete)를 발생하는 프리패치부(30); 상기 입력벡터(Vin)를 프리 패치된 좌측 부호벡터(VL) 및 우측 부호벡터(VR)와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호를 출력하는 계산부(20); 및 상기 계산부(20)의 결과신호에 따라 해당 부호벡터의 인덱스 코드를 생성하여 제1계층종료 플래그에 따라 제1계층 인덱스코드를 출력하고, 상기 완료신호(complete)에 따라 제2계층 인덱스코드를 출력하는 코드발생부(40)를 구비하여 PTS VQ에 의해 계층부호화한다.
Description
제1도는 본 발명에 따른 계층부호화를 위한 PTSVQ 엔코더를 도시한 블록도.
제2도는 제1도에 도시된 램억세스부의 세부 블록도.
제3도는 제1도에 도시된 계산부의 세부 블록도.
제4도는 제1도에 도시된 프리패치부의 세부 블록도.
제5도는 제4도에 도시된 램리드부의 세부블럭도.
제6도는 제1도에 도시된 코드발생부의 세부 블록도.
제7도는 일반적인 TSVQ의 구조 예를 도시한 구조도.
제8도는 본 발명에 적용되는 PTS VQ의 구조 예를 비교한 도면.
제9도는 잘려진 나무 집합(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 : 램리드부
32,33,34,35,36,37 : 레지스터 38 : 멀티플랙서
391 : 우측벡터버퍼 392 : 좌측벡터버퍼
40 : 코드발생부 40A, 40B :제1 제2계층 인덱스코드발생부
41A,B : 시프트레지스터 42A,B :지연기
43A,B :오아게이트 44A,B :가산기
45A,B : 출력버퍼
본 발명은 영상데이타를 압축하여 전송할 수 있는 벡터양자화(Vector Quanzation:이하 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과 같이 표현된다.
상기 식〈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는 제7도에 도시된 바와 같이 부호벡터를 이진 나무 구조(binary tree structure)로 배열하여 계산량을 로그 수준으로 떨어뜨린 것이다.
제7도에 있어서, 입력벡터는 각 트리 구조로 배열된 부호벡터들과 계산되어 왜곡치를 최소로 하는 부호벡터를 좌측가지 혹은 우측가지로 찾아가는 바, 단자 노드(terminal node)에 이르면 이때의 부호벡터를 입력벡터에 대한 가장 근사한 벡터로서 매핑(mapping)하고, 상기 단자 노드에 이르기 까지의 경로(path)를 인덱스로 전송한다. 따라서, 균형된 나무 구조의 각 단자 노드는 루트(root)로부터 동일한 경로의 길이(L)(이하, 깊이라고도 한다)를 가지므로 전송되는 인덱스는 항등비트율(CBR:Constant Bit Rate)의 특성을 갖는다.
한편, 계층 부호화(Layered coding)에 대한 관심이 증가하면서 VQ의 CBR 성질을 개선하기 위하여 PVQ가 등장하였고, 이를 TSVQ에 적용하여 제8도에 도시된 바와 같이 PTS VQ 구조가 제안되었다. 여기서, 계층적 부호화(Layered Coding)란 영상소스를 저해상도부터 고해상도까지 있어서, 계층성분으로 분리하여 부호화하는 방식을, 저해상도 계층의 정보는 절대적으로 부호화되며 고행상도 계층의 정보는 저해상도 계층의 정보로부터 상대적으로 부호화된다. 이러한 계층적 부호화의 장점은 첫째, 셀손실등으로 인한 에러보상에 적합하다는 것이다. 즉, 계층적부호화에서 각 계층은 영상정보의 중요도를 반영하므로, 하위계층의 정보에 높은 우선순위를 부여하여 손실을 막으면 기본적인 품질을 유지할 수 있다.
한편, 상위계층의 정보가 손상되었을 경우에는 하위계층에서의 정보로 대체할 수 있으므로 에러의 영향이 지역적으로 나타나고 전체적인 화질에 큰 영향을 미치지 않게 된다. 둘째, 계층적 부호화는 영상서비스를 가입자의 요구와 부합시키는데 용이하고, 셋째 수 Mbps의 영상서비스에서 수백 Mbps의 HDTV에 이르기 까지 여러 종류의 영상서비스간의 호환성을 보장한다.
제 8도에 있어서, 잘리워진 비균형적인 나무 구조와 제7도의 정상 구조의 나무 구조와의 차잇점은 잘리워진 부분의 깊이는 원래의 나무 구조의 깊이 L보다 하나가 적어진 'L-1'인 점이다. 따라서, 이부분에 종전의 원나무(original tree) 구조에서 단순한 노드였던 것이 단자 노드(terminal node)가 되고, 부호화과정시 입력벡터가 이 새로운 단자 노드에 도달하게 되면, 부호화 경로의 길이는 원래의 나무구조에서 주어진 항상 일정한 경로길이 L이 아니라 L-1이 된다. 또한, 계층적 부호화(Layered Coding)를 지원하기 위하여 제8도의 노드들은 중요도가 높은 제1계층(1st layer)과 상대적으로 중요도가 낮은 제2 계층(2nd layer)으로 구분된다. 잘리워진 비균형적인 나무 구조(PTS)의 부호기는 결국 원 나무 구조의 비트율보다 적은 평균 비트율(R)로서 가변 비트율(VBR:Variable Bit Rate)의 부호화를 시행하게 된다.
반면에, 평균 왜곡치(D)는 잘리워진 가지에 의해 낮추어질 수 있는 왜곡을, 그 가지를 제거했으므로 해서 증가하게 된다. 따라서 가지를 제거함으로해서 평균 비트율(R)은 감소하였으나, 평균 왜곡치(D)는 증가하게 되는 것이다. 여기서, 평균 비트율(R)과 평균 왜곡치(D)의 적당한 트레이드오프(trade-off)를 생각할 수 있는 바, 잘리워진 나무 구조는 원래의 완벽한 나무 구조와 평균 왜곡치와 평균 비트율이 다르게 되고, 이를 각각 d(S), 1(S)로 표기한다. 또한, 원래의 나무(T)에서 잘리워진 나무(이하, 서브트리(sub tree)라 한다)S로부터 더욱 더 가지를 잘라 낸, 또 하나의 서브트리S'를 표시한다면 다음과 같은 식이 성립한다.
상기 식〈2〉으로부터 추론컨데, 주어진 나무 구조 T로부터 가지를 잘라가서 평균 비트율이 어떤 적당한 실수(real number) R보다 크지 않게 하면서, 가장 평균 왜곡치가 적은 서브트리 S를 구하는 방법을 생각할 수 있는데, 이를 식으로 표시하면 다음과 같다.
상기 식〈3〉과 같이 주어진 비트율 R에 관하여 이를 만족시키는 서브트리를 찾는 것은 모든 서브트리에 대하여 하나 하나 가지를 제거해 나가면서 최적의 서브트리를 찾아 나가는 시행착오적인 방법이다. 따라서, 제9도의 R-D곡선상의 오목한 면(convex hull)을 따라 가도록 최적으로 원 나무 구조를 잘라나가는 방법이 필요하게 되는 바, 이러한 방법으로 BFOS 알고리즘이 제안되었다. BFOS는 1988년 Breiman, Friedman, Olshen, Stone에 의해 개발된 최적의 알고리즘으로서, 선형적인 나무함수에 적용된다.
제9도에 있어서, 횡축은 평균 비트율(R)을 나타내고, 종축은 평균 왜곡치(D)를 나타내며 우측 최하의 점(P1)이 원래의 나무 구조이고, 이점(P1)의 좌측의 점들은 잘리워진 나무 구조(즉, 서브트리)이다. 따라서, 잘려진 나무 구조들은 평균 비트율(R)은 원래의 나무 구조보다 작아지나 평균 왜곡치(D)는 증가하는 것을 알 수 있고, 오목한 면(Corvex hull)을 따라 적절하게 잘려진 나무 구조를 찾는 것이 필요하다.
이상에서 설명한 바와 같이 영상신호의 압축을 위해서 벡터양자화가 효율적이나 벡터 차원의 증가에 따라 부호책의 크기가 엄청나게 커지므로 적당한 비트율을 가지면서 왜곡치를 최소화 할 수 있도록 효율적인 부호책을 구현할 필요는 바, 이를 위해 실시간 영상신호에 적용하기 위하여 가변 비트율의 PTS VQ가 제안되었다. 또한, 영상데이타를 중요도에 따라 계층적으로 분할하여 부호화할 경우 앞서 설명한 바와 같은 장점들이 있으므로, PTS VQ를 이용하여 계층부호화하는 것이 요구된다. 따라서, 본 발명은 상기와 같은 계층부호화를 위한 PTS VQ를 하드웨어로 구현하여 고속으로 부호화할 수 있는 계층부호화를 위한 PTS VQ 엔코더를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 장치는, 프레임 메모리에 저장된 영상데이타를 읽어와 제1계층과 제2계층으로 계층화된 PTS VQ에 따른 부호책(codebook)으로부터 상기 부호벡터를 읽어와 제1계층 인덱스코드 및 제2계층 인덱스코드를 발생하는 PTS VQ 엔코더에 있어서, 상기 영상데이타를 읽어와 입력벡터를 형성하는 램억세스부와; 상기 부호책으로부터 부호벡터를 미리 읽어와 좌측 부호벡터와 우측 부호벡터를 출력하고, 결과신호에 따라 선택된 가지의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 제1계층의 끝노드에서 제1계층종료 플래그를 발생하며 단자 노드에 도달하면 완료신호를 발생하는 프리패치부; 상기 입력벡터를 프리 패치된 좌측 부호벡터 및 우측 부호벡터와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호를 출력하는 계산부; 및 상기 계산부의 결과신호에 따라 해당 부호벡터의 인덱스코드를 생성하여 상기 제1계층 종료 플래그에 따라 제1계층 인덱스코드를 출력하고, 상기 완료신호에 따라 제2계층 인덱스코드를 출력하는 코드발생부를 구비한 것을 특징으로 한다.
이하, 첨부한 예시도면을 참조하여 본 발명을 자세히 설명하기로 한다.
제1도는 본 발명에 따른 계층부호화를 위한 PTS VQ 엔코더를 도시한 블록도로서, 제1계층과 제2계층으로 계층화된 PTS VQ 부호벡터, 좌,우측 촤일드어드레스, 및 제1계층 종료 플래그를 저장하고 있는 부호책(5)과; 영상데이타를 읽어와 입력벡터(Vin)를 형성하는 램억세스부(10)와; 상기 부호책(5)으로부터 부호벡터를 미리 읽어와 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 출력하고, 결과신호(COMPUTE)에 따라 선택된 가지(branch)의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 제1 계층의 끝 노드에 도달하면 제1 계층종료 플래그(1st END FLAG)를 발생하고, 단자 노드(terminal node)에 도달하면 완료신호(COMPUTE)를 발생하는 프리패치부(30); 상기 입력벡터(Vin)를 프리 패치된 좌측 부호벡터(VL) 및 우측 부호벡터(VR)와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호(COMPUTE)를 출력하는 계산부(20); 및 상기 계산부(20)의 결과신호에 따라 해당 부호벡터의 인덱스 코드를 생성하여 제1 계층종료 플래그에 따라 제1계층 인덱스코드를 출력하고, 상기 완료신호(COMPLETE)에 따라 제2계층 인덱스코드를 출력하는 코드발생부(40)를 구비한다.
제2도는 제1도에 도시된 램억세스부(10)의 세부 블록도로서, 상기 램억세스부(10)는 프레임 메모리(3)에 저장된 한 프레임의 영상 데이터중에서 슬라이스(slice)와 같은 로우(row) 영상 데이터를 M개의 램(11-1∼11-m)에 저장하여 소정 크기(예를 들면, 4×2)의 입력벡터(Vin)를 형성하는 바, 상기 슬라이스단위로 영상데이터를 저장하는 M개의 램(11-1∼11-m)을 과; 상기 램(11-1∼11-m)을 선택하기 위한 램선택신호(CS)를 벡터의 크기에 따라 순차적으로 발생하는 램선택신호 발생부(12); 상기 선택된 램으로부터 영상데이타를 읽어오기 위하여 벡터의 크기에 따라 순차적으로 어드레스를 발생하는 어드레스발생부(13); 상기 램선택신호(CS)에 의해 선택된 램으로부터 상기 어드레스발생부(13)의 어드레스에 따라 영상데이타를 읽어와 입력벡터(Vin)를 형성하는 벡터 레지스터셋(14)으로 구성된다.
제3도는 제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)를 구비한다.
제4도는 제1도에 도시된 프리패치부(30)의 세부 블록도로서, 바이너리 트리 구조로 제1계층과 제2계층으로 구분되어 부호벡터가 저장된 부호책 램(5)을 억세스하여 현재 노드로부터 좌측 노드의 좌측 부호벡터와 우측 부호벡터 및 각각의 제1 계층종료 플래그를 읽어오고, 현재 노드로부터 우측 노드의 좌측 부호벡터와 우측 부호벡터 및 각각의 제1 계층종료 플래그를 읽어오는 램리드부(31)와; 램리드부(31)가 읽어온 우측노드의 우측 부호 벡터를 저장하는 RR레지스터(32); 램리드부(31)가 읽어온 우측노드의 좌측 부호벡터를 저장하는 RL레지스터(33); 우측노드의 제1 계층종료 플래그를 저장하는 레지스터(34); 램리드부(31)가 읽어온 좌측노드의 우측 부호벡터를 저장하는 LR레지스터(34); 램리드부(31)가 읽어온 좌측노드의 좌측 부호벡터를 저장하는 LL레지스터(36); 좌측노드의 제1 계층종료 플래그(1st END FLAG)를 저장하는 레지스터(37); 계산부(20)의 결과신호에 따라 상기 RR레지스터(32), RL레지스터(33) 및 제1 종료신호레지스터(34) 혹은 LR레지스터(35), LL레지스터(36) 및 제1 종료신호레지스터(37)를 선택하는 멀티플랙서(36)를 구비한다. 즉, 멀티플랙서(38)는 계산부(20)가 우측 가지를 선택하기 위하여 1을 출력하면, RR레지스터(32)에 저장된 부호벡터를 우측 부호벡터(VR)로서 출력하고, RL레지스터(33)에 저장된 부호벡터를 좌측 부호벡터(VL)로서 출력하며 제1 계층종료 플래그(1st END FLAG)를 출력한다. 또한, 계산부(20)가 좌측 가지를 선택하기 위하여 0을 출력하면 LR레지스터(34)에 저장된 부호벡터를 우측 부호벡터(VR)로서 출력하고, LL레지스터(35)에 저장된 부호벡터를 좌측 부호벡터(VL)로서 출력하며 제1계층종료 플래그(1st END FLAG)를 출력한다.
제5도는 제4도에 도시된 램 리드부(31)의 세부 블록도로서, 바이너리 트리 구조의 코드북램(5)을 억세스하기 위하여 현재 노드의 좌측 촤일드 어드레스를 저장하는 PL레지스터(312); 현재 노드의 우측 촤일드 어드레스를 저장하는 PR레지스터(314); 상기 PL레지스터(312)의 어드레스에 따라 좌측 부호벡터 및 촤일드 어드레스와 우측 부호벡터 및 촤일드 어드레스 읽어 오고 PR레지스터(314)의 어드레스에 따라 좌측 부호벡터 및 촤일드 어드레스와 우측 부호벡터 및 촤일드 어드레스를 읽기 위한 어드레스를 출력하는 어드레스발생부(311); 어드레스발생부(311)의 제어에 따라 부호책(5)으로부터 읽어온 데이터를 디멀티플랙싱하여 어드레스와 벡터를 구분하는 디멀티플랙서(316); 상기 디멀티플랙서(316)로부터 PR어드레스가 지칭하는 노드의 우측 촤일드 어드레스를 저장하는 RR 어드레스 레지스터(318); 상기 디멀티플랙서(316)로부터 PR어드레스가 지칭하는 노드의 좌측 촤일드 어드레스를 저장하는 RL 어드레스 레지스터(319); 상기 디멀티플랙서(316)로부터 PL어드레스가 지칭하는 노드의 우측 촤일드 어드레스를 저장하는 LR레지스터(320); 상기 디멀티플랙서(316)부터 PL어드레스가 지칭하는 노드의 좌측 촤일드 어드레스를 저장하는 LL어드레스 레지스터(321); 계산부(20)의 계산결과(COMPUTE)에 따라 좌측 노드 및 우측 노드의 어드레스를 선택하는 멀티플랙서(313, 315) 및 상기 PR 및 PL 어드레스를 0과 비교하여 0이면 완료신호(COMPLETE)를 발생하는 0비교기(322)를 구비한다.
제6도는 제1도에 도시된 코드발생부(40)의 세부 블록도이다. 제6도에서 본 발명에 따른 코드발생부(40)는 제1 계층 인덱스코드 발생부(40B)와; 제2계층 인덱스코드발생부(40A); 및 제1 계층종료 플래그(1st END FLAG)를 입력받아 벡터코드가 제1계층에 속하면, 상기 제1계층 인덱스코드발생부(40B)로 계산부(20)의 출력을 연결하고, 제1계층에 속하지 않으면 계산부(20)의 출력을 상기 제2계층의 인덱스코드발생부(40A)로 연결하는 디멀티플랙서(DMUX)로 구성된다. 또한, 각각의 인덱스코드발생부(40A, 40B)는 계산결과값을 입력받아 시프트(shift)시키는 시프트 레지스터(41A,41B)와; 계산결과에 따라 카운트업하여 소정 값이 되면 캐리를 발생하는 가산기(44A,44B); 상기 가산기(44A,B)의 캐리나 완료신호 혹은 제1계층종료 플래그에 따라 상기 시프트된 레지스터값을 출력하는 출력버퍼(45A,45B); 및 상기 캐리와 완료신호의 논리합신호를 지연시켜 상기 시프트 레지스터(41A,41B) 및 가산기(44A,44B)를 클리어(clear)시키는 지연기(42A,42B)를 구비한다.
상기와 같이 구성되는 본 발명에 따른 PTS VQ 엔코더의 동작을 자세히 설명하기로 한다.
먼저, 개괄적으로 동작을 설명하면, 유한개의 부호벡터를 잘리워진 바이너리 트리구조(PTS) 2개의 계층으로 구분하여 저장하고 있는 부호책(codebook)의 각 노드는 다음과 같은 구조를 가지고 있다.
즉, 각 노드는 자신의 부호벡터를 가지고 있고, 좌측 가지(branch)로 이어지는 노드의 어드레스인 좌측 촤일드 어드레스와 우측 가지로 이어지는 노드의 어드레스인 우측 촤일드 어드레스와 계층을 구분하기 위한 제1 계층 종료플래그를 가지고 있다. 여기서, 벡터코드가 제1계층에 속하면 제1계층 종료플래그는 1의 값을 가지고, 제2계층에 속하면 0의 값을 가진다. 따라서, 제1계층 종료플래그가 1에서 0으로 변하면 제1계층이 마지막 노드인 것을 알 수 있다.
입력벡터가 입력되면 루트(root)에 기록된 좌측 촤일드 어드레스가 지시하는 노드의 부호벡터와 우측 촤일드 어드레스가 지시하는 노드의 부호벡터를 읽어와 입력벡터와 각각 왜곡치를 계산하여 어느 쪽의 왜곡치가 더 작은지를 판단하여 작은 쪽을 선택한다. 이때, 우측 노드의 부호벡터로부터 계산한 왜곡치가 더 작으면 우측을 선택하여 계산결과로 1을 출력하고, 반대로 좌측 노드의 부호벡터로부터 계산한 왜곡치가 더 작으면 좌측을 선택하여 계산결과로 0을 출력한다. 만일, 우측 노드의 왜곡치가 작아 1을 선택하였다면, 프리패치부(30)는 우측 촤일드 어드레스가 가리키는 노드의 어드레스를 억세스하여 표〈1〉과 같은 자료구조를 읽어와 좌측 촤일드 어드레스가 가리키는 노드의 벡터와 우측 촤일드 어드레스가 가리키는 노드의 부호벡터를 읽어와 다시 입력벡터와 왜곡치를 계산하여 왜곡치가 작은 쪽을 선택한다.
이와 같이 입력벡터에 대해 프리 패치된 좌측 부호벡터 및 우측 부호벡터와 각각 왜곡치를 계산하여 보다 왜곡치가 작은 쪽의 가지를 선택하는 과정을 단자 노드에 도달할 때 까지 반복하고, 단자 노드에 이르게 되면 이때의 경로의 인덱스를 전송할 코드로서 생성하게 된다. 이때, 단자 노드의 좌측 촤일드 어드레스 및 우측 촤일드 어드레스는 0이므로 단자노드에 도달한 것을 인지할 수 있고, 이를 검출하면 완료신호(COMPLETE)를 발생하여 단자 노드에 이르기까지의 인덱스를 출력하고, 다음 입력벡터를 입력받아 다른 영상데이타에 대해 PTS VQ 엔코딩을 수행한다.
어어서, 각 구성 블록별로 동작을 설명하면 다음과 같다.
램억세스부(10)는 프레임 메모리(3)로부터 한 열(row)의 데이터를 로딩하여 M개의 메모리(11-1∼11-m)에 저장한 후 입력벡터(Vin)의 크기에 따라 적당히 읽어와 입력벡터를 생성한다. 예를 들어, 입력벡터(Vin)가 (4×2)의 크기를 가진다면, M개의 램들중에서 순차적으로 2개의 램씩 선택하고, 선택된 램쌍으로부터 순차적으로 4번 어드레스를 출력하여 전체 8바이트의 데이터를 읽어 와 입력벡터버퍼(16)에 저장한다.
한편, 프리패치부(30)는 상기 표〈1〉과 같은 자료구조를 가지고 잘려진 나무 구조(PTS)로 저장된 부호책 램(5)으로부터 현재 노드의 우측 촤일드 어드레스(PR)가 지시하는 우측노드를 억세스하여 이 우측노드의 우측 촤일드 어드레스(PR) 및 좌측 촤일드 어드레스(RL)와 부호벡터(VR)를 읽어오고, 이어서 우측 촤일드 어드레스(RR)가 지시하는 노드의 부호벡터(VR)와 좌측 촤일드 어드레스(RL)가 지시하는 부호벡터(VR)를 읽어오고, 현재 노드의 좌측 촤일드 어드레스(PL)가 지시하는 좌측 노드를 억세스하여 이 좌측노드의 좌측 촤일드 어드레스(LL) 및 우측 촤일드 어드레스(LR)와 부호벡터(VL)를 읽어오고, 이어서 좌측 촤일드 어드레스(LL)가 지시하는 노드의 부호벡터(VL)와 우측 촤일드 어드레스(LR)가 지시하는 부호벡터(VL)를 읽어온다. 이때, 각 노드가 가지고 있는 제1계층 종료플래그도 함께 읽어와 해당 부호벡터가 어느 계층에 속하는 지를 구분하고, 제1계층에 대한 부호화가 종료되면 제1인데스코드를 출력하도록 코드발생부(40)로 제1계층종료 플래그를 출력한다.
여기서, 계산부(20)에서 입력벡터와 계산되는 좌측벡터와 우측벡터는 현재 노드의 좌측 촤일드 어드레스와 우측 촤일드 어드레스 지시하는 좌측 노드 및 우측 노드의 벡터인 것을 알 수 있다. 따라서, 상기 표〈1〉과 같은 자료구조 형태인 노드들을 부호책(5)으로부터 미리 읽어와 내부의 레지스터에 저장해 놓고 사용하면 신속하게 처리할 수 있다. 또한, 현재 노드의 좌측 및 우측 촤일드 어드레스가 0이면 단자 노드이므로 해당 입력벡터에 대한 서치가 완료된 것이므로, 완료신호(COMPLETE)를 발생하여 램억세스부(10)가 다음 입력벡터를 입력하도록 하고, 코드발생부(40)가 해당 입력벡터의 코드값을 전송토록한다.
계산부(20)는 상기 입력버퍼(16)로부터 입력벡터(Vin)를 입력한 후, 우측 벡터버퍼(37) 및 좌측 벡터버퍼(38)로부터 각각 좌측부호벡터(V) 및 우측 부호벡터(V)를 입력한 후 다음 식〈4〉에 따라 계산하여 어느 쪽이 더 왜곡치가 적은 지를 계산한다.
상기 식〈4〉와 같이 좌측 부호벡터(VL)와 입력벡터(Vin)간의 왜곡치에 우측 부호벡터(VR)와 입력벡터(Vin)간의 왜곡치를 뺀 결과, 부호가 양(+)이면 좌측벡터와의 왜곡치가 크므로 1을 출력하여 우측가지를 선택하고, 부호가 음(-)이면 0을 출력하여 좌측 가지를 선택한다. 이때, 부호책 구성시에 좌측 부호벡터와 우측 부호벡터값이 항시 다르도록 되어 있으므로 식〈4〉에 따른 계산결과가 0이 되지 않는다.
코드발생부(40)는 먼저 제1계층종료 플래그가 1이면 해당 부호벡터가 제1계층에 속하므로 계산부(20)의 출력을 제1계층 인덱스코드발생부(40B)로 연결하고, 제1계층종료 플래그가 0이면 해당 부호벡터가 제2계층에 속하므로 계산부(20)의 출력을 제2계층 인덱스코드발생부(40A)로 연결한다.
제1계층 및 제2계층 인덱스코드발생부(40A,40B)는 상기 계산부(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)
- 계층화된 PTS VQ에 따른 부호벡터를 저장하고 있는 부호책(5)과; 프레임 메모리로부터 영상데이타를 읽어와 입력벡터(Vin)를 형성하는 램억세스부(10); 상기 부호책(5)으로부터 부호벡터를 미리 읽어와 좌측 부호벡터(VL)와 우측 부호벡터(VR)를 출력하고, 결과신호에 따라 선택된 가지(branch)의 노드를 중심으로 다시 우측 부호벡터와 좌측 부호벡터를 읽어오고, 제1계층의 끝 노드에 도달하면 제1계층종료 플래그(1st END FLAG)를 발생하고, 단자 노드(terminal node)에 도달하면 완료신호(COMPLETE)를 발생하는 프리패치부(30); 상기 입력벡터(Vin)를 프리 패치된 좌측 부호벡터(VL) 및 우측 부호 벡터(VR)와 왜곡치를 계산하여 왜곡치가 적은 쪽의 가지를 선택하도록 상기 결과신호(COMPUTE)를 출력하는 계산부(20); 및 상기 계산부(20)의 결과신호(COMPUTE)에 따라 해당 부호벡터의 인덱스 코드를 생성하여 제1 계층종료 플래그에 따라 제1 계층 인덱스코드를 출력하고, 상기 완료신호(COMPLETE)에 따라 제2 계층 인덱스코드를 출력하는 코드발생부(40)를 구비한 것을 특징으로 하는 계층부호화를 위한 피티에스 벡터양자화 부호기.
- 제1도에 있어서, 상기 프리패치부(30)는 바이너리 트리구조로 제1계층과 제2계층으로 구분되어 부호벡터가 저장된 부호책 램(5)을 억세스하여 현재 노드로부터 좌측 노드의 좌측 부호벡터와 우측 부호벡터 및 각각의 제1계층종료 플래그를 읽어오고, 현재 노드로부터 우측 노드의 좌측 부호벡터와 우측 부호벡터 및 각각의 제1계층종료플래그를 읽어오는 램리드부(31)와; 램리드부(31)가 읽어온 우측노드의 우측 부호벡터를 저장하는 RR레지스터(32); 램리드부(31)가 읽어온 우측노드의 좌측 부호벡터를 저장하는 RL레지스터(33); 우측노드의 제1계층종료 플래그를 저장하는 레지스터(34); 램리드부(31)가 읽어온 좌측노드의 우측 부호벡터를 저장하는 LR레지스터(35); 램리드부(31)가 읽어온 좌측노드의 좌측부호벡터를 저장하는 LL레지스터(36); 좌측노드의 제1계층 종료신호(1st END FLAG)를 저장하는 레지스터(37); 계산부(20)의 결과신호(COMPUTE)에 따라 상기 RR레지스터(32), RL레지스터(33) 및 제1 종료신호레지스터(34) 혹은 LR레지스터(35), LL레지스터(36) 및 제1 종료신호 레지스터(37)를 선택하는 멀티플랙서(38)를 구비한 것을 특징으로 하는 계층부호화를 위한 피티에스 벡터양자화 부호기.
- 제1항에 있어서, 상기 코드발생부(40)의 세부 블록도로서, 제1계층 인덱스코드 발생부(40B)와; 제2계층 인덱스코드발생부(40A); 및 1계층 종료신호(1st END FLAG)를 입력받아 벡터코드가 제1계층에 속하면, 상기 제1계층 인덱스코드발생부(40B)로 계산부(20)의 출력을 연결하고, 제1계층에 속하지 않으면 계산부(20)의 출력을 상기 제2계층의 인덱스 코드발생부(40A)로 연결하는 디멀티플랙서(DMUX)로 구성되는 것을 특징으로 하는 계층부호화를 위한 피이에스 벡터양자화 부호기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940038209A KR0169661B1 (ko) | 1994-12-28 | 1994-12-28 | 계층부호화를 위한 피티에스 벡터양자화 부호기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940038209A KR0169661B1 (ko) | 1994-12-28 | 1994-12-28 | 계층부호화를 위한 피티에스 벡터양자화 부호기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960028474A KR960028474A (ko) | 1996-07-22 |
KR0169661B1 true KR0169661B1 (ko) | 1999-03-20 |
Family
ID=19404466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940038209A KR0169661B1 (ko) | 1994-12-28 | 1994-12-28 | 계층부호화를 위한 피티에스 벡터양자화 부호기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0169661B1 (ko) |
-
1994
- 1994-12-28 KR KR1019940038209A patent/KR0169661B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR960028474A (ko) | 1996-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5398069A (en) | Adaptive multi-stage vector quantization | |
US4725885A (en) | Adaptive graylevel image compression system | |
US5313534A (en) | Image compression method | |
JP3515572B2 (ja) | 画像伝送システムにおける画像圧縮符号化方法 | |
US6614939B1 (en) | Image compression apparatus and decoding apparatus suited to lossless image compression | |
JPH09507347A (ja) | 4分木構造walsh変換ビデオ/イメージ符号化 | |
US4870695A (en) | Compression and de-compression of column-interlaced, row-interlaced graylevel digital images | |
US4366506A (en) | Picture transfer method and apparatus therefor | |
KR20010053286A (ko) | 화상부호/복호방법 및 그 프로그램을 기록한 기록매체 | |
KR980013430A (ko) | 블럭-기반 물체 윤곽 부호화 방법(method for coding contour in block based object coding system) | |
US5594503A (en) | Image information compressing method, compressed image information recording medium and compressed image information reproducing apparatus | |
KR950001947B1 (ko) | 패턴처리장치 | |
KR100314098B1 (ko) | 주위화소값의적응임계치를이용한이진영상보간방법 | |
JPH08340553A (ja) | 映像信号符号化装置 | |
US4845559A (en) | Process and apparatus for digital signal coding and transmission by selective replenishment in time of a vector quantizer | |
EP0457362B1 (en) | Vector quantizer | |
EP0283798A2 (en) | Compression and decompression of column-interlaced, row-interlaced graylevel digital images | |
KR0169661B1 (ko) | 계층부호화를 위한 피티에스 벡터양자화 부호기 | |
JP2798168B2 (ja) | 画像符号化装置 | |
JPH10208062A (ja) | 輪郭線符号化装置 | |
US5978513A (en) | Picture encoding method and apparatus and picture decoding method and apparatus | |
KR0169666B1 (ko) | 피티에스 벡터양자화 부호기의 왜곡치 계산장치 | |
KR0169658B1 (ko) | 피티에스 벡터양자화 부호기 | |
KR0169659B1 (ko) | 피티에스 백터양자화 부호기의 코드발생기 | |
GB2257283A (en) | Image signal analysis |
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 |