KR0167367B1 - 적응블록크기 영상압축방법 및 시스템 - Google Patents
적응블록크기 영상압축방법 및 시스템 Download PDFInfo
- Publication number
- KR0167367B1 KR0167367B1 KR1019930703720A KR930703720A KR0167367B1 KR 0167367 B1 KR0167367 B1 KR 0167367B1 KR 1019930703720 A KR1019930703720 A KR 1019930703720A KR 930703720 A KR930703720 A KR 930703720A KR 0167367 B1 KR0167367 B1 KR 0167367B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- dct
- coefficient
- dct coefficient
- values
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/415—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which the picture-elements are subdivided or grouped into fixed one-dimensional or two-dimensional blocks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- 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
-
- 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/98—Adaptive-dynamic-range coding [ADRC]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
- Color Television Systems (AREA)
- Control Of El Displays (AREA)
- Nitrogen Condensed Heterocyclic Rings (AREA)
Abstract
본 발명은 영상 데이터를 압축시키기위한 적응블록크기 영상압축방법 및 시스템에 관한 것으로, 특히 전송을 위해 영상 데이터를 압축시키는 방법 및 시스템에 관한 것이다. 화소 데이터의 각 블록 및 대응 부분블록은 이산 코사인 변환(DCT)연산(10a-10d)이 수행된다. 그에 따른 대응 변환계수(12a-12d)의 서브블록의 가변 레벨은 각각의 화소 데이터의 입력블록에 따라 복합변환계수 블록(QC)으로 구성되기 위해 선택된다. 복합블록에 대한 변환계수 블록크기의 선택은 변환블록 및 부분블록 코딩 효율 사이에서 비교 프로세스(20, 26, 32)에 의해 결정된다. 복합 블록은 압축 데이터에서 비트 카운트를 더욱 감소시키기 위하여 가변길이 코드화된다. 이산 쿼드트리 변환(DQT)연산은 영상 데이터 압축을 최적화하기 위하여 계수 대체(replacement)로 적응블록크기 블록선택을 보강해준다.
Description
본 출원은 1990년 2월 27일 특허출원번호 제 487,012호로 출원되어, 1991년 6월 4일자로 특허공고된 미합중국 특허 제 502,891 호의 일부 계속 출원이며, 화상처리에 관한 것이다. 특히, 본 발명은 코드화 이산 코사인 변환(discrete cosine transform, DCT)계수 데이터의 적합한 크기의 블록 및 부분블록(sub-block)을 이용하는 화상신호 압축설계에서 새롭고 개선된 데이터 압축방법 및 시스템에 관한 것이다.
텔레비전 신호의 전송 및 수신분야에서, 여러 가지 개선이 NTSC(미국 텔레비전 시스템 위원회) 방식에 대하여 이루어지고 있다. 텔레비전 분야의 개발은 공통적으로 고화질 텔레비전(HDTV) 시스템을 향하고 있다. HDTV의 개발에서, 시스템 개발자는 단지 여러 가지 성공도를 가진 나이퀴스트 샘플링 원리 및 저역통과 필터링 설계를 이용했다. 이러한 시스템에서, 변조는 신호진폭 또는 주파수의 값에대한 아날로그 양의 단순 맵핑에 지나지 않는다.
가장 최근에는 디지털 기술을 이용함으로써 HDTV시스템에서 보다 나은 개선이 이루어질수 있다는 것이 가능하다는 것이 인정되었다. 여러 가지 제안된 HDTV전송 포맷은 공통인자를 공유한다. 이러한 시스템은 모두 비디오 신호의 디지털 처리를 포함하는데, 이것은 비디오 신호의 아날로그/디지털 (A/D) 변환을 필요로 한다. 따라서 아날로그 전송포맷은 디지털 로 처리된 화상을 전송하기 위해 아날로그로 다시 변환시키는 것이 필요하기 때문에 이용된다.
따라서 리시버/프로세서는 영상 디스플레이를 제공하기 위하여 상기 과정을 반대로 하여야 한다. 수신된 아날로그 신호는 이를 위해 디지털 화되고, 저장되고, 처리되어 리시버/프로세서 및 HDTV디스플레이 사이에서 이용되는 인터페이스 포맷에 따른 신호로 재구성된다. 그리고 신호는 다시한번 디스플레이를 위해 다시 아날로그 형태로 변환된다. 그러나, 상기 공지된 HDTV포맷은 제어, 오디오 및 허가신호의 전송을 위해 디지털 전송을 이용하는 것을 주의하여야 한다.
그러나, 상기 여러 변환동작은 디지털 변조기술을 이용하여 제어, 오디오 및 허가신호와 함께 처리된 화상신호를 전송하는 디지털 전송포맷을 이용함으로써 제거될 수 있다. 리시버는 비디오 프로세서 기능에 대한 디지털 출력을 가진 디지털 모뎀으로서 형성될 수 있다. 물론, 모뎀은 동작의 일부분으로써 A/D 기능을 필요로하지만, 그러나 이러한 실행은 아날로그 포맷 리시버에 요구되는 8비트 분해장치(resolution device)가 아니고, 단지 4비트 분해시스템을 필요로 한다.
디지털 전송은 많은 방면에서 아날로그 전송보다 우수하다. 디지털 전송은 특히 위성전송 및 군사장비에서 중요한, 효율적인 파워의 이용을 제공한다. 또한 디지털 전송은 다중 경로 및 전파방해와 같은 악조건에 연결된 통신에 신뢰성을 제공한다. 그리고 디지털 전송은 군사장비 및 많은 방송장비에 요구되는 신호 암호화에 용이하게 사용된다.
디지털 전송포맷은 이전의 HDTV 시스템에서는 기피되어 왔는데, 왜냐하면 디지털 전송포맷은 본질적으로 과도한 대역폭을 필요로 한다는 잘못된 생각 때문이다. 따라서 디지털 전송의 이득을 실현하기 위하여, 실제적으로 HDTV신호를 압축하는 것이 필요하다. 이를 위해 HDTV신호압축은 아날로그 전송포맷에 필요한 정도의 대역폭으로 전송할 수 있는 레벨까지 가능하여야만 한다. 신호의 디지털 전송에 연관된 상기와 같은 신호압축의 레벨은 HDTV 시스템이 적은 파워로 채널 방해없이 동작하게 한다.
따라서, 통상적인 TV 신호의 아날로그 전송에 필적할만한 대역폭으로 디지털 전송을 가능하게 하기 위하여 HDTV신호의 압축을 향상시키기 위한 새롭고 개선된 데이터 압축방법 및 시스템을 제공하는 것이 본 발명의 목적이다.
본 발명은 전송을 위해 영상 데이터를 압축하고 수신된 영상 데이터를 재구성하는 새롭고 개선된 방법 및 시스템이다. 영상압축 시스템은 입력 화소 데이터의 블록으로부터 최소화된 전송 데이터를 데이터율로 코드화하기 위해 최적화된 이산 코사인 변환(DCT) 데이터의 대응 복합블록을 생성하기 위한 서브 시스템을 포함한다. 추가 서브 시스템은, 데이터율을 더욱 감소시키기 위하여, 어떤 DCT계수를 이산 퀴드트리 변환(Discrete Quadtree Transform, DQT)계수로 대체하기 위하여 사용된다.
본 발명에서 변환수단은 화소 데이터의 입력블록을 받아서 화소 데이터의 블록 및 적어도 하나의 사전설정된 레벨의 부분블록에서 이산 코사인 변환(DCT) 동작을 수행한다. 변환수단은 DC 및 AC DCT 계수값의 대응블록 및 부분블록의 출력을 제공한다.
또한 추가변환수단 화소 데이터의 입력블록을 받아서 DQT계수값의 블록을 생성하기 위하여 이들 블록에서 이산 퀴드트리 변환(DQT)동작을 수행한다.
또한 블록크기 할당수단은, 블록 및 각각의 부분블록에 대하여 AC DCT 계수값과 DC DCT계수값을 대체한 DQT값을 받는다. 블록크기 할당수단은, DQT/DCT계수값의 블록 및 각각의 대응 부분블록의 그룹에 대하여 사전설정된 코딩포맷에 따라 DQT/DCT계수값의 블록 및 각각의 대응 부분블록의 그룹을 각각 코드화하기위해 요구되는 비트수에 대응하는 비트 카운트 값을 결정한다. 또한 블록 할당 수단은, 비트 카운트 값으로부터, 사전설정된 코딩포맷에 따라 코드화하기 위하여 더 작은 비트수를 요구하고, 대응하는 선택값의 출력을 제공하는 DQT/DCT계수값의 블록 및 구성 부분블록의 그룹중 하나를 선택한다.
DCT 선택수단은 선택값 및 DCT 계수값의 블록 및 부분블록을 받아들여서, 선택값에 따라 DCT 계수값의 블록 또는 DCT 계수값 부분블록중 하나를 선택한다. DCT 선택수단은 DCT 계수값의 선택된 블록 또는 부분블록으로부터 형성된 대응하는 DCT 계수값의 복합블록의 출력을 제공한다. DQT 선택수단은 또한 선택값, 및 DQT 계수값의 블록을 받아들여 선택값에 따라 DQT 계수값중 하나를 선택한다. 각각의 선택된 DQT 계수값은 선택된 블록 또는 부분블록의 DC DCT 계수값에 상응한다.
DCT 배열(ordering)수단은 사전설정된 배열포맷에 따른 DCT 계수값의 복합블록을 받아들여 배열한다. 상기 배열수단은 배열된 DCT 계수값의 출력을 사전 설정된 코딩포맷에 따라 상기 배열된 DCT 계수값을 코드화하는 인코더 수단에 제공한다. 상기 인코더 수단은 코드화되고 배열된 DCT 계수값의 출력을 제공한다.
DQT 배열수단은 선택된 DQT 계수를 받아들이고, 코드화되고 배열된 계수값에서 DC DCT 계수중 각각의 하나와 상응하여 지속되는 각각의 포맷으로 선택된 DQT 계수를 배열한다. DQT 배열수단은 배열된 DQT 계수값의 출력을 제공한다.
어셈블러 수단은 코드화되고 배열된 DCT 계수값, 배열된 DQT 값 및 선택값을 받아들인다. 상기 어셈블리 수단은 코드화되고 배열된 DCT 계수값 및 배열된 DQT 계수값에서 나머지 AC DCT 계수를 선택값에 결합시키는 한편, 코드화되고 배열된 DCT 계수값에서 DC 계수값을 제거함으로써 코드화된 영상값을 생성한다. 상기 코드화된 영상값은 화소 데이터의 입력블록을 대표하며, 화소 데이터의 입력블록의 비트 카운트에 비하여 감소된 비트 카운트이다. 상기 어셈블러 수단은 전송을 위한 코드화된 영상값의 출력을 제공한다.
본 발명은 또한 각각의 수신된 코드화 영상값으로부터 대응하는 화소 데이터의 블록화소를 재구성하기 위한 새롭고 개선된 방법을 제공한다. 본 발명은 또한 화소의 블록으로 표시되는 것과 같은 영상신호를 압축하고 압축된 영상신호로부터 영상신호를 재구성하기 위한 새롭고 개선된 방법을 제공한다.
이하 첨부된 도면을 참조로 본 발명의 특징, 목적, 장점을 상세히 설명한다:
제1도는 DCT 계수 데이터 및 블록크기 결정을 제공하기 위한 적응블록크기 영상압축 시스템의 프로세싱 소자를 도시하는 블록도이며; 제2도는 전송을 위해 DCT 계수 데이터의 복합블록과 복합블록의 코드화를 생성하기 위하여 DCT 계수 데이터의 블록크기를 선택하기 위한 적응블록크기 영상압축 시스템의 또다른 프로세싱 소자를 도시하는 블록도이며; 제3a 및 3b도는 각각 레지스터 브록크기 할당 데이터 및 그에 따른 블록 선택트리의 예를 도시하며; 제4a 및 4b도는 각각 제3a도의 블록크기 할당 데이터에 따라 블록크기 선택이 이루어지는 DCT 계수 데이터의 복합블록 예에 대한 부분블록내에서, 그리고 부분블록들 사이에서 시퀀스를 배열하는 선택된 블록 지그재그 스캔 직렬화를 그래프 형태로 도시한 그래프이며; 제5a-5d도는 각각 선택적인 지그재그 스캔 직렬화 포맷을 그래프 형태로 도시하며, 제6도는 제1도 및 2도의 영상압축 시스템과 함께 사용되는 본 발명의 DQT 서브 시스템의 DQT 계수 프로세싱 소자를 도시하는 블록도이며; 제7도는 제1, 2 및 6도의 영상압축 시스템과 함께 사용되는 본 발명의 DQT 서브시스템의 DQT 계수블록 대체 프로세싱 소자를 도시한 블록도이며; 제8도는 제1도 및 2도의 프로세싱 소자에 의해 생성된 수신신호로부터 영상을 재구성하는 디코더를 도시하는 블록도이며; 제9도는 제7도의 디코더와 함께 사용되는 본 발명의 DQT 서브 시스템을 도시하는 블록도이며; 제10도는 제1 및 2도의 프로세싱 소자에 의해 수행된 것과 같은 영상 데이터의 압축 및 코딩에 포함된 프로세싱 단계를 도시하는 흐름도이며; 제11도는 화소 데이터를 생성하기 위하여 압축된 신호의 디코딩 및 복구에 포함된 프로세싱 단계를 도시하는 흐름도이다.
HDTV 신호의 디지털 전송을 용이하게 하고, 이에 따른 이득을 얻기 위하여, 어떤 형태의 신호압축을 이용할 필요가 있다. 최종 영상에서 고화질을 얻기 위하여, 영상의 높은 질이 유지되는 것이 또한 중요하다. 이산 코사인 변환(DCT) 기술은 매우 높은 압축을 이룰 수 있는 것으로 알려져 왔다. 압축인자를 표시하는 논문중 하나는 IEEE 통신분야 논문, Vol Com-32, 제3호, 1984년 3월, 웬-슁 첸(Wen-Hsiung Chen)등의 영상 적응 코더라는 제하의 것이다. 그러나, 재구성된 화상의 질은 비디오화의 시스템에서도 처진다.
DCT 코딩기술에 의해 영상은, 비중첩 블록크기 N×N인 어래이로 분할되는 화소 데이터로 구성된다. 엄밀하게 흑백 텔레비전에서는 각각의 화소는 8비트워드로 표시되는데, 한편 컬러 텔레비전에서는 각각의 화소가 최고 24비트로 구성된 워드로 표시될 수 있다. 영상이 최고로 분할되는 블록은 전형적으로 16×16 화소블록, 즉 N=16이다. 이차원 N×N DCT는 각각의 블록에서 실행된다. DCT는 분리가능한 단항변환이기 때문에, 이차원 DCT 는 일반적으로 계산을 줄일 수 있는 두 개의 연속 일차원 DCT 연산에 의해 수행된다. 일차원 DCT는 다음식에 의해 정의된다.
여기에서,
및
텔레비전 영상에서, 복소수 연산을 피하기 위하여 화소값은 실수이다. 그리고, 화소값은 DCT 성분 X(0)이 항상 양수이고, 평상시 최고 에너지를 가지도록 하기 위하여 음수가 아니다. 사실, 전형적인 영상에서 대부분의 변환 에너지는 DC 근방에 집중된다. 이러한 에너지 압축성질은 DCT를 양호한 코딩방법으로 되도록한다.
문헌에서 DCT는 최적의 카루넨-로에브 변환(Karhunen-Loeve Transform, KLT)의 수행에 접근한다는 것으로 알려져 있는데, 이는 IEEE 컴퓨터 분야논문, 1974년 1월, 페이지 90-93, N.Ahmed 등의 이산 코사인 변환이라는 제하의 논문에 의해 입증된다. 기본적으로, DCT 코딩은 작은 에너지를 가진 주파수 성분을 제거함으로써, 그리고 에너지 상태에 따라 나머지 DCT 계수에 가변할 수 있는 비트수를 할당함으로써 각각의 블록에서 공간 중복감소를 실행한다. 블록전체에서 NSE와 같은 어떤 에러범위를 최소화하기 위하여 비트를 양자화하고 할장하는 몇몇 기술이 존재한다. 전형적으로, 양자화된 DCT 계수는 저주파수로부터 고주파수로 배열함으로써 일차원 스트링으로 맵핑된다. 상기 맵핑은 DCT 계수의 블록전체에 디지털 지그재그 맵핑에 따라 행해진다. 따라서 제로(또는 제거됨) 계수의 위치는 런길이 코딩(run-length coding)기술에 의해 코드화된다.
DCT 계수를 최적으로 양자화하기 위하여 변환계수의 통계표를 알아야 한다. 최적 또는 국부 최적 양자화기(quantizer)는 전체 양자화 에러를 최소화하는 이론적 또는 측정된 통계표를 근거로 설계될 수 있다. 정확한 통계표가 존재한다고 완전히 동의하기는 어렵지만, 여러 가지 양자화 기술이 이용되는데, 예를들면 IEEE 통신분야 논문, Vol. 31, 제6호, 1993년 6월, Randall C. Reininger 등의 영상을 위한 이차원 DCT 계수의 분포, 페이지 835-839에 기술되어 있다. 그러나, 간단한 선형 양자화기 일지라도 양호한 결과를 제공하기 위하여 이용되어 왔다.
양자화 기술에 대한 판단과는 별개로, 원하는 비트율을 생성시키기 위한 두 개의 다른 방법이 고려될 수 있다. 하나의 방법은 작은 값이 제거되어 제로로 설정되도록 DCT 계수를 경계구별(threshold)하는 것이다. 다른 기술은 코딩을 위해 부동 소수점을 정수로 변환시킨 후에 계수의 다이나믹 범위를 감소시키기 위하여 계수를 선형으로 기준화(또는 규정화)하는 것이다. 기준화는 객체신호 대 노이즈 비율과 마찬가지로 주체신호 대 노이즈 비율의 질이 모두 경계구별 방법보다 우수하다. 따라서, 양자화 프로세스에서 주요변수는 원하는 비트율을 얻을 수 있도록 가변될 수 있는 계수 기준화인자 일 것이다.
양자화된 계수는 보통 이론적 통계표 또는 측정된 히스토그램 분포로부터 설계된 허프만 코드에 의해 코드화된다. 대부분의 계수는 허프만 코딩화가 양호한 결과를 도출하기 위하여 낮은 값 근방에 집중된다. 측정된 히스토그램으로부터 생성된 허프만 코드는 엔트로피 방법에 의해 설정된 이론적 한계에 상당히 밀접하게 수행한다. 제로 계수의 위치는 런길이 코드에 의해 코드화 된다. 계수가 저주파로부터 고주파로 배열되기 때문에, 상기 런길이 코드의 수가 계산된다며, 짧은 런길이 코드는 하프만 코딩 런길이 코드가 더욱더 코드 비율을 감소시키는데 있어 중요한 요인이 된다.
모든 낮은 비트율 압축설계에 관련된 중요문제는 재구성 상태에서 채널 비트에러의 영향이다. DCT 코딩에서 하한 주파수 계수는 특히 DC 부분에서 더욱 취약하다. 여러 가지 압축율에서 재구성 상태의 비트 에러율(bit error rate, BER)의 영향은 문헌에 나타나 있었다. 그러한 문제는 IEEE 통신분야 논문, Vol. Com-25, 제 11호, 1977년 11월, John A. Roese 등의 내부 프레임 코사인 변환 영상코딩이라는 제하의 논문 페이지 1329-1339에서 논의되었다. BER의 영향은 10-3근방에서 현저하게 되며, 10-2에서 두드러지게 된다. 전송 서브 시스템에 대한 10-5의 BER은 보통이다. 만약 필요하다면, 낮은 주파수 계수를 추가적으로 보호하기 위하여 어떤 설계가 고안될 수 있으며, 예를들면 IEEE 통신분야 논문, Vol. Com-32, 제7호, 1984년 7월, David R. Comstodc 등의 노이즈 채널 전반의 DCT-압축영상의 해밍코딩(Hamming Cording)이라는 제하의 논문 페이지 856-861에 기술되어 있다.
가장 자연스러운 영상은 블랭크 또는 상대적으로 느린 가변영역, 그리고 물체 경계부분과 같은 비지 영역(busy areas) 및 고명암 텍스처(texture)로 구성됨을 알 수 있다. 영상 적응 코딩설계는 비지 영역에 많은 비트를, 블랭크 영역에는 적은 비트를 할당함으로써 이러한 인자를 이용한다. DCT 코딩에서 이러한 적응은 각각의 변환블록에서 비지 정도를 측정하고, 따라서 블록으로부터 블록까지 양자화 및 비트 할당을 조정함으로써 이루어질 수 있다. IEEE통신분야 논문, Vol. Com-25, 제 11호, 1977년 11월, 웬-슁첸 등의 모노크롬 및 컬러 영상이 적합한 코딩이라는 제하의 논문, 페이지 1285-1292에는 블록 에너지가 네 개의 등급 중 하나로 분류되는 각각의 블록으로 측정되는 곳에서의 방법을 기술한다. 비트할당 매트릭스는 변환 샘플의 변동을 시험함으로써 각각의 등급에 대하여 반복하여 계산된다. 각각의 계수는 양자화 후에 원하는 비트수가 발생하도록 기준화된다. 보내져야 할 오버 헤드 정보는 분류 코드, 각 블록에 대한 정규화 및 4개의 비트할당 매트릭스이다. 이러한 방법의 이용은 화소당 1 및 0.5 비트에서 양호한 결과를 나타낸다.
또다른 비트율 감소는 이전에 언급한 논문 영상 적응 코더에서 첸 등에 의해 이루어졌는데, 여기서 체널버퍼는 계수를 적합하게 기준화하고 양자화하기 위해 이용된다. 채널버퍼가 절반충전 이상이 될 때, 피드백 파라메터는 버퍼에 들어오는 비트를 대충 감소시키기 위해 계수를 정규화하고 양자화한다. 상기의 역은 버퍼가 절반충전 이하일 때 발생한다. 비트 할당 매트릭스를 전송하는 대신에, 계수위치를 런길이 코드화하고 런 길이와 마찬가지로 계수를 허프만 코드화 한다. 상기와 같은 수행은 화소당 0.4 비트에서 양호한 컬러 영상 재구성을 나타낸다. 프린트될 때 이러한 결과는 상당히 양호하게 보이지만, 시스템의 시뮬레이션은 많은 불완전함을 보여준다. 영상이 확대를 완화하기 위해 정상상태로 보여질 때, 평활화 및 블록킹 현상이 눈에 띈다.
여기에 기술된 영상 압축방법 및 시스템에서, 프레임내 코딩(2차원 프로세싱)은 프레임내 코딩(3차원 프로세싱)에 이용될 수 있다. 프레임내 코딩을 채택하는 이유중 하나는 프레임내 코딩신호를 처리하기 위해 요구되는 리시버의 복잡성 때문이다. 프레임내 코딩은 본질적으로 보다 복잡한 프로세싱 회로 이외에 여러개의 프레임 버퍼를 요구한다. 상용화된 시스템에서는 상당히 복잡한 하드웨어를 포함하는 몇 개의 트랜스미터가 사용될 수 있지만, 리시버는 대량생산 목적을 위해 가능한한 간단해야 한다.
프레임내 코딩을 이용하는 두 번째 중요 이유는 조건, 또는 프로그램 재료가 3차원 코딩구성을 와해시키고 원만하지 못하게 수행되거나, 또는 적어도 프레임내 코딩구성보다 우수하지 못하기 때문이다. 예를들어, 초당 24프레임 이동은 이러한 범주내로 쉽게 떨어질 수 있는데, 왜냐하면 기계적 셔터에 의한 적분시간이 상대적으로 짧기 때문이다. 이러한 짧은 적분 시간은 빠른 동작에 대한 TV 카메라에서보다 높은 정도의 순간 겹침을 가능하게 한다. 프레임 대 프레임 상관성의 가정은 빠른 동작을 흐트러트리는데, 왜냐하면 이것은 흔들리기 때문이다. 이미 홈비디오에 대하여 고려되고 있는 프레임 대 프레임 일치화 에러에 대한 실제적인 문제는 높은 해상도에서 악화된다.
프레임내 코딩을 이용하는 또다른 이유는 50㎐ 및 60㎐ 파워라인 주파수가 포함될 때, 3차원 코딩설계는 표준화 하는 것이 더욱 어렵기 때문이다. 디지털 접근인 프레임내 설계를 이용하는 것은 50㎐ 및 60㎐ 동작에 적용할 수 있으며, 또한 표준변환을 감소시키는 문제없이 프레임율에 대한 공간 해상도를 바꿈으로써 초당 24 프레임 이동에서 적응될 수 있다.
본 발명이 일차적으로 흑과 백에 대하여 설명되었지만, 컬러 정보 코드화를 위한 오버헤드는 놀랄만큼 작으며, 휘도에 필요한 비트의 약 10 내지 15% 정도이다. 컬러에 대한 시각의 낮은 공간 감소 때문에, 대부분의 연구자는 RGB 공간으로부터 YIQ 공간까지의 컬러화상을 수평 및 수직방향에서 4개의 인자에 의해 부분샘플 I 및 Q 성분으로 변환시킨다. 그 결과 I 및 Q 성분은 Y(휘도)와 유사하게 코드화된다. 이러한 기술은 각각의 I 및 Q 성분에 대하여 6.25% 오버헤드를 필요로 한다. 실제로, 코드화된 Q 성분은 I 성분보다 적은 데이터를 필요로 한다. 이러한 등급의 컬러 코딩기술을 사용할 때, 컬러 충실도에서의 손실은 무시할 수가 있다.
DCT 코딩기술의 수행에서 블록킹 현상은 영상품질에 대하여 가장 중요한 손상중 하나이다. 그러나, 블록킹 현상은 보다 작은 크기의 DCT가 이용될 때 감소된다. 블록킹 현상은 2×2 DCT가 사용될 때 가상적으로 안보이게 된다.
그러나, 작은 크기의 DCT를 이용할 때, 화소당 비트 수행은 다수 손상을 받는다. 그러나, 작은 크기의 DCT는 상대적으로 블랭크 영역을 분리하는 예리한 모서리의 모든 주변에 유효하다. 예리한 모서리는 모든 주파수에서 유효성분을 가지는 스텝신호와 등가이다. 양자화될 때, 낮은 에너지 계수의 일부는 제로로 절단된다. 이러한 양자화 에러는 블록 전반에 걸쳐 발생한다. 이러한 현상은 기브스 현상(Gibbs Phenomenon)의 이차원 등식과 유사하다. 즉, 고주파수 성분의 일부분이 재구성 과정에서 제거될 때 스텝펄스 신호주위에 존재하는 판문형상이 발생한다. 인접블록이 유사한 양자화 에러를 보이지 않을 때, 이러한 형태의 에러를 가진 블록은 뚜렷해져서 블록킹 현상을 초래한다. 따라서 작은 DCT 블록 크기를 이용함으로써, 양자화 에러는 모서리 근방의 영역에 차단되는데, 왜냐하면 에러가 블록 밖으로 전파될 수 없기 때문이다. 이로 인하여 모서리에서처럼, 비지 영역에서 작은 DCT 크기를 이용함으로써 에러는 모서리 근방의 영역에서 차단된다. 그리고, 작은 DCT 블록크기의 이용은 비지영역 근처의 노이즈를 감추는 시각에서의 공간 은폐현상에 의하여 영상의 주관적 질을 향상시킨다.
본 발명에서 이용되는 적응 블록크기 DCT 기술은 비교 및 대체방법으로써 간단하게 설명될 수 있다. 16×16화소 데이터 어래이 또는 영상블록은 고정된 블록크기 DCT 기술로 코드화될 수 있으나, 그러나 16×16, 8×8, 4×4 및 2×2인 블록 및 부분블록 크기가 이용된다. 각각의 4×4 블록에 대하여, 4×4블록내의 4개의 2×2 부분블록을 이용함으로써 블록을 코드화하기 위한 비트수가 조사된다. 만약 4개의 2×2 부분블록의 합이 4×4 블록으로써 코드화하기 위하여 필요한 비트보다 작으면, 4×4 블록은 4개의 2×2 부분블록으로 대체된다. 다음, 각각의 8×8 블록은 이전단계에서 최적화되는 4개의 4×4 부분블록으로 순서대로 대체될 수 있는지를 결정하기 위하여 조사된다. 유사하게, 16×16블록은 이전단계에서 최적화되는 4개의 8×8 부분블록으로 대체될 수 있는지를 결정하기 위하여 조사된다. 각각의 단계에서 최적블록/부분블록 크기는 최종 블록크기 할당이 16×16블록에 대하여 최적화되도록 선택된다.
8비트는 블록크기에 관계없이 DC계수를 코드화하기 위해 이용되기 때문에, 작은 블록의 이용은 큰 비트 카운트를 발생시킨다. 따라서, 2×2 블록은 이들의 이용이 비트 카운트를 작게 할 때만 이용된다. 최종 부분블록 구조는 통상적으로 역 쿼드트리(이진 트리에 대향되는 것과 같은)에 의해 표시될 수 있으며, 여기서 각각의 노드에서 16×16 블록에 대응하는 루트(root)는 4개의 부분블록에 대응하는 4개의 가능한 가지(branch)를 가진다. 가능한 역 퀴드트리 구조의 예는 제3b도에 도시되어 있다.
블록은 작은 부분블록으로 대체하기 위한 각각의 결정은 오버헤드와 같은 한 비트의 정보를 요구한다. 이러한 오버헤드는 16×16 블록에 하나의 비트로부터 21비트(1+4+16)까지 변화하는데, 이때에는 4×4 및 2×2 부분블록이 16×16블록 내의 어디에서나 이용될 때이다. 이러한 오버헤드는 또한 적응 블록크기 DCT설계가 항상 각각의 16×16 블록을 코드화하기 위하여 가장 최소의 비트수를 이용하도록 의사 결정 프로세스와 결합된다.
블록크기는 여기서, 크기에서 N×N으로 논의되었지만, 여러 가지 블록크기가 이용될 수 있도록 할 수 있다. 예를들어, N×M 블록크기가 이용될 수 있으며, 여기서 N 및 M은 정수이며, M은 N보다 크거나 작을 수 있다. 또다른 중요한 점은 블록이 N/i×N/i, N/i×N/j, N/i×M/j 등등과 같이 적어도 하나의 부분블록 레벨로 분할될 수 있으며, 여기서 i 및 j는 정수이다. 그리고, 여기서 논의된 블록크기의 예는 DCT 계수의 대응블록 및 부분블록을 가진 16×16 화소블록이다. 짝수 또는 홀수 정수값과 같은 예를들면 9×9 같은 여러가지 다른 정수가 이용될 수 있도록 할 수 있다.
쿼드트리에 대한 이러한 오버헤드의 중요성 때문에, 이들 비트는 채널에러로부터 특히 양호하게 보호될 필요가 있다. 따라서 이들 중요 비트에 대하여 여분에러 보상 코딩을 제공하거나 에러회복 메카니즘을 제공하여 채널 에러 현상이 화상의 작은 영역에서 차단되도록 한다.
본 발명의 적응 블록크기 DCT 압축설계는 프레임내 코딩기술로써 분류될 수 있으며, 여기서 영상 시퀀스의 각 프레임은 독립적으로 코드화된다. 따라서, 단일 프레임 정지화상은 변경없이 쉽게 코드화될 수 있다. 입력 영상 프레임은 각 블록에 대하여 수행된 코드화에 의하여 몇개의 16×16 화소 데이터 블록으로 분할된다. 본 발명의 압축설계의 주목적은 DCT 프로세스를 이용하여 코드화된 여러가지 크기에서 최종 부분블록을 가진 부분블록으로 16×16블록이 적합하게 분할된다는 사실에 있다. 국부영상 특징에 근거한 블록크기의 적당한 선택에 의하여, 작은 부분블록은 노이즈의 지각가능한 시야가 블랭크 영역보다 낮은 영상의 비지영역을 따라 본질적으로 한줄로 늘어선다.
정리하면, 통상적으로 또는 고정된 블록크기 DCT 코딩은 어느 양자화 노이즈가 블록내에서 차단되고 분산되도록 각각의 블록에 고정된 비트수를 할당한다. 인접 블록 사이에서의 노이즈 중대도(severity) 또는 특성이 상이할 때, 블록 사이의 경계는 일반적으로 블록킹 인조잡상이라고 알려진 현상으로 가시화된다. 영상적응 DCT 코딩은 각각의 블록에 가변 비트수를 할당하여 고정된 크기 블록 사이에서 노이즈를 시프트 시킨다. 그러나, 블록 사이즈는 여전히 보통 16×16으로, 일부 블록이 영상의 블랭크 및 비지 부분을 포함하기에 충분히 크다. 따라서 블록킹 인조잡상은 라인 및 모서리같은 세부 영상을 따라 여전히 가시화될 수 있다. 8×8 또는 4×4와 같은 작은 블록크기를 이용하는 것은 블록킹 인조잡상을 상상히 줄이지만, 높은 데이터율을 요구한다. 그 결과, DCT 코딩 효율은 블록크기가 작아지는만큼 떨어진다.
본 발명에 따른 실시예에서는, 적응 블록크기 DCT 기술은 작은 블록이 요구될 때만 이용되도록 최적 블록크기가 선택되도록 한다. 그 결과 블록 인조잡상은 데이터율을 증가시키지 않고도 상당히 감소된다. 블록크기 할당을 결정하기 위한 여러가지 상이한 방법이 고안될 수 있지만, 각각이 블록에 대하여 만들어진 전체 비트수를 최소화 하도록 블록크기를 할당하는 바람직한 구현예가 제공된다. 적응 블록크기 기술과 결합된 본 발명의 DQT 변환을 이용함으로써, 데이터율에서의 감소가 약 5%이상 이루어질 수 있다.
제1도 및 2도는 N×N 화소 데이터 블록을 전체 비트 코드화 데이터로 변환시키는 적응 블록크기 DCT 변환 영상신호 압축 시스템의 바람직한 실시예를 도시한다. 설명을 목적으로 기술하기 위하여 여기서 N=6이다. 제1도는 DCT변환의 수행 및 블록크기 결정소자를 도시한다. 제2도는 복합 DCT 계수 데이터 블록 비트코딩과 함께 블록크기 결정에 따른 DCT 계수 데이터 블록 선택을 도시한다.
제1도에서 디지털 화소 데이터의 16×16 블록으로 표시되는 영상신호는 프레임 버퍼(도시안됨)로부터 수신된다. 화소 데이터는 8비트 흑백영상 데이터 또는 24비트 컬러 영상 데이터일 수 있다. 16×16 화소블록은 16×16 2차원 이산 코사인 변환(DCT) 소자(10a)로 입력된다. 16×16 화소블록은 또한 4개의 8×8 화소블록으로서 8×8 DCT 소자(10b)로, 8개의 4×4 화소블록으로써 4×4 DCT 소자(10c), 그리고 64개의 2×2 화소블록으로써 2×2 DCT 소자(10d)로 입력된다. DCT 소자(10a-10d)는 공지된 집적회로 형태로 구성될 수 있다. 16×16 화소블록은 또한 이후에 제9도를 참조로 설명될 DQT 서브 시스템과 병렬로 제공되는 입력일 수 있다.
DCT 소자(10a-10d)는 각각의 크기의 화소 데이터의 입력 블록에서 2차원 DCT 연산을 수행한다. 예를들어, DCT 소자(10a)는 단일 16×16 변환 연산을 수행하며, DCT 소자(10b)는 4개의 8×8 DCT 연산을 수행하며, DCT 소자(10c)는 16개의 4×4 DCT 연산을 수행하고, DCT 소자(10d)는 64개의 2×2 DCT연산을 수행한다. 변환 계수는 각각의 DCT 소자(10a-10d)로 부터 각각의 양자화기 조사(look up) 테이블(12a-12d)로 출력된다.
양자화기 조사 테이블(12a-12d)은 양자화 값을 포함하는 기억장소를 가진 통상적인 판독전용 메모리(ROM) 형태로 실행된다. 각각의 변환계수값은 대응 양자화 변환계수값을 표시하는 출력 데이터 신호를 제공하는 대응 기억장소를 지정하기 위하여 이용된다. 기준 신호(QC16)로 표시되는 양자화기 조사 테이블(12a)의 출력은 양자화된 DCT 계수값의 16×16 블록이다. 기준신호(QC8)로 표시되는 양자화기 조사 테이블(12b)의 출력은 양자화된 DCT 계수값의 4개의 8×8 부분블록인 데이터 블록으로 구성된다. 기준신호(QC4)로 표시되는 양자화기 조사 테이블(12c)의 출력은 양자화된 DCT 계수값이 16개의 4×4 부분블록인 데이터 블록으로 구성된다. 끝으로, 기준신호(QC2)로 표시되는 양자화기 조사 테이블(12d)의 출력은 양자화된 DCT 계수값의 64개의 2×2 부분블록인 데이터 블록으로 구성된다. 도시되지는 않았지만, 각각의 변환의 DC(가장 낮은 주파수) 계수는 대응 양자화기 조사 테이블을 통하기 보다는 분리되어 선택적으로 처리될 수 있다.
양자화기 조사 테이블(12a-12d)의 출력은 각각 코드 길이 조사 테이블(14a-14d)로 입력된다. 양자화된 DCT 계수값은 허프만 코드와 같은 가변길이 코드를 이용하여 코드화되어 데이터율을 최소화한다. 코드워드 및 대응 코드길이는 코드길이 조사 테이블(14a-14d) 형식에서 발견된다. 각각의 양자화된 DCT 계수(QC2, QC4, QC8 및 QC16)는 코드 길이 테이블에서 각각의 계수를 코드화하기 위해 필요한 대응 비트수를 찾기 위하여 이용된다. 코드길이 조사 테이블(14a-14d)은 각각의 코드길이값을 포함하는 기억장소를 지정하는 DCT 계수를 가진 판독전용 메모리 형태로 수행될 수 있다.
따라서 각각의 블록 및 부분블록을 코드화하기 위하여 필요한 비트수는 각각의 블록 및 부분블록에서 코드길이를 가산함으로써 결정된다. 적용 블록크기 코딩설계의 기본수행에서, 각각의 블록 및 부분블록의 DC 및 AC 계수에 대한 코드 길이는 각각의 블록 또는 부분 블록을 코드화하기 위한 비트수를 결정하는데 이용된다. 그러나, DQT 서브 시스템이 이용되는 경우에, 코드길이 조사 테이블(14a-14d)로부터 출력된 DC DCT 계수에 때른 값은 DQT 서브 시스템으로부터의 유사한 값으로 대체된다. 멀티플렉서(15a-15d)는 DQT 서브 시스템으로부터 출력된 DQT계수 코드길이값이 각각의 코드길이 가산기(16a-16d)로 제공되도록 한다. 멀티플렉서(15a-15d)는 또한 코드길이 조사 테이블(14a-14d)로 부터 출력된 AC DCT 계수 코드 길이가 각각의 코드길이 가산기(16a-16d)로 제공되도록 한다.
1개의 DC 계수 코드길이값과 255개의 AC 계수 코드길이값으로 구성된 코드길이 조사 테이블(14a)로 부터의 256개의 코드길이값은 멀티플렉서(15a)로 제공된다. 또한 DQT 계수 코드길이값은 DQT 서브 시스템으로 부터 멀티 플렉서(15a)로 제공된다. 멀티 플렉서(15a)는 제어신호(Ma)에 응답하여 코드길이 조사 테이블(14a)로부터의 DC DCT 계수 코드길이값 대신에 DQT 서브 시스템으로 부터의 DQT계수 코드길이값을 코드 길이 가산기(16a)로 제공된다. 그러나, 255개의 AC 계수 코드값은 멀티플렉서(15a)를 통하여 코드길이 가산기(16a)에 제공된다. 코드길이 가산기(16a)에서 16×16 블록 DQT/DCT 계수블록을 코드화하기 위해 요구되는 비트수는 블록에 코드길이를 가산함으로써 결정된다. 따라서 16×16 블록에 대하여 코드길이 가산기(16a)는 255개의 AC 계수 코드길이값에 1개의 DQT 계수 코드길이값을 가산한다. 코드길이 가산기(16a)로 부터의 출력은, 양자화된 DQT/DCT 계수의 16×16블록을 코드화하기 위해 필요한 비트수를 나타내는 단일값인 신호(CL16)이다.
코드길이 검사 테이블(14b)로 부터의 256개의 코드길이값은, 이는 전체 4개의 DC 계수 코드길이값과 252개의 AC 계수코드길이 값으로 구성되며, 멀티플렉서(15b)에 공급된다. 4개의 8×8 블록은 각각 1개의 DC 계수 코드길이값과 63개의 AC계수 코드길이값으로 구성된다. 멀티 플렉서(15b)로 제공되는 각각의 DC DCT 계수 코드길이값에 대하여, 대응 DQT 계수 코드길이값은 DQT 서브 시스템으로 부터 멀티플렉서(15b)로 제공된다. 멀티플렉서(15b)는 제어신호(Mb)에 의하여 코드길이 조사 테이블(14b)로 부터의 각각 4개의 DC 계수 코드길이값 대신에 DQT 서브 시스템으로 부터의 DQT 계수 코드길이값을 코드길이 가산기(16b)에 제공한다. 그러나, 코드길이 조사 테이블(14b)로 부터의 252개의 AC 계수 코드길이값은 멀티 플렉서(15b)를 통하여 코드길이 가산기(16b)에 제공된다. 4개의 8×8 블록 각각에 대하여, 코드 길이 가산기(16b)는 DQT 계수 코드길이값과 함께 63개의 AC 계수 코드길이값을 가산하여 각각의 8×8 DQT/DCT 계수 부분블록을 코드화하기 위해 필요한 비트수를 결정한다. 코드길이 가산기(16b)의 출력은 4개의 8×8 DQT/DCT 블록 각각에서 코드길이의 가산에 따른 각각의 값을 가지는 기준신호(CL8)로 표시되는 4개의 값이다.
유사하게 코드길이 검사 테이블(14c)로 부터의 256개의 코드길이값은, 이는 전체 16개의 DC 계수 코드길이값과 240개의 AC 계수 코드길이 값으로 구성되며, 멀티플렉서(15c)에 공급된다. 16개의 4×4 블록은 각각 1개의 DC 계수 코드길이값과 15개의 AC 계수 코드길이값으로 구성된다. 멀티플렉서(15c)로 제공되는 각각의 DC DCT 계수 코드길이값에 대하여, 대응 DQT 계수 코드길이값은 DQT 서브 시스템으로부터 멀티플렉서(15c)로 제공된다. 멀티플렉서(15c)는 제어신호(Mc)에 의하여 코드길이 조사 테이블(14c)로부터의 각각 4개의 DC 계수 코드길이값 대신에 DQT 서브 시스템으로부터의 DQT 계수 코드길이값을 코드길이 가산기(16c)에 제공한다. 그러나, 코드길이 조사 테이블(14c)로 부터의 240 개의 AC계수 코드길이 값은 멀티플렉서(15c)를 통하여 코드길이 가산기(16c)에 제공된다. 16개의 4×4 블록 각각에 대하여, 코드길이 가산기(16c)는 DQT 계수 코드길이값과 함께 15개의 AC 계수 코드길이값을 가산하여 각각의 4×4 DQT/DCT 계수 부분블록을 코드화하기 위해 필요한 비트수를 결정한다. 코드길이 가산기(16c)의 출력은 16개의 4×4 DQT/DCT 블록 각각에서 코드길이의 가산에 따른 각각의 값을 가지는 기준신호(CL4)로 표시되는 16개의 값이다.
끝으로, 코드길이 검사 테이블(14d)로 부터의 256개의 코드길이 값은, 이는 전체 64개의 DC 계수 코드길이값과 192개의 AC 계수 코드길이 값으로 구성되며, 멀티플렉서(15d)에 공급된다. 64개의 2×2 블록은 각각 1개의 DC 계수 코드길이값과 3개의 AC 계수 코드길이값으로 구성된다. 멀티플렉서(15d)로 제공되는 각각의 DC DCT 계수 코드길이값에 대하여, 대응 DQT 계수 코드 길이값은 DQT 서브 시스템으로부터 멀티플럭셔(15d)로 제공된다. 멀티플럭셔(15d)는 제어신호(Ma)에 의하여 코드길이 조사 테이블(14d)로 부터의 각각 64개의 DC계수 코드길이값 대신에 DQT 서브 시스템으로 부터의 DQT 계수 코드길이값을 코드길이 가산기(16d)에 제공한다. 그러나, 코드길이 조사 테이블(14d)로 부터의 192개의 AC 계수 코드길이값은 멀티플렉서(15d)를 통하여 코드길이 가산기(16d)에 제공된다. 64개의 4×4 블록 각각에 대하여, 코드길이 가산기(16d)는 DQT 계수 코드길이값과 함께 3개의 AC 계수 코드 길이값을 가산하여 각각의 8×8 DQT/DCT 계수 부분블록을 코드화하기 위해 필요한 비트수를 결정한다. 코드길이 가산기(16d)의 출력은 64개의 2×2 DQT/DCT 블록 각각에서 코드길이의 가산에 따른 각각의 값을 가지는 기준신호(CL2)로 표시되는 4개의 값이다.
값(CL8, CL4, CL2)은 또한 나중에 설명될 블록위치 방향표시와 일치한다. 위치표시는 값(CL8, CL4, CL2)과 연관된 첨자(x,y)로 표시되는 위치를 가진 간단한 x-y좌표 시스템이다.
블록크기 할당(block size assignment, BSA)은 CL2, CL4, CL8 및 CL16의 값을 조사함으로써 결정된다. CL2(x,y)중 4개의 인접 엔트리는 가산되고, 그 합은 CL4(x,y)내의 대응 엔트리와 비교된다. 코드길이 가산기(16d)로 부터의 CL2(x,y)의 출력은 4개의 인접 엔트리를 가산하여 가산값(CL4'(x,y))을 제공하는 가산기(18)에 입력된다. 예를들어, 블록(CL2(0, 0), CL2(0, 1), CL2(1, 0), CL2(1, 1))의 대표값은 값(CL4'(0, 0))을 제공하기 위하여 가산된다. 가산기(18)로 부터의 출력값은 값(CL4'(x,y))이며, 이는 코드길이 가산기(16c)의 출력값(CL4(x,y))과 비교된다. 값 (CL4'(x,y))은 값(CL4(x,y))와 함께 비교기(20)에 입력된다. 비교기(20)는 가산기(18) 및 코드길이 가산기(16c)로 부터의 대응입력 값들을 비교하여 비트값(P)을 제공하는데, 값(P)은 P 레지스터(제2도)로 출력되며, 또한 멀티플렉서(22)에 대한 선택입력으로써 출력된다.
제1도에 도시된 것과 같은 예에서, 값(CL4'(0, 0))은 값(CL4(0, 0))과 비교된다. 만약 값(CL4(x,y))이 (CL4'(x,y))의 가산값보다 크면, 비교기(20)는 논리 비트 1을 발생시키며, 이는 P 레지스터로 들어간다. 상기 1 비트는 DCT 계수의 대응 4×4블록이 4개의 2×2 부분블록을 이용하여 효과적으로 코드화될 수 있다는 것을 가르킨다. 만약 이와 반대면, 논리 제로비트 0가 P 레지스터로 출력되는데, 이것은 4×4 블록은 대응 4×4블록을 이용하여 효과적으로 코드화될 수 있다는 것을 가르킨다.
코드길이 가산기(16c) 및 가산기(18)의 출력은 또한 멀티플렉서(22)에 데이터 입력으로 제공된다. 비교기(20)로 부터의 1 비트값 출력에 의해 멀티플렉서(22)는 값(CL4'(x,y))이 가산기(24)로 출력되도록 한다. 그러나, 비교기(20)의 비교값이 0 비트값이면, 멀티플렉서(22)는 코드 가산기(16c)의 출력(CL4(x,y))을 가산기로 입력시킨다. 가산기(24)는 값(CL4(x,y))및 값(CL4'(x,y))의 비교로 부터 선택된 데이터 입력을 가산하기 위하여 이용된다. 데이터(CL4(x,y)) 및 데이터(CL4'(x,y))의 16개 비교 결과는 가산기(24)에서 가산되어 대응값(CL8'(x,y))을 생성한다. 값(CL4(x,y)) 및 값(CL4'(x,y))의 16개 비교치 각각에 대하여 비교결과 비트는 P레지스터로 보내진다.
블록크기 할당의 결정에서의 다음단계는 값(CL4) 및 (CL4')의 생성 및 비교에 대한 것과 유사하다. 출력(CL8'(x,y))은 코드길이 가산기(16b)로 부터의 출력(CL8(x,y))과 함께 비교기(26)에 입력으로써 제공된다. 만약 (CL8(x,y))에서 대응 엔트리가 가산된 값(CL8'(x,y))보다 크면, 비교기(26)는 Q 레지스터(제2도)로 출력되는 1 비트를 생성한다. 비교기(26)의 출력은 또한 선택된 입력으로써 멀티플렉서(28)로 제공되며, 멀티플렉서(28)는 또한 코드길이 가산기(16b) 및 가산기(24)로부터 각각 값(CL8(x,y), CL8'(x,y))을 받는다. 비교기(26b)의 출력값이 1 비트이면, 값(CL8'(x,y))은 멀티플렉서(28)로 부터 가산기(30)로 출력된다. 그러나, 값(CL8'(x,y))이 값(CL8(x,y))보다 크면, 비교기(26)는 0 비트를 발생시키는데, 0 비트는 Q 레지스터 및 멀티플렉서(28)의 선택입력으로 전달된다. 따라서, 값(CL8(x,y))은 멀티플렉서(28)를 통하여 가산기(30)에 입력된다. 비교기(26)의 비교 결과는 Q 레지스터로 전달되는 Q 값이다. 다시말하면 여기서 1 비트는 작은 블록 비교에 의해 최적으로 결정된 모든 4×4 블록, 모든 2×2 블록, 또는 이들의 혼합과 작은 블록에 의해 DCT 계수의 대응 8×8 블록이 보다 효율적으로 부호화될 수 있다는 것을 가르킨다. 0 비트는 DCT 계수의 대응 8×8 블록이 작은 블록의 어떤 혼합보다는 보다 효율적일 수 있다는 것을 가르킨다.
가산기(30)로의 값 입력은 가산되어 출력값(CL16')으로써 비교기(32)로 입력된다. 코드길이 가산기(16a)의 출력값(CL16)인 제2입력이 비교기(32)로 제공된다. 비교기(32)는 값(CL16) 및 값(CL16')의 단일비교를 수행한다. 값(CL16)이 값(CL16')보다 크면, 1 비트가 R 레지스터(제3도)로 유입된다. R 레지스터에 대한 1비트입력은 블록이 단일 16×16 블록보다 부분블록을 이용하여 보다 효율적으로 코드화될 수 있다는 것을 가르킨다. 그러나, 값(CL16')이 값(CL16)보다 크면, 비교기(32)는 R 레지스터에서 0 비트를 출력한다. R 레지스터에서 0 비트는 DCT 계수의 블록이 16×16 블록으로써 더욱 효과적으로 부호화될 수 있다는 것을 가르킨다.
또한, 비교기(32)는 멀티플렉서(34)에 대한 선택입력과 마찬가지로 출력 R비트를 제공한다. 멀티플렉서(34)는 또한 코드길이 가산기(16a) 및 가산기(30)로 부터 제공되는 각각의 값(CL16) 및 (CL16')은 받아들인다. 멀티플렉서(34)로 부터의 출력은, 만약 R출력비트가 0이라면, 값(CL16)이 되지만, R 출력비트가 1이라면, 값(CL16')이 출력된다. 멀티플렉서(34)의 출력은 전송될 전체 비트를 나타내는 값이다.
4×4 및 2×2 블록이 16×16 블록내의 어느 곳에서 이용될 때 오버헤드 비트는 하나의 비트로 부터 21개의 비트(1+4+16)까지 가변될 수 있다.
제2도에서, 비교기(20, 제1도)로 부터의 P값은 16 비트 레지스터인 P 레지스터(40)로 직렬로 입력된다. 유사하게, 비교기(26)의 출력은 4비트 레지스터인 Q 레지스터(42)로 직렬로 입력된다. 마지막으로, 비교기(32)의 출력은 1비트 레지스터인 R 레지스터(44)로 직렬로 입력된다. P 레지스터(40)의 출력은 P 출력으로써 멀티플렉서(46)의 선택입력으로 출력된다. 멀티플렉서(46)에는 또한 양자화기 조사 테이블(12d, 12c)로 부터의 각각의 출력값(QC2, QC4)이 입력된다. 멀티플렉서(46)의 출력은 멀티플렉서(48)에 입력으로 제공되며, 멀티플렉서(48)에는 또한 양자화기 조사 테이블(12b)로 부터의 출력값(QC8)이 제2입력으로 제공된다. 멀티플렉서(48)에 대한 선택입력은 Q 레지스터(42)의 출력으로부터 제공된다. 멀티플렉서(48)의 출력은 멀티플렉서(50)에 대한 하나의 입력으로써 연결된다. 멀티플렉서(50)의 다른 입력은 값(QC16)을 받기 위해 양자화기 조사 테이블(12a)의 출력에 연결된다. 멀티플렉서(50)의 선택입력은 R 레지스터의 출력에 연결되어 출력비트 R 을 받는다.
제2도에 도시된 것처럼, P 레지스터(40)는 제1도에서 언급된 비교 프로세스에 의해 결정된 것과 같은 대응 비트값에 의한 일련의 비트 위치, 0-15를 포함한다. 비슷하게, Q 레지스터(42) 및 R 레지스터(44)는 각각 제1도에서 결정된 것처럼 대응 데이터를 가진 비트 위치 0-3 및 0을 가진다. 제2도에 도시된 것처럼, P, Q 및 R 레지스터에서의 데이터는 단지 설명을 하기 위한 목적으로 표시했다.
제2도에서처럼, P 레지스터(40)의 값은 멀티플렉서(46)를 통하여 QC2 데이터(양자화된 변환계수의 4개의 2×2 블록) 또는 대응 QC4 데이터(양자화된 변환계수의 하나의 4×4 블록)를 선택하기 위해 이용된다. 멀티플렉서(48)는 Q 레지스터(42)로 부터의 비트출력에 의해 멀티플렉서(46)의 출력과 데이터값(QC8) 사이에서 선택한다. Q 레지스터 비트값이 1 비트일 때, 멀티플렉서(48)에 대한 입력인 멀티플렉서(46)의 출력은 멀티플렉서(48)의 출력으로 선택된다. Q 레지스터 비트값이 0 비트일 때, 멀티플렉서(48)의 출력은 QC8 값이다. 따라서, Q 레지스터(42)의 출력 비트값은 멀티플렉서(46)로 부터의 출력인 4개의 QC4 블록 또는 QC2의 부분블록 중에서, 또는 대응 단일 8×8 블록을 선택하기 위해 이용된다. 제2도에 도시된 것처럼, 멀티플렉서(46)의 출력인 4개의 상부 왼쪽 블록은 3개의 인접 4×4 블록과 4개의 2×2 블록을 포함한다. 그러나, Q 레지스터의 비트가 0비트이면, 멀티플렉서(48)는 출력으로써 8×8 블록을 선택한다. 이러한 예는 조건 대체 설계를 도시한다.
멀티플렉서(48)의 출력은 멀티플렉서(50)에 입력으로써 연결된다. 멀티플렉서(50)의 다른 입력은, 양자화기 조사 테이블(12a)로 부터 제공되는 양자화된 DCT 계수의 16×16 블록인 QC16 데이터가 제공된다. 멀티플렉서(50)에 대한 선택입력은 R 레지스터의 출력비트이다. 제2도의 예에서, R 레지스터(44)의 비트출력이 1 비트이면, 멀티플렉서(48)로 부터 제공되는 멀티플렉서(50)의 출력 데이터를 선택한다. R 레지스터(44)가 0비트출력이면, 멀티플렉서(50)는 QC16 데이터를 출력한다.
제2도에 도시된 것과 같은 멀티플렉싱 설계는 계수 부분블록(QC2, QC4, QC8, QC16)값을 DCT 계수 QC의 복합블록으로 멀티플렉싱하는 블록할당법을 이용한다. 본질적으로, 이러한 단계는 3개의 단으로 이루어진다. 제1단은 P 레지스터의 내용에 따라 QC4 의 4×4 블록을 2×2 부분블록으로 조건에 따라 대체한다. 제2단은 Q 레지스터의 내용에 따라 이전단으로 부터의 결과로 부터 QC8의 8×8블록을 4개의 4×4 부분블록으로 조건에 따라 대체한다. 제3단은, 만약 R 레지스터가 1 비트를 포함하면, QC16의 16×16 블록을 이전단의 결과로 대체한다.
제3a 및 3b 각각은 P, Q 및 R 레지스터 데이터 및 대응상태, 그리고, BSA 비트 패턴, 그리고 그에 따른 대응 반전 쿼드트리의 예를 도시한다. 관계된 계층레벨은, R 레지스터에 저장된 비트가 1이면, 영상블록이 작은 블록을 이용하여 효율적으로 코드화될 수 있다는 것을 나타내는 조건이 존재한다는 것을 나타낸다. 비슷하게, Q 레지스터가 어떤 1 비트를 포함한다면, 대응 8×8 블록은 작은 블록을 이용하여 효과적으로 코드화될 수 있다는 것을 나타낸다. 유사하게, P 레지스터가 어떤 1비트를 포함한다면, 대응 4×4 블록은 4개의 2×2 블록을 이용하여 효율적으로 코드화될 수 있다는 것을 나타낸다. 레지스터 중 어느 것이 0 비트를 포함한다면, 이것은 블록 또는 부분블록이 이와 연관된 크기블록을 이용함으로써 보다 효율적으로 코드화될 수 있다는 것을 의미한다.
예를 들어, P 레지스터 비트 0 위치에서 비트의 값은, 1 비트이면 이것은 4×4 블록이 4개의 2×2 블록을 이용하여 보다 효율적으로 코드화될 수 있다는 것을 나타내고, 이와 반대로 0 비트이면 이것은 3개의 4×4 블록이 대응 2×2 블록을 이용하여 효율적으로 코드화된다는 것을 나타낸다. 그러나, Q 레지스터에서 비트값 0은 4개의 2×2 블록 및 3개의 4×4 블록의 한 그룹으로 구성된 4개의 4×4 블록이 단독 8×8블록에 의해 효율적으로 코드화될 수 있다는 것을 나타낸다. 따라서, Q 레지스터 데이터는 P 레지스터 데이터를 무효로 할 것이다. P 레지스터 데이터가 Q 레지스터 0 위치 비트에 의해 무효가 될 때, P 레지스터 비트 위치 0-3 내의 데이터는 블록크기 할당( block size assignment, BSA) 데이터의 부분으로 전송될 필요가 없다. 그러나, Q 레지스터의 비트 위치 1과 같이 상위 레지스터에서 비트 위치가 1 비트이면, 대응 P 레지스터 비트는 BSA 데이타의 일부로써 제공된다. 제3a도에 도시된 것처럼, Q레지스터 비트 위치 1이 1 비트이면, 대응 P 레지스터 비트 4-7은 BSA 데이터에 제공된다. 상위 레벨에서, R 레지스터 비트가 1 비트이기 때문에, 각각의 Q 레지스터는 BSA 데이터에 제공된다.
다시 제2도로 돌아가서, 복합블록(QC)은 런길이 코드에 의해 효과적으로 코드화될 수 있는 많은 제로계수를 포함한다. 연속제로 또는 런(run)의 수는 각각의 제로에 대한 코드워드 대신 전달된다. 런-길이 코딩의 효율을 최대로 하기 위하여, 계수는 짧은 런의 발생이 최소화되도록 사전설정된 방식으로 배열된다. 최소화는 먼저 제로가 아닌 계수를 인코딩하고, 끝으로 제로인 계수를 인코딩함으로써 이루어진다. 낮은 주파수쪽으로의 DCT의 에너지 압축 특성때문에, 그리고 대각 세부상(diagonal details)이 수평 또는 수직 세부상보다 적게 발생하기 때문에, 계수의 대각 스캔 또는 지그재그 스캔이 적당하다. 그러나, 이용되는 가변블록크기 때문에, 지그-재그 스캔은 먼저 각각의 부분블록으로 부터 저주파수 성분을 제거하기 위해 변조되어야 하지만, 동시에 두개의 주파수 인덱스의 합이 동일할 때 유사한 주파수의 계수에 대한 대각 스캐닝을 따라간다.
따라서, 멀티플렉서(50)로 부터 출력된 복합블록(QC)는 BSA 데이터(P, Q, R)와 함께 지그재그 스캔 직병렬 변환기(52)로 입력된다. 제4a도는 블록 및 대응 부분 블록내의 블록 데이터의 지그재그 배열을 도시한다. 제4b도는 BSA 데이터에 의해 결정된 것과 같은 블록 및 부분블록 사이의 직렬화에서 배열을 도시한다.
복합블록(QC)의 배열된 256개의 양자화 DCT 계수로 구성된 지그재그 스캔 직병렬 변환기(52)의 출력은 런길이 코딩을 위해 저장되는 계수 버퍼(54)로 입력된다. 직렬화된 계수는 계수버퍼(54)로부터 런길이 코더(56)로 출력되며, 런길이 코더(56)에서는 런길이 코딩이 비제로 계수로부터 제로계수를 분리해내기 위해 수행된다. 비제로 계수값과 마찬가지로 런길이는 대응 조사 테이블에 별도로 제공된다. 런길이값은 그 값이 허프만 코드화되는 런길이 코드 조사 테이블(58)의 입력으로써 런길이 코더(56)로 부터 출력된다. 비슷하게, 비제로 계수값은 그 값이 또한 허프만 코드화되는 비제로 코드 조사 테이블(60)에 대한 입력으로써 런길이 코더(56)로 부터 출력된다. 도시되지는 않았지만, 런길이 및 비제로 코드 조사 테이블이 각각의 블록크기로 제공될 수 있도록 할 수 있다.
허프만 비제로 코드화 값과 함께 허프만 런길이 코드화 값은 각각 비트 필드 어셈블러(62)의 입력으로써 런길이 조사 테이블(58) 및 비제로 코드 조사 테이블(60)로 부터 출력된다. 비트 필드 어셈블러(62)에 대한 추가입력은 P, Q 및 R 레지스터로부터의 BSA 데이터이다. 비트 필드 어셈블러(62)는 P, Q 및 R 레지스터로 부터 제공되는 불필요한 비트는 무시한다. 비트 필드 어셈블러(62)는 결합된 RL 코드 및 NZ 코드와 함께 BSA 데이터를 가진 입력 데이터를 어셈블한다. 상기 결합된 데이터는 트랜스미터(도시안됨)로 전환하기 위한 데이터를 임시로 저장하는 전송버퍼(64)로의 비트 필드 어셈블러(62)로 부터 출력된다.
DQT 서브 시스템이 이용될 때 코드화된 DC DCT 계수는 전송 버퍼(64)로의 전환으로 부터 제외된다. 대신, DQT 서브 시스템에 의해 제공되는 DQT 계수가 비트 필드 어셈블러(62)에 대한 입력으로써 전송된다. 본 실시예에서 데이터의 포맷팅은 일반적으로 일련의 동기, BSA, DQT 및 DCT 데이터 비트로 구성된 데이터 패킷이다. 그리고, 상기 패킷은 또한 DCT 비트의 뒤를 잇는 블록코드 비트의 끝부분을 포함할 수 있다.
제5a-5d도는 지그재그 스캔 직병렬 변환기(52)에 대한 선택적인 스캔 및 직렬화 포맷을 도시한다. 제5a-5d도에서, 양자화된 DCT 계수는 저주파수에서 고주파수로 배열함으로써 일차원 스트링으로 맵핑된다. 그러나 제5a-5d도에 도시된 설계에서 낮은 차수 주파수는 블록에서 다음 높은 주파수를 취하기 전에 각각의 블록으로 부터 제거된다. 블록내의 모든 계수가 배열된다면, 이전 스캔동안 상기 블록은 스캔 패턴에서 다음 블록에 주어진 우선순위에 따라 생략된다. 제4a-4c도의 스캐닝에서처럼, 블록 대 블록 스캐닝은 왼쪽으로 오른쪽, 위에서 아래로의 스캔이 우선순위이다.
전술한 바와 같이 본 발명은 여기서 미분 쿼드트리 변환(differential quadtree transform, DQT)라고 하는 새롭고 이전에 공포되지 않은 변환을 수행한다. 이러한 변환의 기본은 부분블록의 쿼드트리 표시에서 2×2 DCT의 순환전개이다. 예를들어, 제3b도에 도시된 쿼드트리와 같이, 역 쿼드트리의 바닥에서 2×2 DCT 연산이 수행되고, 노드는 2×2 DCT 변환의 DC 값에 할당된다. 가장 가까운 노드들이 모여지고 다른 2×2 DCT가 수행된다. 상기 프로세스는 DC 값이 루트(root)에 할당될 때까지 반복된다. 루트에서는 DC 값만이 고정된 비트수, 보통 8비트에서 코드화되면, 나머지는 허프만 코드화된다. 각각의 2×2 DCT 연산은 수의 가산 및 감산만 수행하고, 곱셈은 요구되지 않기 때문에, 퀴드트리에서 DC를 제외하고 모든 계수는 두합의 차를 표시하는데, 그러므로 DQT 라는 이름이 있다. 이론적으로 이런 종류의 변환은 16×16 DCT 코딩의 수행능력을 초과하지 못한다. 그러나, DQT 변환의 수행은 당연히 적응블록크기 코딩 뿐만 아니라 외관상 간단한 하드웨어를 사용하는 장점을 가지고 있다. 그리고 쿼드트리 구조는 서브트리하의 모든 부분블록이 단지 제로만 포함할 때 서브트리의 부존재만을 간단하게 표시함으로써 제로계수의 코딩을 가능하게 한다.
제6도는 DQT 서브 시스템의 실시예를 도시한다. 제6도에서, 제1도 및 2도의 서브시스템에서의 동일한 화소 데이터의 16×16 블록이 전달되어 DQT 프로세싱이 적응블록크기 데이터 프로세싱과 병행하여 이루어진다. 화소 데이터의 입력 블록은 데이터에서 64개의 2×2 이차원 DCT 연산이 수행되는 2×2 DCT 소자(70)에 제공된다. DCT 소자(70)의 출력은 DC 계수의 16×16 블록인 블록(71)으로 구성된다. DCT 소자(70)에 의해 처리된 화소 데이터의 각 2×2 블록에 대하여, 대응 출력은 하나의 DC DCT 계수(DC2) 및 세개의 계수(AC2)로 구성된다.
DCT 소자(70)로부터 출력되는 DCT 계수 16×16 블록은 실렉터(72)로 제공된다. 실렉터(72)는 DCT 계수의 입력블록으로부터 AC DCT 계수를 제거하며, DC DCT 계수(DC2)로만 구성된 8×8 블록을 출력한다. DC DCT 계수(DC2)의 8×8 블록인 블록(73)이 2×2 DCT 소자(74)로 제공된다.
DCT소자(74)는 DC DCT 계수(DC2)의 입력블록에서 16개의 2×2 이차원 DCT 연산을 수행한다. DCT 소자(74)의 출력은 DCT 계수의 8×8 블록으로 구성된다. DCT 소자(74)에 의해 처리된 DC DCT 계수(DC2)의 각 2×2 블록에 대하여, 대응 출력은 하나의 DC DCT 계수(DC4) 및 세개의 AC DCT 계수(AC4)로 구성된다. 제6도에 도시된 것처럼, 블록(75)에서 DC DCT 계수(DC4) 및 AC DCT 계수(AC4)는 8×8 블록인 블록(75)에서 대응 DC DCT 계수(DC2), 실렉터(72)로부터의 출력과 같은 할당을 대신한다.
DCT 소자(74)로 부터 출력된 DCT 계수의 8×8 블록은 실렉터(76)에 제공된다. 실렉터(76)는 DCT 계수의 입력블록으로부터의 AC DCT 계수(AC4)를 입력으로써 멀티플렉서(80)로 제공하며, 한편 DC DCT 계수(DC4)의 4개의 2×2 블록, 블록(77)인 DC DCT 계수(DC4)를 2×2 DCT 소자(78)로 제공한다.
DCT 소자(78)는 DC DCT 계수(DC4)의 입력블록에서 4개의 2×2 이차원 DCT 연산을 수행한다. DCT 소자(78)의 출력은 DCT 계수의 4×4 블록인 블록(79)으로 구성된다. DCT 소자(78)에 의해 처리된 DC DCT 계수(DC4)의 4개의 2×2 블록 각각에 대하여, 대응출력은 하나의 DC DCT 계수(DC8) 및 세개의 AC DCT 계수(AC8)로 구성된다. 출력 DC DCT 계수(DC8)및 AC DCT 계수(AC8)는 다른 입력으로서 멀티플렉서(80)로 제공된다.
멀티플렉서(80)는 일반적으로 DCT 소자(74)(세퍼레이터(76)를 통하여)로 부터 AC DCT 계수(AC4)의 출력을 제공한다. 멀티플렉서(80)는 제어신호(Na)에 따라 DCT 소자(78)로 부터 DC DCT 계수(DC8) 및 AC 계수(AC8)를 제공한다. 멀티플렉서(80)는 DC 및 AC DCT 계수의 복합 8×8 블록인 블록(81)을 생성한다. 블록(81)은 블록(75)에서 DCT 소자(74)로 부터의 출력인 AC DCT 계수(AC4)에 대하여 배열이 유사하다. 그러나, 블록(81)에서 DC DCT 계수(DC8) 및 AC DCT 계수(AC8)는 DCT 소자(74)로부터 출력되는 블록(75)에서의 DC DCT 계수(DC4)를 대신한다. 제6도에 도시된 것처럼, 블록(81)내의 DC DCT 계수(DC8)및 AC DCT 계수 (AC8)는 블록(75)의 8×8 블록배열에서 대응 DC DCT 계수(DC4)를 대신한다. 블록(81)에서 15개의 AC 계수당 단지 하나의 DC 계수가 존재하기 때문에 복합블록은 4개의 4×4 블록으로 간주될 수 있다. 멀티플렉서로부터 출력된 DCT 계수의 4개의 4×4 블록은 실렉터(82)로 제공된다. 실렉터(82)는 DCT 계수의 입력블록으로부터의 AC DCT 계수(AC4) 및 (AC8)을 입력으로써 멀티플렉서(86)로 제공하며, 한편 DC DCT 계수(DC4)의 2×2 블록과 같은 DC DCT계수(DC8), 즉 블록(83)을 2×2 DCT 소자(84)로 제공한다.
DCT 소자 (84)는 DC DCT 계수(DC8)의 입력블록에서 2×2 이차원 DCT 연산을 수행한다. DCT 소자(78)의 출력은 DCT 계수의 2×2 블록, 즉 블록(85)으로 구성된다. DCT 소자(84)에 처리된 DC DCT 계수(DC4)의 2×2 블록에 대하여, 출력은 하나의 DC DCT 계수(DC16) 및 세개의 AC DCT계수 (AC16)로 구성된다. 출력 DC DCT 계수(DC16) 및 AC DCT 계수(AC16)는 다른 입력으로써 멀티플렉서(86)로 제공된다.
멀티플렉서(86)는 일반적으로 멀티플렉서(80)(세퍼레이터(82)를 통하여)로부터 AC DCT 계수 (AC4) 및 (AC8)의 출력을 제공한다. 멀티플렉서(86)은 제어신호(Nb)에 따라 DCT 소자(84)로 부터 DC DCT 계수(DC16) 및 AC 계수(AC16)을 제공한다. 멀티플렉서(86)는 DC 및 AC DCT 계수의 복합 8×8 블록, 즉 블록(87)을 생성한다. 블록(87)은 블록(81)에서 멀티플렉서(80)로 부터의 출력인 AC DCT 계수(AC4) 및 (AC8)에 대하여 배열에서 유사하다. 그러나, 블록(87)에서 DC DCT 계수(DC16) 및 AC DCT 계수(AC16)은 멀티플렉서(80)로부터의 출력인 블록(81)에서의 DC DCT 계수(DC8)를 대시한다. 제6도에 도시된 것처럼, 블록(87)에서 DC DCT 계수(DC16) 및 AC DCT 계수(AC16)는 블록(81)의 8×8 블록배열에서 대응 DC DCT 계수(DC8)를 대신한다. 블록(87)에서 15개의 AC 계수당 단지 하나의 DC 계수가 존재하기 때문에, 복합블록은 하나의 8×8 블록으로 간주한다.
멀티플렉서(87)로부터 출력되는 8×8 블록, 즉 블록(87)은 이산 쿼드트리 변환(DQT) 계수로 간주되는 것으로 구성된다. DQT 계수는 계수값을 양자화기 조사 테이블(88)에 제공함으로써 양자화된다.
양자화기 조사 테이블(88)은 양자화값을 포함하는 기억장소를 가진 통상적인 판독전용 메모리(ROM) 형태로 수행될 수 있다. 각 변환계수의 값은 대응 양자화 변환계수값을 나타내는 출력 데이터 신호를 제공하도록 대응기억장소를 지정하기 위하여 사용된다. 기준신호(QC16)로 표시되는 양자화기 조사 테이블(88)의 출력은 양자화 DQT 계수값의 8×8 블록이다. 도시되지는 않았지만, DQT 변환연산의 DC 계수(DC16)는 대응 양자화기 조사 테이블을 통하기 보다는 별도로 선택적으로 처리될 수 있다.
DQT 계수는 양자화기 조사 테이블(88)의 출력으로써 코드길이 조사 테이블(90)로 공급된다. 양자화 DQT 계수값은 허프만 코드와 같은 가변코드길이 조사 테이블을 이용하여 각각 코드화되어 데이터율을 최소화시킨다. 코드워드 및 대응 코드길이는 코드길이 조사 테이블(90)의 형태로 발견된다. 각각의 양자화 DQT 계수(DC6, AC16, AC8, AC4)는 코드길이 테이블에서 각각의 계수를 코드화하는데 필요한 대응 비트수를 조사하기 위해 이용된다. 코드길이 조사 테이블(90)은 각각 코드길이값을 포함하는 기억장소를 지정하는 DQT 계수를 가진 판독전용 메모리 형태로 수행될 수 있다. DQT 계수 코드길이값은 제1도 및 2도를 참조로 설명된 것처럼 블록크기 결정에서 각각의 블록 및 부분블록에 대한 대응 DC DCT 계수 코드길이값을 대체하기 위하여 제1도의 멀티플렉서(15a-15d)에 제공된다.
제7도에서 블록(91)의 64개의 양자화 DQT 계수값은 제1도 및 2도를 참조로 설명한 블록크기 결정에 의해 결정된 블록크기에 대하여 DC DCT 계수값을 대체하기 위해 선택된다. P, Q 및 R 레지스터(40, 42, 44)에 저장된 값은 DC DCT 계수값의 블록 및 부분블록에서 대체를 위한 DQT 계수값을 선택하는데 이용된다.
DQT 계수값은 양자화기 조사 테이블(88, 제6도)로 부터 멀테플렉서(92)중 하나의 입력으로 제공된다. 멀티플렉서(92)의 다른 입력에는 더미값(dummy value)(x)이 제공된다. 멀티플렉서(92)는 P 레지스터(40)의 비트에 따라 P 레지스터(40) 비트 위치에 1이 존재할 때 전체 2×2 부분블록에 대하여 DQT 계수의 출력을 제공한다. P 레지스터(40) 위치에서 값이 0일 때, 부분블록의 DC 계수값에 상응하는 DQT 계수값만이 더미값(x)인 나머지 값 출력과 함께 출력된다. 값(x)은 단지 결국 제거될 이러한 값을 가지는 부분블록내의 배열을 유지하기 위해 이용된다. 제1도 및 2도를 참조로 주어진 예에서처럼 제공되는 P 레지스터(40)의 16 비트 위치에서의 데이터를 이용하여 복합블록(93)이 형성된다.
멀티플렉서(92)로부터 출력되는 DQT 계수의 부분블록과 더미값(x)은 멀티플렉서(94)의 하나의 입력으로써 제공된다. 멀티플렉서(94)의 다른 하나의 입력으로는 더미값(x)이 다시 제공된다. 멀티플렉서(94)는 Q 레지스터(42)의 비트에 따라 Q 레지스터(42) 비트 위치에 1이 존재할 때 전체 4×4 부분블록에 대하여 DQT 계수의 출력을 제공한다. Q 레지스터(42) 위치에서 값이 0일 때, 부분 블록의 DC 계수값에 상응하는 DQT 계수값만이 더미값(x)인 나머지 값 출력과 함께 출력된다. 값(x)은 다시 단지 결국 제거될 이러한 값을 가지는 부분블록내의 배열을 유지하기 위해 이용된다. 제1도 및 2도를 참조로 주어진 예에서처럼 제공되는 Q 레지스터(42)의 4비트 위치에서의 데이터를 이용하여 복합블록(95)이 형성된다.
멀티플렉서(94)로 부터 출력되는 DQT 계수의 부분블록과 더미값(x)은 멀티플렉서(96)의 하나의 입력으로써 제공된다. 멀티플렉서(96)의 다른 하나의 입력으로는 더미값(x)이 다시 제공된다. 멀티플렉서(96)는 R 레지스터(44)의 비트에 따라 R 레지스터(44) 비트 위치에 1이 존재할 때 전체 16×16 부분블록에 대하여 DQT 계수의 출력을 제공한다. R 레지스터(44) 위치에서 값이 0일 때, 부분블록의 DC 계수값에 상응하는 DQT 계수값만이 더미값(x)인 나머지 값 출력과 함께 출력된다. 값(x)은 단지 결국 제거될 이러한 값을 가지는 부분블록내의 배열을 유지하기 위해 이용된다. 제1도 및 제2도를 참조로 주어진 예에서처럼 제공되는 R 레지스터(44)의 단일비트 위치에서의 데이터를 이용하여 복합블록(97)이 형성된다.
제2도의 값(QC)에 대한 표시블록과 블록(97)의 비교에서 코드화될 QC의 각 8×8 DCT 계수블록에 대하여 단독 DQT 계수값이 존재하는 것을 알 수 있다. 비슷하게 코드화될 QC의 4×4 및 2×2 DCT 계수블록 각각에 대하여 단일 DQT 계수값이 존재한다. 주어진 예에서 블록이 16×16 블록으로 코드화되지 않더라도, 이러한 경우가 발생했다면 단일 DQT 값이 복합블록에서 생성되었을 것이다.
DQT 계수값은 멀티플렉서(96)에서 지그재그 스켄 직병렬 변환기로 출력되는데, 지그재그 스캔 직병렬 변환기는 제4a 및 제4b도를 참조로 설명한 방법으로 DQT 계수 및 더미값(x)을 할당한다. 지그재그 스캔 직렬화 데이터는 값 제거로직(9)에 제공되며, 상기 값 제거로직(99)은 P, Q 및 R 레지스터 데이터를 기초로 더미값(x)의 위치를 확인하는 정보를 이용하여 더미값(x)을 제거한다. 더미값(x)의 사용은 보다 정교한 멀티플렉싱 기술을 이용하면 제거될 수 있다.
로직(99)으로부터 출력된 DQT 계수값은 코드 조사 테이블(66)에 제공되며, 코드 조사 테이블(66)에서는 값이 바람직하게 허프만 코드를 이용하여 코드화된다. 코드화 DQT 계수값은 코드 조사 테이블(66)로 부터 제2도의 비트 필드 어셈블러(62)로 출력된다. 전송을 위해 데이터를 할당할 때 이전에 설명한 비트 필드 어셈블러(62)는 코드화된 AC DCT 계수와 함께 코드화된 DQT 계수를 제공하며, 한편 데이터 출력으로부터 코드화된 DC DCT 계수를 제거한다.
제8도는 제1도 및 2도의 파라메터에 따라 생성된 압축 영상신호를 디코딩하기 위한 리시버의 실행을 도시한다. 제8도에서 코드화된 워드는 리시버(도시안됨)로 부터 리시브 버퍼(100)로 출력된다. 리시브 버퍼(100)는 코드워드의 출력을 세퍼레이터(102)로 제공한다. 수신된 코드워드는 원래 BSA 데이터, DQT 코드화 계수, 및 RL 코드와 NZ 코드 형태인 코드화 DCT 계수를 포함한다. 모든 수신된 코드는 프리픽스(prefix) 조건에 따르기 때문에 각각의 코드워드의 길이가 코드길이를 분리하고 디코드화하기 위하여 알려질 필요가 없다.
세퍼레이터(102)는 DQT 코드화 계수 및 코드화 DCT 계수로부터 BSA 코드를 분리하는데, 왜냐하면 BSA 코드가 이러한 데이터보다 먼저 전송되고 수신되기 때문이다. 먼저 수신된 비트는 제2도에서와 유사한 내부 R 레지스터(도시안됨)로 로딩된다. R 레지스터의 조사는 비트가 0이어서 BSA 코드가 단지 한 비트길이인지를 결정한다. 세퍼레이터(102)는 또한 초기에 제로로 채워진 Q 및 P 레지스터를 포함한다. R 레지스터가 1비트를 포함하면, 리시브 버퍼로부터 4비트 더 얻어져서 Q 레지스터로 로딩된다. Q 레지스터에서 모든 1 비트에 대하여, 리시브 버퍼로부터 4비트 더 얻어져서 P 레지스터로 로딩된다. Q 레지스터에서 모든 0에 대하여, 4개의 0이 P 레지스터로 로딩되지만, 리시브 버퍼로부터는 가져오는 것은 아무것도 없다. 따라서, BSA 코드의 가능한 길이는 1, 5, 9, 13, 17 및 21 비트이다. 디코드화된 BSA 데이터는 세퍼레이터(102)로부터 출력된다.
세퍼레이터(102)는 또는 코드화 DCT 계수로부터 DQT 코드화 계수를 분리한다. 세퍼레이터(102)는 DQT 코드화 계수를 제9도에 상세히 도시된 DQT 디코더 서브 시스템으로 출력한다.
세퍼레이터(102)는 또한 각각의 RL 코드 및 NZ 코드 형태인 코드화 DCT 계수를 각각 RL 디코드 조사 테이블(104) 및 NZ 디코드 조사 테이블(106)으로 출력한다. 조사 테이블(104) 및 (106)은 본질적으로 제2도의 조사 테이블(58) 및 (60)에 대한 역 조사 테이블이다. 조사 테이블(104)의 출력은 런길이에 따른 값이며, 런길이 디코더(108)로 입력된다.
비슷하게, 조사 테이블(106)로 부터의 비제로 계수값은 또한 런길이 디코더(108)로 입력된다. 런길이 디코더(108)는 디코드화된 계수에 제로를 삽입하고, 일시적으로 계수를 저장하는 계수버퍼(110)에 출력을 제공한다. 저장된 계수는 이용된 스캔 설계에 따라 계수를 배열하는 역 지그재그 스캔 직병렬 변환기(112)로 출력된다. 역 지그재그 스캔 직병렬 변환기(112)는 복합계수 블록으로 블록 및 부분블록 계수를 양호하게 배열하도록 하기 위하여 세퍼레이터(102)로 부터 BSA 신호를 받는다. 계수 데이터의 블록은 역 지그재그 스캔 직병렬 변환기(112)로 부터 출력되어 각각 대응 역 양자화기 조사 테이블(114a-114d)에 적용된다.
각각의 역 양자화기 조사 테이블(114a-114d)에서, 역 양자화기 값은 양자화를 복귀시키기 위하여 각각 계수에 적용된다.
역 양자화기 조사 테이블(114a-114d)은 양자화기 조사 테이블(12a-12d)의 것으로부터의 양자화 인자를 포함하는 ROM 소자 같은 것이 이용될 수 있다. 계수는 각각의 역 양자화기 조사 테이블(114a-114d)로 부터 멀티플렉서(115a-115d)의 대응입력으로 출력된다.
각 멀티플렉서(115a-115d)의 다른 입력은 제9도의 DQT 디코더 서브 시스템에 연결된다. 멀티플렉서(115a-115d)는 각각의 제어신호(Ya-Yb)에 따라 역 양자화기 조사 테이블(114a-114d)로부터 제공되는 AC DCT 계수값과 DC DCT 계수값을 대신하는 DQT 계수값을 제공한다. DQT/DCT 계수는 각각 멀티플렉서(115a-115d)로 부터 역 이산 코사인 변환(inverse discrete cosine transform, IDCT)소자(116a-116d)로 출력된다.
ICDT 소자(116a)는 16×16 계수블록으로부터, 만약 존재한다면 부분블록 결합기(118)로 출력되는 16×16 화소 데이터 블록을 형성한다. 비슷하게, IDCT(116b)는 각각의 8×8 블록을, 만약 존재한다면 화소 데이터의 8×8 블록으로 변환한다. IDCT 소자(116b)의 출력은 부분블록 결합기(188)에 제공된다. IDCT 소자(116c) 및 (116d)는 각각 4×4 및 2×2 변환블록을, 만약 존재한다면 부분블록 결합기(118)에 제공되는 대응 화소 데이터 블록으로 변환시킨다. IDCT 소자(116a-116d)로부터 출력을 수신하는 것 외에 부분블록 결합기(118)는 또한 화소 데이터의 블록을 단독 16×16 화소 블록으로 재구성하기 위하여 세퍼레이터(102)로 부터 BSA 데이터를 수신한다. 재구성된 16×16 화소블록은 디스플레이 시스템으로 최종 전환을 위해 재구성 버퍼(도시안됨)로 출력된다.
제9도는 DQT 디코더 서브 시스템의 구조를 더욱 상세히 도시하며, 여기서 세퍼레이터(102)는 코드화된 DQT 계수를 디코드 조사 테이블(120)에 제공한다. 조사 테이블(120)은 본질적으로 제7도의 조사 테이블(66)에 대한 역조사 테이블이며, 허프만 디코더 조사 테이블 같은 것이다. 조사 테이블(120)의 출력은 디코드화된 DQT 계수에 따른 값이며, 값 삽입로직(122)로 입력된다. 로직(122)은 또한 본질적으로 P, Q 및 R 레지스터에 대한 값인 BSA 데이터를 수신한다. 로직(122)은 제7도의 블록(97)의 지그재그 스캔 직렬화 버젼에 따라 DQT 데이터 및 복합 직렬화 블록 및 더미값을 생성하도록 DQT 데이터 및 더미값(x)을 가진 블록/부분블록을 재구성한다.
DQT 계수 및 더미값은 로직(122)으로부터 역지그재그 스캔 직병렬 변환기(124)로 출력되며, 직병렬 변환기(124)는 사용되는 스캔 설계에 따라 계수를 배열한다. 역 지그재그 스캔 직병렬 변환기(124)는 또한 제7도의 블록(97)의 것과 유사한 복합계수 블록으로 블록 및 부분블록 계수를 양호하게 배열하도록 하기 위하여 세퍼레이터(102)로 부터 BSA 신호를 받는다. 계수 데이터의 블록은 역 지그재그 스캔 직병렬 변환기(124)로부터 역 양자화기 조사 테이블(126)로 출력된다.
역 양자화기 조사 테이블(126)에서 역 양자화기 값은 양자화를 복귀시키기 위하여 각각의 계수에 적용된다. 역 양자화기 조사 테이블(126)은 양자화기 조사 테이블(88)의 것으로 부터의 양자화 인자를 포함하는 ROM 소자 같은 것으로 이용될 수 있다. 계수는 각각의 역 양자화 조사 테이블(126)로부터 세퍼레이터(128)로 출력된다. 세퍼레이터(128)은 AC DQT 계수(AC16)와 함께 DC DCT 계수(DC16)를 멀티플렉서(115a)에 제공한다. 따라서 IDCT 소자(116a)는 멀티플렉서(115a)로 전달되지만, AC 계수(AC16)는 멀티플렉서로부터 출력되지 않는다는 것을 주의할 필요가 있다. DC 계수(DC16)에 대하여, 이러한 값은 멀티플렉서로부터 출력되지만, 블록크기 할당에 의해 선택되지 않은 블록에 속한다면 최종적으로 무시될 것이다. 선택적인 실시예에서, 최종 비사용 값은 멀티플렉서(115a)로 전달되지 않거나 또는 거기서 BSA 데이터를 사용하는 것을 금지당한다. 제7도에서, 이러한 값은 서브블록 결합기(118)로의 입력으로써 그래프로 도시되지는 않았다.
세퍼레이터(128)는 또한 DC 및 AC DQT 계수(DC16) 및 (AC16)을 2×2 역 이산 코사인 변환(IDCT)소자(13)로 제공하는 한편, 8×8 복합블록의 다른 모든 값을 입력으로써 멀티플렉서(132)로 제공한다. 블록(29)에 도시된 것은 IDCT 소자(30)에 제공되는 상관값이다.
IDCT 소자(130)는 하나의 DC 및 세개의 AC DQT 계수(DC16) 및 (AC16)으로 구성된 2×2 블록에서 하나의 2×2 역 이산 코사인 변환을 수행하여, 입력으로써 멀티플렉서(115b)로 제공되는 4개의 합성 DC DQT 계수(DC8)를 생성한다. DC DQT 계수(DC8)는 또한 멀티플렉서(115b)로 제공된다. 실시예에서, 블록(135)에 포함된 DC DQT 계수(DC8) 중 두개는 전달되지 않은 DC DCT 계수 대신에 최종 블록에 사용된다. 멀티플렉서(115a)에 제공된 값을 기준으로 설명된 것처럼, 실시예에서 다른 두 개의 값은 또한 최종블록 지정 데이터에서 사용되지 않는다. 제7도에서 이들 미사용 계산값은 부분블록 결합기(118)에 대한 입력으로써 그래프로 도시되지 않았다.
멀티플렉서(132)는 세퍼레이터(128)로 부터 출력으로써 세퍼레이터(134)에 모든 값을 제공한다. 멀티플렉서(132)는 또한 IDCT 소자(130)로 부터 DC DQT 계수(DC8)을 받아들이며, 제어신호(Z1)에 따라 DC DQT 계수(DC8)는 DC 및 AC DQT 계수(DC16) 및 (AC16)에 대한 복합블록에서 대응 위치에 따라 세퍼레이터(134)로 출력된다.
세퍼레이터(134)는 DC 및 AC DQT 계수(DC8) 및 (AC8)을 2×2 역 이산 코사인 변환(IDCT)소자(136)로 제공하는 한편, 8×8 복합블록의 모든 다른 값이 입력으로써 멀티플렉서(138)로 제공한다. 블록(135)에서 IDCT소자(136)에 제공되는 연관값이 도시되어 있다.
IDCT 소자(136)는 하나의 DC 및 세개의 AC DQT 계수(DC8) 및 (AC8)로 구성된 4개의 2×2 블록 각각에서 4개의 2×2 역 이산 코사인 변환을 수행하여, 입력으로써 멀티플렉서(138, 115c)로 제공되는 16개의 합성 DC DQT 계수(DC4)를 생성한다.
실시예에서, IDCT 계산은 DC DQT 계수(DC8) 및 세개의 AC DQT 계수(AC8)에 대한 세개의 더미값을 이용하여 블록(135)의 왼쪽 두개의 부분블록 각각에서 수행된다. 더미값을 이용한 IDCT의 결과가 실제 DC DQT 계수가 아니기 때문에, 이들 값은 멀티플렉서(115c)로 전송될 수 있지만 사용되지는 않는다.
DC DQT 계수(DC4)는 멀티플렉서(115)로 제공된 IDCT 소자(136)로 부터의 출력이다. 실시예에서, 블록(139)에서 8개의 DC DQT 계수(DC4) 중 6개의 전달되지 않은 DC DCT 계수 대신 최종 블록 데이터에 이용된다. 멀티플렉서(115a, 115b)에 제공된 값을 참조로 설명된 것처럼, 실시예에서 이들 값 중 다른 두개는 또한 최종 블록 할당 데이터에 사용되지 않는다. 제7도에서 더미값 계산결과와 함께 이들 비사용 값은 부분블록 결합기(118)에 대한 입력으로써 그래프로 도시되지 않는다.
멀티플렉서(138)는 세퍼레이터(134)로부터 출력된 값을 입력으로써 2×2 역이산 코사인 변환(DCT)소자(40)로 제공한다. 멀티플렉서(132)는 또한 IDCT 소자(136)로부터 DC DQT 계수값(DC4)을 받아들이며, 제어신호(Z2)에 따라 DC DQT 계수(DC4)는 DC 및 AC DQT 계수(DC8) 및 (AC8)에 대한 복합블록에서 대응위치에 따라 IDCT 소자(140)로 출력된다. 블록(135)에서 IDCT 소자(136)에 제공되는 연관값이 도시되어 있다.
IDCT 소자(140)는 하나의 DC 및 세개의 AC DQT 계수(DC4) 및 (AC4)로 구성된 2×2 블록 각각에서 16개의 2×2 역 이산 코사인 변환을 수행하여, 입력으로써 멀티플렉서(115d)로 제공되는 64개의 합성 DC DQT 계수(DC2)를 생성한다. 실시예에서, IDCT 계산은 세개의 AC DQT 계수(AC4)에 대한 세개의 더미값을 이용함으로써, AC DQT 계수(AC4)없이 블록(139)의 각각의 계수 부분블록에서 수행된다. 더미값을 이용한 IDCT의 결과가 실제 DC DQT 계수가 아니기 때문에, 이들 값은 멀티플렉서(115d)로 전송될 수 있지만 사용되지는 않는다.
실시예에서, 블록(141) 내의 64개 DC DQT 계수(DC2)중 8개는 전달되지 않은 DC DQT 계수 대신 최종블록 데이터에 이용된다. 멀티플렉서(115a, 115b)에 제공된 값을 참조로 설명된 것처럼, 실시예에서 이들 값중 다른 두개는 또한 최종 블록 할당 데이터에 이용되지 않는다. 제7도에서, 이들 비사용 값은 더미값 계산결과 함께 부분블록 결합기(118)에 대한 입력으로써 그래프로 도시되지 않았다.
제8도를 참조로 설명된 것처럼, 생략된 DC DCT 계수를 대신하기 위하여 전송된 DQT 계수는 각각의 연관 블록크기에 대한 DC 계수로 이용된다. DQT 수행은 상술한 것처럼 적응블록크기 영상압축 기술로 쉽게 적응할 수 있다. DQT 서브 시스템은 전송될 비트를 감소시킴으로써 데이터율을 감소시킨다. 그리고, DQT 서브 시스템의 수행은 적응블록크기 영상압축 설계에서 오버헤드 비트의 수에 영향을 미치지 않는다. 사실 DQT 프로세싱 설계의 이용은 작은 블록의 수가 클 경우에 전송되어야 할 비트수를 감소시킨다.
제10도는 본 발명의 신호압축에 대한 흐름도를 도시한다. 제10도는 제1, 2, 6 및 7도를 참조로 설명한 프로세싱에 포함된 단계를 간단하게 도시한다. 비슷하게, 제11도는 출력화소 데이터를 발생시키기 위한 전송압축 영상 데이터의 압축과정을 도시한다. 제11도는 도시된 단계는 제9도 및 10도를 참조로 이전에 설명된 것이다.
DQT 프로세싱 기술의 사용은 화소당 비트율을 손상시키지 않고 적응블록크기 프로세싱 설계에 의해 제공되는 개선된 영상의 질을 촉진한다. 화소당 비트율이 약 1이거나 이보다 작아도, 여기서 논의된 기술을 이용할 때 HDTV 응용에 대한 영상의 질이 실제적으로 충분히 개선될 것이다. 본 발명의 많은 개선은 본 발명의 참고로 쉽게 이루어질 수 있을 것이다.
바람직한 실시예의 전술한 설명은 당업자에게 본 발명을 이용하거나 제작할 수 있도록 제공되었다. 이들 실시예에 대한 여러가지 개선이 당업자에게 쉽게 이루어질 수 있으며, 여기에서 정의된 특이한 원리는 발명적 능력을 사용하지 않더라도 다른 실시예에 적용될 수 있다. 따라서, 본 발명은 여기에서 나타난 실시예에 한정되는 것이 아니고, 여기에 기술된 원리 및 신규한 특징과 일관성 있는 가장 넓은 범위에 따른다.
Claims (2)
- DC 및 AC DCT 계수값의 대응영상블록 및 부분블록을 생성하기 위하여 화소 데이터 블록 및 구성부분블록의 적어도 하나의 소정 레벨에서 이산 코사인 변환(DCT) 연산을 수행하며; DCT 계수값의 각각의 영상블록 및 각각의 영상부분블록의 대응 그룹에 대하여 소정 코딩포맷에 따라 DCT 계수값의 영상블록 및 각각의 영상부분블록의 대응 그룹을 각각 코드화하기 위하여 요구되는 비트의 수에 따른 비트 카운트를 결정하며; 코딩포맷에 따라 코딩하기 위하여 더 적은 비트수를 필요로 하는 DCT 계수값의 영상블록 및 영상부분블록의 대응 그룹을 비트 카운트로부터 결정하며; 복합영상블록을 형성하도록 코딩포맷에 따라 코드화하기 위하여 적은 비트의 수를 필요로하는 DCT 계수값의 영상블록 및 영상부분블록을 선택하며; 소정 배열포맷에 따라 복합영상블록의 DCT 계수값을 배열하며; 코딩포맷에 따라 복합영상블록의 배열된 DCT 계수값을 코드화하며; 복합영상블록 DCT 계수값의 영상블록 및 부분블록 중 선택된 것을 확인하는 정보와 함께 복합영상블록의 코드화되고 배열된 DCT 계수값을 어셈블함으로써 전송을 위한 입력 화소 데이터의 블록을 압축시키는 적응 블록크기 영상압축 시스템에서 화소 데이터의 블록을 압축하기 위한 서브시스템은, 화소 데이터의 상기 입력블록을 수신하고, DC 및 AC DCT 계수값의 대응 제1블록을 생성하기 위해 화소 데이터의 상기 블록상에서 제1 이산 코사인 변환(DCT) 연산을 수행하고, DC 및 AC DCT 계수값의 상기 제1 블록의 상기 DC DCT 계수에서 수행된 제1추가 DCT 연산에 의해, 이전 추가 DCT 연산의 합성 DC 계수값에서 수행된 각각의 연속 추가 DCT 연산에 의해, DC 및 AC DCT 계수값의 대응 최종블록을 생성하는 최종추가 DCT 연산에 의해 일련의 추가 DCT 연산을 수행하고, DC 및 AC DCT 계수값의 상기 최종블록의 출력을 제공하기 위한 이산 쿼드트리 변환수단과; DC 및 AC DCT 계수값의 상기 최종블록 각각을 수신하고, 상기 소정 코딩포맷에 따라 코드화된 각각의 상기 최종 블록 DC 및 AC DCT 계수값의 길이에 대응하는 대응 코드길이값을 발생시키고, 상기 비트 카운트 결정시 각각의 대응 영상 블록 및 영상 부분 블록에 대한 DC DCT 계수 대신 각각의 코드길이 값을 삽입하여, 상기 영상블록 및 영상부분블록이 상기 대응 코드길이값을 이용하여 상기 복합영상블록에 대하여 선택 되도록 하는 코드길이 결정수단; 및 DC 및 AC DCT 계수값의 상기 최종블록 각각을 수신하고, 상기 복합 블록의 상기 영상블록 및 영상부분블록 중 선택된 것의 DC DCT 계수값 각각을 상기 최종 블록 DC 및 AC DCT 계수값중 대응하는 것으로 대체하기 위한 대체수단을 포함하는 것을 특징으로 하는 화소 데이터의 블록을 압축하기 위한 서브 시스템.
- 제1항에 있어서, 상기 대체수단은 사익 최종블록 DC 및 AC DCT계수값을 상기 소정 배열포맷에 따라 배열하기 위한 수단; 및 상기 최종블록 DC 및 AC DCT 계수값 각각을 상기 소정 코딩 포맷에 따라 코드화하기 위한 인코더 수단을 더 포함하는 것을 특징으로 하는 화소 데이터의 블록을 압축하기 위한 서브 시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71021691A | 1991-06-04 | 1991-06-04 | |
US7/710,216 | 1991-06-04 | ||
US07/710,216 | 1991-06-04 | ||
PCT/US1992/004606 WO1992022166A1 (en) | 1991-06-04 | 1992-06-03 | Adaptive block size image compression method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR940701621A KR940701621A (ko) | 1994-05-28 |
KR0167367B1 true KR0167367B1 (ko) | 1999-03-20 |
Family
ID=24853107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019930703720A KR0167367B1 (ko) | 1991-06-04 | 1992-06-03 | 적응블록크기 영상압축방법 및 시스템 |
Country Status (15)
Country | Link |
---|---|
US (1) | US5452104A (ko) |
EP (1) | EP0587783B1 (ko) |
JP (1) | JP3145403B2 (ko) |
KR (1) | KR0167367B1 (ko) |
AT (1) | ATE159396T1 (ko) |
AU (1) | AU658432B2 (ko) |
CA (1) | CA2110264C (ko) |
DE (1) | DE69222766T2 (ko) |
DK (1) | DK0587783T3 (ko) |
ES (1) | ES2110504T3 (ko) |
FI (1) | FI107489B (ko) |
GR (1) | GR3025624T3 (ko) |
HK (1) | HK1019838A1 (ko) |
NO (1) | NO305299B1 (ko) |
WO (1) | WO1992022166A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012064120A2 (ko) * | 2010-11-10 | 2012-05-18 | 에스케이텔레콤 주식회사 | 복호 영상 버퍼 압축장치 및 그 압축방법 |
KR101461495B1 (ko) * | 2010-10-04 | 2014-11-17 | 한국전자통신연구원 | 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치 |
Families Citing this family (175)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649029A (en) * | 1991-03-15 | 1997-07-15 | Galbi; David E. | MPEG audio/video decoder |
AU3274593A (en) * | 1991-12-13 | 1993-07-19 | Avid Technology, Inc. | Quantization table adjustment |
US5355450A (en) | 1992-04-10 | 1994-10-11 | Avid Technology, Inc. | Media composer with adjustable source material compression |
WO1994018799A1 (en) * | 1993-02-03 | 1994-08-18 | Qualcomm Incorporated | Interframe video encoding and decoding system |
JPH06311496A (ja) * | 1993-04-26 | 1994-11-04 | Sony Corp | 画像信号伝送方法及び画像信号伝送装置 |
GB2281465B (en) * | 1993-08-27 | 1997-06-04 | Sony Uk Ltd | Image data compression |
JP3202433B2 (ja) * | 1993-09-17 | 2001-08-27 | 株式会社リコー | 量子化装置、逆量子化装置及び画像処理装置並びに量子化方法、逆量子化方法及び画像処理方法 |
KR950010632A (ko) * | 1993-09-17 | 1995-04-28 | 배순훈 | 동영상부호화기 |
JP2526505B2 (ja) * | 1993-09-28 | 1996-08-21 | 日本電気株式会社 | 画像処理装置 |
WO1995014350A1 (en) * | 1993-11-15 | 1995-05-26 | National Semiconductor Corporation | Quadtree-structured walsh transform coding |
US5446806A (en) * | 1993-11-15 | 1995-08-29 | National Semiconductor Corporation | Quadtree-structured Walsh transform video/image coding |
JP3163880B2 (ja) * | 1993-12-16 | 2001-05-08 | 松下電器産業株式会社 | 画像圧縮符号化装置 |
US6798834B1 (en) * | 1996-08-15 | 2004-09-28 | Mitsubishi Denki Kabushiki Kaisha | Image coding apparatus with segment classification and segmentation-type motion prediction circuit |
JPH07307867A (ja) * | 1994-05-13 | 1995-11-21 | Brother Ind Ltd | 記録データ発生装置 |
JPH08214309A (ja) * | 1995-02-07 | 1996-08-20 | Canon Inc | 画像信号復号装置 |
US5872866A (en) * | 1995-04-18 | 1999-02-16 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics |
US5864637A (en) * | 1995-04-18 | 1999-01-26 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selective reduction of spatial resolution |
WO1996033575A1 (en) * | 1995-04-18 | 1996-10-24 | Advanced Micro Devices, Inc. | Video decoder using block oriented data structures |
US6002801A (en) * | 1995-04-18 | 1999-12-14 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics |
US5680482A (en) * | 1995-05-17 | 1997-10-21 | Advanced Micro Devices, Inc. | Method and apparatus for improved video decompression by adaptive selection of video input buffer parameters |
ZA965340B (en) | 1995-06-30 | 1997-01-27 | Interdigital Tech Corp | Code division multiple access (cdma) communication system |
US20030156525A1 (en) * | 1995-10-04 | 2003-08-21 | Bunsen Fan | Method of and system for block-by-block data retrieval for optical storage |
US6571019B1 (en) * | 1995-10-26 | 2003-05-27 | Hyundai Curitel, Inc | Apparatus and method of encoding/decoding a coded block pattern |
US6088039A (en) * | 1996-01-04 | 2000-07-11 | Compaq Computer Corporation | Compression of grey scale images of text |
TW364107B (en) * | 1996-03-25 | 1999-07-11 | Trw Inc | Method and system for three-dimensional compression of digital video signals |
US6360018B1 (en) * | 1996-04-10 | 2002-03-19 | Canon Kabushiki Kaisha | Image processing apparatus and method |
JP4286322B2 (ja) * | 1996-07-11 | 2009-06-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 符号化されたビデオ画像の送信及び受信 |
US6366614B1 (en) * | 1996-10-11 | 2002-04-02 | Qualcomm Inc. | Adaptive rate control for digital video compression |
SE9703849L (sv) * | 1997-03-14 | 1998-09-15 | Ericsson Telefon Ab L M | Nedskalning av bilder |
US6014172A (en) * | 1997-03-21 | 2000-01-11 | Trw Inc. | Optimized video compression from a single process step |
US5870144A (en) * | 1997-03-28 | 1999-02-09 | Adaptec, Inc. | Reduced-quality resolution digital video encoder/decoder |
US6018368A (en) * | 1997-07-11 | 2000-01-25 | Samsung Electro-Mechanics Co., Ltd. | Scalable encoding apparatus and method with improved function of scaling motion vector |
JPH11143497A (ja) | 1997-11-10 | 1999-05-28 | Matsushita Electric Ind Co Ltd | 圧縮されたテーブルを用いてサブバンドごとに量子化係数を復号化する方法 |
US6594398B1 (en) | 1998-03-06 | 2003-07-15 | Divio, Inc. | Method and apparatus for run-length encoding video data |
KR100354531B1 (ko) * | 1998-05-06 | 2005-12-21 | 삼성전자 주식회사 | 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템 |
US8813137B2 (en) * | 1998-05-08 | 2014-08-19 | Qualcomm Incorporated | Apparatus and method for decoding digital image and audio signals |
US20020056081A1 (en) * | 1999-12-02 | 2002-05-09 | Qualcomm Incorporated | Apparatus and method for decoding digital image and audio signals |
SE9802286L (sv) * | 1998-06-26 | 1999-12-27 | Ericsson Telefon Ab L M | Effektiv nedskalning av DCT-komprimerade bilder |
EP0969656B1 (en) | 1998-06-29 | 2007-01-24 | Xerox Corporation | Compression for image boundaries |
US6470052B1 (en) * | 1998-06-29 | 2002-10-22 | Xerox Corporation | HVQ compression combined with orthogonal rotation |
US6396958B1 (en) * | 1998-09-25 | 2002-05-28 | Lockheed Martin Corporation | Image transmission system and method employing compression and error correction |
US6411740B1 (en) | 1998-11-04 | 2002-06-25 | Sharp Laboratories Of America, Incorporated | Method for non-uniform quantization in a resolution hierarchy by use of a nonlinearity |
US6487319B1 (en) * | 1998-11-18 | 2002-11-26 | Sarnoff Corporation | Apparatus and method for identifying the location of a coding unit |
KR100366643B1 (ko) * | 1998-11-25 | 2003-02-19 | 삼성전자 주식회사 | 구획현상제거방법및장치 |
US6356665B1 (en) | 1998-12-09 | 2002-03-12 | Sharp Laboratories Of America, Inc. | Quad-tree embedded image compression and decompression method and apparatus |
US6983073B1 (en) * | 1999-01-13 | 2006-01-03 | Gidel Imaging Ltd. | Enhancement of compressed images |
US6529634B1 (en) * | 1999-11-08 | 2003-03-04 | Qualcomm, Inc. | Contrast sensitive variance based adaptive block size DCT image compression |
US6393154B1 (en) | 1999-11-18 | 2002-05-21 | Quikcat.Com, Inc. | Method and apparatus for digital image compression using a dynamical system |
US6985589B2 (en) * | 1999-12-02 | 2006-01-10 | Qualcomm Incorporated | Apparatus and method for encoding and storage of digital image and audio signals |
US6600836B1 (en) * | 2000-01-28 | 2003-07-29 | Qualcomm, Incorporated | Quality based image compression |
US6731686B1 (en) * | 2000-05-31 | 2004-05-04 | Sun Microsystems, Inc. | Apparatus and method for pipelining variable length decode and inverse quantization operations in a hybrid motion-compensated and transform coded video decoder |
US6636645B1 (en) * | 2000-06-29 | 2003-10-21 | Eastman Kodak Company | Image processing method for reducing noise and blocking artifact in a digital image |
US6912070B1 (en) | 2000-08-08 | 2005-06-28 | Qualcomm, Inc. | Sub-optimal variable length coding |
US8692844B1 (en) | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
US7424058B1 (en) | 2000-09-28 | 2008-09-09 | Autodesk, Inc. | Variable bit-rate encoding |
JP3678164B2 (ja) * | 2001-04-13 | 2005-08-03 | ソニー株式会社 | データ転送システム、データ転送装置、データ記録装置、データ転送方法 |
US7035468B2 (en) * | 2001-04-20 | 2006-04-25 | Front Porch Digital Inc. | Methods and apparatus for archiving, indexing and accessing audio and video data |
US6870885B2 (en) | 2001-05-16 | 2005-03-22 | Qualcomm Incorporated | Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor |
US7649947B2 (en) * | 2001-06-05 | 2010-01-19 | Qualcomm Incorporated | Selective chrominance decimation for digital images |
US20020191695A1 (en) * | 2001-06-07 | 2002-12-19 | Irvine Ann Chris | Interframe encoding method and apparatus |
US6996248B2 (en) | 2001-06-13 | 2006-02-07 | Qualcomm, Incorporated | Apparatus and method for watermarking a digital image |
US6870963B2 (en) | 2001-06-15 | 2005-03-22 | Qualcomm, Inc. | Configurable pattern optimizer |
US6735254B2 (en) * | 2001-06-29 | 2004-05-11 | Qualcomm, Inc. | DCT compression using Golomb-Rice coding |
US7483581B2 (en) * | 2001-07-02 | 2009-01-27 | Qualcomm Incorporated | Apparatus and method for encoding digital image data in a lossless manner |
US6650784B2 (en) * | 2001-07-02 | 2003-11-18 | Qualcomm, Incorporated | Lossless intraframe encoding using Golomb-Rice |
US20030012431A1 (en) * | 2001-07-13 | 2003-01-16 | Irvine Ann C. | Hybrid lossy and lossless compression method and apparatus |
US7630563B2 (en) | 2001-07-19 | 2009-12-08 | Qualcomm Incorporated | System and method for decoding digital image and audio data in a lossless manner |
AU2002335743A1 (en) * | 2001-09-14 | 2003-04-01 | The Regents Of The University Of Michigan | Audio distributor |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US6909748B2 (en) * | 2001-12-20 | 2005-06-21 | Sorenson Media, Inc. | Method and system for image compression using block size heuristics |
US20030118097A1 (en) * | 2001-12-21 | 2003-06-26 | Koninklijke Philips Electronics N.V. | System for realization of complexity scalability in a layered video coding framework |
FR2834362A1 (fr) * | 2001-12-28 | 2003-07-04 | Koninkl Philips Electronics Nv | Dispositif de transformation inverse adaptatif |
US20030161400A1 (en) * | 2002-02-27 | 2003-08-28 | Dinerstein Jonathan J. | Method and system for improved diamond motion search |
US7596277B2 (en) * | 2002-04-09 | 2009-09-29 | Senthil Govindaswamy | Apparatus and method for detecting error in a digital image |
KR101233236B1 (ko) * | 2002-07-29 | 2013-02-14 | 퀄컴 인코포레이티드 | 디지털 이미지 인코딩 |
US6975773B1 (en) | 2002-07-30 | 2005-12-13 | Qualcomm, Incorporated | Parameter selection in data compression and decompression |
EP1942462B1 (en) | 2002-11-15 | 2009-04-15 | Qualcomm Incorporated | Apparatus and method for multiple description encoding |
US7564382B2 (en) * | 2002-11-15 | 2009-07-21 | Qualcomm Incorporated | Apparatus and method for multiple description encoding |
US7995849B2 (en) * | 2003-03-17 | 2011-08-09 | Qualcomm, Incorporated | Method and apparatus for improving video quality of low bit-rate video |
US7580584B2 (en) | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US8218624B2 (en) | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US7602851B2 (en) | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
US7412100B2 (en) | 2003-09-04 | 2008-08-12 | Qualcomm Incorporated | Apparatus and method for sub-sampling images in a transform domain |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8872833B2 (en) * | 2003-09-15 | 2014-10-28 | Nvidia Corporation | Integrated circuit configuration system and method |
US7298925B2 (en) * | 2003-09-30 | 2007-11-20 | International Business Machines Corporation | Efficient scaling in transform domain |
US20050074062A1 (en) * | 2003-10-06 | 2005-04-07 | Sung Chih-Ta Star | Fast DCT method and apparatus for digital video compression |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US8116374B2 (en) | 2004-05-07 | 2012-02-14 | Broadcom Corporation | Method and system for generating a transform size syntax element for video decoding |
US7801383B2 (en) | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
CN102790880B (zh) * | 2004-06-15 | 2015-04-08 | 思科技术公司 | 用于视频压缩的混合可变长度编码的方法和设备 |
WO2006031737A2 (en) | 2004-09-14 | 2006-03-23 | Gary Demos | High quality wide-range multi-layer compression coding system |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
JP4034317B2 (ja) * | 2005-03-29 | 2008-01-16 | 富士通株式会社 | 画像符号化装置 |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
JP4621574B2 (ja) * | 2005-10-06 | 2011-01-26 | 株式会社東芝 | 画像符号化装置および画像符号化方法 |
US8698811B1 (en) * | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US7483029B2 (en) * | 2005-12-15 | 2009-01-27 | Nvidia Corporation | GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US7706629B2 (en) | 2006-02-24 | 2010-04-27 | Apple Inc. | Methods and apparatuses for pixel transformations |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US8059721B2 (en) * | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US7974340B2 (en) | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
US8928676B2 (en) * | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US20080002899A1 (en) * | 2006-06-30 | 2008-01-03 | Curt Paul Breswick | Dynamic Compression Method for Use in Compressing Image Data |
KR100846870B1 (ko) * | 2006-07-06 | 2008-07-16 | 한국전자통신연구원 | 다수의 기본 블록들의 다차원 구성을 통한 다단계 변환장치 및 그 방법 |
US8237738B1 (en) | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US7808512B1 (en) | 2006-12-19 | 2010-10-05 | Nvidia Corporation | Bounding region accumulation for graphics rendering |
US7778618B2 (en) * | 2006-12-28 | 2010-08-17 | Conexant Systems, Inc. | Systems and methods for reducing broadband image noise through a programmable bandwidth RF variable gain attenuator |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
WO2008107943A1 (ja) * | 2007-03-01 | 2008-09-12 | Nippon Telegraph And Telephone Corporation | スケーラブル符号化方法および装置、スケーラブル復号方法および装置、並びにそれらのプログラムおよび記録媒体 |
US8498335B2 (en) | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
EP2187643A3 (en) * | 2007-07-18 | 2012-10-24 | Humax Co., Ltd. | Adaptive bit-precision entropy coding |
US8724483B2 (en) * | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
KR101370288B1 (ko) | 2007-10-24 | 2014-03-05 | 삼성전자주식회사 | 이미지 신호의 압축 방법 및 장치 |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
WO2009131703A2 (en) * | 2008-04-25 | 2009-10-29 | Thomson Licensing | Coding of depth signal |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
US8811484B2 (en) | 2008-07-07 | 2014-08-19 | Qualcomm Incorporated | Video encoding by filter selection |
US20100014584A1 (en) * | 2008-07-17 | 2010-01-21 | Meir Feder | Methods circuits and systems for transmission and reconstruction of a video block |
US8000546B2 (en) * | 2008-08-01 | 2011-08-16 | National Cheng Kung University | Adaptive scan method for image/video coding |
US8325796B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
US20100172409A1 (en) * | 2009-01-06 | 2010-07-08 | Qualcom Incorporated | Low-complexity transforms for data compression and decompression |
US8913105B2 (en) | 2009-01-07 | 2014-12-16 | Thomson Licensing | Joint depth estimation |
US8761268B2 (en) * | 2009-04-06 | 2014-06-24 | Intel Corporation | Selective local adaptive wiener filter for video coding and decoding |
JP5208043B2 (ja) * | 2009-04-16 | 2013-06-12 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US20110063306A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | CO-PROCESSING TECHNIQUES ON HETEROGENEOUS GPUs INCLUDING IDENTIFYING ONE GPU AS A NON-GRAPHICS DEVICE |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US8913009B2 (en) | 2010-02-03 | 2014-12-16 | Nintendo Co., Ltd. | Spatially-correlated multi-display human-machine interface |
US8814686B2 (en) | 2010-02-03 | 2014-08-26 | Nintendo Co., Ltd. | Display device, game system, and game method |
US8339364B2 (en) | 2010-02-03 | 2012-12-25 | Nintendo Co., Ltd. | Spatially-correlated multi-display human-machine interface |
US8961305B2 (en) | 2010-02-03 | 2015-02-24 | Nintendo Co., Ltd. | Game system, controller device and game method |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
KR101497845B1 (ko) | 2010-07-06 | 2015-03-02 | 노키아 코포레이션 | 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치 |
JP6243586B2 (ja) | 2010-08-06 | 2017-12-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
US10150033B2 (en) | 2010-08-20 | 2018-12-11 | Nintendo Co., Ltd. | Position calculation system, position calculation device, storage medium storing position calculation program, and position calculation method |
JP5840385B2 (ja) | 2010-08-30 | 2016-01-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
JP5840386B2 (ja) | 2010-08-30 | 2016-01-06 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法 |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
KR101364826B1 (ko) | 2010-11-01 | 2014-02-20 | 닌텐도가부시키가이샤 | 조작 장치 및 조작 시스템 |
JP5689014B2 (ja) | 2011-04-07 | 2015-03-25 | 任天堂株式会社 | 入力システム、情報処理装置、情報処理プログラム、および3次元位置算出方法 |
KR101955374B1 (ko) * | 2011-06-30 | 2019-05-31 | 에스케이 텔레콤주식회사 | 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치 |
CN103581676B (zh) * | 2012-08-10 | 2016-12-28 | 联发科技股份有限公司 | 视频编码变换系数的解码方法及装置 |
US9538174B2 (en) * | 2012-08-10 | 2017-01-03 | Mediatek Inc. | Method and apparatus for inverse scan of transform coefficients in HEVC |
US9826229B2 (en) | 2012-09-29 | 2017-11-21 | Google Technology Holdings LLC | Scan pattern determination from base layer pixel information for scalable extension |
US9350988B1 (en) | 2012-11-20 | 2016-05-24 | Google Inc. | Prediction mode-based block ordering in video coding |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9681128B1 (en) | 2013-01-31 | 2017-06-13 | Google Inc. | Adaptive pre-transform scanning patterns for video and image compression |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
CN103745480B (zh) * | 2014-01-26 | 2017-02-15 | 广州博冠信息科技有限公司 | 一种图片渲染方法及装置 |
US9392272B1 (en) | 2014-06-02 | 2016-07-12 | Google Inc. | Video coding using adaptive source variance based partitioning |
US9578324B1 (en) | 2014-06-27 | 2017-02-21 | Google Inc. | Video coding using statistical-based spatially differentiated partitioning |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
US10554965B2 (en) | 2014-08-18 | 2020-02-04 | Google Llc | Motion-compensated partitioning |
US10084477B2 (en) | 2015-02-17 | 2018-09-25 | Parstream Gmbh | Method and apparatus for adaptive data compression |
GB2539027B (en) | 2015-06-04 | 2019-04-17 | Thales Holdings Uk Plc | Video compression with increased fidelity near horizon |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4776030A (en) * | 1986-03-28 | 1988-10-04 | Gte Laboratories Incorporated | Block quantizer for transform coding |
US4774574A (en) * | 1987-06-02 | 1988-09-27 | Eastman Kodak Company | Adaptive block transform image coding method and apparatus |
DE3728444A1 (de) * | 1987-08-26 | 1989-03-09 | Thomson Brandt Gmbh | Verfahren und schaltungsanordnung zur verbesserung der aufloesung von digitalen signalen |
DE3877105D1 (ko) * | 1987-09-30 | 1993-02-11 | Siemens Ag, 8000 Muenchen, De | |
US4984076A (en) * | 1988-07-27 | 1991-01-08 | Kabushiki Kaisha Toshiba | Image compression coding system |
US5073821A (en) * | 1989-01-30 | 1991-12-17 | Matsushita Electric Industrial Co., Ltd. | Orthogonal transform coding apparatus for reducing the amount of coded signals to be processed and transmitted |
JPH031662A (ja) * | 1989-05-30 | 1991-01-08 | Fuji Photo Film Co Ltd | 画像信号圧縮符号化装置 |
JPH0832039B2 (ja) * | 1989-08-19 | 1996-03-27 | 日本ビクター株式会社 | 可変長符号化方法及びその装置 |
US5142380A (en) * | 1989-10-23 | 1992-08-25 | Ricoh Company, Ltd. | Image data processing apparatus |
JP3085465B2 (ja) * | 1989-10-31 | 2000-09-11 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5021891A (en) * | 1990-02-27 | 1991-06-04 | Qualcomm, Inc. | Adaptive block size image compression method and system |
US5107345A (en) * | 1990-02-27 | 1992-04-21 | Qualcomm Incorporated | Adaptive block size image compression method and system |
JPH04221465A (ja) * | 1990-12-21 | 1992-08-11 | Matsushita Electric Ind Co Ltd | 記録装置 |
JP3012698B2 (ja) * | 1991-01-29 | 2000-02-28 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5227878A (en) * | 1991-11-15 | 1993-07-13 | At&T Bell Laboratories | Adaptive coding and decoding of frames and fields of video |
-
1992
- 1992-06-03 DK DK92913757.8T patent/DK0587783T3/da active
- 1992-06-03 JP JP50061493A patent/JP3145403B2/ja not_active Expired - Lifetime
- 1992-06-03 WO PCT/US1992/004606 patent/WO1992022166A1/en active IP Right Grant
- 1992-06-03 ES ES92913757T patent/ES2110504T3/es not_active Expired - Lifetime
- 1992-06-03 DE DE69222766T patent/DE69222766T2/de not_active Expired - Lifetime
- 1992-06-03 EP EP92913757A patent/EP0587783B1/en not_active Expired - Lifetime
- 1992-06-03 KR KR1019930703720A patent/KR0167367B1/ko not_active IP Right Cessation
- 1992-06-03 AU AU21866/92A patent/AU658432B2/en not_active Expired
- 1992-06-03 CA CA002110264A patent/CA2110264C/en not_active Expired - Lifetime
- 1992-06-03 AT AT92913757T patent/ATE159396T1/de active
-
1993
- 1993-08-04 US US08/102,124 patent/US5452104A/en not_active Expired - Lifetime
- 1993-12-03 NO NO934396A patent/NO305299B1/no not_active IP Right Cessation
- 1993-12-07 FI FI935477A patent/FI107489B/fi not_active IP Right Cessation
-
1997
- 1997-12-10 GR GR970403276T patent/GR3025624T3/el unknown
-
1998
- 1998-12-28 HK HK98119131A patent/HK1019838A1/xx not_active IP Right Cessation
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101461495B1 (ko) * | 2010-10-04 | 2014-11-17 | 한국전자통신연구원 | 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치 |
US9544595B2 (en) | 2010-10-04 | 2017-01-10 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US9860546B2 (en) | 2010-10-04 | 2018-01-02 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US10110912B2 (en) | 2010-10-04 | 2018-10-23 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US10560709B2 (en) | 2010-10-04 | 2020-02-11 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US10567782B2 (en) | 2010-10-04 | 2020-02-18 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US10674169B2 (en) | 2010-10-04 | 2020-06-02 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US11223839B2 (en) | 2010-10-04 | 2022-01-11 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US11706430B2 (en) | 2010-10-04 | 2023-07-18 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
WO2012064120A2 (ko) * | 2010-11-10 | 2012-05-18 | 에스케이텔레콤 주식회사 | 복호 영상 버퍼 압축장치 및 그 압축방법 |
WO2012064120A3 (ko) * | 2010-11-10 | 2012-07-19 | 에스케이텔레콤 주식회사 | 복호 영상 버퍼 압축장치 및 그 압축방법 |
Also Published As
Publication number | Publication date |
---|---|
HK1019838A1 (en) | 2000-02-25 |
JPH06511361A (ja) | 1994-12-15 |
JP3145403B2 (ja) | 2001-03-12 |
EP0587783A1 (en) | 1994-03-23 |
DE69222766T2 (de) | 1998-05-07 |
DK0587783T3 (da) | 1998-05-04 |
NO305299B1 (no) | 1999-05-03 |
NO934396L (no) | 1994-01-07 |
US5452104A (en) | 1995-09-19 |
ES2110504T3 (es) | 1998-02-16 |
DE69222766D1 (de) | 1997-11-20 |
NO934396D0 (no) | 1993-12-03 |
FI935477A0 (fi) | 1993-12-07 |
EP0587783A4 (en) | 1994-09-14 |
GR3025624T3 (en) | 1998-03-31 |
FI935477A (fi) | 1993-12-07 |
FI107489B (fi) | 2001-08-15 |
KR940701621A (ko) | 1994-05-28 |
CA2110264A1 (en) | 1992-12-10 |
WO1992022166A1 (en) | 1992-12-10 |
ATE159396T1 (de) | 1997-11-15 |
AU658432B2 (en) | 1995-04-13 |
CA2110264C (en) | 2002-05-28 |
EP0587783B1 (en) | 1997-10-15 |
AU2186692A (en) | 1993-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0167367B1 (ko) | 적응블록크기 영상압축방법 및 시스템 | |
US5021891A (en) | Adaptive block size image compression method and system | |
US5107345A (en) | Adaptive block size image compression method and system | |
EP1230804B1 (en) | Variance based adaptive block size dct image compression | |
EP0562420B1 (en) | Method and apparatus for vector coding of video transform coefficients | |
US6600836B1 (en) | Quality based image compression | |
KR100914160B1 (ko) | 골롬-라이스를 이용하는 무손실의 프레임내 인코딩 | |
CA2214663C (en) | Fixed or adaptive deinterleaved transform coding for image coding and intra coding of video | |
KR100932412B1 (ko) | 구성가능한 패턴 옵티마이저 | |
US6947600B1 (en) | Information processing method, apparatus and storage medium for receiving and decoding a code sequence obtained by encoding an image | |
KR20090042872A (ko) | Golomb-rice 코딩을 사용한 dct 압축 | |
US5822000A (en) | Video encoding using rearrangement of transform coefficients and inter-block correlation | |
Crinon | Picture compression based on two-dimensional adaptive sampling and adaptive quantization | |
Ethiraj et al. | Hierarchical Prediction and Context Adaptive Coding for Lossless Color Image Compression | |
JPH0686077A (ja) | 階層的画像圧縮方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110830 Year of fee payment: 14 |
|
EXPY | Expiration of term |