KR20030036021A - 인코딩 방법 및 배열 - Google Patents
인코딩 방법 및 배열 Download PDFInfo
- Publication number
- KR20030036021A KR20030036021A KR1020020066341A KR20020066341A KR20030036021A KR 20030036021 A KR20030036021 A KR 20030036021A KR 1020020066341 A KR1020020066341 A KR 1020020066341A KR 20020066341 A KR20020066341 A KR 20020066341A KR 20030036021 A KR20030036021 A KR 20030036021A
- Authority
- KR
- South Korea
- Prior art keywords
- difference
- block
- steps
- cost
- codebook
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- 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/94—Vector quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 이미지 인코딩 및 디코딩에 관한 것이다. 발명은 DCT 및 DWT 접근법으로부터 얻은 개선점을 지닌 직렬 VQ(벡터 양자화)의 변형이다. 발명의 기본적 태양은 최종 벡터의 주파수 분포를 사전에 결정하기 위해 트레이닝할 때 코드북이 사전처리되는 점에 있고, 특정 블록의 코딩에 필요한 차이 코딩의 가변적 숫자의 단계를 이용하여 각각의 블록이 독립적으로 코딩 및 디코딩된다.
Description
본 발명은 이미지 인코딩 및 디코딩에 관한 것이다. 특히 발명은 스트리밍 매체 해법의 비디오 인코딩 및 디코딩에 관한 것이다. 스트리밍 매체는 비디오가수신자의 단말기에 나타날 때 송신자로부터 수신자에게로 네트워크를 통해 실시간으로 비디오가 전송되는 것을 의미한다.
디지털 비디오는 일련의 프레임(sequence of frames)으로 이루어진다. 통상적으로 초당 25개의 프레임이 존재하며, 1개의 프레임은 도 1에서처럼 M1xN1개의 화소로 구성된다. 각각의 화소는 RGB같은 표준 색상 표현에 의해 24비트로 표시되며, RGB에서는 색상이 적색(R), 녹색(G), 청색(B)으로 나뉘어지고 이 색상 성분들은 0~255 범위의 숫자로 표시된다. 이 모든 정보를 전송하기 위해서는 초당 M1xN1x24x25 비트(bps)의 스트림 용량이 필요하다. 작은 프레임 크기인 160x120 화소의 경우에도 11.5Mbps를 필요로하고, 이는 대부분의 고정된 인터넷 연결과, 특히 모든 무선 인터넷 연결의 대역폭을 넘는다. 그러나, 모든 비디오 시퀀스는 일부 리던던시를 가지고 있고, 따라서, 압축될 수 있다.
어떤 비디오 신호도 프레임 일부를 희생함으로서, 즉, 프레임 속도를 저하시키거나 프레임 크기를 감소시킴으로서, 압축될 수 있다. 칼라 비디오의 경우에, 칼라 표현을 적절히 선택함으로서 시각적으로 관련된 정보를 반 이하로 중일 수 있다. 예를 들어, RGB에서 YCrCb 표현으로의 표준 변환을 통해 이같은 압축을 행할 수 있다. YCrCb는 선형 변환에 의해 RGB로부터 얻은 대안의 24비트 칼라 표현법이다. Y 성분은 칼라의 그레이 스케일 값이나 밝기에 대응하는 0~255 사이의 값을 취한다. Cr과 Cb 성분은 -128~+127 사이의 값을 가지며 크로미넌스(chrominance)나 칼라 평면을 정의한다. 극좌표(radial coordinates)에서, 원점 주변의 각도나 색조(hue)는 실제 칼라를 결정하고, 원점으로부터의 거리는 색상의 채도에 대응한다. 아래에서는 이 종류의 단계들이 구성된다고 가정하며, 나머지 프레임에 존재하는 상세 정보의 치적 인코딩에 주목하여야 한다.
모든 비디오 압축 기술은 한편으로는 프레임 사이와 내부의 기존 상관관계를 이용하고, 다른 한편으로는 인체의 신경계의 제한사항에 대한 지식을 이용한다. 일정한 색상을 가진 영역과 고정된 물체와 같은 상관성은 손실없이 압축될 수 있는 반면에, 보이지 않는 세부사항의 생략은 손실 규정에 의한다. 또한 압축은 재생성된 이미지의 색상과 세부사항의 정확성에 어떠한 절충을 요한다.
비디오에 커트(장면 변화)가 없을 경우, 일련의 프레임은 장면내 물체 일부나 카메라가 움직일 경우에만 차이가 난다. 이러한 일련의 프레임은 효율적으로 인코딩되어, 이 움직임의 방향과 크기를 알 수 있고 수신자에게 최종 모션 정보를 전달할 수 있다.
이 과정을 모션 보정(motion compensation)이라 부른다. 이전 프레임을 언급하는 일반적 개념은 인터 (프레임) 인코딩이라 알려져 있다. 따라서, 인터 프레임(INTER frame)은 이전 프레임(들)과 상당히 닮는다. 이러한 프레임은 필요한 변화를 나타내는 이전 프레임의 지식 및 어느 정도의 추가 정보로 재구성될 수 있다. 얻을 수 있는 압축비를 알기 위해, 원래 8x8x24 = 1536비트에 대응하는 8x8 블록(2)을 고려해보자(도 2와 3 참조). 두 일련의 프레임(1)간의 블록 움직임이 가령 -7과 7 화소사이로 제한될 경우, 2차원 모션 벡터는 8비트로 표현될 수 있고 192의 압축비를 도출한다.
이 과정을 진행하기 위해, 각각의 커트 다음에 이어지는 첫 번째 프레임을이와같이 압축할 필요가 있다. 이를 인트라 인코딩(INTRA encoding)이라 부른다. 따라서 인트라 프레임은 어떤 다른 프레임도 참고하지 않고 별도로 만들어지는 이미지로 압축되는 비디오 프레임이다. 인트라 프레임은 비디오 시작시, 커트시, 그리고 오류로부터 회복하기 위해 비디오를 주기적으로 리프레시할 때 필요하다.
압축된 비디오의 양호한 시각적 품질을 유지하는 것은 현재 사용중인 비디오 압축 기술이 직면하고 있는 여러 가지 고민사항 중 하나일 뿐이다. 상업적 이용을 위해서는, 인코딩 과정이 다량의 비디오 콘텐트 인코딩을 촉진시키기 위해 고속이어야 한다. 컴퓨터 메모리의 초기 프레임 버퍼링과는 별도로, 비디오를 실시간으로 보는 것은 실시간 디코딩을 요청하고 비디오의 실시간 재생을 요구한다. PC에서 PDA까지, 심지어는 3세대 이동전화가지 의도된 플랫폼 범위는 메모리 이용에 추가적 제약을 설정하며, 코덱용으로 처리 전력이 필요하다.
고속 디코딩은 소위 스트리밍 비디오를 위해 더욱 중요하다. 스트리밍 비디오는 이 비디오를 보고있는 동안에 실시간으로 수신기에 전송된다. 스트리밍 비디오의 경우에, 제한된 데이터 전송 용량이 비디오의 총 길이에 대해 최소 압축비를 결정한다. 이는 비디오를 전송하기 위한 비트 속도가 항상 가용 대역폭 내에 유지되어야하기 때문이다.
대부분의 비디오 압축 기술은 두가지 구성성분을 포함한다. 즉, 비디오 압축에 사용되는 인코더와, 비디오에 대한 모든 시청자의 컴퓨터에 다운로드되고 설치될 디코더나 플레이어(player)를 포함한다. 이 다운로딩이 각각의 플레이어 버전에 대해 한번만 실행되면 되지만, 플레이어가 없는 스트리밍 비디오 해법에 대한 관심이 증대되고 있으며, 이 해법이 모든 인터넷 사용자에게 도달할 수 있다. 이러한 해법에서는, 소형 플레이어 응용프로그램이 비디오 스트림과 함께 수신자측에 전송된다. 오버헤드 정보로 인한 대기 시간을 최소화하기 위해, 응용프로그램, 즉, 디코더는 매우 간단하게 만들어져야 한다.
본 문헌의 현재 목적을 위해서는, 그레이 스케일 프레임/이미지를 고려하는 것으로 충분하다. 화소의 그레이 스케일 값은 광도(luminance) Y로 표시된다. 이 값들은 한 프레임에 2차원 배열을 형성하고, 인코딩 과정에 대한 도전은 이미지의 시각적 관련 정보를 가능한 많이 보유 및 유지하는 방식으로 이 배열의 압축 및 압축해제를 실행하는 것이다.
인트라 모드에서는 각각의 프레임이 그레이스케일 비트맵 이미지이다. 실제로 이미지는 NxN 화소의 블록(2)으로 나누어지며, 각각의 블록은 도 3에서처럼 나머지와는 상관없이 분석된다.
이미지 블록에 대한 정보를 압축하는 가장 간단한 방식은 광도값이 표현되는 정확성을 감소시키는 것이다. 원래 256가지 가능한 광도값 대신에, 128개(0,2,...,254)나 64개(0, 4,...,252)의 값을 고려할 수 있고, 따라서, 광도 정보를 표현하는 데 필요한 화소당 비트 숫자를 각각 12.5%와 25%로 감소시킨다. 동시에 이러한 스칼라양 과정은 인코딩 에러를 유도한다. 이전의 경우에 평균 에러는 화소당 각각 0.5 광도단위값, 1 광도단위값이다. 그러나 스칼라양이 실제 이미지에 존재하는 블록과 인접 화소간 모든 상관관계를 무시하기 때문에, 스칼라양은 매우 비효율적이다.
화소간 상관관계를 설명하는 한가지 방식은 이미지, 즉, 화소의 광도값을 2차원 표면으로 생각하는 것이다. 기존 이미지 압축 알고리즘 중 많은 알고리즘들이 함수 변환을 바탕으로 하고, 이 표면의 함수 형태는 기본 함수 세트를 들어 분해된다.
가장 폭넓게 사용되는 변환은 이산 코사인 변환(Discrete Cosine Transform; DCT)과 이산 파동 변환(Discrete Wavelet Transform; DWT)으로서, 그 근본이 각각 코사인과 파동에 의해 형성된다. 블록 크기가 크다는 것은 더 긴 거리에 대한 화소간 상관관계를 나타내며, 기본 함수의 수는 N2과 동시에 증가한다. JPEG와 MPEG 표준에서는 DCT 코딩에 대한 블록 크기가 8x8이다. DCT와 DWT간의 본질적 차이점은 DCT의 경우에는 기본 함수가 전체 블록 사이에 퍼져있지만 DWT의 경우에는 기본 함수가 공간에 국부화되어 있다는 점이다.
인터 모드에서는 모션 압축된 블록이 원본과 일치하지 않을 수 있다(인터 모드는 인터 프레임이나 블록을 압축하는 데 사용되는 비디오 압축 기술로서, 인터 모드는 이전 프레임(들)을 언급하며, 수정할 수 있다. 모션 압축 기술은 전형적인 인터모드이다). 여러 경우에, 에러가 눈에 띄지만 여전히 매우 작아서, 전체 블록을 새롭게 인코딩하는 것보다는 교정 정보를 수신자측에 전송하는 것이 더 용이하다. 이는 에러가 통상적으로 작고 실제 이미지 블록 내 광도값보다 작은 수의 비트로 표현될 수 있기 때문이다. 이 내용과는 별도로, 이미지 블록 자체와 유사한 방식으로 차이 블록이 인코딩될 수 있다.
함수 변환에 대한 대안으로, 벡터 양자화(Vector Quantization; VQ)를 이용할 수 있다. VQ 방법에서, NxN 이미지 블록(2)이나 N2벡터(3)(도 3 참조)가 미리 트레이닝된 코드북으로부터 동일한 크기의 벡터와 짝지워진다. 각각의 블록에 대하여, 최적의 부합 코드 벡터는 원 이미지 블록을 나타내도록 선택된다. 모든 이미지 블록(2)은 정해진 수의 코드 벡터(4)에 의해 표시된다. 즉, 벡터가 양자화된다. 최적으로 부합하는 벡터의 지표는 디코더에 전송되고, 동일 코드북의 디코더 사본으로부터 벡터를 찾아냄으로서 이미지가 회복된다.
VQ의 인코딩 품질은 코드북의 벡터 숫자와 코드북을 준비하는 데 사용되는 트레이닝 이미지 세트에 따라 좌우된다. 벡터 공간의 크기는 블록 치수 N의 2차함수(N2화소수)로 좌우되는 반면, 가능한 벡터의 수는 256λ으로 커진다. 이때 λ는 N2이다. 코드북의 벡터는 이 모든 벡터를 나타내야 한다. 따라서, 블록 크기를 증가시키면서 인코딩된 이미지의 품질을 일정하게 유지하기 위해, 요구되는 코드북 크기가 기하급수적으로 증가한다. 이 사실은 메모리가 엄청나게 많이 필요하다는점을 제시하며, 각 벡터에 대한 검색 시간이 너무 길어진다는 점을 제시한다. 메모리를 줄이면서 검색 시간 요청에도 부합하는 양호한 품질을 얻기 위해 기본 VQ 기법의 여러 확장이 제시되고 있다.
트리-검색 VQ같은 일부 확장은 코드북 크기에 비해 더 짧은 검색 시간을 목표로 한다. 이 알고리즘은 이미지 품질을 개선시키지 않으며, 단지 다른 VQ 기반 알고리즘의 속도 향상을 위한 잠재성으로 인해 관심의 대상이 될 뿐이다.
이미지 품질 개선을 목표로하는 VQ 알고리즘은 특화된 코드북을 한개보다 많이 이용한다. 알고리즘 세부사항에 따라, 이들은 두 카테고리로 나눌 수 있다. VQ 알고리즘은 인코딩된 이미지 블록을 반복적으로 개선시켜서(도 4), 한 스테이지의 인코딩 오류가 또다른 코드북을 이용하여 또한 인코딩되어 나머지 에러를 감소시킨다. 또는, 각 블록에서 이미지 물질을 먼저 분류하고 그후 여러 다른 종류의 물질에 대해 여러 다른 종류의 코드북(411, 412, 413)을 이용한다. 다단계 변형이 직렬이나 수직구조 VQ로 표시된다. 이때 다단계 변형은 분류 VQ(classified VQ)라 불린다. 이들 모두 이후의 모티베이션은 코드북을 특화함으로서, 벡터 공간의 유효 치수를 감소시키는 것이다. 상상할 수 있는 모든 이미지 블록을 나타내는 대신에, 주어진 값 아래로 요소들이 제한되는 에러 벡터로 코드북이 특화될 수 있고, 또는 이들을 따라 이어지는 에지를 가진 블록으로 특화될 수도 있다. 직렬 VQ 변형에서, 벡터 치수는 단계간 블록 크기를 감소시킴으로서 더욱 감소된다.
변환 코딩 기술의 주된 장점은 해석학적으로 예측가능한 성질에 있고, 그 상대적 중요성 측면에서 순위를 가지는 최종 상관해제 계수(resulting decorrelated coefficients)에 있다. 이 태양들은 가용한 전송 라인 대역폭에 따라 스트림의 축적성 및 효율적 속도-조절을 가능하게 한다.
모든 기본 함수가 동일 블록 영역에서 확장되는 DCT와 같은 변환은 공간적 위치와 기본 함수 확장이 변화하는 DWT식 접근법보다 아티팩트를 차단하기 쉽다. 이 차이는 날카로운 에지를 내장한 이미지 블록을 인코딩할 때 명백하다. 이러한 블록의 DCT는 원칙적으로, 한개 이상의 방향으로 모든 가능한 주파수를 도출한다.이에 반해, 블록의 DWT는 단 몇 개의 0이 아닌 계수만을 이끌 수 있다. 다른 한편 DCT는 부드럽게 변화하는 더 큰 표면이나 조직을 인코딩하기에 보다 효율적이며, 이는 0이아닌 수많은 파동 계수를 필요로할 수 있다.
대부분의 실제 이미지 블록에서, 0 변환 계수의 숫자는 0이아닌 변환계수의 숫자에 적어도 필적할만은 하다. 따라서 변환 기술의 인코딩 효율은 변환 기술 각각이나 모두에 대해 여러 비트를 이용하거나 전송하지 않으면서 0 변환을 표현하는 효율에 의해 대부분 결정된다. DCT에서는 계수들이 가장 중요하고 자주 발생하는 것으로부터 덜 중요하고 드문 방향으로 순위매겨진다. 0들은 순서에서 자주 나타나고 따라서 동작-길이를 효율적으로 코딩할 수 있다. DWT에서는, 계수들이 공간적으로 구분되는 수직주고로 순위를 매기며, 이 경우에 0 계수는 수지구조의 전체 브랜치에서 동시에 자주 발생한다. 이러한 브랜치는 1 코드 워드에 의해 집합적으로 무효로될 수 있다.
모든 변환 코딩 기술은 한개의 주된 단점을 공유한다. 즉, 연산 측면에서 무거운, 즉, 부담되는 디코딩 측면을 공유한다. 디코딩은 역함수 변환을 포함하며, PC 수준의 프로세서에서만 고속으로 실행될 수 있다. 이들 요구사항은 PDA 장치와 이동전화에게도 적용된다. 통상적으로 변환 코딩은 어떤 비디오를 볼 수 있기 전에 다운로드받고 설치될 필요가 있는 특정 플레이어 해법에 변환 코딩이 또한 묶인다.
변환 코덱의 또다른 단점은 차이 인코딩의 상황에서 발생한다. 원본과 인코딩된 프레임 및 개별 블록간 차이는 이미지의 초기 인코딩에 사용되는 방법에 따라 좌우된다. 변환 코딩 방법을 위해, 나머지 차이는 유도되는 양자화 오류로 인한 것일 뿐이지만, 모션 보정 기법이나 VQ-형 기술의 경우에는 이 차이가 작은 크기에도 불구하고 비교적 임의적이다. 이 경우에, 함수 변환은 실제 이미지의 계수보다 훨씬 압축하기 어려운 0이아인 성분의 임의적 조합을 도출한다.
벡터 양자화 기술의 장점 및 단점은 변환 코덱과는 정반대이다. 압축 기술은 극단적인 광 디코딩 과정을 강조항 항상 비대칭이다. 가장 간단한 형태에서는 디코딩이 코드 벡터에 대한 탐색표(table lookup)로만 구성된다. 플레이어 응용프로그램은 크기가 매우 작게 만들어지고, 비디오 스트림 시작시 전송된다.
코드 벡터는 전체 NxN 블록에 대응하고, 이러한 블록에 대한 모든 변환 계수에 대응한다. 한 벡터 지표가 각각의 블록에 대해 전송되면, 압축비가 커질수록 블록 사이즈가 커진다. 그러나, N이 클 경우 좋은 품질을 얻기 위해서는 큰 코드북이 필요하다. 이는 인코딩과 수신측으로의 코드북 전송 모두에 대해 시간이 더 길어진다는 것을 의미한다.
다른 한편, 블록이 작을수록, 인코딩 결과가 더 정확해진다. 블록이나 벡터가 작으면 더 작은 코드북을 요하게 되고, 이로 인해 메모리가 덜 필요하고 수신측으로의 전송이 더 빨라진다. 또한, 코드 벡터 검색 동작이 빨라져, 전체 인코딩 과정을 빠르게 한다. 블록 크기가 작은 경우의 단점은 다량의 지표(indices)를 전송해야한다는 점이다.
개선된 VQ 변형에서는, 벡터 공간이 여러 부분으로 나누어지고 각각의 부분에 대해 한개씩의 코드북이 준비된다. 직렬 VQ에서는, 일련의 인코딩 단계로 얻을 수 있는 벡터 V의 숫자의 효율적 증가에 의해 이미지 품질이 개선된다. 여러 다른단계의 벡터들이 서로 수직인 이상적 경우에, Vi 벡터의 코드북을 가진 단계 I를 추가하면 V가 VxVi로 증가한다. 이 과정은 합리적인 총 코드북 크기와 검색 시간으로 이미지 품질을 크게 개선시킬 수 있다. 각각의 블록을 인코딩하는 데 필요한 비트 수를 댓가로 하여 이 개선이 이루어진다. 이는 Vi = 2n일 경우 n만큼 증가한다. 블록 크기가 단계별로 감소할 경우 이미지 품질이 또한 개선된다.
그러나 직렬 VQ에는 두가지 문제점이 있다. 먼저, 코드북이 통상적으로, 사람의 신경계를 참고하지 않고 실제 차이 블록에 대해 트레이닝된다. 결과적으로, 벡터가 교정을 반드시 행하는 것은 아니다. 두 번째로, 각각의 블록을 인코딩하는 데 필요한 비트 수가 이용되는 단계 숫자와 함께 증가하고, 도중에 블록 크기가 감소하면 더욱 급격하게 증가한다.
본 발명은 앞서 언급한 결점들을 완화하기 위한 것이다. 이는 청구범위에 설명되는 방식으로 달성된다.
다음의 정의는 본 내용을 읽을 때 고려해야 한다.
기본 모드(Basic Mode): 한개의 이미지나 한개의 비디오 프레임을 인코딩하기 위해 고안된 이미지나 비디오 압축 기술. 이 용어는 차이 모드(Difference Mode)와 구분되어 사용된다.
코딩(Coding): 압축, 인코딩. 압축이 이 상황에서 코딩할 때 기본 동작이라면, 코딩은 압축을 행하기 위한 동작들이라고 이해할 수 있다.
디코딩(Decoding): 압축해제.
차이 모드(Difference Mode): 두 프레임 사이의 차, 일반적으로 원본 프레임과 인코딩된 프레임간 차를 인코딩하는 데 사용되는 이미지나 비디오 압축 기술. 후자의 경우에, 차이는 인코딩 오류로 나타난다.
인코딩(Encoding): 압축
발명에 따르는 해법은 기존 해법의 여러 성질들을 조합한다. 간단히 말해서, DCT와 DWT 접근법으로부터 얻은 개선점을 가지는 직렬 VQ의 변형이다. 발명의 기본적 측면은 최종 코드벡터의 주파수 분포를 미리 결정하기 위해 코드북을 트레이닝할 때 코드북이 처리된다는 점이고, 각각의 블록은 특정 블록의 코딩에 필요한 수많은 단계의 차이 코딩을 이용하여 독립적으로 코딩 및 디코딩된다는 점이다. 발명은 입력으로 차이 블록을 취하고, 필요한 추가 비트와 비교할 때 효율적 방식으로 나머지 오류를 감소시키기 위해 추가적으로 차이 블록을 인코딩한다. 차이 블록은 기본 VQ 인코딩, 모션 보정, DCT, 그리고 DWT를 포함한 어떤 가능한 기본 인코딩으로부터의 결과일 수 있다. 발명은 인터- 및 인트라- 방식의 인코딩 프레임에 상관없이, 이용되는 속도(bps)에 비례하여 이미지 품질을 크게 개선시킨다.
앞서 언급한 사항에 따라, 발명은 데이터 압축을 위한 인코딩 방법에 관한 것으로서, 이 방법에서 데이터가 먼저 인코딩되고, 원 데이터와 인코딩된 데이터 사이의 차이 데이터가 형성되며, 차이 데이터가 한개 이상의 제 1 블록으로 나누어지고, 이 블록들은 한개 이상의 단계에서 인코딩되며, 각각의 단계는 인코딩 동작을 포함하고, 다음 단계에 필요할 경우 현 차이 블록과 인코딩된 현 차이 블록간 (다음번) 차이 블록을 계산하는 동작을 포함하며, 최종 단계에서 이전 차이 블록과 인코딩된 이전 차이 블록간의 최종 차이 블록이 최종 코드북을 이용하여 인코딩될 때까지 단계의 인코딩용으로 적합한 코드북을 이용하여 각각의 단계에서, 이전 단계에서 계산된 차이 블록이 다음번 단계에 대한 입력이 되는 방식으로 일련의 단계들을 실행하고, 상기 차이 블록에 대한 코드북은 트레이닝 차이 물질로 트레이닝된 코드벡터를 내장하며, 트레이닝 이전에, 트레이닝 차이 물질이 미리 처리되어, 데이터의 특정 정보에 대한 웨이팅(weighting)을 위해 각각의 코드벡터의 주파수 분포를 개별적으로 적응시키고, 특정 블록에 필요한 필요 숫자의 단계들을 이용하여 독립적으로 각각의 블록을 인코딩한다.
또한 발명은 인코더에 관련되는 데, 차이를 코딩하는 데 사용되는 한개 이상의 코드북이 특정 주파수 분포로 웨이팅되는 방식으로 상기 인코더는 발명의 창의적 인코딩 방법을 이용하며, 상기 인코더는 특정 블록에 필요한 필요 단계의 수를 할당하기 위한 평가 수단을 포함한다.
더욱이 창의적 인코딩을 고려할 때, 발명은 데이터 압축해제를 위한 디코딩 방법에 관한 것으로서, 이 방법은 인코딩된 차이 데이터의 압축해제를 위한 코드북을 포함하고, 이때 상기 코드북 중 한개 이상이 코드벡터를 내장하고, 상기 코드벡터는 특정 주파수 분포로 웨이팅되며, 적어도 가장 중요한 주파수를 포함하는 압축해제 결과를 함께 실행하는 코드북을 이용한다.
더욱이, 발명은 인코딩된 차이 데이터의 압축해제를 위한 코드북을 이용하는 디코더에 관한 것이다. 이때 코드북 중 한개 이상이 특정 주파수 분포로 웨이팅된다.
도 1은 N1*M1 화소의 프레임 크기를 가지는 예의 도면.
도 2는 N*N 화소의 블록 크기로 프레임을 나누는 예의 도면.
도 3은 N*N 화소의 블록 크기, 이 블록을 나타내는 벡터, 그리고 이 벡터를 양자화한 코드 벡터의 예 도면.
도 4는 공지된 벡터 양자화 배열의 예 도면.
도 5는 발명에 따르는 차이 물질의 트레이닝의 예 도면.
도 6과 7은 각각의 블록을 블록 전용 숫자의 코딩 단계로 코딩하기 위한 창의적 방식의 간단한 예 도면.
도 8은 발명에 따르는 평가 수단을 내장한 배열의 예 도면.
도 9는 창의적 방법을 설명하는 순서도의 예 도면.
도 10은 발명을 위한 배열을 설명하는 예 도면.
도 4는 공지된 벡터 양자화 배열의 예를 도시한다. 발명은 배열의 성능을 크게 개선시키고, 배열을 이용하는 가용 영역을 확장한다. 이 문헌에서 블록이 단일한 것으로 언급될 경우 실제로 이미지의 모든 블록이 코딩/디코딩될지라도, 설명을 돕기 위해 단일 형태가 이용된다.
원래의 8*8 블록을 고려해보자. 제 1 단계에서, 이 블록은 한개의 코드북(45)이나 대안으로 여러개의 코드북(411)을 이용하여 코딩된다(41). 분류 코드북이 직렬 VQ에 사용될 수 있다. 코딩이 원본 블록에 관련되기 때문에, 제 1 단계는 기본 모드에 속한다. 원 블록과 코딩된 블록간 차이(416)가 계산된다. 차이, 즉 인코딩 오류는 예를 들어 아래와 같은 왜곡으로 표준 구간에서 측정될 수 있다.
이때 Dtot는 NxN 블록에 대한 총 왜곡을 표시하고, Di,j는 블록의 i번째항, j번째 열의 화소의 왜곡이며, Yo i,j와 Ye i,j는 각각 원본 블록과 인코딩된 블록의 상기 화소의 광도값이다.
왜곡 블록은 네 개의 4x4 서브블록(417)으로 나누어져서(414), 코드북 A(46)을 이용하여, 또는 대안으로 여러 코드북(412)을 이용하여 제 2 단계(차이 모드)에서 인코딩된다(42). 각각의 차이 코딩된 4x4 블록을 원 4x4 차이 블록에서뺀다(49). 나머지 차이(418)는 네 개의 2x2 서브블록으로 또한 나누어진다(415). 각각의 2x2 차이 블록(419)은 또다른 코드북(E 47)을 이용하여 인코딩(43)되고, 대안으로 코드북(413)을 이용하여 인코딩된다. 최종 나머지 차이를 얻기 위해 코딩된 각각의 2x2 차이 블록을 원본 2x2 차이 블록에서 뺀다(410). 블록 크기가 각 단계에서 유지될 수도 있으며, 이 경우에는 블록 분할이 실행되지 않는다.
각각의 코드북은 실제 '이미지' 물질로 트레이닝된다. 즉, 코드북이 사용될 단계에서 발생하는 실제 차이 블록을 가진 차이 모드에서 트레이닝된다. 그 가르침은 가능한 최적으로 트레이닝 세트를 나타내는 주어진 수의 벡터를 찾는 과정을 포함한다. 이는 표준 k-수단 알고리즘을 이용하여 달성된다. 이 우월한 측정값은 트레이닝 벡터와 트레이닝 벡터에 가장 가까운 코드 벡터 사이 유클리드 거리의 합이다.
이 과정은 일상적 직렬 VQ와 동등하고, 간단한 디코딩처럼 동일한 장점을 가진다. 발명은 주된 약점을 해결하고 성능을 강화하기 위해 고안된 두 수정방식으로 구성된다.
먼저, 도 5에 도시되는 바와 같이, 코드북 트레이닝에 사용되는 트레이닝 물질이 미리 처리되어(51), 최종 코드벡터의 주파수 분포를 미리 결정한다. 이는 모든 트레이닝 블록을 코사인 변환하고, 계수를 0으로 설정함으로서 일부 모드 선택을 제거하고, 그리고 마지막으로 역변환을 통해 새 트레이닝 블록을 얻음으로서 이루어진다. DCT는 트레이닝 물질을 사전처리하기 위한 유일한 방식이 아니며, 또다른 적절한 함수 변환이 사용될 수 있다.
이 과정 아래의 모티베이션은 두가지이다. 하나는 모든 주파수를 내장한 전체 블록을 교정하려 시도하는 것보다, 저-주파 오류를 교정하는 데 있어 제한된 숫자의 비트에 초점을 맞추는 것이 시각적으로 보다 중요하다. 주파수를 나타내는 계수들은 관찰자에 대해 그 중요성 측면에서 순위매겨질 수 있다. 눈은 높은 공간 주파수에 비해 낮은 공간 주파수에서 보다 민감하다. 모든 주파수가 높으면 블록 크기가 작기 때문에, 일부 절대 항목에서 이는 반드시 저주파를 표시하는 것이 아니다. 다시 말해서, 최종 코드 벡터가 요망 주파수 분포로 적응된다.
두 번째로, 구분 주파수 영역으로 트레이닝된 두개 이상의 코드북의 모든 코드 벡터는 적어도 거의 수직이고, 서로를 보완하기 위해 함께 효율적으로 이용될 수 있다. 이는 차이 인코딩의 두개 이상의 단계와 기본 인코딩의 조합으로 달성되는 가능한 코드 벡터의 수를 증가시킨다. 제한된 수의 DCT 주파수로 코드벡터를 제한하는 것은 벡터 치수를 효과적으로 감소시킨다. 이 이유로, 주어진 크기의 코드북은 어떤 주파수 선택도 이루어지지 않은 경우보다 트레이닝 벡터와 보다 잘 부합한다. 이 사실은 차이 블록의 시각적으로 중요한 성분을 보다 효과적으로 인코딩하게 한다.
실제 응용프로그램으로의 일부 가능한 주파수 선택은 가장 낮은 주파수만을 가진 블록, 0의 평균값을 가진 블록, 그리고 중간 주파수(첫번째 경우보다는 높으나 가장 높은 주파수는 아닌)를 가진 블록을 포함한다. 사전처리 이후, 실제 트레이닝이 처리되고(52), 이로부터 최적 부합 코드 벡터(53)가 발견되고 코드북이 형성된다.
표준 직렬 VQ에 대한 나머지 수정은 차이 인코딩의 공간 적응력에 관한 것이다. DWT 에서, 추가적인 차이 모드의 이용은 각각의 블록에 대해 별도로 결정된다. 즉, 한 블록의 인코딩은 여러 일련 단계의 차이 인코딩을 포함하고, 이때 그 인접 블록은 단지 기본 모드로 충분히 잘 인코딩된다고 결정된다.
도 6과 7은 블록 전용 숫자의 코딩 단계로 각각의 블록을 코딩하기 위한 창의적 방법의 간단한 예를 도시한다. 도 6은 코딩된 8x8 블록 ORG을 도시하며(도 4의 41과 비교), 원본과 코딩된 블록간 차이는 제 1 단계에서 4x4 블록 D1A~D1D로 나누어진다(도 4, 417). 이 다음에, 각각의 블록은 추가 단계의 코딩이 필요하기 때문에 검사된다. 원래 8x8 블록이 균일한 배경 사이에 라인(61)을 도시하기 때문에, 제 1 단계의 코딩은 배경만이 존재하는 블록 D1A용으로 충분하다. 나머지 블록 D1B~D1D는 검사에 따르는 추가적 코딩을 필요로한다.
도 7은 코딩된 4x4 차이 블록(도 4, 415)을 제 2 단계에서 2x2 블록 D22A-D22D, D23A-D23D, D24A-D24D로 나누는 것을 도시한다. 이 분할 이후, 각각의 블록은 추가 코딩 단계의 필요를 위해 검사된다. 블록 D22A, D22B, D22C, D23A, D23B, D23C, D24B, D24C, D24D는 균일한 배경 사이에 라인(61)의 마이너 부분만을 도시하기 때문에, 이 블록들을 위해 제 2 단계의 코딩이 충분하다. 나머지 블록 D22D, D24A, D23D는 제 3 코딩 단계를 추가로 필요로한다. 원래의 8x8 블록을 코딩한 결과로, 한개의 4x4 블록, 즉, 블록 D1A가 한 단계를 이용하여 코딩되었고, 여러 2x2 블록은 두 단계를 이용하여 코딩되었으며, 세 개의 2x2 블록(D22D, D24A, D23D)은 세 단계를 이용하여 코딩되었다.
추가 코딩 단계의 이용에 대한 결정은 블록 왜곡에 일부 감소를 얻으면서 추가 비트를 이용하기 위해 상대적 비용을 포함하는 일부 비용 함수 형태로 속도-왜곡 개념을 바탕으로 한다. 다시 말해서, 추가 단계를 이용시의 비용이 너무 클 경우, 추가 단계가 불필요하다. 비용 함수는 원하는 방식으로 웨이팅(weighting)될 수 있다. 즉, 왜곡에 비례하여 사용되는 비트 비용을 웨이팅할 수 있다. 더욱이, 웨이팅은 왜곡값 당 비트의 가중 이용을 고려한다. 비트 이용은 왜곡값 범위에 대해 선형으로 또는 비선형으로 웨이팅된다.
이 과정의 장점은 각 프레임 사이에서 비트할당의 유연성이 증가한다는 점이다. 결과적으로, 일련의 차이 모드와 코드벡터로 어려운 영역이 인코딩된다. 이때 더 간단한 영역이 한번에, 또는 달리, 교정될 수 있다. 이 유연성은 어느 주어진 비트 속도에 대해 차이 단계의 이용을 증가시킨다.
앞서 언급한 사항들로 인해, 창의적 배열은 추가 코딩 단계의 이용 필요성을 검사하기 위해 평가 수단을 필요로한다. 도 8에 도시되는 바와 같이, 평가 수단(102)은 사용되는 분할 모듈(101)로 구현될 수 있으나(도 4, 414, 415, 410와 비교), 평가 수단은 개별적 모듈일 수 있다.
발명의 선호되는 구현
발명의 배열은 각각의 차이 모드 단계에서 입력으로 차이 블록을 취하고, 필요한 추가 비트와 비교하여 효율적 방식으로 나머지 오류를 감소시키기 위해 이를 추가적으로 인코딩한다. 차이 블록은 기본 VQ 인코딩, 모션 보정, DCT, 또는 DWT같은 어떤 기존 인코딩으로부터의 결과일 수 있다.
발명의 해법은 두 부분으로 구성된다. 즉, 코드북의 트레이닝과, 비디오 인코딩에 코드북을 사용하기 위한 알고리즘으로 이루어진다. 8x8 블록 크기를 이용한 모션 보정과 VQ의 일부 조합으로 인코딩된, 그레이스케일 비디오로부터의 프레임을 고려해보자. 최종 차이 이미지는 4x4 블록으로 나누어지고, 이는 차후 두 단계에서 인코딩된다.
제 1 차이 코드북, 코드북 A의 트레이닝은 실제 차이 물질로 실행되며 저주파수로 실행된다. 즉, 일정한 성분이 제거된다. 표준 k-수단 알고리즘은 저주파를 강조하려는 경향이 있으나 최종 벡터에 허구의 한정 평균을 발생시킬 수 없다. 256벡터를 가지는 코드북의 경우에, 주파수는 주파수 표의 하부반으로 집중된다.
제 2 단계 코드북, 코드북 B는 가령 저주파 중 1/3이 제거된 차이 블록으로 트레이닝된다. 최종 코드 벡터는 트레이닝 알고리즘으로 인해 이 주파수들에 일부 웨이트를 가지지만 고주파에 주된 관심이 주어진다. 따라서, 코드북 A와 B로부터의 코드 벡터는 서로를 효율적으로 보완할 수 있다. 코드북간 일부 중복이 있다는 사실은 A로부터 두 벡터, 또는 B로부터 두 벡터, 또는 서로로부터 하나씩을 조합함으로서 이용될 수 있다. 중복은 역변환 이전에 변환 계수로 트레이닝을 실행함으로서 방지할 수 있다.
각각의 4x4 블록에 대해 코드북 A로부터 최적 부합 벡터를 먼저 검색함으로서 실제 인코딩이 진행된다. 그후 왜곡의 블록 감소가 계산되고, 유도된 속도-왜곡 비용이 차이 벡터를 이용하지 않은 비용과 비교된다. 전형적인 비용 함수는 C = d + λb이다. 이때, d는 왜곡, λ는 웨이팅 인자(weighting factor), 그리고 b는 블록에 이용되는 비트 수이다. 웨이팅 인자는 d에 첨부될 수 있고, 또는 d와 b에 첨부된 별도의 웨이팅 인자를 이용하여 웨이팅이 처리될 수도 있다. 코드 벡터는 이것이비용을 감소시키는 상기 블록에 대해서만 선택된다. 다음 단계에서, 코드북 B의 최적 부합 코드 벡터가 나머지 4x4 차이 블록에 대해 검색된다. 비용이 합리적인 경우에만 코드 벡터가 다시 선택된다. 코드 벡터에 대한 위치는 원래 8x8 블록 중 어느 서브블록이 코드북 A로부터의 벡터와 상관되는지, 그리고 코드북 B로부터의 벡터와 상관되는지 결정하기에 1바이트면 충분하도록 단일 비트로 표현될 수 있다.
마지막으로, 코드벡터는 0 주변에 집중되며, 주로 매우 작은 값을 가진다. 이러한 코드북은 수신자측에 전송하기 전에 효율적으로 압축될 수 있고, 따라서 비디오 수신자에 대한 초기 대기 시간을 감소시킨다.
도 9는 발명의 방법을 설명하는 순서도의 한 예다. 제 1 단계(81)는 트레이닝될 코드벡터의 주파수 분포를 미리 결정하기 위해 트레이닝 물질을 사전처리하는 것이다. 사전처리가 미리 이루어짐에도 불구하고, 이 단계는 발명에 따르는 배열의 요망 성능을 얻기 위한 본질적 단계이다. 다음 단계(82)는 사전처리된 트레이닝 물질을 이용하여 코드벡터를 트레이닝하는 것이다. 코드북이 형성된다. 마지막으로, 코딩/디코딩의 필요한 숫자의 단계가 각각의 원본 블록에 대해 개별적으로 이용되는 방식으로 직렬 VQ를 이용하여 정보가 코딩/디코딩된다.
도 10은 발명의 한 배열의 예를 도시한다. 실제로, 발명은 완전한 비디오 압축/압축해제 소프트웨어의 일부로 구현된다. 압축, 즉, 코딩, 소프트웨어(91)는 송신 단말기(93)에 위치하는 것이 일반적이다. 소프트웨어는 사용자 인터페이스, 비디오 및 오디오 정보를 읽어들이기 위한 매체 판독기, 일부 형태의 기본 인코딩, 본 발명에서 제안되는 차이 인코딩 알고리즘 및 코드북, 스트림 전송을 위한 일부 해법, 그리고 비디오 스트림의 시작에서 수신 단말기(94)에 전송될 작은 디코딩 소프트웨어 패키지(92)를 포함한다. 그러나, 대안으로, 디코딩 소프트웨어가 수신 단말기에 영구적으로 위치할 수도 있다.
발명은 기존 해법의 여러 가지 최적 성질을 조합한다. 간단히 말해서, DCT 및 DWT 접근법으로부터 얻는 일부 개선점을 가지는 직렬 VQ의 변형이다. 원본 정보의 인코딩은 VQ, 모션보정, 또는 함수 변환같은 인코딩 기술을 이용하여 만들어질 수 있고, 차이 정보는 VQ를 이용하여 처리된다. 발명의 유일한 단점은 코드북 검색이 느릴 수 있다는 것인데, 이는 각각의 블록 및 각각의 코드북에 대해 한번만 실행되면 된다. 그러나, 이는 트리-검색 VQ같은 수많은 고속 검색 알고리즘 중 하나를 이용함으로서 해결될 수 있다.
발명의 인코딩이 본 상황에서 주로 설명되었으나, 발명은 디코딩에도 또한 관련된다. 디코딩시에, 사용되는 코드북은 코드벡터를 내장하여야 하며, 코드벡터는 어떤 주파수 분포에 대해 웨이팅(weighting)된다. 이 코드북을 함께 이용함으로서, 압축해제 결과가 가장 주목할만한 주파수를 얻는다. 물론 대안의 형태 및 적응 방법이 수없이 많이 존재한다. 예를 들어, 인트라 및 인터 프레임 함수 변환이나 벡터 양자화의 기본 인코딩의 형태는 발명의 배열에 대한 하부 기술일 수 있다. 왜냐하면, 이들은 원본 이미지와 인코딩/디코딩된 이미지 사이의 잔류물이나 차이를남기기 때문이다. 발명은 각각의 단계에서 블록 크기를 바꾸면서 차이 인코딩의 순서에 한 단계로 이용될 수도 있다. 다시 말해서, 각각의 순서(단계)에서, 차이 블록을 코딩하기 전에 DCT를 이용하여 차이 블록이 처리될 수 있다. 즉, 실제 코딩 이전에 사전 인코딩이 있다는 것이다. 차이는 어떤 블록 크기로도 인코딩될 수 있다. 차이 벡터에 대한 벡터 라이브러리가 어떤 원칙으로 트레이닝될 수 있다. 즉, 이미지 블록이나 함수 변한으로 트레이닝될 수 있다. 코드북은 인코딩 과정 중 적응되는 방식으로 수정될 수도 있다. 인코딩 과정 및 여기서 제시되는 인코딩 과정 및 개념은 RGB, YUV, YCrCb, CieLAB, 등같은 칼라 표현에 적용할 수 있다.
앞서 요청 내용을 결론짓기 위해, 아래와 같은 비디오 압축 기술이 필요하다. 즉, 높은 압축비를 가지고 우리가 양호하게 인지할 수 있는 이미지 품질을 유지하며 그 디코딩 측은 최소의 처리 전력만을 필요로하는, 이러한 비디오 압축 기술이 필요하다. 발명은 창의적 개념의 범위 내에서 여러 해법으로 구현될 수 있다.
Claims (44)
- 데이터 압축을 위한 인코딩 방법으로서, 이 방법에서는 데이터가 먼저 인코딩되고 원본 데이터와 인코딩된 데이터간에 차이 데이터가 형성되며, 차이 데이터가 한개 이상의 제 1 블록들로 나누어지고, 이 블록들은 한개 이상의 단계에서 인코딩되며, 각각의 단계는 인코딩 동작을 포함하고, 다음 단계에 필요할 경우 , 현 차이 블록과 인코딩된 현 차이 블록 사이의 다음 차이 블록을 계산하는 동작을 포함하며, 최종 단계에서 이전 차이 블록과 인코딩된 이전 차이 블록 사이의 최종 차이 블록이 최종 코드북을 이용하여 암호화될 때까지 단계의 암호화를 위한 코드북을 이용하여 각각의 단계에서 이전 단계에서 계산된 차이 블록이 다음 단계에 대한 입력이 되는 방식으로 일련의 단계들을 실행하며, 이때 상기 차이 블록에 대한 코드북은 트레이닝 차이 물질로 트레이닝된 코드벡터를 내장하는, 이러한 인코딩 방법에서,트레이닝 이전에, 트레이닝 차이 물질이 사전처리되어, 데이터의 특정 정보에 웨이팅하기 위한 각 코드벡터의 주파수 분포를 개별적으로 적합하게 적응시키고 특정 블록에 필요한 필요 숫자의 단계를 이용하여 각각의 블록을 독립적으로 인코딩하는 것을 특징으로 하는 데이터 압축을 위한 인코딩 방법.
- 제 1 항에 있어서, 상기 단계들 중 한 단계 이상에서, 차이 블록이 다음 단계의 차이 블록으로 이용되기 위해 서브블록으로 나누어지는 것을 특징으로 하는방법.
- 제 1 항에 있어서, 상기 단계들 중 한개 이상의 단계에서 한개보다 많은 코드북이 이용되는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 상기 단계들 중 한개 이상의 단계에서 한개보다 많은 코드북이 이용되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 이산 코사인 변환을 이용하여 트레이닝 물질의 사전-처리가 이루어지는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 트레이닝 물질의 사전처리가 함수 변환을 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 추가 단계를 이용하는 비용이 너무 클 경우 추가 단계가 불필요해지는 방식으로, 비용 함수를 이용하여 필요한 수의 단계가 달성되는 것을 특징으로 하는 방법.
- 제 7 항에 있어서, 비용 함수는 나머지 차이를 고려하며, 의문스런 블록을 코딩하기 위해 단계 비용을 나타내는 사용 비트수를 고려하는 것을 특징으로 하는방법.
- 제 8 항에 있어서, 비트수가 웨이팅(weighting)되는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 트레이닝 물질의 사전처리가 어떤 기능적 변환을 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 트레이닝 물질의 사전처리가 함수 변환을 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 추가 단계를 이용하는 비용이 너무 클 경우 추가 비용이 불필요하다는 방식으로, 비용 함수를 이용하여 필요한 수의 단계들을 얻는 것을 특징으로 하는 방법.
- 제 12 항에 있어서, 의문스런 블록을 코딩하기 위해 단계 비용을 나타내는 사용 비트수와, 나머지 차이를 비용 함수가 고려하는 것을 특징으로 하는 방법.
- 제 13 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 이산 코사인 함수를 이용하여 트레이닝 물질의 사전처리가 이루어지는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 트레이닝 물질의 사전처리가 함수 변환을 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 추가 단계 이용 비용이 너무 클 경우 비용 단계가 불필요하다는 방식으로, 필요한 수의 단계가 비용 함수를 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 17 항에 있어서, 의문스런 블록을 코딩하기 위해 단계 비용을 나타내는 사용 비트수와, 나머지 차이를 비용 함수가 고려하는 것을 특징으로 하는 방법.
- 제 18 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 방법.
- 제 4 항에 있어서, 트레이닝 물질의 사전처리가 이산 코사인 변환을 이용하여 이루어지는 것을 특징으로하는 방법.
- 제 4 항에 있어서, 트레이닝 물질의 사전처리가 함수 변환을 이용하여 이루어지는 것을 특징으로 하는 방법.
- 제 4 항에 있어서, 추가 단계를 이용하는 비용이 너무 클 경우 추가 단계가 불필요하다는 방식으로, 비용 함수를 이용하여 필요한 숫자의 단계를 얻는 것을 특징으로 하는 방법.
- 제 22 항에 있어서, 의문스런 블록을 코딩하기 위해 단계 비용을 나타내는 사용 비트수와, 나머지 차이를 비용 함수가 고려하는 것을 특징으로 하는 방법.
- 제 23 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 단계들 중 한 단계이상에서 차이 블록이 인코딩 이전에 처리되는 것을 특징으로 하는 방법.
- 제 2 항에 있어서, 상기 단계들 중 한 단계 이상에서 차이 블록이 인코딩 이전에 처리되는 것을 특징으로 하는 방법.
- 인코딩된 차이 데이터의 압축해제를 위한 코드북을 포함하는 데이터의 압축해제를 위한 디코딩 방법으로서,상기 코드북 중 한개 이상이 코드벡터들을 내장하고, 코드벡터들은 특정 주파수 분포로 웨이팅되어 있으며, 상기 코드북을 이용하여 한개 이상의 가장 주목할만한 주파수를 포함하는 압축해제 결과를 함께 실행하는 것을 특징으로 하는 디코딩 방법.
- 데이터 압축을 위한 인코더로서, 이 인코더에서는 데이터가 먼저 인코딩되고 원본 데이터와 인코딩된 데이터간에 차이 데이터가 형성되며, 차이 데이터가 한개 이상의 제 1 블록들로 나누어지고, 이 블록들은 한개 이상의 단계에서 인코딩되며, 각각의 단계는 인코딩 동작을 포함하고, 다음 단계에 필요할 경우 , 현 차이 블록과 인코딩된 현 차이 블록 사이의 다음 차이 블록을 계산하는 동작을 포함하며, 최종 단계에서 이전 차이 블록과 인코딩된 이전 차이 블록 사이의 최종 차이 블록이 최종 코드북을 이용하여 계산되고 암호화될 때까지 단계의 암호화를 위한 코드북을 이용하여 각각의 단계에서 이전 단계에서 계산된 차이 블록이 다음 단계에 대한 입력이 되는 방식으로 일련의 단계들을 실행하며, 이때 상기 차이 블록에 대한 코드북은 트레이닝 차이 물질로 트레이닝된 코드벡터를 내장하는, 이러한 인코더에서,차이 코딩을 위해 사용되는 한개 이상의 코드북이 특정 주파수 분포로 웨이팅되고, 인코더는 특정 블록을 위해 필요한 필요 숫자의 단계들을 할당하기 위한 평가 수단을 포함하는 것을 특징으로 하는 인코더.
- 제 28 항에 있어서, 상기 단계들 중 한 단계 이상에서 차이 블록이 다음 단계의 차이 블록으로 이용하기 위해 서브블록으로 나누어지는 것을 특징으로 하는 인코더.
- 제 28 항에 있어서, 상기 단계들 중 한 단계 이상에서 한개보다 많은 코드북이 사용되는 것을 특징으로 하는 방법.
- 제 29 항에 있어서, 상기 단계들 중 한개 이상에서 한개보다 많은 코드북이 이용되는 것을 특징으로 하는 방법.
- 제 28 항에 있어서, 추가 단계를 이용시의 비용을 계산하는 비용 함수를 상기 평가 수단이 포함하는 것을 특징으로 하는 인코더.
- 제 32 항에 있어서, 의문스런 블록을 코딩하기 위해 단계들의 비용을 나타내는 사용 비트수와, 나머지 차이를 비용함수가 고려하는 것을 특징으로 하는 인코더.
- 제 33 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 인코더.
- 제 29 항에 있어서, 추가 단계 이용시의 비용을 계산하는 비용 함수를 평가 수단이 추가로 포함하는 것을 특징으로하는 인코더.
- 제 35 항에 있어서, 의문스런 블록을 코딩하기 위해 단계들의 비용을 나타내는 사용 비트수와, 나머지 차이를 비용함수가 고려하는 것을 특징으로 하는 인코더.
- 제 36 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 인코더.
- 제 30 항에 있어서, 추가 단계 이용시의 비용을 계산하는 비용 함수를 상기 평가 수단이 추가로 포함하는 것을 특징으로 하는 인코더.
- 제 38 항에 있어서, 의문스런 블록을 코딩하기 위해 단계들의 비용을 나타내는 사용 비트수와, 나머지 차이를 비용함수가 고려하는 것을 특징으로 하는 인코더.
- 제 39 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 인코더.
- 제 31 항에 있어서, 추가 단계 이용시의 비용을 계산하는 비용 함수를 상기 평가 수단이 추가로 포함하는 것을 특징으로 하는 인코더.
- 제 41 항에 있어서, 의문스런 블록을 코딩하기 위해 단계들의 비용을 나타내는 사용 비트수와, 나머지 차이를 비용함수가 고려하는 것을 특징으로 하는 인코더.
- 제 42 항에 있어서, 비트수가 웨이팅되는 것을 특징으로 하는 인코더.
- 인코딩된 차이 데이터의 압축해제를 위해 코드북을 이용하는 디코더로서, 코드북 중 한개 이상이 특정 주파수 분포로 웨이팅되는 것을 특징으로 하는 디코더.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20012095 | 2001-10-30 | ||
FI20012095A FI112424B (fi) | 2001-10-30 | 2001-10-30 | Koodausmenetelmä ja -järjestely |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030036021A true KR20030036021A (ko) | 2003-05-09 |
Family
ID=8562146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020020066341A KR20030036021A (ko) | 2001-10-30 | 2002-10-30 | 인코딩 방법 및 배열 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20030081852A1 (ko) |
EP (1) | EP1324618A3 (ko) |
JP (1) | JP2003188733A (ko) |
KR (1) | KR20030036021A (ko) |
CN (1) | CN1418014A (ko) |
FI (1) | FI112424B (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020042816A (ko) * | 1999-08-27 | 2002-06-07 | 가부시키가이샤 세라템 테크놀로지 | 화상압축방법 |
US7295702B2 (en) * | 2002-03-28 | 2007-11-13 | Color Savvy Systems Limited | Method for segmenting an image |
WO2003102868A2 (en) * | 2002-05-29 | 2003-12-11 | Pixonics, Inc. | Classifying image areas of a video signal |
US7129954B2 (en) * | 2003-03-07 | 2006-10-31 | Kabushiki Kaisha Toshiba | Apparatus and method for synthesizing multi-dimensional texture |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
JP4617644B2 (ja) * | 2003-07-18 | 2011-01-26 | ソニー株式会社 | 符号化装置及び方法 |
BRPI0515453A (pt) * | 2004-09-17 | 2008-07-22 | Matsushita Electric Ind Co Ltd | aparelho de codificação escalável, aparelho de decodificação escalável, método de codificação escalável método de decodificação escalável, aparelho de terminal de comunicação, e aparelho de estação de base |
US20060080090A1 (en) * | 2004-10-07 | 2006-04-13 | Nokia Corporation | Reusing codebooks in parameter quantization |
FR2879387B1 (fr) * | 2004-12-15 | 2007-04-27 | Tdf Sa | Procede de transmission a debit binaire variable a travers un canal de transmission. |
AU2005239628B2 (en) * | 2005-01-14 | 2010-08-05 | Microsoft Technology Licensing, Llc | Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform |
JP2006295829A (ja) * | 2005-04-14 | 2006-10-26 | Nippon Hoso Kyokai <Nhk> | 量子化装置、量子化プログラム、及び信号処理装置 |
US7692647B2 (en) * | 2006-09-14 | 2010-04-06 | Microsoft Corporation | Real-time rendering of realistic rain |
US8819525B1 (en) * | 2012-06-14 | 2014-08-26 | Google Inc. | Error concealment guided robustness |
USD759062S1 (en) | 2012-10-24 | 2016-06-14 | Square, Inc. | Display screen with a graphical user interface for merchant transactions |
GB2513110A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI92272C (fi) * | 1992-05-20 | 1994-10-10 | Valtion Teknillinen | Kuvansiirtojärjestelmän tiivistyskoodausmenetelmä |
US5398069A (en) * | 1993-03-26 | 1995-03-14 | Scientific Atlanta | Adaptive multi-stage vector quantization |
US5909513A (en) * | 1995-11-09 | 1999-06-01 | Utah State University | Bit allocation for sequence image compression |
-
2001
- 2001-10-30 FI FI20012095A patent/FI112424B/fi active
- 2001-11-19 US US10/001,861 patent/US20030081852A1/en not_active Abandoned
-
2002
- 2002-10-29 EP EP02396159A patent/EP1324618A3/en not_active Withdrawn
- 2002-10-30 CN CN02146094A patent/CN1418014A/zh active Pending
- 2002-10-30 KR KR1020020066341A patent/KR20030036021A/ko not_active Application Discontinuation
- 2002-10-30 JP JP2002315144A patent/JP2003188733A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP1324618A2 (en) | 2003-07-02 |
US20030081852A1 (en) | 2003-05-01 |
EP1324618A3 (en) | 2004-06-09 |
JP2003188733A (ja) | 2003-07-04 |
CN1418014A (zh) | 2003-05-14 |
FI20012095A (fi) | 2003-05-01 |
FI20012095A0 (fi) | 2001-10-30 |
FI112424B (fi) | 2003-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7114653B2 (ja) | 高ダイナミックレンジおよび広色域シーケンスを符号化するシステム | |
US5596659A (en) | Preprocessing and postprocessing for vector quantization | |
EP0658263B1 (en) | Improved vector quantization | |
US7194128B1 (en) | Data compression using principal components transformation | |
Kaur et al. | A review of image compression techniques | |
US20070053429A1 (en) | Color video codec method and system | |
US7412104B2 (en) | Optimized lossless data compression methods | |
KR20030036021A (ko) | 인코딩 방법 및 배열 | |
US7177356B2 (en) | Spatially transcoding a video stream | |
Chawla et al. | Image compression techniques: a review | |
US6738074B2 (en) | Image compression system and method | |
Kumar et al. | Human visual system based enhanced AMBTC for color image compression using interpolation | |
US20020191695A1 (en) | Interframe encoding method and apparatus | |
US20030223633A1 (en) | Method and system for compressing digital images | |
EP1605705A1 (en) | Method for compressing image data acquired from a Bayer color filter array | |
US11823362B2 (en) | Image providing apparatus and image providing method thereof, and display apparatus and display method thereof | |
US6256421B1 (en) | Method and apparatus for simulating JPEG compression | |
US20030219167A1 (en) | Method and system for forming HCVQ vector library | |
Bruna et al. | Predictive differential modulation for CFA compression | |
Singh et al. | A brief introduction on image compression techniques and standards | |
Mishourovsky | Visually Lossless Colour Compression Technology | |
WO2023138391A1 (zh) | 系数解码方法、装置、图像解码器及电子设备 | |
Le Dauphin et al. | Prediction-guided quantization for video tone mapping | |
Koc et al. | Lossless compression of dithered images with the pseudo-distance technique | |
JP2024152068A (ja) | 物体光逆量子化装置、物体光量子化装置、物体光逆量子化方法、物体光量子化方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |