KR20130006578A - 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는 레지듀얼 코딩 - Google Patents
비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는 레지듀얼 코딩 Download PDFInfo
- Publication number
- KR20130006578A KR20130006578A KR1020120144341A KR20120144341A KR20130006578A KR 20130006578 A KR20130006578 A KR 20130006578A KR 1020120144341 A KR1020120144341 A KR 1020120144341A KR 20120144341 A KR20120144341 A KR 20120144341A KR 20130006578 A KR20130006578 A KR 20130006578A
- Authority
- KR
- South Korea
- Prior art keywords
- residual
- video
- template
- block
- standard
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04F—FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
- E04F13/00—Coverings or linings, e.g. for walls or ceilings
- E04F13/07—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
- E04F13/08—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
- E04F13/0801—Separate fastening elements
- E04F13/0832—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements
- E04F13/0833—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements not adjustable
- E04F13/0835—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements not adjustable the fastening elements extending into the back side of the covering elements
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04F—FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
- E04F13/00—Coverings or linings, e.g. for walls or ceilings
- E04F13/07—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
- E04F13/08—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
- E04F13/0801—Separate fastening elements
- E04F13/0832—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements
- E04F13/0853—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements adjustable perpendicular to the wall
- E04F13/0855—Separate fastening elements without load-supporting elongated furring elements between wall and covering elements adjustable perpendicular to the wall adjustable in several directions, one of which is perpendicular to the wall
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 명세서는, 템플릿 매칭에 의존하는, 벡터 양자화 코딩을 이용하는 레지듀얼 코딩 기술을 설명한다. 그러나, 표준 규격 CODEC 에 대해서는 무의미할 수도 있는 송신 벡터 양자화 코드북 인덱스 (또는 코드워드) 보다는, 여기에 설명하는 기술은 레지듀얼 템플릿을, 비디오 표준을 따르는 미리 계산된 압축 레지듀얼 블럭에 매핑한다. 그 후, 표준 규격 압축 레지듀얼 블럭은 그 표준을 따르는 다른 장치에 송신될 수 있다. 이러한 기술은 보다 병렬적인 프로세싱을 수행하는 능력과 같은, 벡터 양자화 코딩과 연관된 이점들을 이용할 수 있으며, 비디오 코딩 표준 규격을 유지한다.
Description
본 특허출원은 본 발명의 양수인에게 양도되었고, 2005년 1월 6일자로 출원되었으며 발명의 명칭이 "비표준 벡터 양자화 인코더를 이용한 표준기반 레지듀얼 인코딩 (Standard-Based Residual Encoding Using A Non-Standardized Vector Quantization Encoder)" 인 가출원 제 60/642,023 호에 대해 우선권을 주장한다.
본 명세서는 디지털 비디오 프로세싱에 관한 것이며, 보다 상세하게는 표준규격 압축 레지듀얼 블럭을 생성하는 인코딩 기술에 관한 것이다.
디지털 비디오 가능성은 디지털 텔레비젼, 디지털 직접 방송 시스템, 무선 통신 장치, 개인 디지털 장비 (PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 기록 장치, 셀룰라 또는 위성 무선전화 등을 포함한 광범위한 장치에 제공될 수 있다. 디지털 비디오 장치는 풀 모션 (full motion) 비디오 시퀀스를 생성, 변경, 송신, 저장, 등록 및 재생함에 있어서 종래의 아날로그 비디오 시스템보다 상당한 개선점을 제공할 수 있다.
다수의 상이한 비디오 코딩 표준이 디지털 비디오 시퀀스를 코딩하기 위해 확립되었다. 예컨대, 동화상 전문가 그룹 (MPEG) 은 MPEG-1, MPEG-2 및 MPEG-4 를 포함하는 다수의 개발된 표준을 가진다. 다른 표준은 국제 전기 통신 연합 (International Telecommunication Union Telecommunications) (ITU-T) H.263 표준, Cupertino California 의 Apple Computer 에 의해 개발된 QuickTimeTM, Redmond, Washington 의 Microsoft Corporation 에 의해 개발된 Video for WindowsTM, Intel Corporation 에 의해 개발된 IndeoTM, Seattle, Washington 의 RealNetworks,Inc. 에 의한 RealVideoTM, 및 SuperMac, Inc. 에 의해 개발된 CinepakTM 을 포함한다. 또한, ITU-T H.264 표준 및 다수의 독점 (proprietary) 표준을 포함하여, 새로운 표준들이 계속 출현 및 진화하고 있다.
다수의 비디오 코딩 표준은 압축된 방식으로 데이터를 코딩함으로써 비디오 시퀀스의 향상된 송신 레이트를 가능하게 한다. 압축은 비디오 프레임의 효과적인 송신을 위하여 송신될 필요가 있는 전체 데이터량을 감소시킨다. 예컨대, 대부분의 비디오 코딩 표준들은 압축없이 획득될 수 있는 것보다 더 좁은 대역폭에서 비디오 및 이미지 송신을 편리하게 하도록 설계된 그래픽 및 비디오 압축기술을 이용한다. 통상적으로 표준들은 표준 규격 압축 레지듀얼 블럭을 생성하는데 이용되는 코딩기술을 말하며, 출력 비트 스트림이 표준을 따르는 한, 이용될 다른 기술도 허용한다.
MPEG 표준 및, ITU-T H.263 및 ITU-T H.264 표준과 같은 다수의 표준들은 프레임간 압축을 제공하기 위하여, 일시적인 또는 프레임간 상관이라 하는 연속적인 비디오 프레임 사이의 유사성을 이용하는 비디오 코딩 기술을 지원한다. 프레임간 압축 기술은 픽셀기반 비디오 프레임의 표현을 모션 표현으로 변환함으로써 프레임에 걸친 데이터 리던던시 (redundancy) 를 이용한다. 또한, 몇몇 비디오 코딩 기술은 비디오 프레임을 더욱 압축하기 위하여, 공간적 또는 프레임 내부 상관이라 하는 프레임 내의 유사성을 이용할 수도 있다.
비디오 프레임 압축을 획득하기 위하여, 통상적으로, 디지털 비디오 장치는 디지털 비디오 시퀀스를 압축하기 위한 인코더 및 디지털 비디오 시퀀스를 압축해제하기 위한 디코더를 구비한다. 많은 경우에, 인코더 및 디코더는 비디오 시퀀스를 규정하는 프레임 내의 픽셀 블럭에 대하여 동작하는 집적된 "CODEC" 을 형성한다. 본 명세서에 이용된 바와 같이, "CODEC" 이라는 용어는 인코더, 디코더, 또는 집적된 인코더/디코더를 말한다.
MPEG-4 표준에서, CODEC 은 "마크로 (macro) 블럭" 이라 하는 비디오 블럭으로 송신될 비디오 프레임을 분할한다. ITU-T H.264 표준은 16×16 비디오 블럭, 16×8 비디오 블럭, 8×16 비디오 블럭, 8×8 비디오 블럭, 8×4 비디오 블럭, 4×8 비디오 블럭 및 4×4 비디오 블럭을 지원한다. 다른 표준이 다른 사이즈의 비디오 블럭을 지원할 수도 있다. 비디오 프레임 내의 각 비디오 블럭에 있어서, CODEC 은 "예측 블럭" 이라 하는 유사한 비디오 블럭을 식별하기 위하여, 하나 이상의 이미 인코딩된 비디오 프레임의 유사한 사이즈의 비디오 블럭을 검색한다. 현재 비디오 블럭과 다른 프레임의 비디오 블럭을 비교하는 프로세스를 일반적으로 모션 추정이라 한다. 모션 추정동안, "예측 블럭" 이 현재 비디오 블럭에 대하여 식별되면, CODEC 은 현재 비디오 블럭과 예측 블럭간의 차이를 코딩할 수 있다.
현재 비디오 블럭과 예측 블럭간의 차이를 코딩하는 이러한 프로세스는 모션 보상이라 하는 프로세스를 포함한다. 모션 보상은 "레지듀얼" 을 생성하는 것을 포함하는데, 이는 코딩될 현재 비디오 블럭과 예측 블럭간의 차이점을 나타내는 데이터 블럭이다. 특히, 모션 보상은 통상적으로 모션 벡터를 이용하는 예측 블럭을 페칭 (fetching) 한 후에, 레지듀얼을 생성하기 위해 입력 블럭으로부터 예측 블럭을 제거하는 동작과 관련된다. 레지듀얼은 통상적으로 차이 블럭에 의해 나타내어지는 원래의 비디오 블럭보다 실질적으로 적은 데이터를 포함한다. 또한, "내부 (Intra)" 인코딩도 "레지듀얼" 을 생성하지만, 인코딩될 비디오 블럭과 동일한 프레임의 다른 비디오 블럭간의 차이에 기초하여 생성한다. 내부 인코딩에서 레지듀얼을 생성하는 프로세스를 종종 "내부예측 (intra-prediction)" 이라 한다.
양 경우에, 레지듀얼이 생성된 후에, 추가적인 일련의 단계가 레지듀얼을 추가적으로 코딩하고, 데이터를 추가적으로 압축하기 위하여 수행될 수도 있다. 이러한 추가적인 단계는 이용될 코딩 표준에 의존할 수도 있지만, 일반적으로 "레지듀얼 코딩" 이라 한다. MPEG-4 규격 CODEC 에서, 예컨대 레지듀얼 코딩은 8×8 이산 코사인 변환과, 이에 후속하는 스칼라 양자화, 이에 후속하는 래스터 (raster) 대 지그재그 재배치, 이에 후속하는 실행길이 인코딩, 이에 후속하는 허프만 (Huffman) 인코딩을 포함할 수도 있다. 코딩된 레지듀얼은 이전 블럭 (또는 후속하는 프레임) 으로부터의 어떤 비디오 블럭이 코딩을 위해 사용되었는지를 나타내는 모션 벡터와 함께 송신될 수 있다. 수신 장치의 CODEC 은 모션 벡터 및 코딩된 레지듀얼을 수신하고, 비디오 시퀀스를 재구성하기 위하여 수신된 정보를 디코딩한다.
레지듀얼 코딩 단계는 종종 비디오 코딩에서 병목 (bottleneck) 이 된다. 이는 비디오 텔리포니 (VT: video telephony) 애플리케이션에서 이용되는 것과 같이, 실시간 비디오에서 문제가 될 수 있다. 또한, 한정된 연산 자원 및 한정된 배터리 전력은 VT 애플리케이션을 위한 이러한 이슈를 절충할 수 있다. 불행하게도, 대부분의 표준에서, 레지듀얼 코딩 단계는 후속하는 프로세스가 수행될 수 있기 전에 이전의 프로세스가 수행되어야 하는 순차적인 프로세스이다.
본 명세서는 템플릿 매칭에 의존하는 벡터 양자화 코딩을 이용하는 레지듀얼 코딩 기술을 설명한다. 여기에 설명된 기술은 레지듀얼 템플릿을 비디오 표준에 따르는 미리 계산된 압축된 레지듀얼 블럭에 매핑한다. 예컨대, 레지듀얼 템플릿은 표준 규격 압축 레지듀얼 블럭에 직접 매칭되거나, 선택적으로 레지듀얼 템플릿을 나타내는 벡터 양자화 코드북 인덱스가 표준 규격 압축 레지듀얼 블럭에 매핑될 수도 있다. 양 경우에, 표준 규격 압축 레지듀얼 블럭은 그 후에 이러한 표준에 따르는 다른 장치에 송신될 수 있다. 이러한 기술은 보다 병렬적인 프로세싱을 수행할 수 있는 능력과 같은 벡터 양자화 코딩과 연관된 이점을 이용할 수 있으며, 비디오 코딩 표준 규격을 유지한다.
본 발명은 보다 병렬적인 프로세싱을 수행할 수 있는 능력과 같은 벡터 양자화 코딩과 연관된 이점을 이용할 수 있으며, 비디오 코딩 표준 규격을 유지하는 효과가 있다.
도 1 은 여기에 설명된 하나 이상의 레지듀얼 코딩 기술을 구현할 수 있는 비디오 코딩 장치의 예시적인 블럭도.
도 2 는 본 명세서에 따른 레지듀얼 코딩 기술의 일 실시형태를 나타내는 흐름도.
도 3 은 본 명세서에 따른 코드북을 미리 계산하기 위한 예시적인 구조를 나타내는 블럭도.
도 4 는 레지듀얼 코딩동안 이용될 수 있는 코드북을 미리 계산하기 위한 예시적인 하나의 기술을 나타내는 흐름도.
도 5 는 레지듀얼 템플릿 및 이에 대응하는 표준 규격 압축 레지듀얼 블럭을 미리 계산하기 위한 예시적인 구조를 나타내는 블럭도.
도 6 은 본 명세서에 따른 레지듀얼 코더의 일 실시형태를 나타내는 예시적인 블럭도.
도 2 는 본 명세서에 따른 레지듀얼 코딩 기술의 일 실시형태를 나타내는 흐름도.
도 3 은 본 명세서에 따른 코드북을 미리 계산하기 위한 예시적인 구조를 나타내는 블럭도.
도 4 는 레지듀얼 코딩동안 이용될 수 있는 코드북을 미리 계산하기 위한 예시적인 하나의 기술을 나타내는 흐름도.
도 5 는 레지듀얼 템플릿 및 이에 대응하는 표준 규격 압축 레지듀얼 블럭을 미리 계산하기 위한 예시적인 구조를 나타내는 블럭도.
도 6 은 본 명세서에 따른 레지듀얼 코더의 일 실시형태를 나타내는 예시적인 블럭도.
이하, 첨부한 도면과 함께 다양한 실시형태를 추가적으로 상세히 설명한다. 다른 특성, 목적 및 이점은 상세한 설명, 도면 및 청구범위로부터 명백하게 될 것이다.
여기에 설명된 기술은 레지듀얼 템플릿 세트에 대한 미리 계산된 표준 규격 압축 레지듀얼 블럭 세트를 포함할 수도 있다. 코딩 장치는 레지듀얼 템플릿과 표준 규격 압축 레지듀얼 블럭 세트간의 매핑을 저장한다. 레지듀얼 템플릿은 변환되거나 변환되지 않은 템플릿일수도 있다. 저장된 매핑은 "코드북" 에 구체화될 수 있는데, 이는 임의의 리던던트 또는 유사한 레지듀얼 템플릿을 제거함으로써 효과적으로 규정될 수도 있다. 레지듀얼 코딩을 수행하기 위하여, 코딩 장치는 템플릿 매칭에 의존하는 벡터 양자화 코딩을 이용할 수 있으며, 벡터 양자화 코딩에서 식별된 가장 근접한 매칭 레지듀얼 템플릿과 연관된 표준 규격 압축 레지듀얼 블럭을 식별하기 위하여 코드북에 액세스할 수 있다. 그 후, 표준 규격 압축 레지듀얼 블럭은 레지듀얼 템플릿을 식별하는 벡터 양자화 코드북 인덱스를 송신하기보다는, 종래의 벡터 양자화 인코딩 기술에서와 같이 송신된다.
일 실시형태에서, 본 명세서는 레지듀얼 템플릿을 표준 규격 압축 레지듀얼 블럭에 매핑하는 정보를 저장하는 메모리, 레지듀얼을 레지듀얼 템플릿과 비교하고, 레지듀얼과 가장 근접하게 매칭되는 레지듀얼 템플릿 중 하나를 식별하고, 표준 규격 압축 레지듀얼 블럭 중 대응하는 하나를 선택하는 레지듀얼 코더를 구비한다.
또 다른 실시형태에서, 본 명세서는 레지듀얼 템플릿을 표준 규격 압축 레지듀얼 블럭에 매핑하는 정보를 저장하는 단계, 레지듀얼에 가장 근접하게 매칭되는 레지듀얼 템플릿 중 하나를 식별하기 위하여 레지듀얼을 레지듀얼 템플릿과 비교하는 단계, 및 표준 규격 압축 레지듀얼 블럭 중 대응하는 하나를 선택하는 단계를 포함하는 비디오 코딩 방법을 제공한다.
또 다른 실시형태에서, 본 명세서는 프로세서가 레지듀얼 템플릿을 표준 규격 압축 레지듀얼 블럭에 매핑하는 저장된 정보에 액세스하고, 레지듀얼에 가장 근접하게 매칭되는 레지듀얼 템플릿 중 하나를 식별하기 위하여 레지듀얼과 레지듀얼 템플릿을 비교하고, 표준 규격 압축 레지듀얼 블럭 중 대응하는 하나를 선택하도록 실행하는 명령을 포함하는 컴퓨터 판독가능 매체를 제공한다.
또 다른 실시형태에서, 본 명세서는 비디오 인코딩 장치 내의 벡터 양자화 인코딩 프로세스를 제어하기 위해 그 위에 저장된 데이터 구조를 포함하는 컴퓨터 판독가능 매체를 제공하는데, 데이터 구조는 벡터 양자화 인코딩 프로세스의 레지듀얼 템플릿을 비디오 인코딩 표준 규격 압축 레지듀얼 블럭에 매핑한다.
또 다른 실시형태에서, 본 명세서는 레지듀얼 템플릿 세트를 식별하는 단계, 표준 규격 압축 레지듀얼 블럭을 생성하기 위해 레지듀얼 템플릿 세트 상에서 표준 규격 코딩 프로세스를 수행하는 단계, 및 레지듀얼 템플릿 세트를 표준 규격 압축 레지듀얼 블럭 세트에 매핑하는 정보를 저장하는 단계를 포함하는 방법을 제공한다.
여기에 설명된 이러한 기술들 및 다른 기술들은 하드웨어, 소프트웨어, 펌웨어 (firmware), 또는 그 임의의 조합의 비디오 코딩 장치로 구현될 수도 있다. 소프트웨어로 구현되는 경우에, 소프트웨어는 명령을 지원하는 프로그래머블 프로세서와 같은 프로세서에서 실행될 수 있다. 예로서, 명령은 단독 명령 복수 데이터 (SIMD: single instruction multiple data) 명령일 수도 있다. 이러한 경우에, 이러한 기술은 SIMD 구조를 이용할 수도 있고, 레지듀얼 코딩동안 병렬 프로세싱을 허용할 수도 있다. 이러한 기술을 실행하는 소프트웨어는 최초에 컴퓨터 판독가능 매체에 저장될 수도 있고, 이러한 레지듀얼 코딩을 수행하기 위하여 프로세서에서 로딩 및 실행될 수도 있다.
여기서는, 레지듀얼 코딩 프로세스에서의 템플릿 매칭에 의존하는 벡터 양자화 코딩을 이용하는 레지듀얼 코딩 기술을 설명한다. 레지듀얼 코딩은 모션 추정 및 모션 보상으로부터 초래되거나 공간 추정 및 내부-예측 (intra-prediction) 으로부터 초래된 "레지듀얼"의 코딩을 지칭한다. 모션 추정 및 모션 보상은 프레임간 보상을 제공하기 위하여 임시 또는 프레임간 데이터 상관을 이용하기 위한 다수의 비디오 코딩 표준에서 사용되는 공지된 기술이다. 다른 프레임의 다양한 다른 비디오 블럭들과 인코딩되어질 현재의 비디오 블럭을 비교하는 프로세스는 일반적으로 모션 추정으로 지칭된다. 현재의 비디오 블럭과 예측 블럭 사이의 차이점들을 코딩하는 프로세스는 모션 보상으로서 지칭되는 프로세스를 포함한다. 모션 보상은 통상적으로 모션 벡터를 이용하는 예측 블럭을 페칭하고, 그 후 그 예측 블럭을 입력 블럭으로부터 제거하는 동작을 지칭한다. 모션 보상의 출력은 "레지듀얼"로서 지칭되며, 일반적으로 코딩되어질 현재의 비디오 블럭과 모션 보상에 의해서 식별되는 예측 블럭 사이의 차이를 나타내는 데이터의 블럭을 포함한다. 또한, 공간 추정 및 내부-예측 기술은 "레지듀얼" 을 생성하며, 일반적으로 프레임간 데이터 보상을 이용하는데 사용되는 공지된 기술을 지칭한다.
모션 보상 (또는 내부-예측) 이 레지듀얼을 생성한 이후에, 일련의 추가적인 단계들이 그 레지듀얼을 추가적으로 코딩하고 그 데이터를 추가적으로 압축하기 위해 수행될 수도 있다. 수행되는 추가적인 단계들은 사용중인 코딩 표준에 의존할 수도 있지만, 일반적으로는 "레지듀얼 코딩"으로 지칭된다. 본 설명은, 인코딩 프로세스를 개선하고 가속화할 수도 있으며 레지듀얼 인코딩 동안에 사용되는 병행적인 프로세싱 기술을 허용하는, 벡터 양자화 인코딩 기술에 따른 레지듀얼 코딩 기술을 고려한다.
레지듀얼 벡터 양자화 코딩에서, 레지듀얼은 레지듀얼 템플릿에 비교된다. 종래에는, 일단 최상의 매칭 레지듀얼 템플릿이 식별되면, 최상의 매칭 레지듀얼 템플릿을 식별하는 벡터 양자화 코드북 인덱스가 송신된다. 벡터 양자화 코드북 인덱스는 때때로 코드워드로 지칭된다. 그러나, 본 설명에 따라, 표준 규격 CODEC에 의미가 없을 수도 있는 표준 벡터 양자화 코드북 인덱스를 송신하기 보다는, 레지듀얼 템플릿은 표준 규격의 미리 계산된 압축 레지듀얼 블럭들로 매핑된다. 그리고, 표준 규격 압축 레지듀얼 블럭들이 전송될 수 있다. 이런 방식으로, 여기 설명된 기술들은 여전히 비디오 코딩 표준을 따르면서도, 병행적인 프로세싱을 수행하는 능력과 같은 벡터 양자화 코딩과 연관된 장점들을 이용할 수 있다. 여기 설명된 기술들은 변환되거나 변환되지 않은 레지듀얼 템플릿에 대하여 적용될 수도 있다. 즉, 하나 이상의 레지듀얼 인코딩 단계들이 템플릿 매칭 기술들 이전에 적용될 수도 있으며, 어느 경우에나, 본 설명은 그 출력이 표준을 따르도록 허용한다.
본 설명의 기술들은 레지듀얼 템플릿의 세트에 대한 표준 규격 압축 레지듀얼 블럭들의 세트를 미리 계산하는 단계를 포함할 수 있다. 코딩 장치는 그 레지듀얼 템플릿들의 표준 규격 압축 레지듀얼 블럭들로의 매핑을 저장한다. 그 매핑은 코드 북을 포함할 수도 있고, 가능하면 이 레지듀얼 템플릿을 제공하기 위하여 벡터 양자화 코드북 인덱스들을 사용할 수도 있다. 레지듀얼 코딩을 수행하기 위하여, 코딩 장치는 템플릿 매칭에 의존하는 벡터 양자화 코딩을 사용할 수 있고, 그 벡터 양자화 코딩에서 식별된 가장 근접한 매칭 레지듀얼 템플릿과 연관된 표준 규격 압축 레지듀얼 블럭을 식별하기 위하여 그 코드 북을 액세스할 수 있다.
도 1 은 예시적인 비디오 코딩 장치 (10) 를 도시한 블럭도이다. 비디오 코딩 장치 (10) 는 비디오 데이터를 인코딩하고 송신할 수 있는 디지털 비디오 장치의 일부를 구성할 수도 있다. 비디오 데이터는 비디오 카메라로부터 캡쳐되거나 비디오 보관소로부터 검색될 수도 있다. 코딩 장치 (10) 를 통합할 수도 있는 디지털 비디오 장치의 예는 디지털 텔레비젼, 디지털 직접 방송 시스템, 무선 통신 장치, PDA (personal digital assistant), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 리코딩 장치, 셀룰러 또는 위성 무선전화기, 또는 비디오 텔레포니 (VT) 능력을 갖는 임의의 원격통신 장치를 포함한다. 장치 (10) 는 MPEG-4, ITU-T H.263, ITU-T H.264 또는 프레임간 비디오 인코딩을 위한 모션 추정 및 모션 보상 기술을 지원하는 다른 비디오 인코딩 표준과 같은 비디오 인코딩 표준을 따를 수도 있다.
도 1 에 도시한 바와 같이, 장치 (10) 는 비디오 시퀀스를 인코딩하기 위한 비디오 인코딩 장치 (12) 를 포함하고, 인코딩 전후에 그 비디오 시퀀스들을 저장하기 위한 비디오 메모리 (4) 를 포함한다. 또한, 장치 (10) 는 그 인코딩된 시퀀스들을 다른 장치로 송신하기 위한 송신기 (6) 및 비디오 시퀀스들을 캡쳐하기 위한 비디오 카메라와 같은 비디오 캡쳐 장치 (8) 를 포함하고, 그 캡쳐된 시퀀스들을 메모리 (4) 에 저장할 수도 있다. 장치 (10) 의 다양한 엘리먼트들은 통신 버스 (15) 를 통하여 통신적으로 결합될 수도 있다. 또한, 프레임간 인코더 엘리먼트들과 같은 다양한 다른 엘리먼트들, 다양한 필터들, 또는 다른 엘리먼트들이 장치 (10) 내에 포함될 수 있으나, 간략화를 위하여 구체적으로 도시하지 않았다.
통상적으로 비디오 메모리 (4) 는 상대적으로 큰 메모리 용량을 포함한다. 예를 들어, 비디오 메모리 (4) 는 DRAM (dynamic random access memory) 이나, FLASH 메모리를 포함할 수도 있다. 다른 예로는, 비디오 메모리 (4) 는 비휘발성 메모리나 임의의 다른 데이터 저장 장치를 포함할 수도 있다.
비디오 인코딩 장치 (12) 는 하드웨어, 소프트웨어, 펌웨어, 및/또는 프로세서나 디지털 신호 프로세서 (DSP) 의 조합을 포함하는, 이동 무선전화기용 소위 "칩 세트"를 포함할 수도 있다. 비디오 인코딩 장치 (12) 는 일반적으로 로컬 메모리 (14) 에 결합된 비디오 인코더 (16) 를 포함한다. 로컬 메모리 (14) 는 비디오 메모리 (4) 에 비하여 소규모이며 고속의 메모리 용량을 포함할 수도 있다. 예로써, 로컬 메모리 (14) 는 SDRAM (synchronous dynamic random access memory) 를 포함할 수도 있다. 로컬 메모리 (14) 는 프로세서-인텐시브 인코딩 프로세스 동안에 데이터에 대한 고속의 액세스를 제공하기 위하여 비디오 인코딩 장치 (12) 의 다른 컴포넌트들과 집적된 "온-칩" 메모리를 포함할 수도 있다. 그러나, 메모리 (4 및 14) 는 동일한 메모리 일부로 결합될 수도 있다. 비디오 인코더 (16) 는 여기 기술된 바와 같이 레지듀얼 인코딩 동안에 이용될 수 있는 병렬적인 프로세싱 기술들을 지원할 수도 있다.
주어진 비디오 프레임의 인코딩 동안에, 인코딩되어질 현재의 비디오 블럭은 비디오 메모리 (4) 로부터 로컬 메모리 (14) 로 로드될 수도 있다. 또한, 예측 비디오 블럭들을 위치시키는데 사용되는 검색 용량이 비디오 메모리 (4) 로부터 로컬 메모리 (14) 로 로드될 수도 있다. 검색 용량은 선행 비디오 프레임들 (또는 서브시퀀스 프레임들) 의 하나 이상의 화소들의 서브세트를 포함할 수도 있다. 선택된 서브세트는 인코딩되어질 현재의 비디오 블럭에 근접하게 매칭하는 예측 비디오 블럭의 식별에 적당한 위치로서 미리 식별될 수도 있다.
로컬 메모리 (14) 는 인코딩되어질 현재의 비디오 블럭 및 검색 용량과 함께 로드되며, 프레임간 인코딩에 사용되는 하나 이상의 비디오 프레임들의 일부 또는 전부를 포함한다. 모션 추정기/공간 추정기 (13) 는 예측 비디오 블럭을 식별하기 위하여 현재의 비디오 블럭을 검색 용량내의 다양한 비디오 블럭과 비교한다. 모션 추정기/공간 추정기 (13) 는 일반적으로 프레임간 인코딩을 위하여 모션 추정을 수행하는 모션 추정기, 프레임간 인코딩을 위하여 공간 추정을 수행하는 공간 추정기, 또는 모션 추정 및 공간 추정중 하나를 수행할 수 있는 그 조합 유닛을 대표한다. 일반적으로, 예측 비디오 블럭은 프레임간 상관 (또는 프레임내 상관) 을 목적으로 하여 현재의 비디오 블럭과의 적절한 매칭을 제공하기 위하여 발견된 후보 비디오 블럭이며, 이는 후보 비디오 블럭과 가장 근접하게 매칭될 수도 있다. 예측 비디오 블럭은 현재의 비디오 블럭에 비하여 최소의 차이 값을 갖는 비디오 블럭을 식별하기 위한 모션 추정 프로세스 동안에 평가된 다수의 후보 비디오 블럭들 중의 하나이다.
인코딩되어질 현재의 비디오 블럭과 메모리 (14) 의 검색 용량 내의 후보 비디오 블럭 사이의 비교를 수행하기 위하여, 모션 추정기/공간 추정기 (13) 는 SAD (sum of absolute difference) 기술, SSD (sum of squared difference) 기술, 또는 다른 비교 기술을 수행할 수도 있다. 이런 방식으로, 모션 추정기/공간 추정기 (13) 는 상이한 후보 비디오 블럭들에 대한 차이 값을 결정할 수 있다. 낮은 차이 값은 일반적으로 후보 비디오 블럭이 잘 매치된다는 것과, 따라서, 높은 차이 값을 갖는 다른 후보 비디오 블럭들에 비하여 모션 추정 인코딩의 사용에 더 좋은 후보임을 나타낸다. 일단 적절한 매칭이 발견되면 예측 비디오 블럭이 식별될 수도 있다.
일단, 모션 추정기/공간 추정기 (13) 에 의하여 인코딩되어질 비디오 블럭에 대한 예측 비디오 블럭이 식별되면, 모션 보상기/내부-예측 유닛 (17) 이 레지듀얼을 생성한다. 모션 보상기/내부-예측 유닛 (17) 은 일반적으로 프레임간 인코딩을 위하여 모션 보상을 수행하는 모션 보상기, 프레임간 인코딩을 위하여 공간 보상을 수행하는 내부-예측 유닛, 사용되는 모드에 따라 모션 보상 및 내부-예측 중 하나를 수행할 수 있는 결합된 유닛을 대표한다. 또한, 레지듀얼은 코딩되어질 현재의 비디오 블럭과 그 코딩에 사용될 예측 비디오 블럭 사이의 차이를 나타내는 데이터의 블럭을 포함한다. 특히, 모션 보상기/내부-예측 유닛 (17) 은 모션 벡터를 사용하는 예측 블럭을 페칭한 후에 레지듀얼을 생성하기 위하여 입력 블럭으로부터 그 예측 블럭을 제거한다. 레지듀얼은 통상적으로 그 차이 블럭으로 표현되는 원래의 비디오 블럭보다 실질적으로 적은 데이터를 포함한다.
모션 보상기/내부-예측 유닛 (17) 이 그 레지듀얼을 생성한 후에, 레지듀얼 코더 (19) 는 여기 설명된, 그 레지듀얼에 대한 벡터 양자화 인코딩을 수행한다. 레지듀얼 코더 (19) 는 표준 규격 압축 레지듀얼 블럭들을 식별하기 위한 검색을 수행하는 일반적으로 비표준화된 벡터 양자화 코더이다. 이런 방식으로, 레지듀얼 코더 (19) 는 레지듀얼의 비표준화된 벡터 양자화 인코딩의 일부로서 표준 규격 비트 스트림을 식별할 수 있다. 예를 들어, 레지듀얼 코더 (19) 는 레지듀얼 템플릿의 세트가 모션 보상기/내부-예측 유닛 (17) 에 의해 생성된 레지듀얼에 비교되는 템플릿 매칭 기술을 야기할 수 있다. 그러면, 그 레지듀얼에 가장 근접하게 매칭하는 레지듀얼 템플릿은 그 인코딩 프로세스에서 사용될 수 있다. 템플릿 매칭 프로세스 이후에, 레지듀얼 인코더 (19) 는 그 선택된 템플릿에 대한 표준 규격 압축 레지듀얼 블럭을 식별하기 위하여 코드 북 (18) 을 액세스한다. 일부 구현에서, 템플릿 매칭에 사용되는 템플릿이 변환된 템플릿을 포함할 수도 있는 경우에, 템플릿 매칭 이전에 하나 이상의 변환이 수행될 수도 있다. 어떤 경우이든, (변환되거나 변환되지 않은) 레지듀얼 템플릿은 코드 북 (18) 을 사용하는 표준 규격 압축 레지듀얼 블럭들로 매핑될 수 있다.
본 명세서에 따르면, 예컨대, (도시한 바와 같이) 로컬 메모리 (14) 또는 어쩌면 비디오 메모리 (4) 로 로딩될 수도 있는 비디오 인코딩 장치 (10) 는 코드북으로 미리 로딩된다. 많은 경우에, 예컨대 전체 코드북은 매우 클 수도 있으며, 비디오 메모리 (4) 에 저장될 수도 있다. 이러한 경우에, 코드북 (18) 은 비디오 메모리 (18) 에 저장된 완전한 코드북의 일부 저장을 위한 캐시일 수도 있다. 그러나, 이하의 설명에서 간략화를 위해, 전체 코드북이 코드북 (18) 으로서 로컬 메모리 (14) 에 저장되는 것으로 가정한다. 임의의 경우에, 코드북 (18) 은 레지듀얼 템플릿 (또는, 템플릿을 식별하는 값) 을 표준 규격 압축 레지듀얼 블럭의 대응 세트에 매핑한다. 표준 규격 압축 레지듀얼 북은 비디오 트레이닝 시퀀스를 이용한 템플릿 세트를 위해 미리 계산될 수도 있다. 따라서,레지듀얼 템플릿 중 하나가 레지듀얼 코더 (19) 에 의해 식별된다면, 코드북 (18) 은 액세스되어 식별된 레지듀얼 템플릿을 표준 규격 압축 레지듀얼 블럭에 매핑할 수 있다.
코드북 (18) 을 생성하기 위하여, 표준 규격 압축 레지듀얼 블럭은 레지듀얼 템플릿 세트를 위해 미리 계산될 수도 있다. 코드북 (18) 은, 레지듀얼 자체를 압축 레지듀얼 블럭에 직접 매핑하거나, 레지듀얼 템플릿을 나타내는 벡터 양자화 코드북 인덱스를 이용함으로써 이러한 매핑을 저장한다. 코드북 (18) 의 선-계산 (pre-computation) 은 지원되는 표준에 따른 각 레지듀얼 템플릿에 대해 수행되는 모든 레지듀얼 인코딩 단계를 포함할 수도 있다. 예컨대, 코드북 (18) 의 선예측은 변환 (예컨대, DCT 변환), 지그재그 스캐닝, 실행 길이 코딩, 가변 길이 (Huffman) 코딩, 또는 소정의 코딩 표준에 이용되는 임의의 다른 프로세스와 같은 프로세스를 포함할 수도 있다. 이러한 하나 이상의 프로세스가 레지듀얼 인코딩 전에 레지듀얼 템플릿에 대하여 수행되므로, 레지듀얼의 실행 시간 인코딩은 가속될 수 있다. 또한, 템플릿 매칭을 이용하는 벡터 양자화 기술은, 표준 레지듀얼 인코딩 프로세스가 레지듀얼에 대하여 실행 시간에서 수행된다면 가능하지 않을 병렬적인 프로세싱 기술을 이용할 수도 있다.
도 2 는 본 명세서의 실시형태에 따른 레지듀얼 인코딩 기술을 도시하는 예시적인 흐름도이다. 도 2 에 도시한 바와 같이, 메모리 (14) 는 레지듀얼 템플릿 세트를 표준 규격 압축 레지듀얼 블럭 (21) 세트에 매핑하는 정보를 저장한다. 예컨대, 정보는 코드북 (18) 을 포함할 수도 있고, 레지듀얼 템플릿과 대응하는 압축 레지듀얼 블럭 사이의 직접적인 일대일 매핑을 포함할 수도 있거나, 대응하는 압축 레지듀얼 블럭에 매핑된 벡터 양자화 코드북 인덱스를 포함할 수도 있으며, 이러한 벡터 양자화 코드북 인덱스는 레지듀얼 템플릿을 식별하는 코드 워드이다. 압축 레지듀얼 블럭은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264, 또는 모션 추정, 모션 보상 및 레지듀얼 인코딩을 수행하는 또 다른 비디오 코딩 표준과 같은 비디오 코딩 표준에 따르기 위하여 미리 계산될 수도 있다.
모션 보상기/내부 예측 유닛 (17) 에 의해 출력된 각 레지듀얼에 대해,레지듀얼 코더 (19) 는 레지듀얼을 메모리 (14) 에 저장된 레지듀얼 템플릿 세트와 비교하고, 레지듀얼 (22) 에 가장 근접하게 매칭되는 레지듀얼 템플릿 중 하나를 식별한다. 예컨대, 템플릿 매칭은 SSD 또는 SAD 기술을 이용하거나, 레지듀얼 템플릿을 인코딩될 레지듀얼과 비교하는 것을 편리하게 하기 위한 다른 비교 기술을 이용할 수도 있다. 역시, 몇몇 경우에 레지듀얼 템플릿은 예컨대, 템플릿 매칭 이전에 변환이 수행되는 구현을 위한 레지듀얼 템플릿으로 변환될 수도 있다. 임의의 경우에, 가장 근접하게 매칭되는 레지듀얼 템플릿이 식별되면, 레지듀얼 인코더 (19) 는 코드북 (18) 에 액세스하여 식별된 레지듀얼 템플릿 (23) 을 위해 미리 계산된 대응하는 압축 레지듀얼 블럭을 선택한다. 이러한 방식으로, 송신기 (6) 는, 레지듀얼 인코더 (19) 가 벡터 양자화 인코딩 프로세스를 수행한다고 할지라도 표준 규격 압축 레지듀얼 블럭을 송신할 수 있다.
역시, 템플릿 매칭을 이용하는 벡터 양자화 기술은, 표준 규격 인코딩 프로세스가 레지듀얼에 대하여 실행 시간에서 수행된다면 가능하지 않을 병렬적인 프로세싱 기술을 이용할 수도 있다. 예컨대, 레지듀얼 인코더 (19) 는 병렬적인 프로세싱을 지원하는 프로세서 상에서 실행되는 단독 명령 복수 데이터 (SIMD) 소프트웨어 명령을 포함할 수도 있다. 이러한 경우에, 템플릿 매칭은 병렬 방식으로 수행될 수 있다. 레지듀얼 인코더 (19) 는 소정의 레지듀얼을 병렬 프로세싱 기술을 이용하는 레지듀얼 템플릿 세트와 비교할 수도 있거나, 복수의 코딩된 비디오 블럭과 연관된 복수의 레지듀얼을 병렬 프로세싱 기술을 이용하는 레지듀얼 템플릿 세트와 비교할 수도 있다. 양 경우에서, 벡터 양자화 인코딩은 병렬 프로세싱 기술이 이용되도록 하는데, 이는 인코딩을 가속화할 수 있고, 또한 여기에 설명된 바와 같이 표준 규격 압축 레지듀얼 블럭 출력이 될 수 있다.
도 3 은 본 명세서에 따른, 코드북을 미리 계산하기 위한 예시적인 구조를 도시하는 블럭도이다. 도 3 에 도시한 바와 같이, 오프라인 코드북 생성유닛 (30) 은 비디오 인코딩 장치 메모리 (35) 에 로딩되는 코드북 (38) 을 미리 계산한다. 메모리 (35) 는 장치 (10) 의 로컬 메모리 (14) 또는 비디오 메모리 (4) 에 대응할 수도 있거나, 어쩌면 다른 비디오 코딩 장치에 이용되는 다른 타입의 메모리에 대응할 수도 있다. 코드북 (38) 은 레지듀얼 템플릿 세트를 표준 규격 압축 레지듀얼 블럭에 매핑하는 검색 테이블 (LUT) 과 같은 데이터 구조를 포함한다. 코드북 (38) 은 레지듀얼 템플릿을 저장할 수도 있거나, 레지듀얼 템플릿을 나타내는 벡터 양자화 코드북 인덱스를 저장할 수도 있다. 후자의 경우에, 레지듀얼 템플릿은 템플릿 매칭 프로세스에서의 이용을 위하여 다른 위치에 저장될 수도 있다.
코드북 생성 유닛 (30) 은, 비록 이러한 요소가 집적될 수도 있다고 할지라도, 코드북 생성기 (33), 템플릿 생성기 (31) 및 미리압축된 레지듀얼 생성기 (32) 를 포함한다. 일반적으로, 오프라인 코드북 생성유닛 (30) 은 코드북 (38) 의 엔트리를 생성하기 위하여 하나 이상의 비디오 트레이닝 시퀀스를 이용한다. 특히, 코드북 생성기 (33) 는 종래의 코드북 생성 알고리즘 또는 임의의 코드북 생성을 위한 기술을 실행할 수도 있다. 템플릿 생성기 (31) 는 레지듀얼 템플릿 세트를 생성할 수 있다. 일 예에서, 템플릿 생성기 (31) 는 이산 코사인 변환 (DCT) 및 트레이닝 시퀀스로부터의 입력 레지듀얼에 대하여 순방향 양자화를 수행하고, 그 후에 역방향 양자화 및 역방향 DCT 변환을 수행함으로써 레지듀얼 템플릿을 생성한다. 보다 일반적으로, 템플릿 생성기 (31) 는 지원되는 인코딩 표준에 기초하여 양자화 및/또는 레지듀얼에 대하여 변환을 수행하고, 그 후에 레지듀얼을 위한 레지듀얼 템플릿을 생성하기 위해 역방향 양자화 및/또는 역방향 변환을 수행한다.
미리 압축된 레지듀얼 생성기 (32) 는 양자화 및 변환된 레지듀얼에 대하여 레지듀얼 인코딩 단계를 수행한다. 미리 압축된 레지듀얼 생성기 (32) 에 의해 수행되는 실제 레지듀얼 인코딩 단계는 지원되는 표준에 의해 결정된다. 일 실시예에서, 예컨대, MPEG 에 따라, 미리 압축된 레지듀얼 생성기 (32) 는 래스터 대 지그재그 기록, 이에 후속하는 실행길이 인코딩, 이에 후속하는 Huffman 인코딩을 수행한다. 미리 압축된 레지듀얼 생성기 (32) 의 출력은 레지듀얼에 대한 표준 규격 압축 레지듀얼 블럭이다. 따라서, 트레이닝 시퀀스의 소정의 레지듀얼에 대하여, 템플릿 생성기 (31) 는 레지듀얼 템플릿을 생성하고, 미리 압축된 레지듀얼 생성기 (32) 는 지원되는 비디오 코딩 표준을 따르는, 대응하는 압축 레지듀얼 블럭을 생성한다. 그 후, 이러한 출력은 코드북 (38) 에서 서로 매핑될 수 있다.
또한, 코드북 생성기 (33) 는 템플릿 부본 (duplicate) 의 생성을 회피하거나 비디오 메모리 (35) 에 저장된 최종 코드북 (38) 으로부터 임의의 템플릿 부본을 제거하도록 설계될 수도 있다. 역시, 코드북 생성기 (33) 는 임의의 공지된 코드북 생성기준에 따라, 엔트리를 규정하고 어쩌면 엔트리를 제거할 수도 있다. 일부 경우에, 코드북 생성기 (33) 는 코드북 (38) 의 엔트리를 규정하기 위하여 에러 기준 및/또는 인코딩 품질 팩터 (factor) 를 적용할 수도 있다. 이러한 방식으로, 코드북 (38) 의 사이즈가 상당히 감소될 수도 있음으로써, 코드북 (38) 을저장하는데 필요한 메모리를 감소시킨다. 또한, 코드북 (38) 은 변환된 레지듀얼 템플릿을 표준 규격 출력에 매핑하도록 규정될 수도 있는데, 이러한 경우에 인코딩 프로세스는 템플릿 매칭 전에 변환을 적용한다. 코드북이 생성되는 방식과는 관계없이, 코드북은 비디오 인코딩 장치 메모리 (35) 에 송신될 수도 있는데, 이러한 메모리는 여기에 설명한 바와 같이, 표준 규격 압축 레지듀얼 블럭 출력으로 벡터 양자화 레지듀얼 인코딩 기술을 편리하게 하기 위해 실행 시간에서 액세스될 수 있다.
도 4 는 레지듀얼 코딩 동안 이용될 수 있는 코드북을 미리 계산하기 위한 하나의 예시적인 기술을 도시한다. 도 4 에 도시한 바와 같이, 템플릿 생성기 (31) 는 레지듀얼 템플릿 세트를 식별한다 (41). 미리 압축된 레지듀얼 생성기 (32) 는 표준 규격 압축 레지듀얼 블럭를 생성하기 위하여 템플릿에 대하여 표준 규격 인코딩 프로세스를 수행한다 (42). 그 후, 오프라인 코드 블럭 생성유닛 (30) 은 레지듀얼 템플릿 세트와, 예컨대 비디오 인코딩 장치 메모리 (35) 와 같은 표준 규격 압축 레지듀얼 블럭 세트간의 매핑을 저장한다. 이러한 방식으로, 실행 시간 인코딩이 선택된 템플릿과 연관된 표준 규격 압축 레지듀얼 블럭을 식별하기 위하여 코드북 (38) 에 액세스할 수 있도록, 코드북 (38) 은 미리 계산될 수 있다.
도 5 는 레지듀얼 템플릿 및 대응하는 표준 규격 압축 레지듀얼 블럭을 미리 계산하기 위한 예시적인 구조 (50) 를 도시하는 보다 상세한 블럭도이다. 구조 (50) 는 템플릿 생성기 (31), 미리 계산된 레지듀얼 생성기 (32), 및 코드북 생성기 (33) 의 집적된 실시형태에 대응할 수도 있다. 도 5 에 도시한 바와 같이, 제거 유닛 (52) 은 트레이닝 세트로부터 입력 화상을 수신한다. 화상의 각 비디오 블럭 (예컨대, 각 마크로 블럭) 에 대하여, 제거 유닛 (52) 은 비디오 블럭으로부터 공간 또는 모션 예측을 제거한다. 이러한 의미에서, 제거 유닛 (52) 은 단순화된 모션 보상기의 도시 또는 단순화된 내부 예측 유닛의 도시를 나타낸다. 제거 유닛 (52) 의 출력은 레지듀얼을 포함한다. 순방향 변환 유닛 (54) 은 순방향 DCT 변환과 같은 레지듀얼에 대하여 순방향 변환을 수행한다. 그 후, 순방향 양자화 유닛 (56) 은 하나 이상의 인코딩 레이트 기준에 기초하여 선택될 수도 있는, 선택된 양자화 파라미터 (QP) 를 적용함으로써 변환된 레지듀얼을 양자화한다.
역방향 양자화 유닛 (58) 은 유닛 (56) 의 출력에 대하여 역방향 양자화를 수행하고, 역방향 변환 유닛 (60) 은 예컨대 DCT 변환과 반대되는 역방향 변환을 수행한다. 역방향 변환 유닛 (60) 의 출력은 레지듀얼 템플릿 형태의 코드북 엔트리를 포함한다. 이러한 의미에서, 레지듀얼 템플릿은 레지듀얼과 매우 유사해야 하지만, 순방향 및 역방향 양자화 단계에서 적용되는 양자화 레벨에 따라 다소 다를 수도 있다.
역방향 변환유닛 (60) 에 의해 출력된 "코드북 엔트리"에 나타내어진 레지듀얼 템플릿을 매핑하기 위하여, 순방향 변환되고, 순방향 양자화된 레지듀얼의 버전 (순방향 양자화 유닛 (56) 에 의해 출력됨) 은 지그재그 스캔 유닛 (62), 실행/길이 인코드 유닛 (64) 및 가변 길이 코드 (VLC) 유닛 (66) 을 통해서도 전송된다. 유닛 (62, 64 및 66) 은 일반적으로 인코딩 표준에 의해 규정된 시퀀스의 손실이 없는 레지듀얼 인코딩을 나타낸다. 따라서, VLC 유닛 (66) 의 출력은 예컨대 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 또는 다른 표준과 같은 표준을 따를 수도 있는 표준 규격 압축 레지듀얼 블럭이다. "미리 압축된 레지듀얼 블럭" 이라는 라벨 (label) 은 표준 규격 압축 레지듀얼 블럭을 나타낸다. 역방향 변환유닛 (58) 에 의해 출력된 "코드북 엔트리" 는 VLC 유닛 (66) 에 의해 출력된 "미리 압축된 레지듀얼 블럭" 에 매핑될 수 있다. 그 후, 이러한 프로세스는 레지듀얼 템플릿 세트를 표준 규격 압축 레지듀얼 블럭 세트에 매핑하는 데이터 구조 (즉, 코드북) 를 생성하기 위하여 다수의 화상 트레이닝 세트에 대해 반복될 수 있다. 또한, 다수의 코드북 발생기술이 코드북을 저장하는데 필요한 메모리를 감소시키기 위해, 그리고 벡터 양자화 인코딩 프로세스에 필요한 템플릿 매칭 계산의 수를 감소시키기 위해 부본 또는 유사한 템플릿을 제거하는 데이터 구조 상에서 수행될 수도 있다.
도 6 은 본 명세서에 따른 레지듀얼 코더의 일 실시형태를 도시하는 예시적인 블럭도이다. 구체적으로 도 6 의 구성은 도 1 의 레지듀얼 코더 (19), 코드북 (18) 및 메모리 (14) 에 저장된 레지듀얼 템플릿 데이터베이스 (미도시) 를 포함한, 도 1 의 구성요소에 실질적으로 대응할 수도 있다. 도 6 의 블럭도는 표준 규격 압축 레지듀얼 블럭을 출력하는 벡터 양자화 템플릿 매칭 기술을 편리하게 하기 위하여 실행 시간에서 구현될 수 있다.
도 6 에 도시된 바와 같이, 인코딩될 입력 비디오 블럭은 레지듀얼 블럭을 생성하기 위하여 제거 유닛 (82) 을 통해 예측 블럭으로부터 제거된다. 거리 계산유닛 (84) 은 레지듀얼에 가장 근접하게 매칭되는 레지듀얼 템플릿을 식별하기 위하여 템플릿 매칭을 수행한다. 예컨대, 거리 계산 유닛 (84) 은 예컨대, 메모리에 저장될 수도 있는 레지듀얼 템플릿 데이터 베이스 (86) 에 액세스할 수도 있다. 레지듀얼 템플릿 데이터베이스 (86) 는 코드북에서 참조되는 모든 레지듀얼 템플릿의 완전한 데이터베이스이다. 거리 계산유닛 (84) 은 SSD 또는 SAD 기술과 같은 비교를 수행하여, 최상의 매치를 식별하기 위하여 레지듀얼을 레지듀얼 템플릿과 비교할 수도 있다. 거리 계산유닛 (84) 의 출력인 "최상의 매치 인덱스" 는 최상의 매치를 식별한다. 이러한 의미에서, "최상의 매치 인덱스" 는 종래의 벡터 양자화 인코딩에서 송신되는 것과 유사한, 벡터 양자화 코드북 인덱스 또는 코드워드를 포함한다. 그러나, 종래의 기술과는 달리, 도 6 의 구조는 "최상의 매치 인덱스" 를 송신하지 않는다. 대신, "최상의 매치 인덱스" 는 코드북 검색 (LUT) 유닛 (88) 에 의해 적용된다.
코드북 LUT 유닛 (88) 은 코드북 (90) 에 액세스하는데, 코드북 (90) 은 벡터 양자화 코드북 인덱스 (즉, 레지듀얼 템플릿에 대한 코드워드) 의 미리 계산된 표준 규격 압축 레지듀얼 블럭으로의 매핑을 저장한다. 따라서, 코드북 LUT 유닛 (88) 은 "최상의 매치 인덱스" 에 매핑되는 표준 규격 압축 레지듀얼 블럭 중 대응하는 하나를 식별한다. 선택된 표준 규격 압축 레지듀얼 블럭은 도 6 에서 "미리 압축된 레지듀얼 블럭" 이라 하고, 다중화기 (multiplexer) (92) 로 전달된다. 다중화기 (92) 는 "미리 압축된 레지듀얼 블럭" 과, 지원되는 표준에 의해 규정될 수도 있는 다양한 헤더 (header) 값 및 레지듀얼과 연관된 모션 벡터와 같은 넌 (non) 레지듀얼 비트 스트림 요소와 결합한다. 비트 스트림 연결 유닛 (94) 은 미리 압축된 비디오 블럭과 예컨대 지원되는 표준을 따르는 넌-레지듀얼 비트 스트림 요소와 연결하는데 이용될 수도 있다. 그 후, 표준을 따르는 "출력 비트 스트림" 은 표준을 따르는 CODEC 을 포함하는 다른 장치에 송신될 수 있다.
또한, 거리 계산유닛 (84) 에 의해 식별되는 최상의 매치 레지듀얼 템플릿은 가산기 (96) 에 전달될 수 있는데, 이러한 가산기 (96) 는 예컨대, 다음 화상의 모션 추정에서의 이용을 목적으로 화상을 재구성하기 위해 예측 비디오 블럭을 추가한다. 포스트 필터 (98) 는 예컨대, 재구성된 화상 상에서의 디 (de)-블럭 필터링과 같은 하나 이상의 포스트 필터링 기술을 수행하기 위해 이용될 수도 있다. 재구성된 화상은 압축에 따르는 입력 화상의 디코딩된 버전이다. 입력 화상 및 재구성된 화상은 예컨대, 소위 "마크로 블럭" 이라 하는 비디오 블럭과 같이 비디오 프레임의 서브부분을 구성할 수도 있다.
다수의 실시형태들을 설명하였다. 예컨대, 벡터 양자화 템플릿 매칭을 이용하지만 표준 규격 압축 레지듀얼 블럭으로 되는 레지듀얼 코딩 기술을 설명하였다. 몇 개의 예시적인 표준들을 설명하였지만, 이러한 기술들은 레지듀얼 인코딩 프로세스를 포함하는 임의의 비디오 코딩 표준에 대하여 적용될 수도 있다. 이러한 기술들은 변환되지 않은 레지듀얼의 템플릿 매칭의 의미로 설명하였다. 그러나, 설명한 기술들은 변환된 레지듀얼에도 동등하게 적용될 수 있으며, 이러한 경우에 변환은 여기에 설명된 템플릿 매칭 기술 전에 인코딩 프로세스에서 변환된다. "레지듀얼" 은 일반적으로 변환된 또는 변환되지 않은 레지듀얼 블럭을 말한다.
여기에 설명된 기술들은 소프트웨어, 하드웨어,펌 웨어 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 이러한 기술은 프로그램 코드를 구비하는 컴퓨터 판독가능 매체에 적용되어, 비디오 시퀀스를 코딩하는 장치에서 실행되는 경우에, 여기에 설명한 하나 이상의 레지듀얼 코딩 기술을 수행할 수도 있다. 이러한 경우에, 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 리드-온리 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 제거가능한 프로그래머블 리드-온리 메모리 (EEPROM), 플래쉬 메모리 등을 포함할 수도 있다.
프로그램 코드는 컴퓨터 판독가능 명령의 형태로 메모리에 저장될 수도 있다. 이러한 경우에, DSP 와 같은 하나 이상의 프로세스는, 하나 이상의 레지듀얼 코딩 기술을 수행하기 위하여 메모리에 저장된 명령을 실행할 수도 있다. 일부 경우에, 이러한 기술은, 코딩 프로세스를 가속화하기 위해 다양한 하드웨어 구성요소를 이용하는 DSP 에 의해 실행될 수도 있다. 다른 경우에, 여기에 설명한 CODEC 은 하나 이상의 마이크로프로세서, 하나 이상의 주문형 반도체 (ASIC), 하나 이상의 필드 프로그래머블 게이트 어레이 (FPGA), 또는 몇몇 다른 동등한 집적 또는 이산된 논리 회로 또는 하드웨어-소프트웨어 결합으로서 구현될 수도 있다. 이러한 실시형태 및 다른 실시형태는 이하 청구범위의 범위에 속한다.
2 : 비디오 캡쳐 장치 4 : 비디오 메모리
6 : 송신기 10 : 비디오 코딩 장치
12 : 비디오 인코딩 장치 13 : 모션 추정기/공간 추정기
14 : 로컬 메모리 15 : 통신 버스
16 : 비디오 인코더 17 : 모션 보상기/내부 예측 유닛
18 : 코드북 19 : 레지듀얼 인코더
6 : 송신기 10 : 비디오 코딩 장치
12 : 비디오 인코딩 장치 13 : 모션 추정기/공간 추정기
14 : 로컬 메모리 15 : 통신 버스
16 : 비디오 인코더 17 : 모션 보상기/내부 예측 유닛
18 : 코드북 19 : 레지듀얼 인코더
Claims (1)
- 발명의 상세한 설명에 기재된 모든 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64202305P | 2005-01-06 | 2005-01-06 | |
US60/642,023 | 2005-01-06 | ||
US11/271,218 | 2005-11-10 | ||
US11/271,218 US7804901B2 (en) | 2005-01-06 | 2005-11-10 | Residual coding in compliance with a video standard using non-standardized vector quantization coder |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060002023A Division KR101396632B1 (ko) | 2005-01-06 | 2006-01-06 | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는레지듀얼 코딩 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130006578A true KR20130006578A (ko) | 2013-01-17 |
Family
ID=36283803
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060002023A KR101396632B1 (ko) | 2005-01-06 | 2006-01-06 | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는레지듀얼 코딩 |
KR1020120144341A KR20130006578A (ko) | 2005-01-06 | 2012-12-12 | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는 레지듀얼 코딩 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060002023A KR101396632B1 (ko) | 2005-01-06 | 2006-01-06 | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는레지듀얼 코딩 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1679902A3 (ko) |
JP (1) | JP5101818B2 (ko) |
KR (2) | KR101396632B1 (ko) |
CN (1) | CN1848960B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4510069B2 (ja) * | 2007-12-10 | 2010-07-21 | シャープ株式会社 | 画像処理装置、画像表示装置、画像形成装置、画像処理方法、コンピュータプログラム及び記憶媒体 |
US8228990B2 (en) | 2008-01-16 | 2012-07-24 | Sony Corporation | Template matching scheme using multiple predictors as candidates for intra-prediction |
FR3033114A1 (fr) * | 2015-02-19 | 2016-08-26 | Orange | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
CN113873244B (zh) * | 2020-06-30 | 2023-10-20 | 华为技术有限公司 | 一种系数编解码方法和系数编解码装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02174388A (ja) * | 1988-12-26 | 1990-07-05 | Graphics Commun Technol:Kk | 画像符号化装置 |
US5329313A (en) * | 1992-04-01 | 1994-07-12 | Intel Corporation | Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table |
JP3013698B2 (ja) * | 1994-04-20 | 2000-02-28 | 松下電器産業株式会社 | ベクトル量子化符号化装置と復号化装置 |
US5748242A (en) * | 1995-08-25 | 1998-05-05 | Lucent Technologies Inc. | Color video vector quantization with chrominance codebook bypass |
US6192081B1 (en) * | 1995-10-26 | 2001-02-20 | Sarnoff Corporation | Apparatus and method for selecting a coding mode in a block-based coding system |
KR100239307B1 (ko) | 1997-01-10 | 2000-01-15 | 전주범 | 윤곽선 영상 부호화기 |
KR100259471B1 (ko) | 1997-06-25 | 2000-06-15 | 전주범 | 개선된형태부호화장치및방법 |
US6157328A (en) * | 1998-10-22 | 2000-12-05 | Sony Corporation | Method and apparatus for designing a codebook for error resilient data transmission |
JP2969115B1 (ja) * | 1998-11-25 | 1999-11-02 | 株式会社日立製作所 | 半導体装置 |
JP2001169291A (ja) * | 1999-09-27 | 2001-06-22 | Tadahiro Omi | データ圧縮装置、データ圧縮方法及び記憶媒体 |
KR100644570B1 (ko) * | 1999-10-01 | 2006-11-13 | 삼성전자주식회사 | 영상부호화기의 비트레이트 제어방법 및 장치, 그리고 이에 적합한 부호화방법 |
US7003039B2 (en) * | 2001-07-18 | 2006-02-21 | Avideh Zakhor | Dictionary generation method for video and image compression |
JP2004260282A (ja) * | 2003-02-24 | 2004-09-16 | Hokuto System Kk | ベクトル量子化処理におけるコードブックの作成方法 |
CN1458646A (zh) * | 2003-04-21 | 2003-11-26 | 北京阜国数字技术有限公司 | 一种滤波参数矢量量化和结合量化模型预测的音频编码方法 |
KR100718121B1 (ko) * | 2003-05-16 | 2007-05-15 | 삼성전자주식회사 | 영상의 레지듀 예측을 이용한 영상 부호화/복호화 방법 및장치 |
CN1212014C (zh) * | 2003-08-18 | 2005-07-20 | 北京工业大学 | 基于时空域相关性快速运动估计的视频编码方法 |
-
2006
- 2006-01-05 EP EP06000210A patent/EP1679902A3/en not_active Withdrawn
- 2006-01-06 CN CN2006100089580A patent/CN1848960B/zh not_active Expired - Fee Related
- 2006-01-06 JP JP2006001328A patent/JP5101818B2/ja not_active Expired - Fee Related
- 2006-01-06 KR KR1020060002023A patent/KR101396632B1/ko not_active IP Right Cessation
-
2012
- 2012-12-12 KR KR1020120144341A patent/KR20130006578A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
JP2006191642A (ja) | 2006-07-20 |
EP1679902A2 (en) | 2006-07-12 |
KR101396632B1 (ko) | 2014-05-16 |
EP1679902A3 (en) | 2012-04-25 |
KR20060093016A (ko) | 2006-08-23 |
JP5101818B2 (ja) | 2012-12-19 |
CN1848960A (zh) | 2006-10-18 |
CN1848960B (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101356207B1 (ko) | 데이터 인코딩/디코딩 방법 및 장치 | |
JP2008543183A (ja) | 複数の映像規格に従った映像符号化の際のブロックノイズ除去フィルタリング技術 | |
US8781004B1 (en) | System and method for encoding video using variable loop filter | |
US20120008686A1 (en) | Motion compensation using vector quantized interpolation filters | |
KR20130070574A (ko) | 메모리 요건을 완화한 영상 전송 시스템 | |
KR20070028404A (ko) | 픽처를 저장하는 방법, 비디오 복호기, 비디오 부호기,휴대 장치 및 컴퓨터 프로그램 제품 | |
US20180302643A1 (en) | Video coding with degradation of residuals | |
EP3104615B1 (en) | Moving image encoding device and moving image encoding method | |
US20130128973A1 (en) | Method and apparatus for encoding and decoding an image using a reference picture | |
US20160050431A1 (en) | Method and system for organizing pixel information in memory | |
US20120008687A1 (en) | Video coding using vector quantized deblocking filters | |
KR20130006578A (ko) | 비표준 벡터 양자화 코더를 이용한 비디오 표준을 따르는 레지듀얼 코딩 | |
US20080183738A1 (en) | Apparatus and method for compressing data | |
US7804901B2 (en) | Residual coding in compliance with a video standard using non-standardized vector quantization coder | |
JP4686280B2 (ja) | 動画像符号化装置 | |
CN1792097A (zh) | 具有低存储器带宽要求的视频处理设备 | |
CN104581173A (zh) | 软解码验证模型平台 | |
JP2006191642A5 (ko) | ||
WO2022178686A1 (zh) | 编解码方法、编解码设备、编解码***以及计算机可读存储介质 | |
WO2020255771A1 (ja) | 画像処理装置および方法 | |
CN109495745B (zh) | 一种基于逆量化/逆变换的无损压缩解码方法 | |
CN114189684A (zh) | 一种基于jnd算法的视频编码方法、装置、介质及计算设备 | |
CN113132734B (zh) | 一种编码、解码方法、装置及其设备 | |
KR100530566B1 (ko) | 적응적 변환방법을 이용하는 영상압축 부호화 및 복호화 장치및 그 방법 | |
KR20040036224A (ko) | 프레임 특성을 이용한 압축형식 변환방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |