KR20000032856A - 동영상 부호화 방법 - Google Patents

동영상 부호화 방법 Download PDF

Info

Publication number
KR20000032856A
KR20000032856A KR1019980049473A KR19980049473A KR20000032856A KR 20000032856 A KR20000032856 A KR 20000032856A KR 1019980049473 A KR1019980049473 A KR 1019980049473A KR 19980049473 A KR19980049473 A KR 19980049473A KR 20000032856 A KR20000032856 A KR 20000032856A
Authority
KR
South Korea
Prior art keywords
sad
quantization
dct
discrete cosine
cosine transform
Prior art date
Application number
KR1019980049473A
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 KR1019980049473A priority Critical patent/KR20000032856A/ko
Publication of KR20000032856A publication Critical patent/KR20000032856A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Abstract

본 발명은 동영상 부호화 방법에 관한 것으로서, 이전영상과 현재 영상의 차의 절대값 합(SAD)를 이용하여 인터프레임의 움직임을 추정하는 단계; 움직임추정에서 구해진 SAD 값을 이용하여 블록특성을 추출하는 단계; 및 블록 특성에 따라 이산여현변환(DCT) 및 양자화를 수행하는 단계를 포함함을 특징으로 한다. 그 SAD를 이용한 블록특성은 이산여현변환 및 양자화를 거친 정상적인 동영상 프레임 시퀀스에 대한 해당 SAD 분포를 통계적으로 구한 값임이 바람직하다. 그리고 SAD를 이용한 블록특성이 SAD가 소정의 임계값보다 작을 때는 이산여현변환 및 양자화를 수행하지 않음을 특징으로 한다.
본 발명에 의하면, 움직임 추정과정에서 제공되는 SAD 값을 이용하여 적응적인 이산여현변환 및 양자화를 수행하므로써 SAD를 구하기 위한 추가적인 계산량의 부담없이 효과적으로 이산여현 변환 및 양자화의 계산량을 감소시킨다. 특히 전체 배경의 움직임이 없는 경우에는 상당수의 이산여현변환 계수가 단지 DC 값만으로 대치될 수 있으므로 영상의 특성에 따라 획기적인 계산량의 감소를 꾀할 수 있다.

Description

동영상 부호화 방법
본 발명은 동영상 부호화 방법에 관한 것으로서, 특히 DCT 및 양자화 처리에 있어서 계산량을 줄이는 동영상 부호화 방법에 관한 것이다.
JPEG, MPEG, H.261, H.263 과 같은 디지털 영상압축에 관한 국제 표준등이 속속 확정됨에 따라 정지영상 및 동영상의 저장 및 전송은 점점 일상생활과 밀접해지고 있으며, 최근에는 이러한 표준화된 동영상 전송시스템을 어떻게 효과적으로 구현할 것인가에 대한 많은 관심과 연구가 이루어지고 있다.
전통적으로 동영상 압축기의 구현은 과도한 연산량으로 인해 하드웨어를 기반으로 하는 설계방식이 주된 관심의 대상이 되어왔다. 하지만 범용 프로세서의 성능이 날로 향상됨에 따라 최근에는 완전 소프트웨어적으로 동영상 전송시스템을 구현하려는 경향이 나타나고 있다. 이들은 주로 여러 프로세서를 이용하는 병렬처리 형태를 가지거나 멀티미디어용 명령어 세트(instruction set)를 겸비한 범용 프로세서를 이용한 형태로 구현되고 있다.
이러한 소프트웨어 방식의 구현은 확장성 면에서 하드웨어 방식에 비해 월등한 잇점이 있지만 여전히 하나의 프로세서로 동영상 전송시스템을 구현하기에는 힘겨운 상태이다.
한편, 동영상을 실시간으로 압축하고 복원하기 위해서는 계산량을 효과적으로 줄일 수 있는 방안이 요구된다. 일반적으로 동영상 압축의 경우 움직임 추정부는 막대한 계산량이 필요로 하므로 하드웨어로 구현되는 경우가 많다. 그 이외에 압축을 위해 필요한 DCT(Discrete Cosine Transform), 양자화(Quantization) 등을 소프트웨어적으로 구현할 경우 이들의 처리 시간 역시 실시간 동작에 부담이 된다. 따라서 이산여현변환 및 양자화(DCT/Q)의 계산량을 줄이기 위해서 입력 영상의 특성에 적응적인 DCT/Q를 사용하여 그 계산량을 대폭 줄이거나 피할 수 있도록 한다.
H.263 부호화(encoding)을 하기 위해서는 DCT와 Q를 수행 해야 한다. DCT 이후 Quantization 에 의해서 많은 고주파 계수들이 0의 값을 가지게 된다. 만약 0을 가지는 계수들은 DCT를 수행할 필요가 없는 계수들이므로 이러한 특성을 이용하여 모든 경우에 대해서 8 x 8 DCT를 수행하지 않고, 입력 영상의 특성에 따라 계산량이 감축된 적응적인 DCT를 수행한다. 입력으로 영상을 받아서 그 영상의 특성을 추출하는 부분이 있다. 추출된 영상의 특성을 고려하여 최종적으로 수행해야 할 DCT를 크기를 결정한다. 보통 2 단계로 구성되며, 8-point DCT 보다 적은 N-point DCT를 보다 적은 계산량으로 수행하기 위해서 근사화된 계산을 수행하기도 한다.
DCT 이후 Quantization 이 수행되면 낮은 비트율에서 Quantization Parameter의 값이 크기 때문에 대부분의 계수들이 0의 값을 가지게 된다. 따라서 Quantization 이후 8 x 8 point DCT 중 어떤 계수가 0의 값을 가지는지 예측을 해야 하며, 이 예측에 따라서 적은 계산량을 가진 감축된 DCT를 수행하므로써 DCT의 계산량을 줄일 수 있다. 이 예측 방법으로는 주로 두 가지가 사용되어 왔다. 그 블럭의 특성을 대표하는 것으로써 DC(평균치) 값이나, 양자화 파라미터(Quantization Parameter : 양자화시 사용되는 scaling factor)를 보고, 만약 그 블럭이 고주파의 계수를 갖지 않을 것으로 판단되면, 8 x 8 point DCT 중에서 낮은 주파수의 계수만을 계산함으로써 계산량을 줄일 수 있다. 만약 DC를 제외한 모든 계수들이 0 인 것으로 판단되면 DCT 계산을 수행하지 않게 된다. 또한 N x N ( N < 8 ) 계수만을 생성하는 간략화된 8 x 8 point DCT를 수행할 때에도 그 연산을 근사화하여 계산량을 줄일 수 있게 된다.
기존의 방법은 다음과 같은 문제점이 있다. DC 값을 예측 값으로 사용할 경우, DC 값이 입력 블럭의 특성을 대표하여, 효과적으로 DCT 계수들의 특성을 예측하는 정확도에서 문제점이 있다. 이것은 대부분을 차지하는 차 영상의 경우 DC 값이 평균적으로 0의 값을 갖기 때문이다.
또는 양자화파라미터(QP) 값을 고려하여, DCT 계산량을 감소하는 방법은 어떤 입력 블럭의 특성을 적응적으로 나타내어 주지 못하며 단지 QP 값을 고려함으로써 0을 가지는 고주파 계수들의 통계적 상한을 결정할 수 있을 뿐이다. 그러므로 DC 나 QP 값을 고려하여 DCT를 적응적으로 수행하는 것은 근사화일 따름이며 정확하지 못한 결과를 낳게 된다.
본 발명이 이루고자하는 기술적 과제는 이산여현변화 및 양자화(DCT/Q)의 계산량을 줄이기 위해서 하드웨어로 구현된 움직임 추정부에서 구해진 SAD(Sum of Absolute Diffrence) 값을 이용하여 입력 영상의 특성에 적응적인 DCT/Q를 사용하여 그 계산량을 대폭 줄이거나 피할 수 있도록 하는 동영상 부호화 방법을 제공하는 것이다.
도 1은 동영상 코덱의 전체 시스템 구성을 블록도로 도시한 것이다.
도 2는 본 발명에서 사용된 움직임 추정 알고리즘(HSBMAS3)의 개념도이다.
도 3은 움직임 추정부의 기본 탐색 단위를 도시한 것이다.
도 4는 본 발명에서 사용된 움직임 추정부의 블록도를 도시한 것이다.
도 5는 QCIF Foreman 영상(QP=10,20,30)에서 coded/not-coded 블록의 통계특성을 도시한 것이다.
도 6은 인터 프레임 코딩에서의 적응적 DCT/Q 스키핑 기법의 흐름도를 도시한 것이다.
도 7은 움직임 추정부에서 얻어진 coded/not-coded 블록별 최소 SAD 값의 히스토그램을 도시한 것으로서, Foreman(QCIF) 영상을 64kbps, 30Hz로 부호화 결과이다.
도 8은 IDCT를 위한 연산수를 도시한 것이다.
도 9는 SAD 값에 따른 DCT 의 분류를 도시한 것이다.
도 10은 SAD에 따른 전체적인 DCT 수행 순서도이다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한 동영상 부호화 방법은, 동영상 부호화 방법에 있어서, 이전영상과 현재 영상의 차의 절대값 합(SAD)를 이용하여 인터프레임의 움직임을 추정하는 단계; 상기 움직임추정에서 구해진 SAD 값을 이용하여 블록특성을 추출하는 단계; 및 상기 블록 특성에 따라 이산여현변환(DCT) 및 양자화를 수행하는 단계를 포함함을 특징으로 한다.
상기 SAD를 이용한 블록특성은 이산여현변환 및 양자화를 거친 정상적인 동영상 프레임 시퀀스에 대한 해당 SAD 분포를 통계적으로 구한 값임이 바람직하다.
그리고 상기 SAD를 이용한 블록특성이 SAD가 소정의 임계값보다 작을 때는 이산여현변환 및 양자화를 수행하지 않음을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한 다른 동영상 부호화 방법은, 동영상 부호화 방법에 있어서, 이전영상과 현재 영상의 차의 절대값 합(SAD)를 이용하여 인터프레임의 움직임을 추정하는 단계; 상기 움직임추정에서 구해진 SAD 값 및 양자화파라미터(QP)를 이용하여 블록의 끝(EOB)을 예측하는 단계; 및 상기 예측된 EOB 까지만 이산여현변환(DCT) 및 양자화를 수행하는 단계를 포함함을 특징으로 한다.
상기 이산여현변환 및 양자화 수행단계는 상기 EOB에 따라서 이산여현변환된 계수들을 소정의 클래스로 나누어 이산여현변환 및 양자화를 수행함이 바람직하다.이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
먼저, 본 발명이 가장 전형적으로 적용될 H.263 코덱(Codec)의 전체적인 구조를 설명하기로 한다. H.263 Codec 에서 가장 많은 양의 계산량을 차지하는 부호화기(Encoder) 부분의 움직임 추정(Motion estimation )에 관련된 기능은 하드웨어 엔진(Hardware Engine)으로 별도 게이트 어레이(Gate Array)를 사용하여 구현하고 움직임 추정을 제외한 나머지 Function들과 G.723, H.223/225, H.245을 포함하고 있는 H.324/323 시스템 전체를 RISC Processor 상에서 소프트웨어로 구현한다. 전체 시스템의 구성을 간략히 나타내면 도 1과 같다.
한 개의 RISC 프로세서와 한 개의 ASIC 칩을 사용하여 H.323 시스템을 구현하기 위하여 하드웨어/소프트웨어 Co-design 방법에 의하여 시스템을 구현한다. OS를 포함한 H.323 전체 시스템을 StrongARM core상에서 소프트웨어로 실시간 동작시키기 위해서 H.263에 할당되는 Processing power는 전체 처리시간의 20%(약 40MIPS)에 불과하다. 20%내에 H.263을 구현하기 위하여 H.263의 기능 블록별 계산량을 분석하고 소프트웨어 확장성을 고려하여 가장 연산량을 많이 차지하면서도 하드웨어로 구현 시 하드웨어 양을 효율적으로 줄일 수 있는 움직임 추정 부분을 하드웨어로 구현된다.
움직임 추정부는 전역탐색방법(FSMBA)을 사용하지 않고 인접 움직임 벡터와의 연관성과 다중후보를 이용하는 계층적 3단계 탐색(HSBMA3S) 기법을 사용하여 만들어진다. HSBMA3S는 움직임 추정으로 인한 부호화 성능의 손실이 거의 없이 FSMBA 에 비해 훨씬 적은 연산량을 필요로 하므로 보다 적은 게이트수로 움직임 추정 하드웨어를 설계할 수 있다. 도 2에 도시된 바와 같이 HSBMA3S는 최상위 단계의 decimation된 영상에 대해서 4x4 의 각 블록에 대해 ±4의 탐색영역으로 움직임 탐색을 해서 가장 작은 SAD 값을 가지는 두 탐색점을 찾아서 중간 단계의 초기 탐색위치로 정한다. 중간 단계에서는 세 탐색점(두 탐색점은 최상위 단계에서부터 얻어지고, 하나의 탐색점은 최하위 단계에서 미리 얻어진 이웃하는 3 매크로블록의 움직임 벡터들의 중간치(median) 값으로 얻어진다.)에 대해서 ±2의 탐색영역으로 움직임 탐색을 해서 가장 작은 SAD 값을 가지는 하나의 탐색점을 최하위 단계의 초기 탐색위치로 정한다. 마지막으로 최하위 단계에서는 16x16 매크로 블록에 대한 최종적인 움직임 벡터를 얻기 위해 중간단계에서 넘겨준 초기점을 기준으로 ±2 탐색을 수행한다.
상기 움직임 추정부는 하드웨어 구현에서 가장 널리 사용되는 systolic array 구조에 바탕을 둔다. systolic array 구조에서 processing element (PE)의 수는 매크로블록의 크기와 탐색 영역에 비례한다. 따라서 전역 탐색방법을 하드웨어로 구현할 경우 일반적으로 64 또는 256개의 많은 PE가 사용된다. 반면 HSMBA3S를 하드웨어로 구현함에 있어서 우리는 5개의 PE와 약간의 플립플롭, 멀티플렉서 및 간단한 제어회로를 가진 하나의 기본 탐색단위를 사용하였다. 도 3에 도시된 바와 같이 기본 탐색단위는 세 단계 탐색중 가장 작은 블록의 크기인 4x4 블록에 대해서 세 단계별 탐색영역중 가장 작은 단위인 ±2(25 탐색점)의 탐색영역에 대해 움직임 추정을 한다.
HSBMA3S는 세 개의 계층적 탐색단계를 가지고 있고 각 단계는 각각 다른 블록 크기와 탐색영역을 가지고 있으므로, 각 단계에 해당되는 세 개의 다른 systolic array가 필요하다. 하지만 상기 움직임 추정부에서는 기본 탐색 단위의 반복적인 사용을 통해서 필요한 PE의 수를 획기적으로 줄일 수 있다.
최상위 단계에서는 ±4 영역의 탐색영역에 해당하는 81개의 탐색점을 4개의 영역으로 나누어서 25개의 탐색점을 가지는 하나의 기본 탐색단위를 4번 반복 사용함으로써 최상위 단계에서의 한번의 탐색을 수행할 수 있다. 이와 유사하게 중간(하위) 단계에서는 8x8(16x16) 블록이 4(16) 번 반복 사용함으로써 중간(하위) 단계에서의 한번의 탐색이 수행된다. 기본 탐색단위에서 얻어지는 SAD 값은 4x4 블록에 대한 SAD 값이므로 8x8(16x16)에 대한 완전한 SAD 값을 얻기 위해 데이터 버퍼와 가산기가 사용된다. 도 4는 움직임 추정부의 전체적 블록도를 도시한 것이다.
하드웨어로 설계되는 움직임 추정/보상을 제외한 부분 중에서 가장 연산량을 많이 차지하는 부분은 DCT/Q 부분이다. H.263 codec은 낮은 전송율 환경에서 사용되고, inter-frame 부호화가 주로 사용되므로 양자화 과정 후에 많은 계수들이 0의 값을 가진다. 이러한 부호화 과정에서의 통계특성을 이용한 연산시간 감축기법이 소프트웨어부의 속도개선에 사용되었다.
영상이 64kbps 이하의 낮은 전송율로 부호화된 경우 많은 not-coded 블록들이 생긴다. 부호화기의 경우 DCT/Q는 VLC 이전에 수행되므로 모든 블록들은 일단 DCT/Q 연산은 실제적으로는 아무런 의미를 가지지 못한다.
도 5는 Foreman(QCIF) 영상에 대해서 얼마나 많은 블록들이 not-coded 블록으로 결정되는지 보여준다. 이러한 통계적 특성을 이용하기 위해서 inter-frame coding에서의 DCT/Q skipping 기법 및 근사화(approximation) 방법이 사용된다.
도 6은 inter-frame 코딩에서 루미넌스(luminance) 블록에 대한 DCT/Q skipping 방법을 보여준다. 인터 블록에 대해서 해당 블록에 대한 최소 SAD 값을 양자화 변수(QP)와 연관된 값과 비교함으로써 해당 블록을 not-coded 블록으로 예측한다. 이 때 블록별 SAD 값은 하드웨어로 설계한 움직임 추정부에서 추가정보로 얻어진다. 최소 SAD 값이 작을수록 not-coded 블록으로 선택될 가능성이 커진다고 가정한다. 유사하게 intra 블록의 경우에는 intra 블록과 그 블록의 mean과의 SAD 값으로 해당 블록이 not-coded 인지 아닌지를 예측한다. 일반적으로 각 매크로블록이 intra 인지 inter 인지를 결정는 모드 선택부에서는 intra 블록과 그 블록의 mean 사이의 SAD 값을 추가정보로 구한다. DCT 근사화의 경우는 최소 SAD 에 의해서 유효 DCT 커널(kernel) 크기를 조절한다. 도 7은 루미넌스 인터 블록에 대한 최소 SAD 값과 not-coded 블록과의 관계를 도시한 것이다. 도 7에서 알 수 있듯이 간단한 임계값만으로도 DCT/Q 에 해당하는 연산시간을 감소시킬 수 있음을 알 수 있다.
양자화된 DCT 계수들은 대부분 0의 값을 가진다는 통계적 특성을 사용하여 IDCT/IQ 의 연산량을 감소시킨다. 1차원 및 2차원 IDCT 접근 방식을 동시에 고려한다. 1차원 IDCT 접근에서는 버터플라이(butterfly) 구조를 가지는 고속 IDCT 알고리즘에서 국부적인 연산으로의 입력이 모두 0일 경우에 해당 연산을 건너뛰는 방식을 사용한다. 따라서 IDCT 연산의 실제적인 연산량은 DCT 계수가 0 일 확률과 zero test를 위한 추가적인 연산량, 및 국부적인 butterfly 연산의 연산량에 의존한다. 1차원 IDCT 접근과 대조적으로 2차원 IDCT 접근은 변환된 계수들 중 거의 하나 혹은 둘의 0 이 아닌 계수만이 존재할 때 사용된다. 이 경우 IDCT는 스케일(scale)된 DCT basis 벡터의 합으로 간단히 구해지고 zero 계수에 대한 정보는 VLD 부분에서 손쉽게 얻어낼 수 있다.
도 8은 H.263 복호화기에서 IDCT에서 필요한 명령어의 수를 보여주고 있다. (a)는 zero 테스트가 수행된 경우이고, (b)는 각 행과 열에 대해서 모두 zero 테스트가 수행된 경우이다. 그리고 (c)는 butterfly에서 부분 zero 테스트가 (b)에 더해진 경우이고, (d)는 2차원 zero 테스트가 (c)에 더해진 경우이다. 아무런 zero 테스트를 하지 않고 순전히 IDCT를 수행하는 것에 비해 각 행 및 열방향으로 모든 계수가 0 인지를 검사할 경우 32%의 연산량이 감소된다. 국부적인 버터플라이 연산에서 zero 테스트를 추가하고 2차원 IDCT를 활용할 경우 대략 8%의 추가적인 연산량 감소를 얻을 수 있다.
한편, 본 발명에 의한 이산여현변환 및 양자화의 계산량을 감소시키는 동영상 부호화 방법을 보다 상세히 설명하기로 한다. DCT 및 양자화 부분은 ME를 제외하면 부호화기에서 가장 계산량이 많은 부분이 되며 따라서 이 부분을 줄이기 위해서는 여러 가지 기법이 필요로 하게 된다. 이 부분에서 가장 중요한 정보는 End Of Block (EOB) 로 이것은 DCT한 계수를 zig-zag posintiong한 다음 양자화 했을 때 최후로 얼마까지 0이 아닌 계수가 나타나는 가를 나타내는 것이다.
EOB는 양자화를 하기 전에는 알 수 없으므로 DCT/Q를 위해서는 예측이 필요하며, 양자화 이후로는 정확하게 알 수 있고 이 정보를 사용하여 많은 계산량을 줄일 수 있다. 그것은 H.263 과 같이 저 전송율 환경에서는 (64kbps 이하 ) 일반적으로 QP(Quantization Parameter 값, 이 값은 DCT된 계수들을 나누는데 파라미터로 사용된다.)이 큰 값을 가지게 되고 따라서 많은 고주파 DCT 계수들이 0의 값을 가지게 된다. 그러므로 대부분의 0인 고주파 DCT 계수들은 직접적으로 IQ, IDCT, VLC를 하지 않아도 되므로 계산량을 대폭 줄일 수 있게 된다.
DCT 및 양자화의 스키핑(skipping)에 대해 설명하기로 한다. 만약 DCT한 후 양자화한 결과가 인터블록의 경우 모두 0 이거나, 인트라블록의 경우 DC값을 제외한 모든 계수가 0일 경우 그 블록은 not coded로 처리하게 되고 이 경우에는 헤더 정보만 보내고 실제 DCT 계수를 보내지 않아도 된다. 4개의 luminance 블록과 2개의 chrominance 블록 중 어느 블록이 not coded 되었는지의 여부를 나타내는 정보를 나타내는 변수를 가지고 있으며 (CBP), 이 경우에는 IQ, IDCT, VLC 중 DCT 계수를 처리하는 부분을 생략할 수 있어 계산량이 대폭 줄어들게 된다. 그러나 실제 not coded 되었는지의 여부는 구체적으로 DCT/Quantization 한 이후에 알 수 있기 때문에 필요치 않은 DCT/Q를 한 셈이 된다. 따라서 not coded가 되는 것을 예측을 통해서 DCT/Q를 계산하지 않을 수가 있다. 부호화기(Encoder)에서 EOB에 직접적인 영향을 주는 것은 QP(Quantization Parameter)이다. 만약 양자화 파라미터(Quantization Parameter)가 커서 Coding Noise가 증가하게 되면 MC된 영상은 원영상에 비해 많은 에러를 가지게 되고 따라서 DPCM할 때 고주파 성분을 많이 가지게 한다. 그와 같은 경우에는 DCT 계수 중에서 고주파 성분들이 많이 나타나게 될 것이다. 한편 독립적인 hardware 모듈로 동작하는 ME를 계산하는데 있어서 반드시 그 해당 luminance 블록의 SAD( Sum of Absolute Difference) 값을 계산하게 된다. 이 SAD 값을 소프트웨어에서 이용할 수 있다면, SAD 정보를 이용해서 그 블록의 error 분포 정도를 추정하는 것이 가능하다. Chrominance 의 경우에는 소프트웨어적으로 SAD 값을 구해야 한다. SAD가 만약 크다면 그 블록은 많은 에너지를 가지고 있는 것이므로 ( 보통은 에러들이 에지 형태로 존재 ) 크기가 큰 에지들이 많은 것으로 생각할 수 있다. 따라서 이 경우에는 DCT후 많은 계수들이 큰 값을 가지게 될 것이다. 반대로 SAD 값이 작다면 DCT의 대부분의 계수들이 작은 값을 가질 것으로 예측할 수 있다 이러한 예측방법은 DC를 이용한 예측과 유사할 수 있다. 그러나 DC보다는 SAD 값이 더 많은 정보를 가지고 있다. SAD와 QP와의 관계를 실험적으로 결정해서 적용할 수 있다. 표 1 은 그 일예를 도시한 것이다. 표 1은 30 Hz을 갖는 Foreman QCIF 300 프레임에서의 DCT/Q 스키핑을 위한 hard decision 규칙을 사용한 것이다. 여기서, Harddecision 규칙(for both inter-luma and inter-chroma)은 SAD < 20*QP 일 경우, DCT/Q를 스키핑(skipping) 한다.
인터 매크로블록(luminance 블록)
QP 블록의 총 개수 [%] Not-coded [%] Hard-decision [%] Hithard-decision [%]
5 117808 66.1 40324 34.2 9047 22.4 9022 99.72
10 117788 66.1 73912 62.8 27073 36.6 27068 99.98
15 117740 66.1 90396 76.8 42331 46.8 42306 99.94
20 117668 66.0 99961 85.0 54717 54.7 54703 99.97
25 117624 66.0 105288 89.5 65931 62.6 65907 99.96
30 117592 66.0 108794 92.5 75524 69.4 75500 99.97
표 1에서 나타내고 있는 것과 같이 luminance 블록이 2/3을 차지하고 chrominance 블록이 1/3을 차지한다. Luminance 블록은 QP가 클수록 not coded 블록이 많이 발생한다. 모든 경우에 대해서 sad < QP*20 의 판정이 99% 이상이 올바른 판단임을 나타낸다. Chrominance 블록도 동일한 decision 규칙을 적용하여 99% 이상의 적중율을 보임을 나타낸다. chrominance 성분은 대부분 not coded 되므로 chrominance 의 SAD를 구하는 것이 그리 큰 부담(overhead )가 아님을 알 수 있다.
실험적으로 볼 때, not coded block 은 QP값이 클수록 많고, SAD 값도 높은 값을 가지게 된다. Chrominance block은 대부분이 not coded로 처리되고 QP 가 15 이상에서 SAD < QP*20 의 기준으로도 대부분의 block들이 not coded로 예측된다. 따라서 Chrominance 성분은 실제로는 대부분이 DCT와 양자화를 하지 않아도 된다. Intra 블록에 대한 특성도 이용가능하지만 실제 coder에서 intra 블록의 수는 inter 블록의 수에 비해 미미하기 때문에 큰 이득은 없다.
그리고 DCT 복잡도 감소에 대해 살펴보면, DCT에서 skipping 이 되지 않은 블록들 중에서도 대부부의 계수들은 QP 값 보다 작아서 양자화 이후 0으로 될 것이다. EOB에 영향을 미치는 것은 SAD, QP 뿐만 아니라 움직임 벡터와 causal 한 인접 매크로블록이나 이전 프레임의 매크로블록 등과도 관계를 가진다. 그러나 여기서는 ME에서 얻을 수 있는 SAD와 부호화 과정에서 반드시 필요로 하는 QP를 이용하여 EOB를 예측하였다. 이러한 방식은 단순히 QP값만 보고 결정하는 방식에 비해 더 정확하고 세밀하게 EOB를 예측할 수가 있다. 역시 chrominance 블록의 경우에는 SAD를 소프트웨어적으로 구한다. 도 9에 도시된 바와 같이 EOB에 따라서 DCT된 계수들을 8가지의 클래스로 나누어 볼 수가 있다. 클래스를 나누는 방식에 따라 지그재그(zig-zag) positioning 의 순서로 나누는 방식이 있을 수 있으며, 블록의 크기를 기준으로 하여 나눌 수도 있다. TMN coder에서는 고속 DCT의 하나인 Chen DCT를 기반으로 하여 구현하게 된다. 만약 EOB의 예상되는 값에 따라서 작은 영역의 DCT 계수만이 필요하게 되면 저 주파수 영역의 몇 개의 계수를 가지는 간략화 된 DCT를 수행하여 계산량의 이득을 볼 수가 있다. 도 10은 SAD에 따른 전체적인 DCT 수행 순서도를 도시한 것이다.
실제로 위와 같은 개념을 구현할 때 주요한 것은 역시 EOB를 미리 예측하여 각 블록이 어느 클래스에 해당하는지를 예측하는 부분이 된다. 이러한 예측은 역시 SAD와 QP의 정보를 가지고 비교적 정확하게 예측할 수 있다. 만약 예측이 잘못 되었다면, 화질이 열화될 것이나 급격한 열화는 일어나지 않고 고주파의 제거로 인한 경계 영역에서의 평탄화가 일어날 것이다. 표 2 및 표 3은 실제 영상에서 SAD 값과 QP 값을 기반으로 한 DCT의 클래스의 예측 기준을 나타낸다. 표 2 및 표 3은 luminance 및 chrominance 에 대해 각 클래스를 예측하는 것에 관한 것이다. 이러한 예측은 각 영상에서 실제로 EOB가 SAD, QP와의 관계를 실험적으로 구한 예측기준이며 각 QP 값에서 비교적 잘 적용된다.
interluma 블록에 대한 softdecision 규칙
클래스 0 스키핑(skipping) SAD < 20*QP일 경우
클래스 3 3x3 DCT SAD < 21*QP일 경우
클래스 4 4x4 DCT SAD < 22*QP일 경우
클래스 5 5x5 DCT SAD < 23*QP일 경우
클래스 6 6x6 DCT SAD < 26*QP일 경우
클래스 7 7x7 DCT SAD < 32*QP일 경우
클래스 8 8x8 DCT SAD ≥ 32*QP일 경우
chrominance 블록에 대한 softdecision 규칙
클래스 0 스키핑(skipping) SAD < 20*QP일 경우
클래스 3 3x3 DCT SAD < 22*QP일 경우
클래스 4 4x4 DCT SAD < 24*QP일 경우
클래스 5 5x5 DCT SAD < 26*QP일 경우
클래스 6 6x6 DCT SAD < 30*QP일 경우
클래스 7 7x7 DCT SAD < 56*QP일 경우
클래스 8 8x8 DCT SAD ≥ 56*QP일 경우
그리고 양자화부도 빈번히 호출되는 부분으로써 계산량을 많이 차지한다. 그러나 이 부분도 몇 가지 성능을 향상 시킬 수 있다. 우선은 모든 계수들이 8 x 8 DCT를 수행하는 것이 아니기 때문에 최대로 고려해야 할 EOB가 존재하고 여기서부터 양자화를 시작하면 된다. 실제 부호화기에서 DCT된 결과의 계수들을 조사해 보면 대부분이 2*QP 보다 작은 값을 가지는 것을 알 수 있다. 따라서 계수들을 먼저 2*QP값과 비교하여 만약 그보다 작을 경우에는 나눗셈을 수행하지 않고 0으로 대입함으로써 계산량을 줄일 수 있다.
본 발명에 의하면, 움직임 추정과정에서 제공되는 SAD 값을 이용하여 적응적인 이산여현변환 및 양자화를 수행하므로써 SAD를 구하기 위한 추가적인 계산량의 부담없이 효과적으로 이산여현 변환 및 양자화의 계산량을 감소시킨다. 특히 전체 배경의 움직임이 없는 경우에는 상당수의 이산여현변환 계수가 단지 DC 값만으로 대치될 수 있으므로 영상의 특성에 따라 획기적인 계산량의 감소를 꾀할 수 있다.

Claims (6)

  1. 동영상 부호화 방법에 있어서,
    이전영상과 현재 영상의 차의 절대값 합(SAD)를 이용하여 인터프레임의 움직임을 추정하는 단계;
    상기 움직임추정에서 구해진 SAD 값을 이용하여 블록특성을 추출하는 단계; 및
    상기 블록 특성에 따라 이산여현변환(DCT) 및 양자화를 수행하는 단계를 포함함을 특징으로 하는 동영상 부호화 방법.
  2. 제1항에 있어서, 상기 SAD를 이용한 블록특성은
    이산여현변환 및 양자화를 거친 정상적인 동영상 프레임 시퀀스에 대한 해당 SAD 분포를 통계적으로 구한 값임을 특징으로 하는 동영상 부호화 방법.
  3. 제1항 또는 제2항에 있어서, 상기 SAD를 이용한 블록특성이 SAD가 소정의 임계값보다 작을 때는 이산여현변환 및 양자화를 수행하지 않음을 특징으로 하는 동영상 부호화 방법.
  4. 제3항에 있어서, 상기 임계값은
    양자화파라미터(QP)*20 임을 특징으로 하는 동영상 부호화 방법.
  5. 동영상 부호화 방법에 있어서,
    이전영상과 현재 영상의 차의 절대값 합(SAD)를 이용하여 인터프레임의 움직임을 추정하는 단계;
    상기 움직임추정에서 구해진 SAD 값 및 양자화파라미터(QP)를 이용하여 블록의 끝(EOB)을 예측하는 단계; 및
    상기 예측된 EOB 까지만 이산여현변환(DCT) 및 양자화를 수행하는 단계를 포함함을 특징으로 하는 동영상 부호화 방법.
  6. 제5항에 있어서, 이산여현변환 및 양자화 수행단계는
    상기 EOB에 따라서 이산여현변환된 계수들을 소정의 클래스로 나누어 이산여현변환 및 양자화를 수행함을 특징으로 하는 동영상 부호화 방법.
KR1019980049473A 1998-11-18 1998-11-18 동영상 부호화 방법 KR20000032856A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980049473A KR20000032856A (ko) 1998-11-18 1998-11-18 동영상 부호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980049473A KR20000032856A (ko) 1998-11-18 1998-11-18 동영상 부호화 방법

Publications (1)

Publication Number Publication Date
KR20000032856A true KR20000032856A (ko) 2000-06-15

Family

ID=19558793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980049473A KR20000032856A (ko) 1998-11-18 1998-11-18 동영상 부호화 방법

Country Status (1)

Country Link
KR (1) KR20000032856A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100345684B1 (ko) * 2000-06-24 2002-07-27 주식회사 큐리텔 움직임 추정장치 및 그 방법
KR20040007818A (ko) * 2002-07-11 2004-01-28 삼성전자주식회사 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100345684B1 (ko) * 2000-06-24 2002-07-27 주식회사 큐리텔 움직임 추정장치 및 그 방법
KR20040007818A (ko) * 2002-07-11 2004-01-28 삼성전자주식회사 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US7764738B2 (en) Adaptive motion estimation and mode decision apparatus and method for H.264 video codec
US9451255B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
KR101384437B1 (ko) 움직임 추정을 위해 반복 탐색 결과를 세분화하는 시스템 및 방법, 움직임 추정 시스템 및 기록 매체
US8023562B2 (en) Real-time video coding/decoding
US7120197B2 (en) Motion compensation loop with filtering
US7876829B2 (en) Motion compensation image coding device and coding method
JP5264747B2 (ja) マルチパスエンコーダにおける効率的な1パスのエンコーディングの方法および装置
WO1999052297A1 (en) Method and apparatus for encoding video information
WO2008004837A1 (en) Apparatus and method for estimating compression modes for h.264 codings
KR20050119422A (ko) 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체
KR20040058929A (ko) Dtc 기반의 개선된 동영상 부호화 방법 및 그 장치
JP2011528534A (ja) 動き推定反復検索のための簡単な次検索位置選択
JP2006511113A (ja) 選択されたマクロブロックにおける動き推定のスキップを伴うビデオエンコーディング
JP5613319B2 (ja) 映像符号化装置、映像符号化方法および映像符号化プログラム
Ramezanpour Fini et al. Two stage fast mode decision algorithm for intra prediction in HEVC
KR20000032856A (ko) 동영상 부호화 방법
JP2009027762A (ja) 動き補償画像符号化装置及び符号化方法
KR100790757B1 (ko) H.264 동영상 부호화기의 적응적 고속 움직임 추정 방법
JP2007129662A (ja) 画像符号化装置
KR0128875B1 (ko) 큰 움직임을 갖는 영상의 움직임 벡터 추정 방법
JP5276957B2 (ja) 動画像符号化方法及び装置
KR20050052756A (ko) 움직임 추정 방법
Sawarkar et al. Video Compression Based On Moving Regions
KR20020095758A (ko) 적응적 움직임 추정 방법

Legal Events

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