KR20050018659A - 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품 - Google Patents

웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품

Info

Publication number
KR20050018659A
KR20050018659A KR10-2004-7016832A KR20047016832A KR20050018659A KR 20050018659 A KR20050018659 A KR 20050018659A KR 20047016832 A KR20047016832 A KR 20047016832A KR 20050018659 A KR20050018659 A KR 20050018659A
Authority
KR
South Korea
Prior art keywords
data
wavelet
format
wavelet filter
filter
Prior art date
Application number
KR10-2004-7016832A
Other languages
English (en)
Inventor
콜라로브크라시미르
린치윌리엄씨
사운더스스티븐이
다보네토마스에이
Original Assignee
드로플렛 테크놀로지 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 드로플렛 테크놀로지 인코포레이티드 filed Critical 드로플렛 테크놀로지 인코포레이티드
Priority to KR10-2004-7016832A priority Critical patent/KR20050018659A/ko
Publication of KR20050018659A publication Critical patent/KR20050018659A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

데이타를 압축하기 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 먼저 보간 수식이 수신된다. 이러한 보간 수식은 데이타를 압축하기 위해 사용된다. 사용시, 적어도 하나의 데이타 값이 보간 수식에 의해 요구되는지의 여부가 판정되며, 여기서 요구된 데이타 값은 이용 가능하지 않다. 이 경우, 요구된 이용 가능하지 않은 데이타 값을 생성하기 위해 외삽 연산이 수행된다.

Description

웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품{WAVELET TRANSFORM SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT}
본 발명은 데이타 압축에 관한 것으로, 보다 구체적으로는 웨이브렛을 활용한 데이타 압축에 관한 것이다.
비디오 "코덱"(압축기/압축해제기)은 이미지 품질, 프로세서 조건(즉, 비용/전력 소비) 및 압축율(즉, 결과 데이타율)의 균형을 맞춤으로써 데이타 압축 스트림을 위해 요구된 데이타율을 감소시키기 위해 사용된다. 현재 이용 가능한 압축 접근방식은 상이한 범위의 트레이드-오프를 제공하고 복수의 코덱 프로파일을 생성하며, 여기서 각각의 프로파일은 특정 어플리케이션의 요구에 최적화된다.
종래 기술의 도 1은 현재 이용 가능한 다양한 압축 알고리듬 중에서의 트레이드-오프의 예(100)를 도시하고 있다. 도시된 바와 같이, 이러한 압축 알고리듬은 웨이브렛 기반 코덱(102)과, 다양한 MPEG 비디오 분배 프로파일을 포함하는 DCT 기반 코덱(104)을 포함한다.
2D 및 3D 웨이브렛은 DCT 기반 코덱 알고리듬에 대한 현재의 대안이 된다. 웨이브렛은 그들의 만족할만한 이미지 품질과 유연한 데이타율로 인해 높은 관심을 받고 있으며, 그에 따라 JPEG 위원회는 위원회의 JPEG2000 정지 화상 표준에 대해 웨이브렛 알고리듬을 채용하도록 촉구되고 있다. 그러나, 불행히도, 대부분의 웨이브렛 시행은 매우 복잡한 알고리듬을 사용하여 DCT 시행에 비해 상당한 양의 처리 전력을 필요로 한다. 또한, 웨이브렛은 시간적 압축에 대해 특유의 도전을 나타내고 있어 3D 웨이브렛을 특히 어렵게 한다.
이러한 이유로, 웨이브렛은 결코 MPEG과 같은 높은 점유율의 표준 코덱에 비해 가격 경쟁력면에서 장점을 제공하지 못하며, 그에 따라 틈새 어플리케이션에만 채용되고 있을뿐이다. 그러므로, 3가지의 주요 시장 분야에 초점을 맞추어 저전력 및 및 저비용을 위해 최적화되는 경제적으로 실현가능한 3D 웨이브렛의 시행에 대한 필요성이 존재한다.
예를들어, 소형 비디오 카메라가 더욱 폭넓게 사용되어 가고 있으며, 비디오 카메라의 신호를 디지탈적으로 처리하는 장점이 분명해지고 있다. 예를들어, 일부 국가에서는 초고속 성장 분야인 휴대폰 시장은 이미지 및 비디오-클립 처리능력을 갖는 휴대폰이 요망되고 있다. 대부분의 디지탈 정지 카메라는 비디오-클립 특징을 갖는다. 휴대용 무선 핸드셋 시장에서, 이들 정지 화상 및 짧은 비디오 클립의 전송은 장치 배터리에 대해여 한층 더 많은 용량을 요구하고 있다. 현존의 비디오 코딩 표준 및 디지탈 신호 프로세서는 배터리를 한층 더 혹사시키고 있다.
또다른 새로운 응용분야는 시청자가 생방송 TV 및 타임-시프트 프로그래밍(time-shift programming)을 일시중지시킬 수 있도록 하는 개인용 비디오 레코더(PVR : Personal Video Recorder)이다. 이들 장치는 영상을 녹화하기 위해 디지탈 하드 디스크 저장장치를 사용하고, 케이블로부터의 아날로그 영상의 비디오 압축을 요구한다. 화상내 화상(PIP) 및 시청 동시 녹화(watch-while-record)와 같은 특징을 제공하기 위해, 이들 장치는 다수의 비디오 압축 인코더를 필요로 한다.
성장하고 있는 또다른 응용 영역은 감시 및 보안 영상을 위한 디지탈 비디오 레코더(DVR)이다. 역시, 저장될 입력 영상의 각각의 채널에 대해 압축 인코딩이 요구된다. 편리하면서 유연한 네트워크 전송 아키텍쳐를 이용하기 위해서는 영상이 카메라에서 디지탈화되어야 한다. 구형의 다중 레코더 아키텍쳐에서 조차도, 다수의 채널 압축 인코더가 요구된다.
물론, 저전력 및 저비용을 위해 최적화되는 경제적으로 실현 가능한 3D 웨이브렛 시행으로부터 이득을 얻을 수 있는 거대한 수의 다른 시장이 존재한다.
2차원 정사각형의 함수로써 간주된 이미지는 일부의 상대적으로 고립된 포인트 및 라인 특이점(라인 에지 특이점)을 갖는 대부분의 포인트에서 평활 다항식으로써 우수하게 모델링된다. 비디오 클립은 3-차원 도메인으로 유사하게 모델링된다. 대부분의 이미지 및 비디오에 대해, 1차 다항식 모델로부터 남겨진 RMS(실효값)는 대략 5%이고, 4차 다항식 모델에 대해서는 대략 2%이다.
이러한 함수(이미지 및 영상)를 근사하기 위해 흔히 사용된 방식은 다음의 단계를 포함한다:
1) 변환된 계수가 "서브밴드"로 분할될 수 있도록 함수를 가역적으로 변환하는 단계,
2) 전체를 양자화(즉, 전체의 정밀도를 감소시킴)하지만, 서브밴드는 "저역통과"시키는 단계, 및
3) 양자화된 계수에 역변환을 적용하여 원래 함수에 대한 근사치를 재구성하는 단계.
양호한 변환 방식은 함수의 저차 다항식 내용(low degree polynomial content)을 비양자화된 "저역 통과" 서브밴드 내로 투입시키는 변환을 사용한다. 이러한 방식은 또한 이상적으로 다른 서브밴드에서 제로 또는 매우 작은 값을 발생할 것이다. 그러므로, 비저역통과 서브밴드의 후속 양자화는 충분하게 저차 다항식에 의해 우수하게 모델링된 함수의 변환을 충분히 변화시키지는 않을 것이며, 원래 함수로의 재구성의 근사가 매우 우수하게 이루어질 것이다.
시행 현실은 변환된 함수내의 값이 원래 함수 도메인내의 일부 포인트의 작은 지역내의 값에만 좌우되도록 크게 요망하고 있다. 이것이 JPEG 및 MPEG 표준에서의 8×8 블록의 목적 중의 하나이다. 이들 스펙에서, 도메인 지역은 동일 공간을 차지하거나 서로 교차하지 않아서, 이미지 도메인을 각각이 뚜렷한 경계선을 갖는 비연결된 지역의 커버로 분할한다. 양자화에 의한 결과의 근사는 이들 경계선에서 열악하게 되는 경향이 있어서(이산 퓨리에 변환에서 널리 알려진 "깁스 효과(Gibbs effect)") 재구성된 근사 이미지에 현저한 "블록화" 허상(blocking artifacts)을 야기한다.
웨이브렛 변환은 지역이 중첩하기는 하지만 작은 도메인 지역 성질을 갖는 변환 부류로써 상당한 정도의 관심을 끌고 있다. 일부 웨이브렛 변환은 JPEG/MPEG의 DCT에 비해 함수를 우선적으로 저역통과 서브밴드에 투입하는 뛰어나 작업을 행한다. 더욱이, 일부 웨이브렛 변환(반드시 동일한 것은 아님)은 컴퓨터연산 강도(computation intensive)를 현저히 경감시킨다. 그러나, 도메인 지역 중첩은 데이타 처리, 메모리 활용 및 메모리 대역폭의 영역에 현저한 시행 문제점을 갖는다. 따라서, 여전히 도메인을 "블록화"하는 것이 유용하여 그들의 경계와 이들 경계에 인접한 근사의 발생(issue)을 후퇴시킨다.
도메인 경계에서의 변환은 경계 지점을 중앙으로 하는 도메인 지역이 경계 지점에 속하는 도메인 블록 내에 놓여있지 않다는 문제점이 나타난다. 다양한 JPEG 및 MPEG 표준에서 구현된 바와 같은 이 문제점에 대한 종래의 접근방식은 경계를 가로지르는 블록내의 도메인 값들을 대칭적으로 반사하여 요구된 지역 상에 "가상" 값과 가상 함수를 형성한다.
이 가상 함수가 통상적으로 그 지역에 관한 상수가 아니라면, 불연속성의 1차 도함수로부터 야기된 경계에서의 돌출점(cusp) 또는 주름(crease)을 가질 것이다. 이 불연속성은 저차 다항식에 의해 잘 모델링되지 않으며, 그에 따라 양자화 후에도 상당량 남게되는 큰 비저역통과 서브밴드 계수로 반영된다. 더 큰 양자화 에러는 경계에서의 근사 에러를 증가시킨다.
JPEG2000 표준 1)에 상세된 변환 중의 하나는 다음의 수학식 1.1. 및 1.2로 나타내진 가역적 5-3 변환이다.
1.1
1.2
이들 수학식이 정수대 정수 맵이고, Ys에 대해 용이하게 역으로 언롤링(unrolling)되기 때문에, 이 변환은 가역적이며, 그 역은 입력 Ys를 정확하게 비트 단위로 생성한다. 이에 대해서는 수학식 2.1 및 2.2를 참조하기 바란다.
2.1
2.2
이들 수학식으로부터, Y2n+1이 (2n+1)에서의 2차 도함수의 음의 절반의 근사치이고, 함수가 (2n+1)에서 제1차 다항식에 의해 잘 근사된다면 Y2n+1이 대략 0라는 것이 명백하다.
하단 괄호(floor bracket)() 내의 일정 가산의 목적은 근사치로부터 DC 바이어스를 제거하기 위한 것이다. 웨이브렛내의 비보정된 바이어스는 재구성된 데이타에서 발진성 에러를 초래하기 쉬우며, 이 발진성 에러는 수평 또는 수직 바와 같은 고정된 패턴 잡음으로써 나타난다. 바이어스 평가 및 보정을 위한 여러 가능 방법이 존재하며, 그 중의 하나가 JPEG2000 표준에 선택되어 있다.
이미지의 우측 경계가 2N-1 지점에 있다면, 요구된 값 X2N이 이용 가능하지 않기 때문에 수학식 1.1은 계산될 수 없다. JPEG2000 표준은 함수가 X2N=X2N-2를 사용하도록 하여 양의 대칭에 의해 함수를 연장함으로써 해소되도록 요구한다. 수학식 1.1에 이러한 대입을 행함으로써 다음의 수학식 1.1ext가 제공된다.
1.1.ext
이것은 내부 지점에서와 같이 2차 도함수의 음의 절반의 근사치의 반대인 1차 도함수의 근사치인 Y2N-1을 발생한다. 또한, 2차 도함수의 근사치가 단지 2개가 아닌 3개의 구별 지점의 사용에 의해서만 획득될 수 있다는 것은 명백하다. 짝수 지수로 Xs에 대한 항을 풀 때에 요구된 2개의 지점을 제한할 필요가 있으며, 그 이유는 이것이 가역 단계에 이용 가능한 유일한 것이기 때문이다. 가장 근접한 후보 지수는 2N-4이다.
특히 수학식 1.2 및 2.1에서 알 수 있는 바와 같이, 5-3 웨이브렛 필터의 JPEG2000 방정식은 다른 제한뿐만 아니라 계산식 내부에의 상수 1 또는 2의 가산을 수반한다. 최대의 계산 속도 및 효율을 위해 시행될 때, 이들 가산 및 다른 제한은 전체 컴퓨터연산 부하의 상당한 부분을 필요로 하고, 상당한 성능 저하를 초래할 수 있다.
도 1은 종래 기술에 따른 현재 이용 가능한 각종 압축 알고리듬 중에서의 트레이드-오프의 예를 도시한다.
도 2는 일실시예에 따른 데이타를 압축/압축해제하기 위한 프레임워크를 도시한다.
도 3은 일실시예에 따른 데이타를 압축/압축해제하기 위한 방법을 도시한다.
도 4는 도 3의 방법이 수행되는 데이타 구조를 도시한다.
도 5는 일실시예에 따른 데이타를 압축/압축해제하기 위한 방법을 도시한다.
도 6은 일실시예에 따른 데이타를 압축하기 위한 시스템을 도시한다.
도 7은 단일 집적회로 상의 다수의 인코더를 이용하여 데이타를 압축하기 위한 시스템을 도시한다.
데이타를 압축하기 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 먼저, 보간 수식이 수신된다. 이러한 보간 수식은 데이타를 압축하기 위해 활용된다. 사용시, 적어도 하나의 데이타값이 보간 수식에 의해 요구되는지의 여부가 판정되며, 여기서 요구된 데이타 값은 이용 가능하지 않게 된다. 이러한 것이 경우(the case)라면, 요구된 이용 가능하지 않은 데이타 값을 발생하기 위한 오삽 연산(extrapolation operation)이 수행된다.
일실시예에서, 보간 수식은 웨이브렛 필터의 성분이 될 수도 있다. 또다른 옵션으로, 웨이브렛 필터는 다상 필터(polyphase filter)로 선택적으로 대체될 수도 있다.
또다른 실시예에서, 복수의 데이타 값은 복수의 스팬(span)으로 분할될 수도 있다. 그에 의해, 보간 수식을 수반하는 컴퓨터연산의 양은 스팬중의 하나내의 데이타 값을 활용함으로써만 절감될 수도 있다.
또다른 실시예에서, 데이타 값은 양자화될 수도 있다. 이러한 실시예에서, 엔트로피 코딩과 관련된 계산의 양은 데이타 값의 수량을 감소시킴으로써 절감될 수도 있다. 데이타 값의 수량은 데이타 값을 수반하는 양자화 컴퓨터연산 동안에 감소될 수도 있다.
또다른 실시예에서, 데이타 값을 소정 데이타 범위로 재구성하는 것과 관련된 컴퓨터연산의 양이 감소될 수도 있다. 이러한 컴퓨터연산은 하나의 단일 클립 컴퓨터연산을 수행함으로써 절감될 수도 있다.
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
일실시예에서, 웨이브렛 필터는 다음을 포함한 보간 수식을 포함한다:
데이타를 압축하기 위한 다른 시스템 및 방법이 제공된다. 먼저, 데이타가 단일 장치로 수신된다. 이러한 데이타는 제1 포맷으로 제1 압축 데이타를 발생하기 위해 단일 장치를 활용하여 인코딩된다. 더욱이, 제1 압축 데이타는 제2 포맷으로 제2 압축 데이타를 생성하기 위해 단일 장치를 활용하여 코드변환(transcode)된다.
일실시예에서, 인코딩은 실시간으로 발생할 것이다. 더욱이, 코드변환은 오프라인으로 발생할 것이다.
다른 실시예에서, 제1 압축 데이타는 제2 압축 데이타가 단일 장치에 접속된 통신 네트워크의 용량에 부합하기에 적합하게 되도록 이 제2 압축 데이타를 제2 포맷으로 생성하기 위해 코드변환될 수도 있다.
옵션으로, 인코딩은 제1 인코더를 이용하여 수행될 수도 있다. 더욱이, 코드변환은 디코더 및 제2 인코더를 이용하여 수행될 수도 있다.
또, 제1 포맷은 웨이브렛 기반 포맷을 포함할 수도 있다. 또한, 제2 포맷은 DCT 기반 포맷을 포함할 수도 있다. 한 특정 실시예에서, 제2 포맷은 MPEG 포맷을 포함할 수도 있다.
단일 집적회로 상의 다수의 인코더를 이용하여 데이타를 압축하기 위한 다른 시스템 및 방법이 제공된다. 먼저, 데이타가 단일 집적회로로 수신된다. 그리고나서, 데이타는 단일 집적회로 상에 통합된 복수의 인코더를 이용하여 인코딩된다.
일실시예에서, 데이타는 단일 집적회로 상의 다수의 채널을 이용하여 인코딩될 수도 있다. 더욱이, 데이타는 웨이브렛 기반 포맷으로 인코딩될 수도 있다.
데이타를 압축하기 위한 또다른 단일 모듈 시스템 및 방법이 제공된다. 사용시, 단일 모듈을 이용하여 광자(photon)가 수신된다. 그 후, 광자를 나타내는 압축 데이타가 단일 모듈을 이용하여 출력된다.
옵션으로써, 압축 데이타는 웨이브렛 기반 포맷으로 인코딩될 수도 있다. 더욱이, 인코딩과 관련된 변환 연산은 아날로그로 수행될 수도 있다. 단일 모듈은 촬상 소자(imager)를 추가로 포함할 수도 있다.
도 2는 일실시예에 따라 데이타를 압축/압축해제하기 위한 프레임워크(200)를 도시한다. 이 프레임워크(200)에는 코더부(coder portion)(201) 및 디코더부(203)가 포함되며, 이들은 함께 "코덱"을 형성한다. 코더부(201)는 변환 모듈(20), 양자화기(204) 및 화일(208)내에의 저장을 위해 데이타를 압축하는 엔트로피 인코더(206)를 포함한다. 이러한 파일(208)의 압축해제를 수행하기 위해, 디코더부(203)는 역변환 모듈(214), 역양자화기(212) 및 사용을 위해(즉, 비디오 데이타의 경우에는 시청하기 위해서 등등) 데이타를 압축해제하는 엔트로피 디코더(210)를 포함한다.
사용시, 변환 모듈(202)은 상관해제의 목적을 위해 종종 선형적인 복수의 픽셀(비디오 데이타의 경우에)의 가역 변환을 수행한다. 다음으로, 양자화기(204)가 변환값의 양자화를 행하며, 그 후 엔트로피 엔코더(206)가 양자화된 변환 계수의 엔트로피 코딩을 담당한다.
도 3은 일실시예에 따른 데이타를 압축/압축해제하기 위한 방법(300)을 예시하고 있다. 일실시예에서, 본 방법(300)은 도 2의 변환 모듈(202)의 구문(context) 및 변환 모듈이 가역 변환을 수행하는 방식으로 수행될 수도 있을 것이다. 그러나, 본 방법(300)은 임의의 요구된 구문으로 시행될 수도 있을 것이다.
연산(302)에서, 데이타를 압축하기 위해 보간 수식이 수신된다(즉, 메모리 등으로부터 식별, 수신된다). 본 설명의 내용에서, 데이타는 압축될 수 있는 임의의 데이타를 지칭할 것이다. 더욱이, 보간 수식은 보간(즉, 웨이브렛 필터 등)을 채용한 임의의 수식을 포함할 수도 있다.
연산(304)에서는 적어도 하나의 데이타 값이 보간 수식에 의해 요구되는지의 여부가 판정되며, 여기서 요구된 데이타 값은 이용 가능하지 않은 것이다. 이러한 데이타 값은 전술된 데이타의 어떠한 서브세트도 포함할 수 있을 것이다. 요구된 데이타 값은 이용 가능하지 않게 됨에 의해 더 이상 존재하지 않는 데이타, 범위에서 벗어난 데이타 등으로 취급될 것이다.
그 후, 요구된 이용 가능하지 않은 데이타 값을 생성하기 위한 외삽 연산이 수행된다. 이것에 대해서는 연산(306)을 참조하기 바란다. 외삽 수식은 외삽을 채용하는 어떠한 수식도 포함할 것이다. 이러한 방식에 의해, 데이타의 압축이 향상된다.
도 4는 본 방법(300)이 수행하고자 하는 대상인 데이타 구조(400)를 도시하고 있다. 도시된 바와 같이, 변환 동안, 복수의 데이타 값(402)을 수반하는 보간 수식(403)에 의해 "최상의 맞춤(best fit)"(401)이 달성될 것이다. 도 3의 방법(300)의 연산(302)을 유념하기 바란다. 데이타 값(402) 중의 하나가 이용 가능하지 않은 것으로 판정되면(도면 부호 "404"를 참조), 이러한 이용 가능하지 않은 데이타 값을 발생하기 위해 외삽 수식이 사용될 수 있다. 전술한 기술의 한가지 모범적 시행에 관한 더 많은 옵션적 세부사항은 도 5를 참조하는 동안 더욱 상세하게 설명될 것이다.
도 5는 일실시예에 따른 데이타를 압축/압축해제하기 위한 방법(500)을 예시한다. 옵션으로, 본 방법(500)은 도 2의 변환 모듈의 구문 및 그 변환 모듈이 가역 변환을 수행하는 방식으로 수행될 수 있을 것이다. 그러나, 본 방법(500)은 어떠한 요구된 구문으로도 시행될 수 있다.
본 방법(500)은 웨이브렛 필터쌍을 위한 에지 필터를 생성하기 위한 기술을 제공한다. 먼저, 연산(500)에서, 웨이브렛 방식은 웨이브렛 필터가 근사하는 로컬 도함수를 결정하기 위해 분석된다. 그 다음에, 연산(504)에서, 웨이브렛 필터의 특성 및 이용 가능한 샘플의 수에 기초하여 다항식 차수가 외삽을 위해 사용하도록 선택된다. 그 다음으로, 선택된 다항식 차수를 사용하여 각각의 웨이브렛 필터에 대해 보간 수식이 구해진다. 이에 대해서는 연산(506)을 참조하기 바란다. 또, 연산(508)에서, 특정 에지 웨이브렛 경우가 각각의 경우에서의 이용 가능한 샘플과 함께 외삽 수식을 이용함으로써 구해진다.
이에 대해서는 계수를 언롤링하기 위해 반데르몬테(Vandermonde) 타입 행렬을 사용하는 옵션적인 방법에 대한 부록 A를 참조하기 바란다. 더욱이, 일례의 보간 수식에 관한 추가의 옵션적인 정보 및 관련 정보가 더욱 상세하게 설명될 것이다.
좌측에서부터 Y2N-1을 근사하기 위해, 좌측에서부터 2차 다항식을 맞출수도 있다. 이용 가능한 값을 사용하여 2N-1에서 2차 도함수의 절반의 음을 근사함으로써 수학식 1.1.R이 산출된다. 이 외삽 2차식의 한가지 가능한 판정에 대해서는 부록 A를 참조하기 바란다.
1.1.R
수학식 1.1.R은 1 지점이 최우측인 경우에 수학식 1.1(발명의 배경에 대한 설명 부분 참조)을 대신하여 사용될 수도 있다. 3의 명백한 승산은 시프트 및 가산으로 달성될 수 있다. 3의 제산은 더 까다롭다. 최우측 지수가 2N-1인 이 경우에 대해, 수학식 1.2(발경의 배경에 대한 설명 부분 참조)를 통해 Y2N-2를 계산하는데는 문제가 없다. 최우측 지수가 우수(즉, 2N)인 경우에, 수학식 1.1로는 문제가 없지만, 수학식 1.2는 값의 손실을 수반한다. 여기서, 목표는 당면한 경우에 단지 이전에 계산된 기수 지수 Ys, Y1 및 Y3를 사용하여 우수 X에서 Y의 근사치를 감산하는 것이다. 지수 2N에서의 이 요구된 근사치는 전술된 바와 같이 선형 보간에 의해 획득될 수 있다. 적합한 수식은 다음의 수학식 1.2.R에 의해 제공된다.
1.2.R
대응하는 상황이 좌측 경계에 적용된다. 유사한 에지 필터가 좌측이 아닌 우측(내부)으로부터 요구된 외삽으로 적용된다. 이 경우, 적합한 필터는다음의 수학식 1.1.L 및 1.2.L으로 표현된다.
1.1.L
1.2.L
역변환 필터는 원래의 필터에 대한 것으로써의 이들 외삽 경계 필터에 대해, 즉 역대입에 의해 획득될 수 있다. 역변환 경계 필터는 전술의 경계 필터가 사용되는 환경과 정확하게 동일한 환경에서 표준 필터 대신에 사용될 수도 있다. 이러한 필터는 다음의 수학식 2.1.R.inv, 2.2.R.inv, 2.1.L.inv 및 2.2.L.inv로 표현된다.
2.1.R.inv
2.2.R.inv
2.1.L.inv
2.2.L.inv
그러므로, 일실시예는 필터의 시각적 성질을 보존하면서 종래기술의 가산 단계들을 방지하는 5-3 필터의 재체계화(reformulation)를 사용할 수도 있을 것이다. 예를들어, 다음의 수학식 3.1, 3.1R, 3.2 및 3.2L을 참조하기 바란다.
3.1
3.1R
3.2
3.2.L
이러한 체계화에서, 특성 계수는 전술된 가산을 방지하기 위해 1/2의 바이어스 또는 오프셋으로 계산된다. 이 체계화에서의 1/2의 다수의 추가가 있을 것으로 보이기는 하지만, 이들 추가는 컴퓨터연산에서 실제로 발생할 필요는 없다는 점에 유의하기 바란다. 수학식 3.1 및 3.1R에서, 1/2의 가산의 효과가 없어져 버린다는 것을 알 수 있으므로, 이들 가산은 입력 데이타에 적용될 필요가 없다. 그 대신, 파라미터 (Y0+1/2) 등에서의 항은 웨이브렛 변환 피라미드의 후속 레벨로 건네지는 계수와 같이 실제 계산되어 저장된 수량에 대한 명칭(name)으로써 이해될 것이다.
다음의 경우에서와 마찬가지로, JPEG-2000 역필터는 다음의 수학식 4.2, 4.2L, 4.1 및 4.1R로 재체계화될 수 있다.
4.2
4.2L
4.1
4.1R
여기서 알 수 있는 바와 같이, 역컴퓨터연산에 대한 입력으로서 취한 값은 수학식 3.1 내지 3.2L에서의 전방 컴퓨터연산에 의해 생성된 것과 동일한 항이며, 1/2 만큼의 보정은 결코 양함수적으로 계산될 필요가 없다.
이러한 방식으로, 웨이브렛 변환의 컴퓨터연산 동안에 수행된 산술적 연산의 총수가 감소된다.
옵션적인 특징
도 2 내지 도 5의 시스템 및 방법의 설명에서 사용될 수도 있는 추가의 옵션적인 특징 및 기술이 설명될 것이다. 이러한 옵션적인 특징은 엄격히 예시의 목적을 위한 것이며, 어떠한 방식으로의 제한으로써 고려된 것은 아니라는 것에 유념하기 바란다. 더욱이, 이러한 특징은 도 2 내지 도 5의 전술한 시스템 및 방법으로부터 독립적으로 시행될 수도 있다.
일반적인 옵션적인 특징
사용시, 변환 모듈(즉, 예를들어, 도 2 등의 변환 모듈(202)을 참조)은 이미지를 각각이 대략 한 옥타브(즉, 2의 인수)를 커버하는 서브밴드들로 분리하는 필터 뱅크로써 작용하는 웨이브렛 피라미드를 활용할 수도 있다. 각각의 옥타브에서, 수평, 수직 및 체커보드(checkerboard) 특징에 대응하는 3개의 서브밴드가 존재할 수도 있다. 일실시예에서, 피라미드는 통상적으로 동일 수의 옥타브를 커버하는 3 내지 5 레벨 깊이가 될 수도 있다. 원본 이미지가 전부 평활하다면, 웨이브렛 계수의 양은 급속하게 감소한다. 이미지는 이미지가 도함수의 2/3를 갖는다는 것을 개략적으로 의미하는 2/3의 홀더 계수(Holder coefficient)를 가질 수도 있다. 웨이브렛 계수가 절대값의 내림 차순으로 배열된다면, 이들 절대값은 N-s처럼 감소하는 것으로 보여질 수도 있으며, 여기서 N은 시퀀스에서의 위치이고, s는 이미지의 평활도이다.
웨이브렛 피라미드를 형성한 후, 웨이브렛 계수는 시청 조건 및 인간 시각 콘트래스트 민감도 곡선(CSF)과 일치하는 결과를 제공하기 위해 양자화기(즉, 예를들어 도 2의 양자화기(204)를 참조)에 의해 크기조절(양자화)될 수도 있다. 인간 시각 시스템의 특징을 밝혀냄으로써, 색도 서브밴드를 코딩하기 위해 사용된 비트의 수는 현저하게 감소될 수도 있다.
최소의 실리콘 면적 요구로 실현 가능한 고속 알고리듬을 제공하기 위해, 종래의 산술적 코더의 사용은 회피될 것이다. 예를들어, 승산이 전술한 바와 같이 실리콘 영역에서 매우 비경제적이기 때문에 승산이 회피될 수도 있다. 더욱이, 이러한 알고리듬은 프로그램 실행의 개별적 구성요소에 대해 매우 우수한 "고속 경로"를 가질 수도 있다.
코덱은 2개의 비월주사 비디오 프레임, 경계를 위한 에지 필터, 중간 필드 이미지 압축 및 블록 압축 구조의 화상의 그룹(GOP)을 채용할 수도 있다. 소형의 단일 칩에 대한 시행의 특수한 특징은 표 1 내의 다음과 같이 될 것이다.
[표 1]
ㆍ한 시행은 짧은 웨이브렛 베이스(2-6 웨이브렛)를 사용할 수도 있으며, 이 웨이브렛은 HVS와 일치하도록 양자화된 자연 풍경 이미지에 초점을 둔 것에 특히 적합하다. 시행은 가산 및 시프트로 달성될 수 있다. 수평 방향으로의 각각의 필드에 대해 5개의 필터 적용 및 수직 방향으로의 3개의 적용의 결과로, 말랫 피라미드(Mallat pyramid)가 사용될 것이다. 이에 의해, 한쌍의 계수, 저역통과 필터에서의 2개의 계수 및 웨이브렛 필터에서의 2, 4 또는 6개의 계수를 갖는 필터가 생성된다(그 결과 12개의 웨이브렛 서브밴드가 된다). 실제 이미지 값을 활용하기 위해 블록 및 이미지 부근에 수정된 에지 필터를 사용할 수도 있다. 그 결과의 비디오 피라미드는 제로의 실질적인 프로그램실행 및 비제로의 실질적인 프로그램실행을 가질 것이다. 따라서, 테이블 탐색에 의해 인코딩이 효과적으로 행해질 수 있다.
ㆍ또다른 솔루션은 MPEG-형의 방법에서 사용된 움직임 보상 검색 대신에 3D 웨이브렛 피라미드를 통한 움직임 이미지 압축을 사용할 수도 있다. 움직임 보상 압축은 4개 필드의 화상의 그룹(GOP)에 대해 시간적 방향으로 변환 압축을 적용할 것이다. 공간적 피라미드와의 텐서 프로덕트(tensor product)로써 2 레벨 시간적 말랫 피라미드가 사용될 것이다. 선형 에지 필터는 미세 레벨에서 사용될 수 있고, 수정된 해르(Harr) 필터는 조악한 레벨에서 사용될 수 있으며, 그 결과 4개의 시간적 서브밴드가 된다. 이들 시간적 서브밴드의 각각은 압축된다.
ㆍ처리는 각각 32 픽셀의 8개 주사선의 블록의 처리로 나누어질 수 있다. 이것은 RAM이 ASIC 자체내에 위치될 수 있는 지점에 대한 RAM 요건을 경감시키는데 도움을 준다. 이에 의해, 칩 카운트가 감소되며, RAM 대역폭 요건의 충족이 간략화된다. 스트립×스트립(스트립당 2개의 통과)으로 압축 처리가 수행될 것이다. "스트립"은 8개의 픽셀의 높이와 화상의 총폭이 된다.
ㆍ또다른 실시예는 압축에서의 추가의 향상을 달성하기 위해 웨이브렛 계수의 양자화를 이용할 수 있다. 양자화 공통점은 시프트에 의한 2개의 인에이블링 시행의 능력에 있다. 양자화는 각각의 서브밴드에 크기조정 비율을 할당하고, 서브밴드내의 각각의 계수에 대응하는 크기조정 비율을 승산하고, 크기조정된 계수를 정수로 고정하는 처리를 지칭할 것이다.
조합 필터
또다른 옵션으로써, 웨이브렛 필터는 다상 필터로 선택적으로 교체될 수 있다. 일실시예에서, 이러한 교체는 데이타 압축/압축해제 시스템의 변환 모듈(즉, 도 2의 변환 모듈(202) 및/또는 역변환 모듈(214)을 참조)에서 발생할 것이다. 물론, 이러한 특징은 본 명세서에 설명된 다양한 다른 특징에 독립적으로 시행될 수 있다. 이 옵션적인 특징에 관한 더 모범적인 정보가 설명될 것이다.
본 실시예에서, 종래의(즉, 유한 임펄스 응답(FIR)) 정보 폐기 또는 평활 필터의 사용은 비디오 압축 코덱의 설계에서 웨이브렛 정보 보존 필터와 조합될 수 있다. FIR 필터는 종래의 FIR 필터가 단일로 사용되는 반면 웨이브렛 필터는 항상 상보적 쌍으로 나타난다는 점에서 웨이브렛 필터와 구별될 것이다. 또한, 웨이브렛 변환에서의 FIR 필터는 다상 필터 뱅크와 마찬가지로 반드시 서로 관련되는 것은 아니다.
비디오 압축은 3단계의 프로세스, 간혹 다른 단계가 추가되기는 하지만 전술된 바와 같은 변환, 양자화 및 엔트리 코딩이라는 3개의 주요 단계로 수행될 수 있다. 이들 조작은 보편적으로 실행되는 바와 같이 대표적으로 양자화 동안에는 정보를 폐기할뿐이다. 실제로, 무손실 압축 방법은 이 조작이 생략될 경우에 발생할 것이다. 그러나, 무손실 압축은 인간의 시각 시스템을 이용하고 디코딩 결과에서 시각적 차이가 없거나 시각적 차이를 무시할 수 있는 정보를 폐기하는 손실 압축보다는 상당히 더 작은 압축율로 제한된다.
결과물이 수용 가능하기 때문에 간혹 손실될 수도 있는 시각적 정보의 한 부류는 미세 디테일이다. 비디오 압축에 사용된 대부분의 변환 프로세스가 양자화 단계를 통해 미세 디테일 정보를 폐기할 수 있지만, 이들 프로세스는 직접적인 저역통과 필터 시행보다 더 적은 효과 또는 더 적은 시각적 충실도로 이것을 행할 것이다.
평활 필터를 구현하기 위한 한 방법은 FIR 필터의 사용에 의해 이루어진다. 평활 필터를 구현하기 위한 대안의 방법은 무한 임펄스 응답(IIR) 필터의 사용에 의해 이루어진다.
이미지의 크기 또는 데이타 시퀀스가 변경될 때, 관련된 FIR 필터로 구성된 다상 필터 뱅크(PFB)가 채용될 수도 있다. 이러한 방법은 일부 디테일을 제거하고 추가의 처리를 위해 그에 대응하여 더 작은 이미지를 생성함으로써 이미지를 처리한다.
다상 필터 뱅크는 FIR 필터의 세트를 포함할 수도 있으며, 이 필터 세트는 동일 대역폭 또는 주파수 선택가능성 성질을 공유하지만, 상이한 위치에서 또는 원본 샘플 사이에서 보간된 픽셀을 생성한다.
예를들어, 다상 필터 뱅크는 이미지(즉, 비디오의 프레임)를 그 원래 폭의 2/3로 감소시키기도록 사용된다. 다상 필터 뱅크는 이 동작을, 원본 픽셀의 각각의 사이의 중간의 보간된 픽셀을 계산하고 원래 위치에서 평활된 픽셀을 계산하고 그리고나서 결과 스트림의 매 3번째 픽셀만을 유지함으로써 행한다.
이 방법으로, 유지되지 않을 픽셀을 계산하는 것을 생략할 수 있으며, 그 결과 이미지 크기를 축소시키는 더 효율적인 방법이 된다. 이 프로세스는 다른 합리적인 부분 크기 변경에 대해 용이하게 일반화된다. 이 방법으로, 다상 필터 뱅크는 소량의 미세 디테일을 원할하게 제거할 수 있어서, 이미지를 1미만의 비율로 크기조정한다. 비율은 1/2 보다 크게 될 수 있다.
본 실시예는 다상 필터를 웨이브렛 기반 이미지 압축 프로세스의 제1 단계로써 사용함으로써 원활한 디테일 제거와 웨이브렛 변환 코딩의 화상 품질을 결합시킨다. 이 결합을 사용함으로써, 다상 필터 뱅크의 사용에 의해 얻어지는 최고로 미세한 디테일 및 이 디테일을 표현하기 위해 요구될 비트의 원활한 고품질 무허상 제거의 장점이, 이미지 및 비디오 압축을 위한 토대로써 웨이브렛 변환을 사용함에 의해 얻어지는 고속의 효율적인 컴퓨터연산 및 높은 시각적 품질의 널리 공지된 장점에 더해질 것이다
본 방법의 제1 실시예에서 먼저 다상 필터 뱅크를 1차원으로, 통상적으로 수평 방향으로 이미지에 적용하고, 그리고나서, 종래의 방식으로 양자화 및 엔트로피 코딩하기 전에 이미지에 웨이브렛 변환을 적용할 것이다.
본 발명의 제2 실시예에서는 특정 방향으로의 제1 웨이브렛 연산 전에 다상 필터를 그 방향으로 적용하지만, 다른 방향으로의 웨이브렛 연산 후에도 가능하다.
다른 실시예에서는 다상 필터를 여러 방향의 각각의 방향으로, 그 방향으로의 제1 웨이브렛 연산 전에 적용하지만, 다른 방향으로의 웨이브렛 단계 후에도 가능하다.
적어도 일부의 웨이브렛 또는 DCT 변환 전에 손실성 필터링 단계를 적용하는 본 방법에 대한 여러 장점이 존재한다. 예를들어, FIR과 같은 필터, 또는 웨이브렛 형태로 기능하도록 제한되지 않는 다상 디자인이 더 높은 품질 및 더 적은 허상을 위해 설계될 수도 있다. 웨이브렛 필터는 정보를 그 정보의 폐기없이 2개의 파트로 분기하는 쌍으로 설계될 수도 있다.
변환 연산 후가 아닌 변환 연산 전에 손실성 필터를 적용하는 것은 변환 컴퓨터연산이 더 적은 데이타에 대해 작동될 수 있고, 그에 따라 컴퓨터연산에 더 적은 시간이 소요되어 컴퓨터연산 동안의 중간 저장장치를 덜 필요로 하게 한다. 변환이 통상적으로 압축 프로세스의 비경제적인 부분이기 때문에, 이러한 감소는 전체적인 압축 프로세스에 대해 현저하게 향상된 속도 및 효율의 결과로 나타난다.
파일을 사용한 불연속 웨이브렛 변환(Sparse Wavelet Transfer Using Pile)
또다른 옵션으로써, 엔트로피 코딩과 관련된 컴퓨터연산의 양은 데이타값의 양을 감소시킴으로써 감소될 수 있다. 일실시예에서, 이러한 감소는 데이타 압축/압축해제 시스템의 양자화기(즉, 도 2의 양자화기(204)를 참조)로 발생할 수 있을 것이다. 물론, 이러한 특징은 본 명세서에 설명된 각종의 다른 특징에 독립적으로 시행될 수도 있다. 본 옵션적인 특징에 관한 더욱 모범적인 정보가 설명될 것이다.
본 실시예에서, 파일은 디코딩 연산에서의 연산치로써 사용될 수도 있으며, 그에 따라 후속 단계를 컴퓨터연산함에 있어서의 사용이 가능하다. 파일에 대한 더 많은 정보는 부록 B를 참조하기 바란다.
행렬 데이타에 대한 불연속 표현으로 지칭되는 것을 제공하기 위해 컴퓨터연산하는 것은 과학의 분야에 널리 공지되어 있다. 보통의 행렬은 행렬 원소인 숫자의 완전한 배열로 표현되며, 이것은 "조밀" 표현으로 지칭된다. 일부 프로그램 패키지는 제로 엔트리가 양함수적으로는 1×1로 표현되지는 않지만 음함수적으로는 표현되는 "불연속 행렬"을 저장, 전환 및 연산한다. 이러한 "불연속" 표현 중의 하나는 제로-프로그램실행 코딩이며, 이 코딩에서 제로는 함께 발생하는 제로의 카운트에 의해 표현된다. 이 카운트는 그 자체가 제로(2개의 비제로 값이 인접해 있을 때), 1(고립된 제로 값에 대해) 또는 그 이상이 될 수 있다.
그러나, 비디오 데이타가 행렬이 아닌 경우, 통상적으로 데이타에 행렬 연산(즉, 승산, 반전, 고유값 분해(eigenvalue decomposition) 등)을 적용하지 않는다. 불연속 행렬 컴퓨터연산이 기반으로 하는 원리가 추출되어 비디오 변환으로 전환된다.
간략하게, 파일은 쌍의 어레이로 이루어지며, 각각의 쌍은 비제로(nonzero) 항의 보통의 데이타에서의 어드레스(또는 오프셋)를 그 항의 값과 함께 제공한다. 어드레스 또는 오프셋은 분류된 순서로 존재하여, 파일을 종단하고 그 안의 비제로 원소를 전체 데이타 세트에서의 그들 원소의 위치를 고려하여 연산함으로써 전체 데이타를 한쪽 끝에서 다른 쪽으로 종단할 수 있다.
파일은 여러 데이타 항에 대해 같은 연산을 동시에 사용하여 데이타를 병렬로 처리하는(즉, SIMD 프로세서) 컴퓨터와, 비교적 비경제적인 제어의 조건적 전달을 행하는 컴퓨터 상에서 효율적으로 시행 가능하게 되도록 특별히 설계된다. 이들 프로세서는 비디오 및 오디오를 처리하기 위한 공통적인 사용에 놓이게 되며, 간혹 "미디어 프로세서(media processor)"로 지칭된다.
모두 불연속인 2개의 데이타 세트에 관해 일부 연산을 수행할 필요가 있을 때, 데이타가 조밀하게 표현되지 않을 시에는 나타나지 않는 고려사항이 발생한다. 즉, "데이타 항을 언제 서로 일치시킬 것인가?"라는 문제가 발생한다.
파일로 표현된 2개의 데이타 세트에 관한 연산에서, 일치하는 데이타 항을 식별하기 위한 기본 연산은 "매칭 및 합병(match and merge)"으로 지칭된다. 2개의 파일을 종단할 때, 개시 후의 매연산마다에서 각각의 파일로부터의 어드레스 및 출력값이 방금 발생되었던 어드레스를 가질 것이다. 값을 발생할 수 있는 다음 어드레스를 찾아내기 위해, 입력 파일에 의해 제공된 2개의 어드레스의 최소치가 발견될 것이다. 양파일이 이 어드레스에 일치한다면, 각각으로부터 이용 가능한 데이타 항이 존재하며, 요구된 결과를 발생하도록 2개의 값에 대해 연산할 수 있다. 그러므로, 두 파일 상의 다음 항으로 나아갈 수 있을 것이다.
2개 파일내의 다음 어드레스가 상이하다면, 한 파일(한 데이타 세트)에는 비제로 값이 제공되고, 다른 데이타 세트(파일에 의해 음함수적으로 표현된)에는 제로 값이 제공되며, 1값과 제로에 대해 연산을 행하여 값을 발생할 수 있다. 이와 달리, 한 입력이 제로일 때, 수행하고 있는 연산이 제로를 발생한다면, 값은 생성되지 않는다. 양자의 경우에, 최소 어드레스를 갖는 파일에 대해서만 다음 항으로 나아갈 수 있을 것이다.
결과 값은 출력 위치, 즉 조밀한 어레이(어드레스가 1 이상씩 나아갈 때마다의 있는 그대로의 제로를 기입함으로써) 또는 출력 파일내에 위치된다.
전술된 바와 같이, 웨이브렛 변환은 데이타의 세트에 대한 웨이브렛 필터쌍의 반복된 적용을 1차원 또는 그 이상의 차원으로 포함한다. 비디오 압축에 대해, 2-D 웨이브렛 변환(수평 및 수직) 또는 3-D 웨이브렛 변환(수평, 수직 및 시간)을 사용할 수도 있다.
비디오 압축기내의 변환 스테이지의 목적은 소스 화상의 에너지 또는 정보를 화상 또는 시퀀스내의 지역적인 유사성과 패턴을 이용함으로써 가능한 한 간략한 형태로 모으기 위함이다. 모든 가능한 입력을 가능하게 압축할 수 있는 압축기는 없으며, "대표적인" 입력에 대해 잘 작동하고 "랜덤한" 또는 "비정상의" 입력을 압축함에 있어서의 장애를 무시하도록 압축기를 설계할 수도 있다.
변환이 잘 작동하고 화상이 약간의 변환 계수로 원할하게 모여질 때, 잔여 계수는 이들 중에 다수의 제로를 갖는다.
전술한 바와 같은 결과를 양자화하기 위한 비디오 압축기의 스테이지가 설명된다. 이 스테이지에서, 거의 제로인 컴퓨터연산된 값은 제로로 표현된다. 간혹 최종 변환된 결과를 양자화하거나 그 양자화를 추가하는 것보다, 웨이브렛 변환 동안의 컴퓨터연산된 계수를 양자화하는 것이 바람직할 수 있다.
따라서, 웨이브렛 계수 데이타의 일부에서 다수의 제로를 얻을 수 있으며, 이것은 데이타에 대해 더 많은 컴퓨터연산을 행할 필요가 있는 동안 발생할 수 있다.
추가로, 압축된 이미지 또는 비디오를 디스플레이를 위해 디코딩하고 있을 때, 엔트로피 코딩된 중요 계수를 디스플레이를 위해 다시 완전하게 채워진 이미지로 되돌리도록 작업할 수도 있다. 제1 디코딩 단계, 즉 엔트로피-코드 디코딩의 대표적인 출력은 그들 중에 디폴트로 제로로 되도록 고려되는 다수의 비중요 계수를 갖는 중요 계수의 세트가 된다.
이것이 발생할 때, 다수의 제로를 갖는 조밀한 데이타를 불연속 표현으로 전환하는 것이 바람직하며, 이것은 전술된 바와 같은 데이타를 파일링(piling)함으로써 행해질 수도 있다. 파일 표현식은 런-오브-제로(run-of-zero) 표현식과 유사한 외형을 갖지만, 통상적으로 실행 길이(run length)(어드레스의 차)가 아닌 어드레스 또는 오프셋을 저장한다. 이것은 더 고속의 처리가 파일을 작성하고 그 파일을 차후에 조밀한 표현으로 확장할 수 있도록 해준다.
디코딩의 경우, 데이타는 조밀한 형태가 아니며, 엔트로피 디코더에서 직접적으로 파일을 구축하는 것이 더욱 자연스럽다.
웨이브렛 변환을 처리하는 것은 파일링 처리에 받아들여질 수 있는 약간의 경우를 나타낸다. 이에 대해서는 표 2를 주목하기 바란다.
[표2]
ㆍ파일된 양쪽 밴드를 압축해제
ㆍ파일된 한쪽 밴드를 압축해제
ㆍ파일된 입력 및 출력 밀도를 압축해제
ㆍ입력 밀도 및 파일된 출력을 압축
인코딩 프로세스의 결과 매우 많은 계수가 제로로 양자화된 비디오의 압축 프레임을 디코딩하는 일례가 고려될 것이다. 압축해제의 제1 단계는 엔트로피-인코딩 또는 비트-인코딩에 행해지며, 그에 따라 프레임내의 값과 각각의 값의 위치를 제공한다. 이것은 바로 파일로 표현된 정보이며, 모든 중간 제로 값으로 양함수적으로 채움에 의해 값과 그 값의 위치를 조밀한 표현으로 즉각적으로 확장하는 것보다, 그 값과 위치를 저장하기 위해 파일을 사용하는 것이 매우 편리하다.
이 단계에서, 역 웨이브렛 변환에 의해 연산되도록 준비된 계수가 얻어진다. 역변환의 최종 결과는 디스플레이될 수 있는 압축해제된 이미지이며, 불연속성을 거의 나타내지 않는다.
역 웨이브렛 변환의 제1 단계(각각의 단계와 유사)는 계수 데이타의 2개의 영역 또는 "대역"으로부터 데이타를 취하여 이들을 동일 프로세스의 추후의 단계에서 사용될 중간 밴드로 결합하는 필터 컴퓨터연산이다. 이 제1 단계에서, 양밴드에 대한 데이타는 불연속적이고, 파일로 표현된다. 이 단계의 출력을 역시 파일로 생성할 수 있으며, 그에 의해 제로로 채울 필요가 없게 된다. 표 3 아래의 컴퓨터연산은 "밴드" 파일 P1 및 P2에 대해 작용하고, 그 결과를 신규의 파일 R로 생성하며, 2개의 밴드로부터의 계수의 쌍에 대해 필터 컴퓨터연산 스텝 W(p,q)을 수행한다.
[표 3]
전술한 컴퓨터연산은 부록 B에 나타낸 바와 같이 여전히 병렬 연산으로 풀려질 수 있음에 점에 유의하기 바란다.
웨이브렛 변환을 컴퓨터연산하기 위해 소요되는 시간은 다수의 제로 값을 갖는 중간 결과에 대해 불연속 표현, 즉 파일을 사용함으로써 감소될 수도 있다. 이러한 방법은 웨이브렛 기반 이미지 압축의 성능 및 컴퓨터연산 효율과, 비디오 압축 제품을 향상시킨다.
변환 범위 제한(Transform Range Limit)
다른 옵션으로, 데이타 값을 소정 데이타 범위로 재구성하는 것과 관련된 컴퓨터연산의 양이 감소될 수도 있다. 이러한 컴퓨터연산은 오직 하나의 단일 클립 연산을 수행함으로써 감소될 수도 있다. 일실시예에서, 이러한 감소는 데이타 압축/압축해제 시스템의 역양자화기 모듈(즉, 도 2의 역양자화기(212))에서 발생할 것이다. 당연히, 이러한 특징은 본 명세서에 설명된 각종의 다른 특징에 독립적으로 시행될 수 있을 것이다. 본 옵션적 특징에 관한 더욱 모범적인 정보가 설명될 것이다.
디지탈 이미지 압축 및 디지탈 비디오 압축 방법에서, 이미지(또는 프레임)는 숫자의 배열로 표현되며, 각각의 숫자는 영역의 밝기 또는 그 영역 내의 특정 색상(적색과 같은)의 수량을 나타낸다. 이들 영역은 픽셀로 지칭되며, 숫자는 샘플 또는 성분값으로 지칭된다.
이미지 압축 또는 비디오 압축은 다양한 범위의 상이한 방법을 사용하여 행해진다. 전술된 바와 같이, 이들 방법의 다수는 그 스텝으로써 변환의 컴퓨터연산을 수반하며, 이 컴퓨터연산에서, 산술적 연산의 시퀀스를 통해, 이미지를 나타내는 샘플의 배열은 이미지 정보를 포함하지만 동일 영역의 밝기 또는 색상에 개별적으로 대응하지는 않는 숫자의 상이한 배열로 변환되고, 이 숫자는 계수로 지칭된다. 변환이 동일 이미지 정보를 포함하는 경우에도, 이 정보는 압축 방법의 차후의 연산에 도움을 주도록 숫자 중에 분포된다.
이러한 방법에 의해 압축된 이미지 또는 프레임이 재생될 때, 압축 데이타는 압축해제되어야만 한다. 일반적으로, 이 것은 계수의 배열을 취하고 샘플의 배열을 생성하는 역변환을 컴퓨터연산하는 단계를 포함한다.
이미지 또는 프레임의 샘플은 통상적으로 8개의 이진 비트인 작은 크기의 정수로 흔히 표현된다. 이러한 8 비트 숫자는 256개의 상이한 값만을 표현할 수 있으며, 이러한 어플리케이션에서는 그 값이 통상적으로 0에서 255 까지를 포함하는 정수의 범위 [0, 255]로 고려된다.
다수의 표준 및 연산 조건은 이것보다 더 제한된 범위를 강요한다. 예를들어, CCIR-601(ITU-R BT.601-4) 디지탈 비디오에서의 픽셀 성분(Y, U, V) 샘플 값은 [0, 255]보다 더 적은 범위 내에 있도록 특정된다. 특히, 스크린의 점등부에서의 휘도 Y 성분 유효 범위는 [16, 235] 내에 있도록 특정되고, 색도 U, V 범위는 [16, 240] 내에 있도록 특정된다.
이미지 및 비디오 압축 방법은 무손실과 손실의 2가지의 카테고리로 분할될 수 있다. 무손실 압축 방법은 압축을 위해 제공된 것과 정확히 동일한 값을 압축해제로부터 생성하도록 하는 방식으로 작용한다. 이들 방법에 대해서는, 출력이 입력과 동일한 범위의 수를 점유하기 때문에 범위에 대한 사항은 존재하지 않는다.
그러나, 손실 압축은 원본 이미지를 비트대 비트로 매칭시키지 않고 원본 이미지를 근사하도록만 기대되는 압축해제된 출력을 생성한다. 이미지를 다소 변경시키는 이러한 자유를 이용함으로써, 손실성 방법은 매우 큰 압축율을 발생할 수 있다.
손실성 압축 방법의 압축해제 파트에서, 컴퓨터연산된 샘플은 대응하는 원본 샘플과 동일하게 되도록 보장되지 않으며, 그에 따라 동일 범위의 값을 차지하도록 보장되지도 않는다. 따라서, 이미지 표준의 범위 조건을 충족하기 위해, 컴퓨터연산된 값을 특정 범위로 제한하거나 절단하는 스텝이 포함되어야만 한다.
이러한 절단 스텝을 수행하기 위한 방식은 다음과 같다: 모든 컴퓨터연산된 샘플에 대해, s>max 인지의 여부를 검사하고, 이 조건을 충족한다면 s=max로 설정하며, s<min 인지의 여부를 검사하고, 이 조건을 충족한다면 s=min으로 설정한다.
이 스텝을 수행하기 위한 다른 방식은 일부 컴퓨터 플랫폼에서 나타나는 MAX 및 MIN 연산자를 사용하고, 각각의 샘플에 대해 2개의 연산을 적용할 수 있을 것이다. 설명된 2가지의 방식 및 다수의 다른 방식은 가산 및 감산과 같은 간략한 산술적 연산에 비해 컴퓨터연산적인 측면에서 비경제적이다.
이 프로세스가 이미지 또는 프레임내의 각각의 샘플값(모든 픽셀)에 대해 별도로 수행될 수도 있기 때문에, 이것은 압축해제 방법에서의 컴퓨터연산의 중요한 부분이 된다. 요구된 범위 내에 정상적으로 놓여 있는 컴퓨터연산된 샘플의 거의 모두에 대해, 두 가지의 검사가 실패할 수도 있고 그에 따라 두 가지의 검사가 컴퓨터연산되어야만 한다는 점에 유의하기 바란다.
전술된 바와 같은 변환 컴퓨터연산은 공통적으로, 결과의 계수 중의 하나가 전체 프레임 또는 프레임의 중요 부분(MPEG 기술에서의 블록)에 걸쳐 전체적인 밝기 레벨을 나타낸다는 성질을 갖는다. 이 계수는 "DC 계수"로 지칭된다. 변환이 컴퓨터연산되는 방식 때문에, DC 계수를 변경하는 것은 동일 방식에서의 그 프레임 또는 블록의 모든 샘플의 값을 그에 비례하여 변경시킨다. 그러므로, 예를들어, 역변환을 수행하기 바로 전에 블록에 대한 DC 게수에 적합하게 선택된 상수를 추가함으로써, 블록내의 모든 샘플의 값을 동일 양만큼 증가시키는 것이 가능하게 된다.
압축 방법이 수행되는 컴퓨터연산 엔진은 포화 성질을 갖는 산술적 명령어를 공통적으로 포함하며, 여기서 포화 성질이란, 결과가 계산될 때, 그것의 컨테이너의 표현 범위(8-비트 수량에 대해서는 [0, 255])를 초과한다면, 그 결과는 그 범위 내에 있도록 절단된다는 것을 의미한다. 예를들어, 포화 감산 명령어가 값 4와 9로 제공된다면, (4-9=)-5를 대신하는 결과가 절단될 것이며, 결과 0가 리턴될 것이다. 마찬가지로, 포화 추가 명령어는 250+10에 대해 결과 255를 전달할 것이다.
다수의 압축 방법에서의 적절한 한계치에 대한 디코딩으로부터 얻을 수 있는, 픽셀 성분값을 절단하는 저비용 방식이 설명될 것이다. 본 실시예는 부분 값에 대해 바이어스를 운반함으로써 포화 산술로 2개의 클립 중의 하나를 수행하여, MAX/MIN 연산자 중의 하나만을 남게 한다. 그 예를 더욱 구체적으로 확인하기 위해, 요구된 범위가 [llim, ulim]=[16, 240]일 때, 표 4를 참조하기 바란다.
[표 4]
1. 바이어스를 각각의 블록내의 DC 계수에 적용에 적용하며, 그 결과 모든 변환 필터의 후에 각각의 부분이 -16(일반적으로 -llim)에 의해 오프셋된다.
비용 : 블록 또는 이미지 당 하나의 산술 연산
2. 역변환의 최종 산술 스텝이 제조로 포화(절단)되도록 한다.
비용 : 대부분의 컴퓨터연산 엔진에 대해 무료
3. MAX 연산을 분할된 채로 224에 적용(일반적으로 ulim~llim)한다.
비용 : 샘플당 하나의 MAX 연산
4. ADD 16(일반적으로 llim)을 사용하여 바이어스를 제거한다. 이것은 바로 전의 MAX이기 때문에 오버플로우할 수 없으며, 포화 산술을 가지고 행해질 필요가 없다.
비용 : 샘플당 하나의 ADD
이제 명백해진 바와 같이, 필요한 범위 제한의 컴퓨터연산의 비용은 샘플당 2개의 MAX/MIN 연산에서 블록당 하나의 ADD로, 샘플당 하나의 MAX로, 그리고 샘플당 하나의 간략한 ADD로 감소될 수 있다.
예를들어, EQUATOR MAP-CA 프로세서와 같은 일부 컴퓨터연산 엔진을 통해, 본 방법을 사용한 절감은 전술한 것으로부터 용이하게 명백해지는 것보다 훨씬 더 커지게 될 수 있다. 이들 엔진을 통해, 약간의 샘플이 워드로 결합되고, 동시에 연산될 수 있다. 그러나, 이들 분할된 연산은 프로세서의 특정 부분으로 제한되며, 압축 어플리케이션에서 성능을 위한 제한 자원이 될 수 있다. 이러한 엔진을 통해, 상기의 스텝 4에서의 ADD가 오버플로우할 수 없다는 사실은 매우 중요하다. 스텝 4는 특별한 분할된 ADD의 사용을 필요로 하지는 않지만, 분할되었다 하더라도 약간의 샘플에 관해 동시에 연산하기 위해 보통을 ADD를 사용할 수 있다. 이 보통의 연산은 부하가 많이 걸리지 않은 프로세서의 일부를 사용하고, 다른 필요한 분할된 연산과 동일한 시간에 오버랩 또는 실행될 수 있으며, 그 결과 역변환을 컴퓨터연산함에 있어서의 시간을 현저하게 절감시킨다.
도 6은 일실시예에 따른 데이타를 압축하기 위한 시스템(600)을 도시한다. 옵션으로써, 시스템(600)은 본 명세서의 앞에서 설명된 전술한 개념의 구문으로 시행될 수 있다. 그러나, 시스템(600)은 어떠한 요구된 구문으로 시행될 수도 있다.
제1 압축 데이타를 제1 포맷으로 생성하도록 데이타를 압축하기 위한 단일 장치(604)에 인코더(602)가 포함된다. 더욱이, 코드 변환기(606)는 제2 압축 데이타를 제2 포맷으로 생성하도록 제1 압축 데이타를 변환코딩하기 위해 인코더(602)와 같이 동일한 단일 장치(604)에 포함된다.
사용시, 데이타가 단일 장치(604)로 수신된다. 이러한 데이타는 제1 압축 데이타를 제1 포맷으로 생성하기 위해 단일 장치(604)를 활용하여 인코딩된다. 더욱이, 제1 압축 데이타는 제2 압축 데이타를 제2 포맷으로 생성하기 위해 단일 장치(604)를 활용하여 변환코딩된다.
일실시예에서, 인코딩은 실시간으로 발생할 것이다. 더욱이, 변환코딩은 오프라인으로 발생할 것이다. 다른 실시예에서, 제1 압축 데이타는 제2 압축 데이타가 단일 장치(604)에 접속된 통신 네트워크의 용량에 부합하도록 제2 압축 데이타를 제2 포맷으로 생성하기 위해 변환코딩될 수도 있다.
옵션으로써, 인코딩은 제1 인코더를 사용하여 수행될 수도 있을 것이다. 더욱이, 변환코딩은 도 6에 도시된 바와 같은 디코더 및 인코더를 사용하여 수행될 수 있을 것이다.
또한, 제1 포맷은 웨이브렛 기반 포맷을 포함할 수도 있을 것이다. 더욱이, 제2 포맷은 DCT 기반 포맷을 포함할 수도 있을 것이다. 일특정 실시예에서, 제2 포맷은 MPEG 포맷을 포함할 수도 있을 것이다. 추가의 옵션적인 특징에 관한 더욱 모범적인 정보가 설명될 것이다.
전술된 바와 같이, 이미지 및 비디오 시퀀스를 사용하는 여러 모드의 통신이 존재한다. 직접적인 실시간 시청외에도, 이미지(들) 또는 비디오 시퀀스를 캡쳐하고 이것을 차후에 전송할 수 있으며, 그 다음에 즉각적으로 캡쳐를 후속하거나 더 유용한 시간까지 딜레이된다.
또한, 비디오 시퀀스의 수신은 TV를 시청하는 것과 같이 비디오가 보여지기는 하지만 저장되지는 않는 실시간 모드 또는 시퀀스가 차후의 시청을 위해 저장되는 다른 모드 중의 하나로 이루어질 수 있다.
이러한 다양한 옵션은 사용의 시나리오에 따라 조합되며, 다른 조합에 추가되기도 한다. 3가지의 시나리오는 다음과 같다:
1. 송신기 및 수신기 모두가 실시간으로 작동하는 전술된 비디오폰 또는 화상폰 조작. 이것은 압축, 코딩 및 압축해제 모두가 비디오 캡쳐의 속도로 실시간으로 이루어지도록 요구하며, 이러한 요구는 전송 채널이 완전 압축율의 압축 비디오를 운송하도록 요구한다.
2. 비디오가 소스에서 또는 네트워크내에서 캡쳐 및 저장되고 수신기에서 실시간으로 시청되는 스트리밍 조작. 이것은 실시간 디코딩을 요구하지만, 전송 전에 시퀀스를 처리하기 위한 시간을 허용한다. 이 모드는 완전한 압축율의 압축된 비디오를 운송하기 위해 적어도 네트워크에서부터 수신기까지의 전송 채널을 필요로 한다. 또한, 대부분의 전송 채널에 대하여, 수신기는 전송율에서의 변동으로 인해 원할한 재생을 유지하기 위해 시퀀스의 일부 양을 버퍼링하여야만 한다.
3. 비디오가 소스에서 캡쳐 및 저장되고, 비실시간으로 수신기에 전송되며, 차후의 재생을 위해 수신기에서 저장되는 메시징 또는 화일-전송(file-transfer mode). 이 모드는 완전한 데이타율의 실시간 비디오를 운송할 수 없는 전송 채널에 대한 조작을 허용하고, 수령인이 과거에 보았던 것을 재생, 일시멈춤 및 조절할 수 있게 한다.
한 포맷으로 캡쳐 및 압축되는 이미지 또는 비디오는 또다른 압축 포맷으로 전환될 수 있을 것이다. 이 조작은 변한코딩으로 지칭된다. 이것은 최악의 경우에 입력 포맷을 전체 화상 또는 비디오로 압축해제하고, 그리고나서 요구된 출력 포맷으로 압축함으로써 이루어진다. 다수의 쌍의 포맷에 대해, 이용 가능한 이 최악의 경우의 방법보다 경제적인 방법이 존재할 것이다.
국제 셀룰러 폰 네크워크와 같은 다수의 네트워크에서, 상이한 사용자는 이미지 또는 비디오에 대한 상이한 포맷을 선호하거나 요구할 수 있을 것이다. 예를들어 MPEG-4 표준이 프로파일, 크기, 속도 및 다른 파라미터의 다수의 옵션을 제공하기 때문에 모든 사용자가 MPEG-4 표준을 고집하는 경우가 있을 수도 있다. 이러한 이유 및 다른 이유로, 간혹 발신자 및 수신자 장치가 특정 전송에서 어느 포맷이 사용될지를 협의하는 것이 바람직하게 될 것이다. 가장 간략한 경우에, 각각의 장치는 처리할 수 있는 포맷의 리스트를 제공하고, 양측이 그 리스트의 중복된 것으로부터 상호 수용 가능한 한 포맷을 선택한다. 많은 복잡한 형태의 이러한 협약이 존재하지만, 전반적인 효과는 동일하며, 발신자만이 접속의 개시 후에 어떠한 포맷으로 전송할지를 알게 된다.
변환 코딩이 접속의 일부로써 요구될 때, 변환코딩은 최초 발생 장치 또는 일부 중간 위치 중의 하나에서 수행될 수 있다. 일부 네트워크는 불일치하는 지역적 성능을 갖는 장치간에 상호 통신을 제공하기 위해 네트워크의 운영의 일부로써 변환코딩 서비스를 제공할 것이다. 이것은 복합성을 유지하고 그에 따라 휴대용 장치의 비용을 절감사는데 도움을 줄 것이다.
비디오 데이타 속도와 전송 채널 속도간에 전술된 불일치때문에, 다음과 같이 새로운 모드로 작동하는 것이 이로울 것이다. 장치는 비디오를 캡쳐하고, 캡쳐된 비디오를 후술되는 바와 같은 저복합성 압축 방법을 사용하여 실시간으로 압축하며, 압축된 비디오 시퀀스를 저장한다. 그리고나서, 차후에, 이 장치는 비디오 시퀀스를 수신인 또는 네트워크에 수입 가능한 포맷으로 코드변환할 수 있다. 이에 의해, 네트워크 포맷 표준과의 완벽한 호환과 함께 저전력 운영, 배터리 수명의 연장 및 장치내 회로의 간략화가 가능하게 된다.
이 작동 스타일의 옵션적인 장점은 실시간 압축의 선택이 장치가 직접 통신할 수 있는 수신기의 범위를 제한하지 않는다는 유연성이다. 전송 포맷은 전술된 바와 같이 전송 호출시에 협의될 수 있다. 장치는 모두에 대한 광범위하게 최적화된 실시간 시행을 가질 필요가 없기 때문에 더 넓은 범위의 포맷을 지원할 수 있다.
상기의 조작 스타일의 또다른 옵션적인 장점은 코드변환이 비디오 캡쳐의 속도로 작동할 필요가 없이 간혹 훨씬 더 저속의 속도를 갖는 전송 네트워크의 속도에 부합될 수 있으면 된다는 점이다. 저속 코드변환 조작은 그 결과 표준 실시간 압축기가 취하는 회로보다 더 소형의 회로로 이루어질 수 있고, 표준 실시간 압축기가 소요하는 것보다 더 적은 전력을 소비한다. 그러므로, 전체적인 전력 소비, 배터리 수명 및 장치의 가격이 절감된다.
이 스타일의 조작의 또다른 옵션적인 장점은 이미지 및 비디오의 전송을 일과중 통화 요금과 같이 비용이 높은 시각에서 야간 요금이 같은 비용이 낮은 시각으로(또는 현재의 셀룰러 폰 과금 체계로, 심지어는 무료)으로 연기하는 가능성이다.
전송은 시간이 아닌 다른 요소 때문에 또다른 시각에서 더 낮은 비용을 가질 수도 있다. 예를들어, 셀룰러 폰은 휴대폰이 "로밍" 지역에서 있을 때보다 국내 영토로 돌아왔을 때 더 낮은 요금을 발생할 것이다.
전술된 바와 같은 연기된 전송은 장치의 사용자가 반드시 어떠한 연기된 행동을 취해야할 필요는 없다. 전송은 장치가 가지고 있는 요금 및 스케쥴에 대한 정보에 기초하여 장치에 의해 자동적으로 스케쥴 조정될 수 있다. 그러므로, 사용자의 편리성이 유지된다.
당연히, 일부 메시지는 다른 것보다 더 높은 감지된 긴박함을 갖기 때문에, 사용자는 전송을 연기해야 하는지의 여부 및 연기를 해야하는 시간 기간을 용이하게 특정할 수 있다.
이미지 및 비디오가 비실시간으로 전송될 때, 장치의 사용자는 전송이 진행중인 동안이나 인입 통화가 도착할 때에 통화하고자 하거나, 혹은 접속이 일부 다른 이유로 인해 끊기게 될 가능성이 있다. 이미 성공적으로 전송된 정보의 부분을 재전송해야만 하지 않고서도 방해된 전송을 재개하도록 하는 정보를 제공하는 것에 대해 통신 네트워크 분야에 널리 공지되어 있다.
이러한 중단 가능한 전송은 통화 시도와 같은 전달 중단 및 접속 단절과 같은 예기치 못한 중단 모두에 대해 허용할 것이다.
수신 장치가 전체 비디오 시퀀스를 저장하기 위해 용량을 가져야 할 필요는 없다. 코드변환 소스 장치는 발신기보다 매우 간략하고 훨씬 적은 용량을 갖는 수신기를 포함하는 스트리밍-모드 수신기에 전송될 수 있다.
표준 이미지 및 비디오 포맷은 에러 정정, 에러 검출 및 버스트-에러 제어 방법을 제공한다. 이들 표준 포맷으로 코드변환함으로써, 장치는 저복합성의 저전력 캡쳐 압축 방법을 이용하면서도 표준 에러 복원 특징을 장점을 전부 취할 수 있다.
저복잡성 실시간 처리를 사용하여 대상으로 하는 신호를 캡쳐하고, 그리고나서 이 신호를 차후에 전송에 더 적합화된 포맷으로 코드변환하거나 추가 처리한다는 아이디어는 이미지 및 비디오가 아닌 신호에, 그리고 휴대용 개인용 보조장치가 아닌 장치에 적용될 수 있으며, 무선 통신 이외의 장치를 사용하기 위해서도 적용될 수 있다. 예를들어, 군사적 지능 감지, 적외선 원격 감지, 소나(sonar), 망원경 스펙트럼, 무선 망원경 신호, SETI 채널, 생화학 측정, 지진 신호 및 다수의 다른 것들이 이 기본적인 체계로부터 이득을 얻을 수 있다.
도 7은 단일 집적회로(704)(즉, ASIC) 상의 다수의 인코더(702)를 이용하여 데이타를 압축하기 위한 시스템(700)을 도시한다. 옵션으로써, 시스템(700)은 앞에서 언급된 전술한 개념의 구문으로 시행될 수도 있다. 그러나, 시스템(700)은 임의의 요구된 구문으로 시행될 수도 있음은 자명하다.
도시된 바와 같이, 제1 인코더는 제1 데이타 세트를 인코딩하기 위해 단일 집적회로(704) 상에 구현된다. 더욱이, 제2 인코더는 제2 데이타 세트를 인코딩하기 위해 제1 인코더가 구현된 집적회로와 동일한 단일 집적회로(704) 상에 구현된다. 당연히, 더 많은 인코더가 유사한 목적을 위해 단일 집적회로(704) 상에 구현될 수도 있다.
사용시, 단일 집적회로에 데이타가 수신된다. 그 데이타는 그리고나서 단일 집적회로 상에 통합된 복수의 인코더를 이용하여 인코딩된다.
일실시예에서, 데이타는 단일 집적회로 상의 다수의 채널을 이용하여 인코딩될 수도 있을 것이다. 더욱이, 그 데이타는 웨이브렛 포맷으로 인코딩될 수도 있을 것이다.
비디오 압축을 위한 다수의 어플리케이션은 다수의 코딩 또는 디코딩 스테이지를 포함하는 ASIC에 의해 더 우수하게 서비스될 수 있다. 그 예로는 압축 및 압축해제의 프로세스가 동시에 수행되어야 하는 TiVo 및 리플레이 TV 제품과 같은 개인용 비디오 레코더(PVR) 또는 디지탈 비디오 레코더(DVR)의 범주에 속하는 것들이 있다. 다른 예로는 카메라로부터의 다수의 비디오 신호가 다중화되어 압축되고 함께 녹화되는 비디오 복원 리코더가 있다.
단일 ASIC 상에 여러 개의 압축 회로를 형성하거나 단일 ASIC 상에 압축 및 압축해제 회로들의 조합을 형성하는 것은 직접적인 장점과 간접적인 장점을 제공한다. 직접적인 장점은 감소된 패키지 개수, 감소된 핀 개수, 감소된 전력 소비 및 감소된 회로 기판 면적을 포함한다. 이들의 전부는 제품 가격을 감소시키는데 기여한다.
간접적인 장점은 비디오 선택 및 다중화 회로를 동일 칩 상에 통합할 수 있는 가능성을 포함하며, 이에 의해 핀 개수와 기판 면적을 추가로 감소시킬 수 있다.
예를들어, 종래의 압축 방법 및 표준 압축 방법보다 더 적은 회로로 구현할 수 있는 Droplet Technology, Inc.(R)에 의해 개발된 도 2 내지 도 5를 참조하는 동안에 설명된 알고리듬과 같은 비디오 압축 방법이 존재한다. 이들의 우월한 설계로 인해, 다수의 예의 이들 진보된 압축 방법이 단일 ASIC 또는 다른 집적회로 상에 통합될 수 있을 것이다.
데이타를 압축하기 위한 다른 신호 모듈 시스템 및 방법이 추가로 제공된다. 사용시, 광자는 단일 모듈을 사용하여 수신된다. 그 후, 광자를 나타내는 압축 데이타가 단일 모듈을 이용하여 출력된다.
옵션으로써, 압축 데이타는 웨이브렛 기반 포맷으로 인코딩될 수도 있다. 더욱이, 인코딩과 관련된 변환 조작은 아날로그로 수행될 수도 있다. 단일 모듈은 촬상 소자를 추가로 포함할 수도 있다.
본 실시예는 압축된 디지탈 비디오를 캡쳐하고 전달하는 전체적인 프로세스를 용이하게 하도록 CMOS 또는 CCD 카메라나 다른 장치와 같은 촬상 소자 어레이를 구성하기 위해 실시될 수도 있다.
직접적으로 디지탈화된 이미지 및 비디오는 많은 비트를 차지하기 때문에, 저장, 전송 및 다른 용도를 위해 이미지 및 비디오를 압축하는 것이 일반적이다. 여러 가지의 기본적인 압축 방법이 공지되어 있으며, 이들의 상당히 많은 특정 변형도 존재하고 있다. 일반적인 방법은 변환, 양자화 및 엔트로피-코딩의 3-단계 프로세스를 특징으로 한다.
비디오 압축기내의 변환 단계의 목적은 소스 화상의 에너지 또는 정보를 화상 또는 시퀀스내의 지역적인 유사성과 패턴을 이용함으로써 가능한 한 간략한 형태로 모으기 위함이다. 본 실시예는 "대표적인" 입력에 대해 우수하게 작동하며, "랜덤한" 또는 "비정상의" 입력을 압축함에 있어서의 장애를 무시한다.
JPEG[1], MPEG-2[2] 및 MPEG-4[4]와 같은 다수의 이미지 압축 및 비디오 압축 방법은 변환 단계로써 이산 코사인 변환(DCT)을 사용한다.
JPEG-2000[3] 및 MPEG-4 textures[4]와 같은 일부 신규의 이미지 압축 및 비디오 압축 방법은 변환 단계로써 다양한 웨이브렛 변환을 사용한다.
웨이브렛 변환은 데이타의 세트에 대한 한 방향 또는 둘 이상의 방향으로의 웨이브렛 필터쌍의 반복적인 적용을 포함한다. 이미지 압축을 위해서는 2-D 웨이브렛 변환(수평 및 수직)을 사용할 수도 있고, 비디오 압축을 위해서는 3-D 웨이브렛 변환(수평, 수직 및 시간)을 사용할 수도 있을 것이다.
웨이브렛 필터쌍은 이미지(또는 이미지의 섹션)를 처리하여 각각 통상적으로 크기가 절반인 2개의 이미지를 생성하며, 이중의 하나는 일반적으로 "저역통과" 또는 평균 혹은 얼룩(blurred)으로 간주되고, 다른 하나는 "고역통과" 또는 디테일이나 에지로 간주될 수 있다. 입력 화상내의 전체 정보가 유지되고, 원본은 변환된 이미지쌍으로부터 정확하게 재구성될 수 있다(여러 방법으로). 웨이브렛 필터쌍은 일반적으로 이미지를 일차원으로, 즉 수평으로, 수직으로 또는 시간적으로(프레임의 시간 시퀀스에 걸쳐) 처리한다. 전체 웨이브렛 변환은 여러 개의 차원으로 연속적으로 적용된 이들의 일련의 단계로 이루어진다. 일반적으로, 앞쪽 단계의 결과는 뒤쪽 단계에서 전혀 처리되지 않으며, 고역통과 이미지는 간혹 추가의 필터링없이 유지된다.
카메라는 그 심장부로 촬상 소자, 즉 광의 강도 및 색상에 대응하고 차후의 디스플레이 및 다른 용도를 위해 광의 변환하는 강도 및 색상을 기록하는 장치를 갖는다. 오늘날의 디지탈 스틸 카메라 및 비디오 카메라용의 보편적인 촬상 소자는 CCD 및 CMOS 어레이이다. 이 둘은 각각의 픽셀에서의 광에 응답하여 전기 전하를 축적하며, 이들은 전하의 양을 전달 및 독출하는 방식이 상이하다.
CMOS("상보형 금속 산화물 반도체") 촬상 소자는 신규의 기술이며, CCD보다 저렴하게 제작될 수 있다. CMOS 촬상 소자의 핵심적인 장점은 촬상 소자 칩의 처리가 디지탈 논리회로 칩의 처리와 닮았다는 점이다. 이것은 동일 칩 상에 제어 및 다른 기능을 포함시키는 것을 용이하게 한다. 두 종류의 칩은 그러나 반드시 보여지는 광의 양을 나타내는 아날로그 전하 혹은 전압이나 전류를 측정하기 위해 최저 레벨에 있는 아날로그 회로로부터 구성되어야 한다.
CMOS 촬상 소자는 DRAM("동적 랜던 액세스 메모리")에 대해 구조적으로 매우 유사하며, 픽셀에 보여지는 광을 나타내는 전하를 어레이를 가로지르는 금속 트레이스의 그리드를 따라 어레이의 가장자리로 전송한다.
CCD 촬상 소자는 더 오래된 기술이기는 하지만 개발이 용이하고, 더 낮은 잡음 및 배터리 민감성을 제공한다. CCD(전하 결합 소자)는 픽셀에 보여지는 광을 나타내는 전하를 버켓-브리게이드(bucket-brigade) 형태로 셀에서 셀로 통과시킴으로써 어레이의 가장자리로 전송한다.
CMOS 촬상 소자 또는 CCD 촬상 소자는 어레이의 가장자리에 전송된 전하가 "0" 또는 "1" 비트값을 나타내지 않고 밝기 값의 범위를 나타낸다는 점에서 디지탈 메모리 소자와 상이하다. 그러므로, 아날로그대 디지탈 변환이 요구된다. 이 변환을 진행하면, 신호가 증폭되며, 칩 제조 및 조작에서의 에러 및 변동성을 제거하기 위해 다른 처리에 놓이게 된다. 공통적인 처리 단계는 "상관 더블 샘플링"이며, 이 단계에서는 어두운 샘플이 취해져 회로의 이 부분에 대한 누설 전류의 측정치로써 저장되며, 노이즈 패턴을 제거하기 위해 이미지 샘플로부터 감산된다.
아날로그 처리는 차동 증폭기, 즉 그 입력들 중의 한 쪽의 절대값 크기에 대해서가 아닌 그 입력들간의 차이에 우선적으로 대응하는 회로에서 이루어진다.
광 캡쳐 및 저장 디지탈들간의 처리 고리의 일부 지점에서, 신호는 아날로그(전하, 전압 또는 전류) 표현에서 디지탈 표현으로 변환되어야 한다.
아날로그대 디지탈 변환을 처리 고리의 앞쪽 또는 뒤쪽에서 행할지를 선택할 수 있기 때문에, 전체적인 처리의 일부 단계를 아날로그로 형태 또는 디지탈 형태 중의 한 형태로 행사는 옵션을 갖는다.
웨이브렛의 단계인 웨이브렛 필터쌍은 일부 구현예에서 인접 및 근접한 픽셀값의 매우 간략한 세트의 가산 및 감산으로 이루어진다. 예를들어, "Harr Wavelet"으로 지칭된 유용한 필터쌍은 다음의 수학식 1.1H 및 수학식 1.2H과 같이 단지 합 및 차가 된다.
Ln = X2n + X2n+1 1.1H
Hn = X2n - X2n+1 1.2H
이것은 입력 이미지 "X"의 동일한 2개의 샘플로부터 "하이" 변환된 이미지의 한 샘플과, "로우" 변환된 이미지의 한 샘플을 생성한다.
다른 웨이브렛 필터도 가능하고 이용되는데, 일부는 매우 복잡하지만, 일부는 소수의 Haar 단계를 행하고, 이들을 함께 합산하며, 이들을 일정량에 의해 크기조절하는 것과 같이 단순한 것으로 이루어진다.
예를들어, JPEG2000 표준[1]에 특정된 변환 중의 하나는 수학식 1.1 및 수학식 1.2에서 앞서 설명된 가역적 5-3 변환이다.
전체 웨이브렛 필터쌍은 5개의 가산/감산 연산과 2개의 크기조정 연산을 취하며, 연속적인 아날로그 도메인에서, 기초 연산은 사라진다.
아날로그값을 함께 합산하는 것은 차동 증폭기(가산 또는 감산 중의 하나에 대해)에 의해 용이하면서 자연스럽게 달성되고, 일정량에 의해 크기조정하는 것은 아날로그 신호에 대한 전체의 연산 중에 가장 쉬운 연산이어서 단지 하나 또는 2개의 레지스터만을 요구하는 것으로 판명되었다.
대조적으로, 디지탈 도메인에서의 값을 합산하는 것은 각각의 비트+캐리 체인에 대한 가산기 논리 회로를 요구하며, 일부 특별한 일정량에 의해 크기조절하는 것은 용이하게 이루어지지만, 범용적인 크기조정은 저렴하지 않은 디지탈 논리회로를 필요로 한다.
CMOS 및 CCD 촬상소자가 현재 칩 상의 픽셀 샘플로부터의 잡음을 증폭 및 감산하기 위해 차동 증폭기를 사용하여 구성되기 때문에, 디지탈대 아날로그 변환 전에 칩에 관해 일부 간략한 처리 단계를 행사는 것은 매우 용이하다. 이들 단계를 행한다는 것은 칩에 일부 아날로그 회로를 추가한다는 것을 의미하지만, 그것은 소량의 회로가 될 것이다.
선호되는 실행예를 포함한 웨이브렛 변환의 일부 실행예에서, 컴퓨터연산된 제1 단계가 가장 비경제적인 것으로 판명되었다. 그 이유는 제1의 여러 단계의 각각이 차후 단계에 의해 처리될 이미지의 양을 감소시키기 때문이며, 각각의 필터단에 의한 "고역통과" 이미지 출력을 추가로 처리하는 것을 필요로 하지 않는다. 그러므로, 제1 단계 또는 제1의 소수 단계를 아날로그대 디지탈 변환을 행하기 전에 아날로그로 처리하는 것은 오직 "저역통과" 이미지만이 디지탈적으로 처리되어야만 하게 되기 때문에 디지탈 처리르 현저히 축소할 수 있다. 이 장점에 의해, 디지탈 회로의 양이 감소되어 디지탈 회로가 차지하는 칩면적이 감소되거나, 디지탈 회로가 저속으로 실행될 수 있어 전력 소비와 열발생을 줄일 수 있다.
이미지 또는 비디오의 변환단은 DCT를 사용하여 행해질 수 있으며, 이 프로세스는 이미지를 스펙트럼으로 변환하고, 이 스펙트럼의 연속적인 샘플이 이미지내의 공간 주파수의 범위의 내용을 나타낸다. DCT의 일부 실행예는 Haar 스텝을 사용하며, 이들 스텝은 아날로그로 행해지는 것이 이로울 것이다.
일반적으로, 웨이브렛 변환에서는 수평 필터쌍을 제1 단계로 하여 컴퓨터연산을 행할 수 있다. 이것은 아날로그 필터링을 위해 편리한 것으로 보인다. 제1 수직 필터 단계를 행하기 전에 2개의 수평 단계를 행할 수 있으며, 이것은 또한 아날로그가 편리할 것이다.
수직 필터 단계는 수직으로 인접한 픽셀의 동시 제공을 필요로 한다. 종래의 이미지 주사 래스터 순서에서, 이러한 픽셀은 시간적으로 넓게 분리된 것으로(라인 시간이 떨어져 있는 것으로) 나타난다. 그러나, CMOS 촬상 소자와 같은 칩 촬상 소자에서, 여러 개의 라인이 함께 나타나도록 주사 순서를 재배열하는 것이 합리적이며, 그에 따라 수직 필터 단계를 제1 수평 필터 단계 이전이나 이후에 아날로그로 행하는 것이 쉬워진다.
컬러 이미지를 캡쳐하는 촬상 소자 칩은 통상적으로 컬러 필터를 적색, 녹색 또는 청색 응답으로 제한하면서 컬러 필터를 각각의 픽셀의 앞에 위치시킨다. 이들 필터는 3가지 색상이 이미지내의 어느 곳에서도 인접하게 샘플링되도록 패턴으로 배열된다.
그러나, 디지탈 비디오 표준은 RGB가 아닌 성분의 배열을 선호한다. 가장 폭넓게 사용되는 것은 YUV 또는 YUbCr이며, 여기서 Y 성분은 흑백 밝기 또는 "휘도"를 타나내고, U와 V 성분은 청새이나 적색과 휘도간의 색차를 나타낸다. 이러한 표현의 이유는 인간의 시각적 응답이 C 성분에서의 더 낮은 분해능을 허용하며, 그에 의해 이미지의 더 적은 디지탈 표현을 하용하기 때문이다. YUV 표현은 비교를 위해 편리하다. 컬러 촬상 소자 칩은 RGB 픽셀 값을 아날로그(변형 전) 또는 디지탈(변형 후) 중의 하나인 YUV 값으로 변환하기 위한 연산을 행하는 회로를 제공한다.
웨이브렛 필터 단계와 색상 변형을 여러가지 방식 중의 어떠한 방식으로도 결합시킬 수 있다. 예를들어, 아날로그 색상 변형은 제1 아날로그 웨이브렛 필터 단계를 진행할 수 있으며, 이 경우, 웨이브렛 필터는 전대역폭 Y 성분과 반대역폭 U 및 V 성분에 대해 작용한다. 이와 달리, 웨이브렛 필터는 먼저 촬상 소자 어레이로부터의 R, G 및 B 성분에 적용될 수 있고, YUV에 대한 색상 변형이 후속되며, 이 경우, 필터는 3개의 전대역폭 성분 신호에 대해 작용한다.
다른 구성에서에서는 종래의 색상 변형 단계를 함께 제거하여 RGB 성분을 웨이브렛 변환에 제공할 수 있다. 조작의 일부로써 YUV에 대한 변형을 달성하는 웨이브렛 변환의 버젼이 존재한다. 이 구성에서, 색상 변형을 행하는 아날로그 회로는 아날로그 회로에서의 순증가(net increase)없이 디지탈 회로가 감소된 제1 웨이브렛 단계를 행하는 아날로그 회로와, 디지탈 웨이브렛 압축 처리와의 매우 깨끗한 인터페이스에 의해 교체된다.
그러므로, 초기 웨이브렛 필터 단계 또는 단계들의 아날로그 컴퓨터연산을 통합함으로써 압축 디지탈 비디오 캡쳐 서브시스템이 얼마나 더 효율적으로 되는지를 알 수 있다. 이것은 흑백 촬상 소자에 대해서도 행해질 수 있으며, 컬러 디지탈 이미지의 색상 변형과 여러가지 방식으로 조합될 수 있다. 이 방법은 웨이브렛 기반 이미지 압축 및 비디오 압축 제품의 성능 및 컴퓨터연산 효율을 향상시킨다.
각종 실시예가 설명되었지만, 이들은 예를들기 위해 제공된 것일뿐 제한의 의미는 아니다. 그러므로, 바람직한 실시예의 정신 및 사상은 전술된 실시예의 어떠한 것에 의해서도 한정되어서는 안되며, 다음의 청구의 범위 및 그 등가물에 따라서만 정의되어야 한다.
부록 A
3개의 데이타 값 [X2N-1 X2N-2 X2N-4]을 가질 것이며, 다음의 2차식에 대해 3개의 계수를 필요로 할 것이다:
2차 도함수의 절반의 음은 -(1/2)2a2 이 될 것이고, 그러므로 a2에만 관심이 주어질 것이다. 그 경우, 이기 때문에 다음의 2차식을 구하는 것이 더욱 간략하게 된다:
반데르몬트형 계수 행렬을 갖는 선형 방정식을 풀 수 있을 것이다.
2차 도함수의 음의 절반은:
부록 B
파일의 소개(INTRODUCTION TO PILES)
필요한 알고리즘이 좁은 데이터 폭, 직렬 데이터 의존도, 또는 빈번한 제어 서술문(즉, “if”, “for”, “while” 서술문)를 가질 때에 병렬 프로세서는 처리량이 많은 동안에는 프로그래밍이 어렵다. 이 실시예는 단독 또는 조합으로 이들 3가지 문제를 모두 극복한다. 엔트로피 코딩 어플리케이션은 3가지 타입의 문제를 모두 안고 있는 중요한 종류의 어플리케이션이다.
병렬 처리(PARALLEL PROCESSING)
프로세서에서의 유용하게 이용될 수 있는 3가지 타입의 병렬 연산이 있다.
1) 제1 타입은 다수의 기능 유닛에 의해 지원되며, 프로세싱이 각각의 기능 유닛에서 동시에 진행되도록 한다. 슈퍼 스케일러 프로세서 구성 및 VLIN (Very Long Instruction Word : 길이가 명령어 워드) 프로세서 구성은 명령어가 동일 사이클 상의 몇 개의 기능 유닛 각각으로 발생되도록 한다. 일반적으로, 레이튼시 또는 완료를 위한 시간은 한 타입의 기능 유닛으로부터 또다른 타입의 기능 유닛에 이르기까지 변화한다. 가장 단순한 함수(예, 비트와이즈 AND)는 보통 한 번의 사이클에서 끝나는 한편, 플로팅 가산 함수는 3이상의 사이클이 걸릴 수도 있다.
2) 제2 타입의 병렬 프로세싱은 개별 기능 유닛의 파이프라이닝에 의해 지원된다. 예를 들면, 플로팅 가산은 완성되어 각각 1사이클을 필요로 하는 3개의 순차적 서브-함수들에서 실행되는 데에 3개의 사이클이 걸릴 수 있다. 파이프라이닝 레지스터를 서브-함수들간에 둠으로써, 제2 플로팅 가산은 이전 플로팅 가산이 제2 서브-함수내로 개시되는 동일 사이클에서 제1 서브-함수내로 개시될 수 있다. 이는 임의의 개별 플로팅 가산이 완성되는 데에 3번의 사이클을 요함에도 불구하고 플로팅 가산이 매번의 사이클에서 시작되어 완성될 수 있음을 의미한다.
3) 제3 타입의 유용한 병렬 프로세싱은 한 워드의 여러 필드-파티션을 다른 경우의 동일 계산에 전념하게 하는 타입이다. 예를 들면, 32비트 프로세서상의 32 비트 워드는 8비트 각각의 4필드-파티션으로 나뉘어질 수 있다. 만약 데이터 항목이 충분히 작아서 8비트 내에 맞추어지면, 동일한 하나의 명령어로 모든 4개의 값을 처리하는 것이 가능할 수 있다.
필드-파티션의 수와 기능 유닛 개시의 개수의 곱셈값과 같은 여러 데이터 항목들을 각각의 단독 사이클에서 처리할 수가 있다.
루프 언롤링(LOOP UNROLLING)
다수 및/또는 파이프라인 기능 유닛을 프로그래밍하는 종래의 일반적인 방법이 있다: 여러 경우의 동일 컴퓨터연산을 발견하고, 각 경우로부터 해당 작업을 함께 실행하는 것이다. 경우들은 loop unrolling의 기술로부터 발생되거나 동일 컴퓨터연산의 몇몇 다른 소스에 의해 발생된다.
루프 언롤링은 일반적으로 응용할 수 있는 기술이기는 하지만, 특정의 예가 그 장점들을 익히는 데에 도움이 된다. 예를 들어, 다음의 프로그램 A),
를 고려해보면, 여기에서, 몸체 S(i)는 i에 좌우되는 연산의 일부 시퀀스 {S1(i); S2(i); S3(i); S4(i); S5(i);}이며, 컴퓨터연산 S(i)는 컴퓨터연산 S(j)에 완전히 무관하며, 여기서 j≠i이다. 연산 S1(i); S2(i); S3(i); S4 (i); S5(i);는 서로 무관하다고 생각하지 않을 수 있으나, 반대로 한 연산으로부터 다음 연산으로의 의존성은 리오더링을 금지하는 것으로 생각할 수 있다.
이러한 동일 의존성은 이전 연산이 끝날 때까지 다음 연산이 시작되지 않음을 요한다고 생각할 수도 있다. 만약 각각의 파이프라인 연산이 완성되는 데에 2번의 사이클이 필요했다면(비록 파이프라인 실행 유닛이 매 사이클에서 새로운 결과를 발생하지 않을 수 있어도), 5번의 연산의 시퀀스는 완성되기 위해 10 사이클을 필요로 할 것이다. 또한, 프로그래밍 도구가 브랜치 딜레이로 S4(i); S5(i);를 오버랩할 수 없으면, 루프 브랜치는 통상 루프당 추가의 3사이클을 요할 것이다. 브랜치 딜레이가 오버랩되면, 프로그램 A)가 종료하는 데에는 256/4*10=640 사이클을 필요로 할 것이며, 브랜치 딜레이가 오버랩되지 않으면, 256/4*13=832 사이클을 필요로 할 것이다.
다음의 프로그램 B),
는 프로그램 A)와 완전히 등가이다. 상기 루프는 4회 언롤잉되었다. 이것은 비경제적인 제어 흐름 변경의 수를 4의 비율로 감소시킨다. 더욱 중요하게, 4개의 S(i)의 각각의 구성 연산을 리오더링하기 위한 기회를 제공한다. 따라서, 프로그램 A) 및 B)는 다음과 같은 프로그램 C)와 동일하다:
상기 의존성 및 독립성에 대한 가정의 세트를 가지고, 다음과 같은 등가 프로그램 D)를 작성할 수 있다:
첫 번째 사이클에서, S1(n); S1(n+l);이 발행될 수 있으며, S1(n+2); S 1(n+3)은 2번째 사이클에서 발행될 수 있다. 3번째 사이클의 시작에서 S1(n); S1(n+l);이 완료될 것이므로(두 사이클이 진행됨), S2(n); S2(n+l);이 발행될 것이다. 그러므로, 진행되어 각각의 후속 사이클에서 두 연산이 발행될 수 있으므로 이 전체 몸체는 동일한 10번의 사이클에서 실행될 수 있다. 프로그램 D)는 프로그램 A)의 시간의 1/4 미만으로 작동한다.
대부분의 병렬 프로세서는 실제 브랜치가 일어나는 포인트와 명령어 자체 사이에 몇 사이클의 딜레이를 요하는 조건적인 브랜치 명령어를 필수적으로 갖는다. 이러한 딜레이동안, 기타 명령어들이 실행될 수가 있다. 브랜치 조건이 충분히 일찍 알려져 있고, 컴파일러 또는 기타 프로그래밍 도구들이 딜레이동안 명령어 실행을 지원하는 한, 브랜치는 하나의 명령어 발행 기회만큼 적게 소요할 수 있다. 브랜치 조건(i=255)가 루프의 상단에서 알려져 있으므로, 이 기술은 프로그램 A)에도 적용될 수 있다.
과도한 언롤링은 비생산적이다. 먼저, 프로그램 D에서처럼 모든 발행 기회가 이용되었으면, 추가의 언롤링과 함께 더 이상의 스피드업은 존재하지 않는다. 두 번째로, 각각의 언롤링된 루프 턴은 그 특정 턴에 대한 상태를 유지하기 위해 추가의 레지스터를 필요로 한다. 필요한 레지스터의 개수는 전개되는 턴의 개수에 선형으로 비례한다. 만약 레지스터의 필요한 총수가 획득 가능수를 초과하면, 몇 레지스터는 캐시로 스필(spill)되어야 하고, 그리고나서 다음 번 루프 턴에 저장되어야 한다. 상기의 스필 및 리로딩을 지원하도록 발생될 필요가 있는 명령어는 프로그램 시간을 연장시키며, 궁극적으로 루프가 언롤링할 때 스피드업을 제공하지 못한다. 마지막 줄 - 이러한 루프를 언롤링하기 위한 최적의 회수가 있다.
예외 프로세싱을 포함하는 언롤링 루프(UNROLLING LOOP CONTAINING EXCEPTION PROCESSING)
이제, 다음의 프로그램 A'),
을 고려하면, 여기에서, C(i)는 S(i);에 종속된 희박하게 참(예를들어, 64분의 1) 예외 조건이며, T(I(i))는 1024번 연산의 길이가 긴 예외 프로세싱이다. I(i)는 예외 프로세싱을 위해 필요한 S(i)에 의해 컴퓨터연산된 정보이다. 예를 들면, T(I(i)가 프로그램 A)내의 각각의 루프 턴에서 평균적으로 루프의 주요 몸체에서 4개의 연산을 초과하는 양인 16개의 연산을 더한다고 하자. 이러한 드물지만 길이가 긴 예외 프로세싱은 흔히 일어나는 프로그래밍 문제이다. 언롤링의 이점을 잃지 않으면서 이를 어떻게 처리해야 하는지 의문이다.
보호된 명령어(GUARDED INSTRUCTIONS)
한 방식은 여러 프로세서에서 얻을 수 있는 기능인 보호된 명령어의 이용을 통해 이루어진다. 하나의 보호된 지시는 그 명령어가 상기 기대된 기능 유닛을 항상 점유하고 있다는 의미와 함께 가산 연산자로서의 부울리안 값을 특정한다.
하나의 if-then-else를 실행하는 데에 있어서, 상기 보호는 if 조건이 되도록 되어있다. "then" 절의 명령어가 보호된다. 상기 "if" 조건에 의해 보호되고, "else" 절은 if 조건의 부정에 의해 보호된다. 어떤 경우에도 2개의 절이 모두 실행된다. 보호 트루와 함께하는 경우만이 "then" 절의 결과에 의해 업데이트되며, 보호 폴스와 함께 하는 경우만이 "else" 절의 결과에 의해 업데이트된다. 모든 경우가 제어흐름에서의 조건적 변화에 의해 요구되는 파이프라인 딜레이 페널티보다는 이 페널티를 견디면서 둘다의 절을 실행한다.
만약 프로그램 A')에서처럼 상기 보호가 우세하게 참이고 'else' 절이 크면, 큰 페널티를 겪는다. 이 경우, 소수 경우만이 영향을 받아도 모든 경우가 상기 큰 else 문구 페널티를 지불한다. 만약 조건 C에 의해 보호되는 연산 S를 가지면, 그 연산을 다음과 같이 프로그래밍할 수 있을 것이다:
guard (C,S);
제1 언롤링(FIRST UNROLLING)
프로그램 A')는 다음의 프로그램 D')로 언롤링될 수 있다:
주어진 상기 예시 파라미터에서는 루프 턴의 77%에서 어떠한 T(I(n))도 실행되지 않을 것이다. 루프 턴의 21%에서 하나의 T(I(n))이 실행될 것이며, 루프 턴의 25에서만 하나 이상의 T(I(n))이 실행될 것이다. T(I(n)), T(I(n+1)), T(I(n+2)) 및 T(I(n+3))의 연산을 인터리브함으로써 얻어지는 것은 거의 없다는 것은 명백하다.
파일 프로세싱(PILE PROCESSING)
새로운 대체 작업은 파일 프로세싱이다. 파일은 통상 RAM에 저장되는 순차적 메모리 객체이다. 파일은 순차적으로 기록되게 되어 있으며, 초기부터 순차적으로 판독되도록 되어 있다. 파일 객체에 관해 많은 방법들이 정의되어 있다.
파일 및 그 방법들이 병렬 프로세싱 환경에서 실용적이 되도록 하기 위해, 그 실행은 인라인의 몇 개의 명령어가 되도록 요구된다(서브 루틴으로의 리턴 브랜치는 없음). 이러한 인라인 코드는 어떠한 브랜치 지식도 포함하지 않는 것이 또한 필요하다. 이하에서 이러한 방법 실행을 설명한다. 이것은 파일들을 새로운 파일로서 가치있게 만드는 그러한 실행의 가능성이다.
1) Pile(P) 생성법에 의해 파일이 생성된다. 이는 저장공간을 할당하고 내부 상태 변수들을 초기화한다.
2) 파일을 기록하기 위한 주요 방법은 조건적 첨부(파일, 조건, 기록)이다.
3) 파일이 완전히 기록된 때에, 이는 파일 되감기 Rewind_Pile(P) 방법에 의해 판독하도록 준비된다. 이는 내부 변수들을 조정하므로 판독은 기록된 제1기록과 함께 시작될 것이다.
4) 방법 EOF(P)는 파일의 모든 기록들이 판독되었는지의 여부에 대한 부울리안 값을 산출한다.
5) 방법 '파일 판독' Pile_Read(P, record)는 파일 P로부터 다음 순차 기록을 판독한다.
6) 방법 '파일 제거' Destroy_Pile(P)는 그 상태변수 모두를 할당 분리함으로써 파일(P)를 제거한다.
조건적 프로세싱을 분할하기 위해 파일을 사용(USING PILES TO SPLIT OFF CONDITIONAL PROCESSING)
이제, 파일 P에 의해 프로그램 D')를 프로그램 E')로 변환시킬 수 있다.
프로그램 E')은 파일 P에 대한 예외 컴퓨터연산 T에 대하여 요구된 정보 I를 저장함으로써 작동한다. 예외 조건 C(n)에 대응하는 레코드가 기입되어, P내의 I 레코드의 수(예를들어, 16)가 원본 프로그램 A)내의 루프 턴의 수(예를들어, 256)보다 훨씬 적어진다. 그 후, 별도 while 루프가 제외 컴퓨터연산 T의 전부를 수행하는 파일 P를 통해 판독한다. P가 C(n)이 참인 경우에 대해서만 레코드 I를 포함하기 때문에, 이들 경우만이 처리된다.
제2 루프는 이 경우 평균 16인 제2 루프의 턴의 수가 결정되지 않기 때문에 제1 루프보다 조금 더 까다롭다. 따라서, for 루프보다는 while 루프가 요구되며, 모든 레코드가 파일로부터 판독되었다는 것을 EOF 메쏘드가 나타내줄 때 종료한다.
앞에서 단정되고 아래에 후술된 바와 같이, Conditional_Append 메쏘드 실시는 일직선으로 분기없이 시행될 수 있다. 이것은 제1 루프가 비생산적인 이슈 기회가 거의 없이 효과적인 방법으로 여전히 언롤링되고 있다는 것을 의미한다.
제2 루프를 언롤링(UNROLLING THE SECOND LOOP)
프로그램 E')내의 제2 루프는 언롤링되지 않았으며, 여전히 비효율적이다. 그러나, 4개의 파일 P1, P2, P3, P4을 통해 프로그램 E')을 프로그램 F')으로 변환할 수 있다. 그 결과 F')은 부수적인 효율 향상과 함께 언롤링된 두 루프를 갖게 된다.
프로그램 F')는 제2 루프가 언롤링된 프로그램 E')이다. 언롤링은 프로그램 E')의 단일 파일을 각각 서로 독립적으로 처리될 수 있는 4개의 파일로 분할함으로써 달성된다. 프로그램 F')내의 제2 루프의 각각의 턴은 이들 4개 파일의 각각으로부터의 하나의 레코드를 처리한다. 각각의 레코드가 독립적으로 처리될 수 있기 때문에, 각각의 T의 연산은 3개의 다른 T의 연산과 인터리브될 수 있다.
while 루프의 제어는 파일의 전부가 처리될 때까지의 루프로 수정되어야만 한다. 그리고, while 루프 몸체내의 Ts는 일반적으로 파일의 전부가 동일 루프 턴에 대해 완료되지 못할 것이기 때문에 보호되어야만 한다. 두 파일내의 레코더의 수가 서로 상당히 상이할 때마다 약간의 비효율이 존재할 것이지만, 파일이 유사한 수의 레코드를 포함할 가능성(대수의 법칙)은 있다.
물론, 이 파일링 기술은 귀납적으로 적용될 수 있다. R 자체가 길이가 긴 조건절 T'를 포함한다면, 제2 루프 외부의 T'를 일부 추가의 파일로 나누고 제3 루프를 언롤링할 수 있다. 다수의 실제적인 어플리케이션은 여러 개의 이러한 네스티드 예외 절을 갖는다.
파일 프로세싱을 실행(IMPLEMENTING PILE PROCESSING)
파일 객체의 실행 및 그 메쏘드는 전술된 실행 기준을 충족하기 위해 심플하게 유지되어야 한다:
a) Create_Pile 및 Destroy_Pile을 제외한 메쏘드 실행은 인라인 코드의 소수의 명령어에 대해서만 이루어져야 한다.
b) 실행은 브랜치 명령어를 포함하지 않아야 한다.
그 심장부로, 파일은 RAM내의 할당된 선형 어레이 및 포인터 index로 이루어지며, 이 포인터의 현재 값은 판독 또는 기록하기 위한 다음 레코드의 위치가 된다. 기록된 어레이의 크기 sz는 그 값이 파일의 기록 동안 index의 최대값이 되는 포이터이다. EOF 메쏘드는 인라인 조건(sz≤index)으로써 실행될 수 있다. 포인터 base는 파일을 기록할 제1 위치를 지적하는 값이다. 이것은 Creat_Pile 메쏘드에 의해 설정된다.
Conditional_Append 메쏘드는 index의 값에서 개시하는 파일 어레이에 대한 record를 카피한다. index는 0 또는 레코더의 크기(sz_record) 중의 하나인 컴퓨터연산된 양만큼 증분된다. 파라미터 condition이 참에 대해 1의 값을 갖고 거짓에 대해 0을 갖기 때문에, index는 다음과 같이 브랜치없이 컴퓨터연산될 수 있다:
index=index+condition*sz_record;
이 컴퓨터연산의 다수의 변형이 존재하는 것은 자명하며, 그들의 다수는 소정의 특별한 값의 변수를 승산하는 것을 수반하지 않는다. 또한, 다음과 같이 보호를 사용하여 컴퓨터연산될 수도 있을 것이다:
guard(condition, index = index + sz_record);
레코드는 condition을 고려하지 않고 파일에 카피된다는 점에 유의하기 바란다. condition이 거짓이라면, 이 레코드는 한참 후의 레코드에 의해 오버라이트될 것이며, 조건이 참인 경우, 한참 후의 레코드는 현재의 레코드에 후속하여 기록될 것이다. 이 다음 레코드는 그 레코드 후의 레코드에 의해 그 자신이 오버라이트될 수도 있고 되지 않을 수도 있다. 그 결과, 레코드가 판독 및 처리될 때 일부(중복성) 데이타를 재컴퓨터연산할 것이라는 것을 의미하기는 하지만, 일반적으로 파일에 가능한 한 적게 기록하는 것이 최선이다.
Rewind 메쏘드는 sz=index; index=base;에 의해 간략하게 실행된다. 이 연산은 EOF 메쏘드에 대해 기록된 데이타의 양을 레코드하고, 그리고나서 index를 시작점으로 리셋한다.
Pile_Read 메쏘드는 I에 대한 파일의(길이 sz_record의) 다음 부분을 카피하며, index를 증분시킨다.
index=index + sz_record;
Destroy_Pile은 파일에 대한 저장장치를 할당해제한다.
이들 메쏘드(Create_Pile 및 Destroy_Pile)의 전부는 소수의 라인 명령어로, 브랜치없이 실행될 수 있다.
그러므로, 파일 프로세싱은 루프의 언롤링 및 브랜치의 존재로 인한 결과적인 향상된 성는을 가능하게 한다. 이 기술은 특히 장문의 예외 절의 병렬 실행을 가능하게 한다. 이것을 위한 비용은 적당량의 데이타를 RAM에 기입하고 RAM으로부터 판독하기 위해 요구되는 것이 전부이다.

Claims (49)

  1. 데이타를 압축하는 방법에 있어서,
    보간 수식을 수신하는 단계와;
    적어도 하나의 데이타 값이 보간 수식에 의해 요구되는지의 여부, 여기서 요구된 데이타 값은 이용 가능하지 않음,를 판정하는 단계와;
    요구된 이용 가능하지 않은 데이타 값을 생성하기 위해 위삽 연산을 수행하는 단계를 포함하며,
    보간 수식은 데이타를 압축하기 위해 사용되는 것을 특징으로 하는 데이타 압축 방법.
  2. 제1항에 있어서, 보간 수식은 웨이브렛 필터의 성분인 것을 특징으로 하는 데이타 압축 방법.
  3. 제1항에 있어서, 복수의 데이타 값을 복수의 스팬으로 세그먼트화하는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  4. 제3항에 있어서, 스팬 중의 한 스팬 내의 데이타 값을 유일하게 사용함으로써 보간 수식을 수반하는 컴퓨터연산의 양을 감소시키는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  5. 제2항에 있어서, 웨이브렛 필터를 다상 필터로 선택적으로 교체하는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  6. 제1항에 있어서, 데이타 값을 양자화하는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  7. 제6항에 있어서, 데이타 값의 양을 감소시킴으로써 엔트로피 코딩과 관련된 컴퓨터연산의 양을 감소시키는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  8. 제7항에 있어서, 데이타 값의 양은 데이타 값을 수반한 양자화 연산 동안에 감소되는 것을 특징으로 하는 데이타 압축 방법.
  9. 제7항에 있어서, 데이타 값의 양은 파일을 사용하여 감소되는 것을 특징으로 하는 데이타 압축 방법.
  10. 제1항에 있어서, 복수의 데이타 값을 재구성하는 것과 관련된 컴퓨터연산의 양을 소정 데이타 범위 내로 감소시키는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 압축 방법.
  11. 제10항에 있어서, 컴퓨터연산은 오직 하나의 단일 칩 연산을 수행함으로써 감소되는 것을 특징으로 하는 데이타 압축 방법.
  12. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  13. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  14. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  15. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  16. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  17. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  18. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  19. 제2항에 있어서, 웨이브렛 필터는 다음의 수식,
    을 포함한 보간 수식을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  20. 데이타를 압축하기 위한 컴퓨터 프로그램 제품에 있어서,
    보간 수식을 수신하기 위한 컴퓨터 코드와;
    적어도 하나의 데이타 값이 보간 수식에 요구되는지의 여부, 여기서 요구된 데이타 값은 이용 가능하지 않음,를 판정하기 위한 컴퓨터 코드와;
    요구된 이용 가능하지 않은 데이타 값을 생성하기 위해 외삽 연산을 수행하기 위한 컴퓨터 코드를 구비하며,
    보간 수식은 데이타를 압축하기 위해 사용되는 것을 특징으로 하는 데이타 압축 컴퓨터 프로그램 제품.
  21. 데이타를 압축하기 위한 시스템에 있어서,
    웨이브렛 필터가 근사한 로컬 도함수를 판정하기 위해 웨이브렛 체계를 분석하고,
    웨이브렛 필터의 특성 및 다수의 이용 가능한 샘플을 기초로 외삽에 사용하기 위한 다항식의 순서를 선택하고,
    선택된 다항식 순서를 이용하여 각각의 웨이브렛 필터에 대한 외삽 수식을 구하고,
    각각의 경우에서의 이용 가능한 샘플을 갖는 외삽 수식을 이용하여 특정한 에지 웨이브렛 경우를 구하는,
    로직을 포함하는 것을 특징으로 하는 데이타 압축 시스템.
  22. 데이타를 압축하기 위한 방법에 있어서,
    단일 장치로 데이타를 수신하는 단계와;
    제1 압축 데이타를 제1 포맷으로 생성하기 위해 단일 장치를 사용하여 데이타를 인코딩하는 단계와;
    제2 압축 데이타를 제2 포맷으로 생성하기 위해 단일 장치를 사용하여 제1 압축 데이타를 코드변환하는 단계를 포함하는 것을 특징으로 하는 데이타 압축 방법.
  23. 제22항에 있어서, 인코딩은 실시간으로 발생하는 것을 특징으로 하는 데이타 압축 방법.
  24. 제22항에 있어서, 코드변환은 오프라인으로 발생하는 것을 특징으로 하는 데이타 압축 방법.
  25. 제22항에 있어서, 제1 압축 데이타는 제2 압축 데이타가 단일 장치에 접속된 통신 네트워크의 용량에 부합하기에 적합하게 되도록 제2 압축 데이타를 제2 포맷으로 생성하기 위해 코드변환되는 것을 특징으로 하는 데이타 압축 방법.
  26. 제22항에 있어서, 인코딩은 제1 인코더를 사용하여 수행되는 것을 특징으로 하는 데이타 압축 방법.
  27. 제26항에 있어서, 코드변환은 디코더 및 제2 인코더를 사용하여 수행되는 것을 특징으로 하는 데이타 압축 방법.
  28. 제22항에 있어서, 제1 포맷은 웨이브렛 기반 포맷을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  29. 제22항에 있어서, 제2 포맷은 DCT 기반 포맷을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  30. 제29항에 있어서, 제2 포맷은 MPEG 포맷을 포함하는 것을 특징으로 하는 데이타 압축 방법.
  31. 데이타를 압축하기 위한 단일 장치에 있어서,
    제1 압축 데이타를 제1 포맷으로 생성하도록 데이타를 압축하기 위해 단일 장치 상에 구현된 인코더와;
    제2 압축 데이타를 제2 포맷으로 생성하도록 제1 압축 데이타를 코드변환하기 위한 인코더로써 동일한 단일 장치 상에 구현된 코드 변환기를 구비하는 것을 특징으로 하는 데이타 압축 단일 장치.
  32. 제31항에 있어서, 인코딩은 실시간으로 발생하는 것을 특징으로 하는 데이타 압축 단일 장치.
  33. 제31항에 있어서, 코드변환은 오프라인으로 발생하는 것을 특징으로 하는 데이타 압축 단일 장치.
  34. 제31항에 있어서, 제1 압축 데이타는 제2 압축 데이타가 단일 장치에 접속된 통신 네트워크의 용량에 부합하기에 적합하게 되도록 제2 압축 데이타를 제2 포맷으로 생성하기 위해 코드변환되는 것을 특징으로 하는 데이타 압축 단일 장치.
  35. 제31항에 있어서, 인코딩은 제1 인코더를 사용하여 수행되는 것을 특징으로 하는 데이타 압축 단일 장치.
  36. 제35항에 있어서, 코드변환은 디코더 및 제2 인코더를 사용하여 수행되는 것을 특징으로 하는 데이타 압축 단일 장치.
  37. 제31항에 있어서, 제1 포맷은 웨이브렛 기반 포맷을 포함하는 것을 특징으로 하는 데이타 압축 단일 장치.
  38. 제31항에 있어서, 제2 포맷은 DCT 기반 포맷을 포함하는 것을 특징으로 하는 데이타 압축 단일 장치.
  39. 제38항에 있어서, 제2 포맷은 MPEG 포맷을 포함하는 것을 특징으로 하는 데이타 압축 단일 장치.
  40. 단일 집적회로 상의 다수의 인코더를 이용하여 데이타를 압축하기 위한 방법에 있어서,
    단일 집적회로로 데이타를 수신하는 단계와;
    단일 집적회로 상에 통합된 복수의 인코더를 이용하여 데이타를 인코딩하는 단계를 포함하는 것을 특징으로 하는 데이타 압축 방법.
  41. 제40항에 있어서, 데이타는 단일 집적회로 상의 다수의 채널을 이용하여 인코딩되는 것을 특징으로 하는 데이타 압축 방법.
  42. 제40항에 있어서, 데이타는 웨이브렛 기반 포맷으로 인코딩되는 것을 특징으로 하는 데이타 압축 방법.
  43. 데이타를 압축하기 위한 단일 집적회로에 있어서,
    제1 세트의 데이타를 인코딩하기 위해 단일 집적회로 상에 구현된 제1 인코더와;
    제2 세트의 데이타를 인코딩하기 위해 제1 인코더가 구현된 집적회로와 동일한 단일 집적회로 상에 구현된 제2 인코더를 구비하는 것을 특징으로 하는 데이타 압축 단일 집적회로.
  44. 제43항에 있어서, 데이타는 단일 집적회로 상의 다수의 채널을 이용하여 인코딩되는 것을 특징으로 하는 데이타 압축 단일 집적회로.
  45. 제43항에 있어서, 데이타는 웨이브렛 기반 포맷으로 인코딩되는 것을 특징으로 하는 데이타 압축 단일 집적회로.
  46. 단일 모듈을 사용하여 데이타를 압축하기 위한 방법에 있어서,
    단일 모듈을 사용하여 광자를 수신하는 단계와;
    광자를 나타내는 압축 데이타를 단일 모듈을 사용하여 출력하는 단계를 포함하는 것을 특징으로 하는 데이타 압축 방법.
  47. 제46항에 있어서, 압축 데이타는 웨이브렛 기반 포맷으로 인코딩되는 것을 특징으로 하는 단일 모듈.
  48. 제47항에 있어서, 인코딩과 관련된 변환 연산은 아날로그로 수행되는 것을 특징으로 하는 단일 모듈.
  49. 제46항에 있어서, 단일 모듈은 촬상 소자를 포함하는 것을 특징으로 하는 단일 모듈.
KR10-2004-7016832A 2002-04-19 2003-04-17 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품 KR20050018659A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-7016832A KR20050018659A (ko) 2002-04-19 2003-04-17 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US60/374,061 2002-04-19
US60/373,974 2002-04-19
US60/373,966 2002-04-19
US60/374,069 2002-04-19
US60/385,254 2002-05-28
US60/390,383 2002-06-21
US60/390,380 2002-06-21
KR10-2004-7016832A KR20050018659A (ko) 2002-04-19 2003-04-17 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품

Publications (1)

Publication Number Publication Date
KR20050018659A true KR20050018659A (ko) 2005-02-23

Family

ID=41783796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7016832A KR20050018659A (ko) 2002-04-19 2003-04-17 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품

Country Status (1)

Country Link
KR (1) KR20050018659A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033355A (ko) * 2014-07-16 2017-03-24 얌쯔 아이피 비브이 4k 및 8k 애플리케이션을 위한 다중 비디오 압축, 압축 해제, 및 디스플레이
KR20210016839A (ko) * 2019-08-05 2021-02-17 국방과학연구소 수동 소나의 협대역 신호를 탐지하기 위한 lofar 또는 demon 그램의 압축 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033355A (ko) * 2014-07-16 2017-03-24 얌쯔 아이피 비브이 4k 및 8k 애플리케이션을 위한 다중 비디오 압축, 압축 해제, 및 디스플레이
KR20210016839A (ko) * 2019-08-05 2021-02-17 국방과학연구소 수동 소나의 협대역 신호를 탐지하기 위한 lofar 또는 demon 그램의 압축 장치

Similar Documents

Publication Publication Date Title
US7483486B2 (en) Method and apparatus for encoding high dynamic range video
Christopoulos et al. The JPEG2000 still image coding system: an overview
KR100937378B1 (ko) 압축 도메인에서 스틸 이미지들을 처리하기 위한 방법,컴퓨터 프로그램 생성물, 및 장치
US9123089B2 (en) Signaling and uses of windowing information for images
JP2010141922A (ja) ウェーブレット変換システム、方法、及びコンピュータプログラム製品
US20060088098A1 (en) Method and arrangement for reducing the volume or rate of an encoded digital video bitstream
JPH07168809A (ja) ウェーブレット変換方法及びウェーブレット変換回路
US9077960B2 (en) Non-zero coefficient block pattern coding
RU2518932C2 (ru) Уменьшенное рассогласование коэффициентов усиления постоянной состовляющей (dc) и dc-утечки при обработке преобразования с перекрытием
JP2010147508A (ja) 撮影装置及び再生装置
JP2008514139A (ja) 可変サブバンド処理を行う圧縮レート制御システム及び方法
KR100683380B1 (ko) 영상 압축 부호화를 위한 변환 및 역변환 방법 및 장치
US7702161B2 (en) Progressive differential motion JPEG codec
Lee et al. Lossless compression of HDR color filter array image for the digital camera pipeline
US6507673B1 (en) Method and apparatus for video encoding decision
US20030198395A1 (en) Wavelet transform system, method and computer program product
KR20050018659A (ko) 웨이브렛 변환 시스템, 방법 및 컴퓨터 프로그램 제품
AU2022202473A1 (en) Method, apparatus and system for encoding and decoding a tensor
KR20070058637A (ko) 순열 지연
Katsigiannis et al. A contourlet transform based algorithm for real-time video encoding
US7844122B2 (en) Chroma temporal rate reduction and high-quality pause system and method
Apostolopoulos et al. Video compression for digital advanced television systems
JP2900815B2 (ja) 適応コアリング方法及び適応コアリング装置
Apostolopoulos Video compression
JP2003092684A (ja) 画像符号化装置、及び画像符号化方法、並びにプログラム、記憶媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application