KR19990079054A - 가변 길이 코드 디코더. - Google Patents
가변 길이 코드 디코더. Download PDFInfo
- Publication number
- KR19990079054A KR19990079054A KR1019980011441A KR19980011441A KR19990079054A KR 19990079054 A KR19990079054 A KR 19990079054A KR 1019980011441 A KR1019980011441 A KR 1019980011441A KR 19980011441 A KR19980011441 A KR 19980011441A KR 19990079054 A KR19990079054 A KR 19990079054A
- Authority
- KR
- South Korea
- Prior art keywords
- output
- data
- latch
- outputting
- unit
- 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 압축, 부호화(coding)된 영상 및 음성 데이타를 효과적으로 복호화(decoding)하도록 하는 디코딩장치에 관한 것으로, 특히 가변 길이 코드(VLC; Variable Length Code)로 압축된 영상데이타를 디코딩하는 가변길이 코드 디코더(VLD; Variable Length code Decoder)에 관한 것이다.
MPEG1,MPEG2 또는 HDTV와 같은 시스템에서 주변회로와 연결되어 하나의 기능 블록을 구성하기 위한 가변 길이 코드 디코더는 주변회로의 복잡정도에 따라 내부의 최장 지연시간 뿐만 아니라 주변 블록과의 연결부에 존재하는 최장시간을 고려해야하는 바,
본 발명에서는 외부 최장 지연시간 경로에서 배럴 쉬프터가 제외되도록 하여, 주변회로 블록과의 결합시 가변 길이 코드 디코더와 주변회로의 연결부분에 존재하는 최장 시간을 줄일 수 있도록 하며, 한가지 종류의 배럴 쉬프터를 디코딩부와 인터페이스부에 직렬로 연결(cascade) 구성하므로써, 회로구현이 용이하게 이루어질 수 있도로 한, 빠른 처리속도를 갖는 가변 길이 코드 디코더를 제공하고자 하는 것이다.
Description
본 발명은 압축, 부호화(coding)된 영상 및 음성 데이타를 효과적으로 복호화(decoding)하도록 하는 디코딩장치에 관한 것으로, 특히 가변 길이 코드(VLC; Variable Length Code)로 압축된 영상데이타를 디코딩하는 가변길이 코드 디코더(VLD; Variable Length code Decoder)에 관한 것이다.
영상, 음성 및 데이타를 효과적으로 저장 또는 전송하기 위하여서 여러 데이타 압축기술중의 하나로 가변 길이 코드가 사용된다.
상기 가변 길이 코드는 저장 또는 전송해야 할 데이타의 발생 빈도에 따라 발생 빈도가 높은 데이타에는 가능한 작은 길이의 코드를 할당하고, 발생빈도가 낮은 데이타에는 상대적으로 긴 길이의 코드를 할당하여 전체적인 데이타의 양을 줄이는 방법이다.
이와 같은 방법으로 적당한 코드가 할당되면, 평균 코드 길이는 원 데이타의 평균 코드 길이보다 짧아진다.
따라서, 데이타의 통계적 특성이 알려진 경우에 손실 없이 효과적으로 부호화하는 데 사용된다.
이러한 가변 길이 코드는 현재 많은 응용 분야에 적용되고 있고, 대표적인 예로는 동영상 압축 기술(MPEG1, MPEG2; Motion Picture Expert Group)규격과 이를 채용한 고선명 티브이(HDTV; High Definition Television), 디지탈 다기능 디스크(DVD) 등이다.
이와 같은 응용분야에 있어서 많은 데이타 양을 실시간에 처리하기 위하여 고속으로 처리할 수 있는 가변 길이 코드 디코더를 필요로 하게 된다.
점차 빠른 속도의 가변 길이 코드 디코더가 필요하게 됨에 따라 기존의 트리-베이스드 아키텍쳐(Tree-Based Architecture)보다는 프로그래머블 로직 어레이-베이스드 아키텍쳐(PLA-Based Architecture)를 이용한 구조들이 제안되었다.
이들은 가변 길이 코드 디코더 내부의 최장 지연시간을 줄이는데 효과적인 구조를 가지고 있다.
그러나, 가변 길이 코드 디코더는 주변회로와 함께 연결되어 하나의 기능 블록을 구성하는 게 일반적인 바,
MPEG1, MPEG2 또는 HDTV 시스템에서 복잡한 가변 길이 코드 디코더가 주변회로와 함께 연결되어 하나의 기능 블록을 형성하게 될 경우 가변 길이 코드 디코더와 주변 블록과의 연결회로에 존재하는 시간 지연이 내부 최장 지연시간 보다 커지게 된다.
따라서, MPEG1,MPEG2 또는 HDTV와 같은 시스템에서 주변회로와 연결되어 하나의 기능 블록을 구성하기 위한 가변 길이 코드 디코더는 주변회로의 복잡정도에 따라 내부의 최장 지연시간 뿐만 아니라 주변 블록과의 연결부에 존재하는 최장시간을 고려해야한다.
본 발명에서는 이와 같은 점을 감안한 가변 길이 코드 디코더를 제안하고자하는 것이다.
도 1은 종래 가변 길이 코드 디코더의 구성을 나타낸 블록도로써, 도 1을 참조하여 이하 종래 가변 길이 코드 디코더의 구성 및 작용을 설명하면 다음과 같다.
데이타 채널을 통해 수신된 가변 길이 워드의 직렬 비트 스트림(bit stream)을 일시 저장, 출력하는 외부 버퍼 메모리(10)와,
입력되는 연속적인 가변 길이 코드 워드를 계속적인 스트림으로 디코드하고, 리드신호에 따라 디코된 고정 길이 코드 워드를 대응 출력하는 디코더부(30)와,
상기 외부 버퍼 메모리(10)와 디코더를 인터페이스하여 외부 버퍼 메모리로 부터 출력되는 가변 길이 코드 워드를 상기 디코더부에 공급하는 인터페이스부(20)로 구성되며,
상기 인터페이스부(20)는 외부 버퍼 메모리(10)로 부터 출력되는 데이타를 일시 저장 출력하기 위한 2개의 래치(21,22)와, 디코더부(30)로 부터 출력되는 코드 워드길이와 이전에 디코드된 코드 워드의 누적값을 합산하여 최대 코드 워드길이를 초과하게 될 경우 캐리(carry)를 발생시키는 가산기(23)와, 가산기(23)에서 합산되는 코드 워드 길이를 저장하는 래치(24)와, 상기 래치(21,22) 및 외부 버퍼 메모리(10)로 부터 데이타를 입력받아 상기 가산기에서 발생되는 코드 워드 길이의 누적값에 따라서 데이타를 쉬프트시켜 디코더부(30)로 출력하는 배럴 쉬프터(barrel shifter)(25)를 포함하여 구성되며,
상기 디코더부(30)는 상기 인터페이스부(20)의 배럴 쉬프터(25)로 부터 출력되는 데이타를 일시저장하는 제 1래치(31)와, 프로그램어블(PLA; Programable)이 가능하며, 코드워드의 길이 정보 및 입력되는 입력되는 연속적인 가변길이 코드 워드를 디코딩하여 계속적인 스트림으로 출력하는 VLC 테이블(32)과, 이전에 디코딩된 코드워드의 길이를 저장하는 제 3래치(33)와, 제 3래치(33)로 부터 전달되는 이전의 디코딩된 코드 워드의 길이정보에 따라서 제 1래치(31) 및 제 2래치(34)로 부터 출력되는 데이타를 쉬프트하여 VLC 테이블(32)로 출력하는 배럴 쉬프터(35)로 구성되며, 상기 제 2래치(34)의 입력은 상기 배럴 쉬프터(35)의 출력으로써 이루어짐을 특징으로 한다.
이와 같은 구성을 특징으로 하는 종래 가변 길이 코드 디코더의 동작을 설명하면 다음과 같다.
외부 버퍼 메모리(10)에서는 데이타 채널을 통해 수신된 가변 길이 코드 워드의 직렬 비트 스트림을 저장하게 되는 데, 이와 같은 가변 길이 코드 워드는 디코더부(30)로 부터 전달되는 코드 워드 길이 정보에 따라서, 인터페이스부(20)를 통하여 디코더부(30)로 전달되고, 디코더부(30)에서는 이와 같이 입력되는 연속적인 가변 길이 코드 워드를 계소적인 스트림으로 디코드하게 된다.
상기 디코더부(30)의 VLC 테이블(32)은 미확인 가변 길이 코드 워드의 제 1비트로 시작하는 비트의 입력 세그먼트를 디코딩하여 코드 워드 길이와 고정된 길이의 디코드된 워드 출력을 제공하고, 테이블 룩업 메모리(table look-up memmory)를 포함하여 구성되는 바,
상기 디코더부(30)의 배럴 쉬프터(35)의 출력은 VLC 테이블(32)의 테이블 룩업 메모리에 디코딩된 입력 데이타로써 제공되며, 이와 같은 배럴 쉬프터(35)는 제 3래치(33)에 저장되어 있는 이전에 디코드된 코드 워드 길이에 의해 제어된다.
이와 같은 배럴 쉬프터(35)의 입력은 제 1래치(31) 및 제 2래치(34)의 출력에 의해 이루어지게 된다.
이때, 상기 제 1래치(31) 및 제 2래치(34) 각각은 최대 가변 길이 코드 워드에 적어도 동일한 비트를 저장할 수 있는 크기를 갖는다.
상기 배럴 쉬프터(35)의 출력은 VLC 테이블(32)의 테이블 룩 업 메모리에 연결되며, 인터페이스부(20)로 부터 제 1래치(31)에 입력 데이타가 제공되는 동안은 제 2래치(34)로 연결된다.
상기 배럴 쉬프터(35)는 매 클럭마다 제 1래치(31)와 제 2래치(34)에 저장되어 있는 최대 코드 워드의 2배 만큼의 연속된 비트들중 디코딩될 최대 코드 워드 길이의 비트를 출력으로 발생시킨다.
상기 VLC 테이블(32)에서는 테이블 룩 업 메모리에서 상기 배럴 쉬프터(35)의 출력에 대한 코드 워드 길이를 제 3래치(33)에 출력하고, 디코딩된 워드를 출력하게 된다.
제 3래치(33)에서는 상기 VLC 테이블(32)로 부터 입력되어 저장된 이전 코드 워드의 길이를 다음 디코드되어질 코드 워드의 길이 정보로서, 제공하게 된다.
즉, 배럴 쉬프터(35)의 출력은 제 3래치(33)에서 출력되는 이전 코드 워드의 길이만큼 쉬프트되어, 항상 출력이 시작이 디코드될 워드의 첫번째 비트와 일치하도록 하는 것이다.
상기 제 2래치(34)내의 비트가 모든 클럭에서 변환되기 때문에 제 1래치(31)는 인터페이스부(20)로 부터 각각의 사이클에서 다시 채워져, 이전에 디코드된 코드 워드가 첫 비트로 시작하는 연속된 비트 흐름이 상기 배럴 쉬프터(35)에 나타나게 된다.
상기 제 1래치(31)의 입력은 인터페이스부(20)의 배럴 쉬프터(25)의 출력으로 부터 이루어지게 되는 바,
인터페이스부(20)의 배럴 쉬프터(25)의 출력은 다음과 같이 이루어지게 된다.
상기 배럴 쉬프터(25)로의 입력은 최대 코드 워드 길이를 갖는 2개의 연속된 래치(21,22)와 외부 버퍼 메모리(10)으로 부터 이루어지게 된다.
이때, 상기 래치(21)는 외부 버퍼 메모리(10)으로 부터 데이타를 제공받으며, 이후 래치(22)는 래치(21)에 저장되어 있는 데이타를 저장, 출력하게 되고, 두개의 래치(21,22)에서 디코드되는 코드 워드 길이는 최대의 코드 워드 길이와 같다.
배럴 쉬프터(25)의 출력은 래치(24)에 저장되어 있는 이전에 디코드된 코드 워드 길이의 누적값과 디코더부(30)의 래치(33)에서 출력되는 이전에 디코드된 코드워드 길이와 합산되는 가산기(23)의 출력에 의해 제어된다.
즉, 배럴 쉬프터(25)의 출력은 누적된 코드 워드 길이에 따라 쉬프트되어 상기 디코더부(30)의 배럴 쉬프터(35)의 출력과 연속된 비트를 이루게 되는 것이다.
이때, 가산기(23)에서 누적된 코드 워드의 길이가 최대 코드 워드 길이를 초과하게 되는 경우는 즉, 캐리가 발생하게 되면, 래치(22)내에 저장되어 있는 모든 비트가 디코더부(30)로 이동되었다는 것을 의미한다.
다시말하면, 캐리가 발생하면, 래치(21)의 내용은 래치(22)로 이동하게 되고, 외부 버퍼 메모리(10)의 출력은 래치(21)로 이동하게 되며, 이와 동시에 새로운 데이타 세그먼트가 외부 버퍼 메모리(10)로 부터 검색된다.
이와 같이 VLC 테이블(32)에서 출력되는 코드 워드의 길이정보에 따라서, 외부 버퍼 메모리(10)로 부터 순차적으로 전달되는 데이타를 배럴 쉬프터(25)에서는 쉬프트하여 디코더부(30)로 전달하게 되고, 이에 따라서, 디코더부(30)에서는 상기에서 설명한 바와 같은 과정으로 가변 길이 코드 워드를 디코드하게 되는 것이다.
이때, 상기 인터페이스부(20)는 디코더부(30)의 래치(31)에 데이타 입력을 제공하나 최장 지연시간에는 포함되지 않는다.
그러나, 보통 MPEG1,MPEG2 또는 HDTV 시스템을 구현하게 될때, 앞서 설명한 바와 같이, 가변 길이 코드 디코더는 주변회로와 함께 연결되어 동작하게 되는 바, 상기한 바와 같은 종래 가변 길이 코드 디코더는 VLC 테이블의 출력이 바로 다른 기능 블럭의 입력 버퍼에 저장될 수 도 있으나, 대부분의 경우에 주변회로의 입력으로 사용되거나, 다른 기능 블록에서 사용하기에 적절한 형태로 변형된 후에 연결된 블록의 입력 버퍼에 저장된다.
따라서, 이러한 경우 주변회로의 복잡도가 증가하게 되면, 종래 기술에 따른 가변 길이 코드 디코더는 가변 길이 코드 디코더의 내부 보다는 가변길이 코드 디코더와 주변회로를 연결하는 부분에서 최장 지연시간이 생기게 되어 전체 시스템의 속도가 저하되는 문제점이 발생된다.
또한, 인터페이스부의 배럴 쉬프터가 디코더부의 배럴 쉬프터보다 더 많은 데이타 비트를 처리하여야 하므로써, 복잡하고 그 크기가 커지게 되므로, 회로 구현시 어려움을 가중시키게 된다.
본 발명에서는 이와 같은 문제점을 해결하기 위하여 외부 최장 지연시간 경로에서 배럴 쉬프터가 제외되도록 하여, 주변회로 블록과의 결합시 가변 길이 코드 디코더와 주변회로의 연결부분에 존재하는 최장 시간을 줄일 수 있도록 하며, 한가지 종류의 배럴 쉬프터를 디코딩부와 인터페이스부에 직렬로 연결(cascade) 구성하므로써, 회로구현이 용이하게 이루어질 수 있으며, 빠른 처리속도를 갖는 가변 길이 코드 디코더를 제공하고자 한 것이다.
도 1은 종래 가변 길이 코드 디코더의 블록구성도.
도 2는 본 발명 가변 길이 코드 디코더의 블록구성도.
도 3은 버퍼로 입력되는 데이타 비트 스트림의 일예를 나타낸 도면.
도 4는 상기 도 3에 따른 데이타의 입력으로, 도 2의 각 부에서 출력되는 데이타의 일예를 나타낸 도표.
이와 같은 목적을 갖는 본 발명 가변 길이 코드 디코더는 입력되는 데이타를 일시적으로 저장한 후 출력하는 수단과, 상기 일시 저장출력수단의 출력데이타를 선택 출력하는 수단과, 상기 선택출력수단의 출력 데이타를 제어신호에 따라 쉬프트 한후 일정 비트수 만큼 데이타를 출력하는 수단과, 상기 수단으로 부터 일정 비트수 만큼 출력되는 데이타를 일시적으로 저장한 후 출력하는 수단과, 상기 수단으로 부터 출력되는 데이타를 디코딩하여, 코드 워드를 접속되는 주변회로로 출력하고 디코딩된 코드 워드의 비트 길이 값을 출력하는 수단과, 상기 수단으로 부터 검출되는 코드워의 비트 길이 값 정보에 따라서 상기 각 수단을 제어하여 데이타의 저장 및 선택 출력, 데이타 비트의 쉬프량에 대한 제어신호를 출력하는 제어수단을 포함하여 구성됨을 특징으로 한다.
이와 같은 구성을 특징으로 하는 본 발명 가변 길이 코드 디코더의 첨부된 도 2에 도시된 그 실시예로써, 그 구성 및 작용을 설명하면 다음과 같다.
입력되는 비트 스트림 데이타를 16 비트수 만큼 병렬화하여 저장 및 리드 신호(R)에 따라 출력하는 버퍼(100)와, 버퍼(100)로 부터 출력되는 데이타를 일시 저장한 후 출력하는 제 1래치부(200)와, 제 1래치부(200)의 출력 데이타를 선택 출력하는 멀티플렉스(multiplex)부(300)와, 멀티플렉스부(300)의 출력데이타를 제어신호에 따라 쉬프트하여 일정 비트수 만큼의 데이타를 출력하는 배럴 쉬프트부(400)와, 배럴 쉬프트부(400)의 출력 데이타를 일시 저장한 후 디코딩 테이블(600) 및 상기 배럴 쉬프트부(400)에 각각 출력하는 제 2래치부(500)와, 제 2래치부(500)의 출력 데이타를 디코딩하여 디코딩된 코드 워드와 비트 길이(L)를 출력하는 디코딩 테이블(600)과, 디코딩 테이블에서 출력된 코드 워드의 비트길이(L) 값과 이전에 누적되어 있던 코드 워드의 비트길이값을 더하여 저장 및 이에 따른 버퍼(100) 및 제 1래치부(200)와 멀티플렉스부(300) 및 배럴 쉬프트부(400)의 제어신호를 출력하는 제어부(700)를 포함하여 구성됨을 특징으로 하며,
상기 제 1래치부(200)는 상기 버퍼(100)로 부터 출력되는 데이타를 상기 제어부(700)로 부터 출력되는 로드신호(Ld)에 따라 일시 저장한 후, 저장된 데이타를 출력하는 제 1래치(201)와, 제 1래치(201)의 출력 데이타를 일시 저장한 후, 저장된 데이타를 출력하는 제 2래치(202)를 포함하여 구성된다.
상기 멀티플렉스부(300)는 제어부(700)로 부터 출력되는 리드신호(R)를 선택 제어신호로 하여 제 1래치(301) 및 상기 버퍼(100)로 부터 출력되는 데이타를 선택하여 배럴 쉬프트부(400)의 하위 16비트로 출력하는 제 1멀티플렉서(301)와, 제어부(700)로 부터 출력되는 리드신호(R)를 선택 제어신호로 하여 상기 제 1래치(301) 및 제 2래치(302)의 출력 데이타를 선택하여 배럴 쉬프트(400)의 상위 16비트로 출력하는 제 2멀티플렉서(302)를 포함하여 구성된다.
상기 배럴 쉬프트부(400)는 상기 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)의 출력 데이타를 입력으로 하여 이전에 누적되어 있는 디코드된 코드 워드의 길이값을 제어신호로 하여 그 값만큼 입력된 데이타를 쉬프트하여 출력하는 제 1배럴 쉬프터(401)와, 제 1배럴 쉬프터(401)의 출력을 하위 16비트 입력으로 받고, 상기 제 2래치부(500)의 출력을 상위 16비트 입력으로 받아 상기 디코딩 테이블(600)에서 출력되는 코드 워드 비트 길이값(L)만큼을 쉬프트시켜 제 2래치부(500)로 출력하는 제 2배럴 쉬프터(402)를 포함하여 구성된다.
상기 디코딩 테이블(600)은 상기 제 2래치부(500)로 부터 출력되는 데이타를 디코딩하여 검출된 가변길이 코드를 확정길이 코드로 변환해주는 심볼 디코더(symbol docoder)(601)와, 검출된 가변 길이 코드의 비트 길이값(L)을 상기 제어부(700)로 출력하는 렝스 디코더(length decoder)(602)를 포함하여 구성된다.
상기 제어부(700)는 상기 디코딩 테이블(600)의 랭스 디코더(602)로 부터 출력되는 현재 디코드되는 코드 워드의 비트 길이값(L)과 이전에 누적되어 있는 비트 길이 값을 합산하는 합산기(701)와, 합산기(701)에서 합산된 코드 워드의 비트 길이값 즉, 바로 전 클럭 까지 디코딩된 코드 워드의 비트값들의 합을 저장하고, 이를 상기 제 1배럴 쉬프터(401)의 쉬프팅 제어신호로 출력하는 누적값 레지스터(702)와, 상기 합산기(701)의 출력중 캐리신호(C)가 발생하게 될때, 발생되는 캐리신호를 일시 저장하고 있다가 이후, 다음 클럭에서 리드신호(R)를 출력하게 되는 캐리 레지스터(703)를 포함하여 구성된다.
이와 같은 구성을 갖는 본 발명의 실시예에 있어서는 16비트의 데이타로 정렬된 데이타의 저장 및 출력을 한예로 한 것으로서, 그 비트수는 여기에 제한되어지지 않으며, 이하 첨부된 도면을 참조하여 그 작용을 설명하면 다음과 같다.
먼저, 상기 버퍼(100)에 입력되는 가변 길이 코드로 이루어진 비트 스트림 데이타는 버퍼(100)에서 한번에 16비트씩 차례대로 출력된다.
여기서, 상기 버퍼(100)에 입력되는 가변 길이 비트 스트림을 구성하고 있는 최장 가변 길이 코드 워드는 16비트보다 크거나 같다.
이후, 상기 버퍼(100)로 부터 출력되는 데이타는 제 1래치부(200)의 각 제 1래치(201) 및 제 2래치(202)를 거쳐 멀티플렉스부(300)에 입력되며, 멀티플렉스부(300)의 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)를 통해 배럴 쉬프트(400)의 상하위 각각 16비트씩 32비트의 데이타 입력을 제공하게 된다.
배럴 쉬프트(400)의 제 1배럴 쉬프트(401)는 제 1멀티플렉서(301)를 통해 하위 16비트를, 제 2멀티플렉서(302)를 통해 상위 16비트를 입력받아 제어부(700)의 제어신호를 입력으로 하여 입력받은 데이타를 쉬프팅시켜 제 2배럴 쉬프터(402)로 출력하게 된다.
제 2배럴 쉬프터(402)에서는 상기 제 1배럴 쉬프터(401)로 부터 입력되는 데이타를 하위입력으로 하고, 이후 제 2래치부(500)의 출력을 상위입력으로 하여 입력 데이타를 쉬프팅하여 디코딩 테이블(600)로 출력하게 된다.
이때, 제 2배럴 쉬프터(402)에서 쉬프트되는 데이타양은 디코딩 테이블(600)의 랭스 디코더(602)의 출력에 의해 결정된다.
제 2배럴 쉬프터(402)에서 출력되는 데이타는 제 2래치부(500)를 통해 디코딩 테이블(600)로 전달된다.
디코딩 테이블(600)에서는 제 2래치부(500)를 통해 입력되는 데이타를 디코딩하게 되는 데, 심볼 디코더(601)에 저장된 코드 워드 비트 패턴이 입력되는 데이타의 비트의 순서와 일치할 때 코드 워드는 검출된다.
이때, 랭스 디코더(602)는 심볼 디코더(601)에서 검출되는 가변 길이 코드의 길이값(L)을 제어부(700)로 출력하게 된다.
이와 같이 랭스 디코더(602)에서 출력되는 가변 길이 코드 길이값(L)은 앞서의 제 2배럴 쉬프터(402)의 쉬프트량 제어신호로 사용되며, 또한 합산기(701)로 입력된다.
합산기(701)에서는 랭스 디코더(602)로 부터 출력된 현재 디코딩된 코드 워드의 길이값(L)과 누적값 레지스터(702)에 저장되어 있는 이전 클럭까지 누적저장된 코드 워드의 길이값을 합산하여 누적값 레지스터(702)에 저장하게 된다.
이와 같이 누적값 레지스터(702)에 저장된 현재까지의 코드 워드의 길이값의 누적값은 이후 제 1배럴 쉬프터(401)의 쉬프트량 제어신호로 사용된다.
여기서, 상기 합산기(701)에서 발생되는 캐리신호(C)는 캐리 레지스터(703)에 저장되어 버퍼(100)의 리드신호(R) 및 래치부(200)의 로드(load)신호 및 멀티 플렉스부(300)의 선택신호로 사용되어진다.
상기 캐리신호(C)가 " 0 " 이면 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)는 입력단(0)을 선택하게 되고, 캐리신호(C)가 " 1 "이면 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)는 입력단(1)을 선택하게 된다.
즉, 도면에 도시된 바와 같이, 캐리신호(C) 가 " 0 " 일 경우에는 제 1멀티 플렉서(301)에서는 제 1래치(201)의 출력 데이타를 제 1배럴 쉬프터(301)의 하위 데이타로 출력하고, 제 2멀티플렉서(302)는 제 2래치(202)의 출력 데이타를 제 1배럴 쉬프터(301)의 상위 데이타로 출력하게 된다.
반대로 캐리신호(C)가 " 1 " 경우에는 제 1멀티 플렉서(301)에서는 버퍼(100)로 부터 출력되는 데이타를 제 1배럴 쉬프터(301)의 하위 데이타로 출력하고, 제 2멀티플렉서(302)는 제 1래치(201)의 출력 데이타를 제 1배럴 쉬프터(301)의 상위 데이타로 출력하게 된다.
이와 같이 캐리신호(C)가 1일 경우에는 버퍼(100)에서 제 1래치(201)로, 제 1래치(201)에서 제 2래치(202)로 데이타가 이동하는 것이다.
도 3은 입력되는 비트 스트림의 일예를 나타낸 것이며, 상기 도 3에 따른 데이타의 입력으로, 도 2의 각 부에서 출력되는 데이타의 일예를 도 4에 도표로 나타내었다.
이와 같은 예를 참조하여 데이타의 이동, 저장 및 디코딩되는 과정을 설명하면 다음과 같다.
도 3에서와 같은 데이타 스트림이 버퍼(100)에 입력되면, 도 5에서와 같이 첫 클럭(1)에서 임의로 초기 동작신호(Init)를 1로 디코딩 테이블(600)의 랭스 디코더(602)에 인가하게 된다.
이와 같이 랭스 디코더(602)에 Init신호가 인가되면, 랭스 디코더(602)에서는 코드 워드의 길이값(L)은 16으로 출력되고, 이에 따라서 합산기(701)에서는 캐리신호(C)가 1로 발생되어 캐리 레지스터(703)에 저장 된다.
이후, 다음 클럭(2)에서 다시 Init신호를 1로 인가하게 되면, 랭스 디코더(602)에서는 상기한 바와 같이 코드 워드의 길이값(L)을 16으로 출력하게 되고, 합산기(701)에서는 다시 캐리신호(C)를 1로 발생하게 된다.
따라서, 캐리 레지스터(703)에는 상기에서 발생된 현재의 캐리신호(C) 값 1 을 저장하면서, 이전 첫 클럭(1)에서 발생된 캐리신호(C)값 1 을 리드신호(R)로서 버퍼(100)에 입력하게 된다.
이와 같이 버퍼(100)에 입력되는 리드신호(R)를 1로 만들어주게 되면, 버퍼(100)에서는 입력 데이타의 첫 비트를 포함한 16비트의 데이타 세그먼트(a1∼a8,b1∼b6,c1,c2)를 출력하게 된다.
이때, 출력된 데이타(a1∼a8,b1∼b6,c1,c2)는 제 1래치(201)에 저장된다.
또한, 상기 캐리 레지스터(703)에서 출력되는 캐리신호(C)는 멀티플렉스부(300)의 각 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)의 제어신호로 사용되어지는 바,
제 1멀티플렉서(301)에서는 입력단(1)의 값 즉, 버퍼(100)로 부터 출력된 상기 데이타 비트(a1∼a8,b1∼b6,c1,c2)를 선택하여 제 1배럴 쉬프터(401)로 출력하게 된다.
이후, 세번째 클럭(3)에서 다시 Init신호를 1로 인가하게 되면, 랭스 디코더(602)에서는 코드 워드 길이값(L)이 16으로 나타나게 되고, 합산기(701)에서 다시 캐리신호(C)를 발생하게 되고, 이값은 캐리 레지스터(703)에 저장되며, 이전 캐리신호(C)값이 캐리 레지스터(703)로 부터 출력된다.
상기에서 설명한 과정으로 버퍼(100)에서는 다시 그 이후의 데이타 세그먼트(c3∼c5,d1∼d13)를 검색하여 출력하게 되고, 제 1래치(201)에 저장되어 있던, 이전 데이타(a1∼a8,b1∼b6,c1,c2)는 제 2래치(202)에 저장되고, 제 1래치(201)에는 상기 버퍼(100)로 부터 출력된 데이타(c3∼c5,d1∼d13)가 저장 된다.
이때, 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)에는 제어신호로써, 캐리신호(C) 1이 인가되므로, 입력단(1)으로 입력되는 데이타를 제 1배럴 쉬프터(401)로 출력하게 된다.
제 1멀티플렉서(301)에서는 버퍼(100)로 부터 출력된 상기 데이타(c3∼c5,d1∼d13)가 선택출력되고, 제 2멀티플렉서(302)에서는 제 1래치(201)에서 출력되는 데이타(a1∼a8,b1∼b6,c1,c2)가 출력 된다.
그러면, 제 1배럴 쉬프터(401)에서는 상기 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)로 부터 입력된 상하위 데이타를 누적값 레지스터(702)로 부터 출력되는 코드 워드의 길이 누적값에 따라서, 쉬프팅하여 출력하게 되는 바,
계속 캐리가 발생되어 누적값 레지스터(702)의 출력값이 0 이므로, 제 1배럴 쉬프터(401)에서는 제 2멀티플렉서(302)로 부터 입력되는 상위 데이타(a1∼a8,b1∼b6,c1,c2)를 제 2배럴 쉬프터(402)로 출력하게 된다.
이후, 제 2배럴 쉬프터(402)에서는 랭스 디코더(602)로 부터 출력되는 코드 워드의 길이값(L) 만큼 쉬프팅하여 데이타를 출력하게 되는 데, 랭스 디코더(602)의 출력값이 16이었으므로, 입력받은 데이타(a1∼a8,b1∼b6,c1,c2)를 제 2래치부(500)로 출력하여 저장하게 된다.
다음 네번째 클럭(4)부터는 Init신호가 0으로 바뀌면서 정삭동작이 이루어지게 되는 바,
네번째 클럭(4)에서는 캐리 레지스터(703)에 저장되어 있던, 이전 클럭에서의 캐리신호(C)값 1 이 버퍼(100)에 리드신호(R)로 인가되므로, 버퍼(100)에서는 다음 데이타의 16비트(d14,15,e1∼e12,f1,f2)를 출력하게 된다.
제 1래치(201)에서는 이전 저장했던 데이타(c3∼c5,d1∼d13)을 출력하여 제 2래치(202)에 저장하게 되고, 제 2래치(202)에서는 이전 저장 했던 데이타(a1∼a8,b1∼b6,c1,c2)를 제 2멀티플렉서(302)로 출력하게 된다.
이때, 캐리신호(C)값이 1 이므로, 제 1멀티플렉서(301)는 상기 버퍼(100)에서 출력된 현재 데이타(d14,15,e1∼e12,f1,f2)를 하위 데이타로서 제 1배럴 쉬프터(401)에 출력하게 되고, 제 2멀티플렉서(302)는 제 1래치(201)에서 출력되어 입력단(1)으로 입력되는 데이타(c3∼c5,d1∼d13)를 제 1배럴 쉬프터(401)에 출력하게 된다.
제 1배럴 쉬프터(401)에서는 아직 누적값 레지스터(702)의 출력값이 0 이므로, 쉬프팅없이 제 2멀티플렉서(302)로 부터 입력된 상위 데이타(c3∼c5,d1∼d13)를 제 2배럴 쉬프터(402)로 출력하게 된다.
즉, 제 1배럴 쉬프터(401)에서 현재 출력되는 데이타는 이전 클럭에서 출력되는 데이타의 연속된 데이타 비트인 것이다.
이때, 제 2래치부(500)에서는 저장되어 있던 데이타(a1∼a8,b1∼b6,c1,c2)를 출력하게 되고, 이와 같이 출력되는 데이타는 디코딩 테이블(600)의 심볼 디코딩(601) 및 랭스 디코더(602)에 입력되어 a1∼a8이 첫번째 가변 길이 코드로 디코딩된다.
여기서, 디코딩된 데이타(a1∼a8)가 8비트 이므로, 랭스 디코더(602)에서는 코드 워드의 길이값(L)을 8로 출력하게 된다.
제 2배럴 쉬프터(402)에서는 제 1배럴 쉬프터(401)로 부터 출력되는 데이타(c3∼c5,d1∼d13)를 하위 입력으로 하고, 상기와 같이 제 2래치부(500)에서 출력된 데이타(a1∼a8,b1∼b6,c1,c2)를 상위입력으로 하여, 랭스 디코더(602)의 출력값에 따라 데이타를 출력하게 된다.
이때, 랭스 디코더(602)의 출력값이 8 이므로, 8 만큼을 쉬프팅한 16비트 데이타(b1∼b6,c1∼c5,d1∼d5)를 출력하여 제 2래치부(500)에 저장하게 된다.
한편, 상기 랭스 디코더(602)에서 출력된 코드 워드의 길이값(L)은 합산기(701)로 입력되어, 누적값 레지스터(702)에 저장된 0 과 합산된다.
이와 같이 합산된 8 은 다시 누적값 레지스터(702)에 저장된다.
이때에는 합산기(701)의 캐리신호(C) 출력은 0 이므로, 캐리 레지스터(703)에 저장되는 값은 0 이다.
이후, 다섯번째 클럭(5)이 발생하게 되면, 제 1래치(201)에서는 이전 클럭에서 버퍼(100)로 부터 입력된 데이타(d14,15,e1∼e12,f1,f2)를 출력하게 되고, 제 2래치(202)에서는 이전 클럭에서 제 1래치(201)에서 출력되어 저장되어있던 데이타(c3∼c5,d1∼d13)를 출력하게 된다.
이때, 캐리 레지스터(703)에서 출력되는 값이 0 이므로, 제 1래치부(200)에 인가되는 로드(load) 신호(Ld)가 0 이된다.
따라서, 제 1래치(201) 및 제 2래치(202)는 현재 출력한 데이타를 계속 저장유지하게 되므로, 제 2래치(202)에는 상기 제 1래치(201)에서 출력된 데이타(d14,15,e1∼e12,f1,f2)를 저장하지 않고, 현재 자신이 출력한 데이타(c3∼c5,d1∼d13)를 저장 유지하게 된다.
그리고, 멀티플렉스부(300)에도 캐리 레지스터(703)로 부터 0 값이 인가되므로, 제 1멀티플렉서부(301)는 상기 제 1래치(201)에서 출력된 데이타(d14,15,e1∼e12,f1,f2)를 출력하게 되고, 제 2멀티플렉서부(302)는 상기 제 2래치(202)에서 출력된 데이타(c3∼c5,d1∼d13)를 출력하게 된다.
이때, 제 1배럴 쉬프터(401)에는 누적값 레지스터(702)로 부터 누적 코드 워드의 길이값 8이 인가되므로, 제 1배럴 쉬프터(401)는 제 2멀티플렉서(302)로 부터 인가된 상위 데이타 비트(c3∼c5,d1∼d13)로 부터 8비트 쉬프트된 데이타(d6∼d15,e1∼e6)를 제 2배럴 쉬프터(402)로 출력하게 된다.
여기서, 제 2래치부(500)에서는 이전 클럭에서 저장되어 있던, 데이타(b1∼b6,c1∼c5,d1∼d5)를 출력하게 되고, 디코딩 테이블(600)에서 이때 제 2래치부(500)에서 출력된 데이타중 가변길이 코드 b1∼b6까지 디코딩 된다.
따라서, 랭스 디코더(602)에서는 검출된 비트값에 해당하는 코드길이 값(L)을 6으로 출력하게 된다.
제 2배럴 쉬프터(402)에서는 상기 제 2래치부(500)에서 출력된 데이타(b1∼b6,c1∼c5,d1∼d5)를 상위입력으로 하고, 상기 제 1배럴 쉬프터(402)로 부터 출력된 데이타(d6∼d15,e1∼e6)를 하위입력으로 하여 상기와 같이 인가되는 코드 길이 값(L) 6만큼 쉬프트하여 출력하게 된다.
즉, 제 2래치부(500)에는 6비트 만큼 쉬프트된 16비트 데이타(c1∼c5, d1∼d11)가 저장된다.
한편, 합산기(701)는 상기 랭스 디코더(602)로 출력된 코드워드 길이값(L) 8과 누적값 레지스터(702)에서 출력되는 값 6을 합산하고, 합산된 값 14를 누적값 레지스터(702)에 저장하게 된다.
그리고, 합산기(701)에서 캐리신호(C)가 발생되지 않으므로, 캐리 레지스터(703)에는 0 값이 저장된다.
이후, 계속되는 각각의 클럭에서도 상기와 같은 과정으로 디코딩 동작이 계속 수행되어진다.
즉, 현재 클럭에서 디코딩 테이블(600)로 전달된 데이타를 상위입력으로 한 상태에서 현재 디코딩되어지는 가변길이 코드의 길이를 정보를 바로 받아 다음 클럭에서 디코딩되어질 다음 데이타 비트를 결정하도록 하므로써, 외부 최장 지연경로에서 제 2배럴 쉬프터(402)가 제외되고, 제 2래치부(500)와 심볼 디코더(601)로 이루어지게 된다.
이상에서 설명한 바와 같이, 내부 최장 지연시간 경로는 제 2래치부(500), 랭스 디코더(602), 제 2배럴 쉬프터(402)로 이루어지게 되고, 외부 최장 지연시간 경로는 제 2래치부(500), 심볼 디코더(601)로 이루어지게 되어, 배럴 쉬프터가 포함된 종래의 가변 길이 코드 디코더에 비해 외부 최장 지연시간이 짧게 되어 주변블록과의 인터페이스가 용이하게 이루어진다.
또한, 두개의 배럴 쉬프터가 같은 구조를 가지고 있어, 디코더의 설계가 용이하다.
Claims (3)
- 입력되는 데이타를 일시적으로 저장한 후 출력하는 수단과, 상기 일시 저장출력수단의 출력데이타를 선택 출력하는 수단과, 상기 선택출력수단의 출력 데이타를 제어신호에 따라 쉬프트 한후 일정 비트수 만큼 데이타를 출력하는 수단과, 상기 수단으로 부터 일정 비트수 만큼 출력되는 데이타를 일시적으로 저장한 후 출력하는 수단과, 상기 수단으로 부터 출력되는 데이타를 디코딩하여, 코드 워드를 접속되는 주변회로로 출력하고 디코딩된 코드 워드의 비트 길이 값을 출력하는 수단과, 상기 수단으로 부터 검출되는 코드워의 비트 길이 값 정보에 따라서 상기 각 수단을 제어하여 데이타의 저장 및 선택 출력, 데이타 비트의 쉬프량에 대한 제어신호를 출력하는 제어수단을 포함하여 구성됨을 특징으로 하는 가변 길이 코드 디코더.
- 제 1항에 있어서, 상기 각 수단은,입력되는 비트 스트림 데이타를 16 비트수 만큼 병렬화하여 저장 및 리드 신호(R)에 따라 출력하는 버퍼(100)와, 버퍼(100)로 부터 출력되는 데이타를 일시 저장한 후 출력하는 제 1래치부(200)와, 제 1래치부(200)의 출력 데이타를 선택 출력하는 멀티플렉스부(300)와, 멀티플렉스부(300)의 출력데이타를 제어신호에 따라 쉬프트하여 일정 비트수 만큼의 데이타를 출력하는 배럴 쉬프트부(400)와, 배럴 쉬프트부(400)의 출력 데이타를 일시 저장한 후 디코딩 테이블(600) 및 상기 배럴 쉬프트부(400)에 각각 출력하는 제 2래치부(500)와, 제 2래치부(500)의 출력 데이타를 디코딩하여 디코딩된 코드 워드와 비트 길이(L)를 출력하는 디코딩 테이블(600)과, 디코딩 테이블에서 출력된 코드 워드의 비트길이(L) 값과 이전에 누적되어 있던 코드 워드의 비트길이값을 더하여 저장 및 이에 따른 버퍼(100) 및 제 1래치부(200)와 멀티플렉스부(300) 및 배럴 쉬프트부(400)의 제어신호를 출력하는 제어부(700)를 포함하여 구성됨을 특징으로 하는 가변 길이 코드 디코더.
- 제 2항에 있어서, 상기 제 1래치부(200)는 상기 버퍼(100)로 부터 출력되는 데이타를 상기 제어부(700)로 부터 출력되는 리드신호(R)에 따라 일시 저장한 후, 저장된 데이타를 출력하는 제 1래치(201)와, 제 1래치(201)의 출력 데이타를 일시 저장한 후, 저장된 데이타를 출력하는 제 2래치(202)를 포함하여 구성되고,상기 멀티플렉스부(300)는 제어부(700)로 부터 출력되는 리드신호(R)를 선택 제어신호로 하여 제 1래치(301) 및 상기 버퍼(100)로 부터 출력되는 데이타를 선택하여 배럴 쉬프트부(400)의 하위 16비트로 출력하는 제 1멀티플렉서(301)와, 제어부(700)로 부터 출력되는 리드신호(R)를 선택 제어신호로 하여 상기 제 1래치(301) 및 제 2래치(302)의 출력 데이타를 선택하여 배럴 쉬프트(400)의 상위 16비트로 출력하는 제 2멀티플렉서(302)를 포함하여 구성되며,상기 배럴 쉬프트부(400)는 상기 제 1멀티플렉서(301) 및 제 2멀티플렉서(302)의 출력 데이타를 입력으로 하여 이전에 누적되어 있는 디코드된 코드 워드의 길이값을 제어신호로 하여 그 값만큼 입력된 데이타를 쉬프트하여 출력하는 제 1배럴 쉬프터(401)와, 제 1배럴 쉬프터(401)의 출력을 하위 16비트 입력으로 받고, 상기 제 2래치부(500)의 출력을 상위 16비트 입력으로 받아 상기 디코딩 테이블(600)에서 출력되는 코드 워드 비트 길이값(L)만큼을 쉬프트시켜 제 2래치부(500)로 출력하는 제 2배럴 쉬프터(402)를 포함하여 구성되며,상기 디코딩 테이블(600)은 상기 제 2래치부(500)로 부터 출력되는 데이타를 디코딩하여 검출된 가변길이 코드를 확정길이 코드로 변환해주는 심볼 디코더(601)와, 검출된 가변 길이 코드의 비트 길이값(L)을 상기 제어부(700)로 출력하는 렝스 디코더(602)를 포함하여 구성되며,상기 제어부(700)는 상기 디코딩 테이블(600)의 랭스 디코더(602)로 부터 출력되는 현재 디코드되는 코드 워드의 비트 길이값(L)과 이전에 누적되어 있는 비트 길이 값을 합산하는 합산기(701)와, 합산기(701)에서 합산된 코드 워드의 비트 길이값 즉, 바로 전 클럭 까지 디코딩된 코드 워드의 비트값들의 합을 저장하고, 이를 상기 제 1배럴 쉬프터(401)의 쉬프팅 제어신호로 출력하는 누적값 레지스터(702)와, 상기 합산기(701)의 출력중 캐리신호(C)가 발생하게 될때, 발생되는 캐리신호를 일시 저장하고 있다가 이후, 다음 클럭에서 리드신호(R)를 출력하게 되는 캐리 레지스터(703)를 포함하여 구성된 것을 특징으로 하는 가변 길이 코드 디코더.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980011441A KR100304872B1 (ko) | 1998-04-01 | 1998-04-01 | 가변길이코드디코더. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980011441A KR100304872B1 (ko) | 1998-04-01 | 1998-04-01 | 가변길이코드디코더. |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990079054A true KR19990079054A (ko) | 1999-11-05 |
KR100304872B1 KR100304872B1 (ko) | 2001-09-24 |
Family
ID=37529978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980011441A KR100304872B1 (ko) | 1998-04-01 | 1998-04-01 | 가변길이코드디코더. |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100304872B1 (ko) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07312557A (ja) * | 1994-05-17 | 1995-11-28 | Nec Ic Microcomput Syst Ltd | 可変長データ連結回路 |
KR0179103B1 (ko) * | 1995-11-15 | 1999-05-01 | 구자홍 | 고속 가변길이 디코더장치 |
-
1998
- 1998-04-01 KR KR1019980011441A patent/KR100304872B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100304872B1 (ko) | 2001-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0589682B1 (en) | Variable length code decoder | |
KR100748485B1 (ko) | 가변 길이 코드워드 디코더 및 가변 길이 코드워드 디코딩 방법 | |
JP3484310B2 (ja) | 可変長符号器 | |
EP0798931B1 (en) | Variable length decoder and method for decoding two codes per clock cycle | |
JPH088755A (ja) | 高速可変長復号化装置 | |
EP0663730B1 (en) | Apparatus for decoding variable length codes | |
JP3189876B2 (ja) | 可変長符号復号化回路 | |
US6546053B1 (en) | System and method for decoding signal and method of generating lookup table for using in signal decoding process | |
KR0152038B1 (ko) | 상대 주소를 이용한 가변장 복호화 장치 | |
KR100486251B1 (ko) | 가변 길이 코드 복호화 장치 및 방법 | |
JPH11501489A (ja) | 可変長デコーダ | |
US5781135A (en) | High speed variable length code decoder | |
KR100192269B1 (ko) | 가변길이 코드 디코더 | |
KR100450753B1 (ko) | 프로세서와 연결된 프로그램 가능한 가변 길이 디코더 | |
US5754128A (en) | Variable-length code encoding and segmenting apparatus having a byte alignment unit | |
JPH09130266A (ja) | 高速可変長コード復号化装置及び高速可変長コード復号化方法 | |
KR100304872B1 (ko) | 가변길이코드디코더. | |
JP4537089B2 (ja) | 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
KR100292050B1 (ko) | 가변장복호기의 데이타 가변장치 | |
KR0152035B1 (ko) | 가변장복호화방법 및 그 장치 | |
JP3389389B2 (ja) | 可変長コード復号化装置 | |
KR100487411B1 (ko) | 가변 길이 디코더 | |
KR0125126B1 (ko) | 고속 가변길이부호 복호화 장치 | |
JPH10308673A (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: 20050607 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |