KR100627329B1 - H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법 - Google Patents

H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법 Download PDF

Info

Publication number
KR100627329B1
KR100627329B1 KR1020040065439A KR20040065439A KR100627329B1 KR 100627329 B1 KR100627329 B1 KR 100627329B1 KR 1020040065439 A KR1020040065439 A KR 1020040065439A KR 20040065439 A KR20040065439 A KR 20040065439A KR 100627329 B1 KR100627329 B1 KR 100627329B1
Authority
KR
South Korea
Prior art keywords
mode
azcb
block
macroblock
blocks
Prior art date
Application number
KR1020040065439A
Other languages
English (en)
Other versions
KR20060016960A (ko
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 KR1020040065439A priority Critical patent/KR100627329B1/ko
Priority to US10/976,781 priority patent/US7764738B2/en
Publication of KR20060016960A publication Critical patent/KR20060016960A/ko
Application granted granted Critical
Publication of KR100627329B1 publication Critical patent/KR100627329B1/ko

Links

Images

Classifications

    • 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/103Selection of coding mode or of prediction mode
    • 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
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • 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
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Abstract

본 발명은 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵하는 배경 영상 검출부와, 상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB(All Zero Coefficients Block)를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인터 모드 검사부와, 상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인트라 모드 검사부와, 상기 배경 영상 검출부와 상기 인터 모드 검사부와 상기 인트라 모드 검사부에 의해서 매크로블록에서 작은 크기의 블록에 대한 블록 모드 검사를 스킵하는 것으로 판단되면 상기 매크로블록의 작은 크기의 블록들에 대한 블록 모드 검사를 스킵하는 모드 검사 스킵부를 포함하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 관한 것이다.
본 발명에 따르면, 종래의 기술에 비해서 H.264 부호화기의 계산량을 대폭 줄임으로써 실시간 부호화를 위한 가능성을 높였으며, 또한 화질의 열화 및 압축율의 감소가 없다. 또한 소프트웨어적으로 종래의 구조를 변경할 필요 없이 몇 개의 루틴과 플래그를 통하여 쉽게 구현할 수 있는 장점이 있다.
H.264, AZCB, RDO, IPM, RDcost, 모드 결정, 실시간 부호화

Description

H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치 및 그 방법{APPARATUS AND METHOD FOR ADAPTIVE MOTION ESTIMATION AND MODE DECISION IN H.264 VIDEO CODEC}
도 1은 종래의 H.264 비디오 표준에서 사용되는 부호화기의 예시적인 블록도.
도 2는 종래의 H.264 부화화기에 있어서 매크로블록 모드 결정 방법의 일 예를 나타내는 도면.
도 3은 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치를 포함하는 부호화기의 블록도.
도 4는 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치의 블록도.
도 5는 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법의 흐름도.
도 6은 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에 있어서 인트라 블록 모드 결정의 흐름도.
<도면의 주요부분에 대한 부호의 설명>
105: 참조 영상 110: 움직임 예측 모듈
115: 움직임 보상 모듈 120: 인트라 모드 예측 모듈
125: 인트라 프레딕션 모듈 130: 변환 모듈
135: 양자화 모듈 140: 역양자화 모듈
145: 역변환 모듈 150: 엔트로피 부호화 모듈
155: 디블록킹 필터 160: 프레임 메모리
210: 적응형 움직임 예측 및 모드 결정 장치
220: 배경 영상 검출부 230: 인터 모드 검사부
240: 인트라 모드 검사부 250: 모드 검사 스킵부
본 발명은 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치 및 그 방법에 관한 것으로, 더욱 구체적으로는 H.264 비디오 부호화기에 있어서 가장 계산량이 많은 움직임 예측 모듈과 매크로블록 모드 결정 모듈을 동시에 결합(joint) 수행하여 움직임 예측과 매크로블록 모드 결정에 필요한 계산량을 최소화하고 또한 화질 열화를 줄이며 동시에 인트라 예측 및 모드 결정을 주변 블록 정보를 이용하여 수행함으로써 계산량을 최소화하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치 및 그 방법에 관한 것이다.
H.264는 이전 방식에 비해 현저히 큰 압축률을 제공하는 새로운 비디오 압축 표준으로서, MPEG-4 AVC (Advanced Video Coding) 라고도 불린다. H.264 표준은 기 존의 MPEG-4 ASP (Advanced Simple Profile)보다 두 배정도 더 많은 압축률과 보다 개선된 인식 품질을 제공하며, 1 Mbps 이하의 속도에서 DVD 수준의 고품질 비디오 데이터를 제공할 수 있으므로, 무선이나 위성 및 ADSL 등을 통한 고속 인터넷 접속의 경우 30 fps (frame per second)의 완전한 동영상 비디오 데이터를 제공할 수 있을 것으로 예상되고 있다.
이러한 H.264 표준은 기존의 비디오 코딩 표준들과 유사하게 블록 기반의 복합 MCP(Hybrid Motion Compensated Prediction)/변환(Transform) 모델이 채택되었으나, 높은 압축율로 고화질의 영상을 제공하기 위해서 기존 표준인 MPEG-2, H.263+, MPEG-4 비주얼(Visual) 표준 등에서 이용되는 알고리즘과는 다른 알고리즘이 적용되었다.
H.264 표준에 사용되는 기술들을 살펴보면, 우선 16x16 화소를 가지는 블록을 하나의 매크로블록으로 하고, 이를 다양한 크기의 블록으로 나눌 수 있어서 가변 블록-크기 움직임 보상(variable block-size motion compensation) 기술이 있다. 또한, 1/4 화소 단위의 움직임 보상, 그리고 다중 참조 프레임(multiple reference frame)을 통하여 좀 더 정확한 움직임 예측 및 보상을 수행한다. 또한 종래의 비디오 압축 표준에서는 없었던 화소 영역에서의 인트라 예측(intra prediction) 기능이 있어서, 같은 프레임에서 인접한 블록으로부터 유사도를 예측하여 압축율을 높일 수 있다. 종래의 비디오 압축 표준이 8x8 화소의 블록 단위로 레지듀얼(residual) 부호화를 수행한 것에 비해 H.264 표준은 4x4 DCT(이산 코사인 변환)를 변형한 4x4 인티저 변환(Integer transform)을 수행함으로써 계산량을 줄 였을 뿐만 아니라 이전의 표준에서 존재하던 IDCT(역이산 코사인 변환) 오정합(mismatch) 문제를 해결하였다. 또한 엔트로피 부호화(Entropy coding)에 있어서도 CAVLC(Context-based Adaptive VLC) 및 CABAC(Context-based Binary Arithmetic Coding) 알고리즘들을 채택하여 압축율을 높였다. 그리고, 인루프 적응형 디블록킹 필터(in-loop adaptive deblocking filter)를 채택함으로써 복원 영상의 화질을 높여서 보다 좋은 화질의 영상으로 부호화할 수 있도록 하였다.
도 1은 종래의 H.264 비디오 표준에서 사용되는 부호화기의 예시적인 블록도이다. 도시되듯이, 종래의 H.264 부호화기는 움직임 예측 모듈(110, ME, motion estimation), 움직임 보상 모듈(115, MC, motion compensation), 인트라 모드 예측모듈(120, IME, intra mode estimation), 인트라 예측(125, IP, intra prediction), 역양자화 모듈(140, Q-1, dequantization), 역변환 모듈(145, T-1, inverse transform), 엔트로피 부호화 모듈(150, Entropy Coding), 디블록킹 필터(155, Deblocking Filter) 및 프레임 메모리(160) 등으로 구성된다.
ME 모듈(110)은 여러 장의 참조 영상(105)으로부터 움직임 벡터를 찾는 기능과 비트율과 에러가 가장 적은 최적의 매크로블록 타입을 찾는 매크로블록 모드 결정 기능을 수행한다. MC 모듈(115)은 ME 모듈(110)에서 찾은 움직임 벡터와 매크로블록 모드 타입에 따라서 참조 영상으로부터 보상 영상을 획득하는 기능을 수행한다. IME 모듈(120)은 매크로블록을 인트라(intra)로 코딩할 시에 인접한 주위의 블록들로부터 예측을 수행하여 최적의 인트라 예측 모드[ I16x16(인트라 16x16 블록) 인 경우에는 4개 예측 모드가 존재하고 I4x4 (인트라 4x4 블록)인 경우에는 9개 예측 모드가 존재한다]를 선택하는 기능을 수행하며, IP 모듈(125)에서는 IME 모듈(120)에서 선택된 인트라 예측 모드를 이용하여 이전에 코딩된 인접 블록으로부터 인트라 예측이 된 보상 영상을 획득하는 기능을 수행한다.
T 모듈(130)은 4x4 DCT를 변형한 4x4 인티저 변환(Integer transform)을 수행하고, Q 모듈(135)은 T 모듈(130)에서 변환된 계수들을 양자화하는 기능을 수행한다. H.264에서 사용되는 4x4 인티저 변환은 직교(orthogonal)하지 않기 때문에 반드시 Q 모듈(135)을 통해서 이를 보상하는 것이 필요하다. 그래서, T 모듈(130)과 Q 모듈(135)은 항상 같이 연동하여 사용되어야 한다. T-1 모듈(145)과 Q-1 모듈(140)은 T 모듈(130)과 Q 모듈(135)에서 수행된 것을 반대로 수행한다. T-1 모듈(145)의 수행 결과가 디블록킹 필터(155)를 통과하지 않은 복원 영상이다. 엔트로피 부호화(150)는 양자화된 DCT 계수들의 발생 확률에 따른 비트 할당을 사용하여 엔트로피 부호화를 수행한다. 디블록킹 필터 모듈(155)에서는 T-1 모듈(145)을 통해서 획득된 복원 영상을 좀 더 좋은 화질의 영상으로 개선하는 기능을 수행하고, 이 개선된 영상은 프레임 메모리 모듈(160)에 저장되어 이후에 입력되는 영상들의 참조 영상이 된다.
H.264 표준에서는 종래의 MPEG-1 또는 MPEG-2 또는 MPEG-4 표준과 달리 여러 장의 참조 영상들을 갖고, 바로 이전 프레임뿐만 아니라 그 전에 코딩되었던 다수의 영상들도 참조 영상으로 사용할 수 있다. 이를 다중 참조 프레임이라고 한다.
H.264 표준에는 종래의 MPEG 표준들과 비슷하게 I_슬라이스(Slice), P_슬라이스, B_슬라이스, SI_슬라이스 및 SP_슬라이스 등이 존재하는데, H.264 표준은 슬라이스 단위로 부호화를 수행한다. 설명의 편의상 슬라이스를 하나의 프레임으로 인식할 수 있다. 즉 I_슬라이스는 종래의 MPEG 표준에서의 I_픽쳐(picture), P_슬라이스는 종래의 P_픽쳐, B_슬라이스는 종래의 B_픽쳐와 거의 유사하다. SI_슬라이스와 SP_슬라이스는 H.264에서 새롭게 고안된 슬라이스 형식으로 특수 목적으로만 이용되며 SI_슬라이스와 SP_슬라이스에 대한 자세한 내용은 관련 문서[Draft ITU-T Rec. and FDIS of Joint Video Spec. (H.264 | ISO/IEC 14496-10 AVC), JVT of ISO/IEC MPEG and ITU-T VCEG, Doc. JVT-G050r1, Geneva, 23-27 May, 2003.]에 상세히 기재되어 있다.
H.264 비디오 부호화기의 동작은 다음과 같다.
우선 I_슬라이스인 경우, ME(110)/MC(115)는 수행하지 않고, IME(120)와 IP(125)를 수행하여 최적의 인트라 예측을 수행하고, 그 결과인 보상 영상과 원 영상을 차분한 차분 영상에 대해 T(130)와 Q(135)를 수행하여 양자화된 DCT 계수인 결과를 획득한다. 이 결과를 엔트로피 부호화(150)하여 비트열을 생성한다.
그리고 다음 입력되는 슬라이스들을 위해서 Q-1(140)과 T-1(145)을 수행하여 차분 영상을 복원하고, 이를 보상 영상과 합하여 복원 영상을 만든다. 복원된 영상은 디블록킹 필터(155)를 통하여 프레임 메모리(160)에 저장된다. 여기서, 인트라 예측을 위한 영상은 디블록킹 필터(155)를 거치기 전의 영상을 사용한다.
P_슬라이스인 경우, ME(110)/MC(115)를 수행하여 최적의 움직임 벡터 및 매크로블록 모드를 결정한다. 그리고 IME(120)와 IP(125)를 수행하여 인트라 예측을 수행한다. 그 후 ME(110)/MC(115)의 결과와 IME(120)/IP(125)의 결과를 비교하여 더 좋은 결과를 선택하여 보상 영상을 획득한다. 이후의 동작은 I_슬라이스의 경우에서의 동작과 동일하다.
B_슬라이스인 경우, P_슬라이스의 경우와 동일한 동작을 수행하지만, ME(110)/MC(115)의 수행에 있어서, 과거 영상뿐만 아니라 미래 영상을 참조 영상으로 사용한다는 점이 다르다.
H.264 표준에서는 다양한 크기의 블록 모드가 존재한다. 예들 들어, P_슬라이스의 경우는 SKIP, I16x16, I4x4, P16x16, P16x8, P8x16, P8x8, P8x4, P4x8, P4x4 등의 블록 모드가 존재한다. 이러한 블록 모드들 중에서 최적의 블록 모드를 선택하는 방법이 RDO(Rate-distortion optimization)이고, 이를 이용한 움직임 예측 및 모드 결정 알고리즘은 30~40% 정도의 부호화 속도를 희생하여, 5~10% 정도의 비트율을 절약할 수 있다. 이러한 알고리즘은 슈왈츠(H. Schwarz)와 와이간드(T. Wiegand)에 의해서 발표된 "An improved H.26L coder using Lagrangian coder control"이라는 제목의 논문에 상세히 개시되어 있다[H. Schwarz and T. Wiegand, "An improved H.26L coder using Lagrangian coder control," ITU-T/SG 16/VCEG-D146a, June 2001, Porto Seguro, Brasil. 참조].
이러한 블록 모드 선택을 수행하는 것이 ME 모듈(110)이고, 기존 알고리즘들을 살펴보면 다음과 같다.
RDO를 이용한 ME 모듈(110)의 알고리즘은 H.264 참조 소프트웨어인 JM72( http:// bs.hhi.de/~suehring/tml/download 참조)에 구현되어 있는 FME(Full ME) 또는 FMD(Full Mode Decision) 알고리즘이다. 이 알고리즘은 하나의 매크로블록을 부호화하기 위해서, 먼저 수학식 1을 최적화 함수로 사용하여 모든 가능한 블록 크기에 대해서 움직임 예측을 수행하여 각각의 블록 크기에 대한 최적의 움직임 벡터(MV)와 RDcost (Rate-distortion cost)인 J motion 값을 구한다.
Figure 112004037127198-pat00001
위 식에서, m=(mx, my)T이고, REF는 참조 픽쳐이며, p=(p x, py)T로서 MV 부호화 도중의 예측을 위해서 사용되는 MV이다.
Figure 112004037127198-pat00002
은 라그랑지안 멀티플라이어이며,
Figure 112004037127198-pat00003
는 MV를 부호화하는 데 사용되는 비트들이며,
Figure 112004037127198-pat00004
는 REF를 부호화하는데 사용되는 비트들이다.
SAD는 다음과 같이 정의된다.
Figure 112004037127198-pat00005
그 다음에 가능한 모든 모드에 대해서 수학식 2를 이용하여 모드에 대한 RDcost 값인 J mode 를 구한다.
Figure 112004037127198-pat00006
위 식에서 SSD는 원 신호와 재구성된 신호 사이의 제곱 편차의 합이고,
Figure 112004037127198-pat00007
는 라그랑지안 멀티플라이어이며, MODE는 가능한 매크로블록 모드의 세트 중의 하나로서 P 슬라이스에서는 SKIP, P16x16, P16x8, P8x16, P8x8, I4x4, I16x16 중의 하나이고,
Figure 112004037127198-pat00008
이며, R(s,c,MODE)는 모든 DCT 계수와 움직임 정보와 매크로블록 헤더를 포함하며 MODE를 선택하는 것에 관련된 비트들의 개수이다.
여기에서 SSD(s, c, MODE) 가 디스토션(distortion)이 되고, R(s,c,MODE) 이 레이트(rate)가 된다. 즉, 수학식 2는 레이트와 디스토션을 최적으로 하는 모드를 결정하는 식이 되고, 최종적으로 J mode 가 최소인 모드를 매크로블록의 모드로 선택한다.
원래 매크로블록 모드 결정은 움직임 예측과 결합하여 같이 최적화해야 할 문제이지만, 너무 복잡하고 계산량이 많은 관계로 위의 알고리즘은 움직임 예측과 매크로블록 모드 결정을 별도로 수행하는 알고리즘이다.
위에 상기한 기술과 별도로 RDO에 의한 느린 속도를 개선하기 위한 많은 빠른 매크로블록 모드 결정 기술들이 제안되었다.
인(P. Yin) 등에 의해서 발표된 논문[P. Yin, H. Y. C. Tourapis, A. M. Tourapis, and J. Boyce, "Fast mode decision and motion estimation for JVT/H.264," Proc. Int. Conf. Image Processing, September, 2003. 참조]과, 제이 리(J. Lee) 등에 의해서 발표된 논문[J. Lee and B. Jeon, "Fast mode decision for H.264 with variable motion block sizes," Proc. Int. Sym. Computer and Information Sciences, LNCS 2869, pp. 723-730, November, 2003. 참조]에서는 각각의 매크로블록 모드의 RDcost의 값을 미리 정해놓은 임계치(threshold)와의 비교를 통하여 특정 모드의 계산을 스킵하는 방법을 제안하였다.
또한 림(K. P. Lim) 등에 의해서 발표된 논문[K.P. Lim, S. Wu, D. J. Wu, S. Rahardja, X. Lin, F. Pan, and Z.C. Li, "Fast INTER mode selection," Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, Doc. JVT-I020, September, 2003. 참조]에서는 소벨 오퍼레이터(Sobel operator)를 이용하여 에지 방향성 히스토그램(edge directional histogram)을 구한 후에 각각 블록 모드의 에지 정보를 이용한 빠른 매크로블록 모드 결정 방법을 제안하였다.
또한 전(B. Jeon) 등에 의해서 발표된 논문[B. Jeon and J. Lee, "Fast mode decision for H.264," JVT of ISO/IEC MPEG and ITU-T VCEG, Doc. JVT-J033, December, 2003. 참조]에서 제안된 기술은 영상의 평활한 부분 또는 움직임 벡터로부터 획득된 보상 영상의 차분치가 아주 적은 부분인 경우에 대응하기 위한 SKIP 모드를 미리 검사하고, 인트라 예측을 선택적으로 하는 기술을 제안한다.
상기 림 등의 논문과 상기 전(B. Jeon) 등의 논문에 개시된 기술은 빠른 속도에 비해서 상대적으로 낮은 PSNR 및 압축율 손실을 인정받아서 H.264 표준의 테스트 모델에서 저복합 모드 결정(low-complexity mode decision)모델로 채택되었다.
도 2는 종래의 H.264 부화화기에 있어서 매크로블록 모드 결정 방법의 일 예로서, 상기 전(B. Jeon)의 논문에 개시된 기술의 동작의 흐름도이다.
우선 16x16 블록 크기에 대해서 참조 영상들로부터 움직임 예측을 수행하여 RDcost 값을 구하고(S110), RDcost 값이 SKIP 모드의 조건을 만족하는지를 검사한다(S115). SKIP 모드의 조건을 만족하면 더 이상 매크로블록 모드 결정 과정을 수행하지 않고, 최적의 매크로블록 모드를 SKIP 모드로 결정한다(S120).
만약 SKIP 모드의 조건을 만족하지 않으면 각 블록 크기에 대한 인터(INTER) 모드를 부호화하여 RDcost 값을 구하고(S125), 이로부터 최적의 인터 모드를 결정한다(S130).
그 다음에, 수학식 3과 수학식 4를 이용하여 AR값과 ABE(Average Boundary Error)값을 구한다(S135).
Figure 112004037127198-pat00009
위 식에서,
Figure 112004037127198-pat00010
이고, 384는
Figure 112004037127198-pat00011
를 통해서 계산된 수이다.
Figure 112004037127198-pat00012
여기서 64는
Figure 112004037127198-pat00013
를 통해서 계산된 수 이다.
이렇게 계산된 AR과 ABE을 비교하여(S140), AR이 ABE보다 작으면 최적의 매크로블록 모드를 최적의 인터 모드로 결정하고(S145), 크면 인트라 예측을 수행하여(S150) 매크로블록의 최적 모드를 결정한다(S155).
상기 인(P. Yin) 등의 논문, 상기 리(J. Lee) 등의 논문, 상기 림(K. P. Lim)등의 논문, 상기 전(B. Jeon) 등의 논문 등에 개시된 바와 같이 ME 모듈의 속도를 높이는 알고리즘들이 다수 제안되었지만 이러한 종래의 알고리즘들은 RDO를 바탕으로 하기 때문에서 계산량이 높아서 FMD 알고리듬과 비교하여 속도 향상이 그리 크지 않고, 화질 열화 및 압축율 저하가 발생한다는 단점이 있다. 따라서 ME 모듈의 속도를 높이면서 동시에 화질의 열화가 발생하지 않는 알고리즘에 대한 필요성이 증가하고 있다.
본 발명의 목적은 종래의 기술에 비해서 H.264 부호화기의 계산량을 대폭 줄임으로써 실시간 부호화를 위한 가능성을 높이고 또한 화질의 열화 및 압축율의 감소가 없으며 또한 소프트웨어적으로 종래의 구조를 변경할 필요없이 몇 개의 루틴과 플래그를 통하여 쉽게 구현할 수 있는 장점을 갖는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치 및 그 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명은 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵하는 배경 영상 검출부와, 상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인터 모드 검사부와, 상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인트라 모드 검사부와, 상기 배경 영상 검출부와 상기 인터 모드 검사부와 상기 인트라 모드 검사부에 의해서 매크로블록에서 작은 크기의 블록에 대한 블록 모드 검사를 스킵하는 것으로 판단되면 상기 매크로블록의 작은 크기의 블록들에 대한 블록 모드 검사를 스킵하는 모드 검사 스킵부를 포함하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치를 제공한다.
본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 배경 영상 검출부는, SKIP 모드의 AZCB 검사를 수행하여 고정된 배경 매크로블록 및 느리고 균일하게 움직이는 매크로블록을 검사하는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 AZCB는, 양자화 또는 계수 임계화(coefficient thresholding) 기법을 통하여 생성되는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 계수 임계화 기법은,
다음 식
Figure 112004037127198-pat00014
Figure 112004037127198-pat00015
-위 식에서 cc(i,j)는 계수 코스트(cost) 함수이고, level(i,j)는 계수의 절대값이며, run_before 는 0이 아닌 계수 이전에 위치하는 연속하는 0인 계수의 개수이고, T C8 T C16 은 각각 8x8, 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미하고, C8과 C16은 8x8 블록과 16x16 블록의 전체 계수 코스트 값을 의미함-.
를 사용하여 AZCB를 생성하는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 인터 모드 검사부는, 상기 매크로블록의 P16x16 모드에 대해서 AZCB 및 움직임 벡터와 레이트- 디스토션 코스트(RDcost, Rate-distortion cost) 검사를 수행하고, 상기 P16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 P8x8 모드에 대해서 AZCB 및 움직임 벡터와 RDcost 검사를 수행하고, 상기 P8x8 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되는 경우에만 P4x4 모드에 대한 움직임 벡터와 RDcost 검사를 수행하는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 인트라 모드 검사부는, 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 모두 인트라 모드이면, 상기 매크로블록의 I16x16 모드에 대해서 상기 매크로블록의 크로마 I8x8 모드 i(i=0, 1, 2, 3)와 결합하여 AZCB 및 IPM(intra prediction mode)와 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 IPM와 RDcost 검사를 수행하는 것이 바람직하다. 그렇지 않고 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 하나라도 인터 모드이면, 상기 매크로블록의 크로마 I8x8 모드로부터 IPM 및 CMode(Chroma prediction mode)를 미리 구하고 I16x16 모드에 대해서 상기 CMode와 결합하여 AZCB 및 IPM과 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 IPM와 RDcost 검사를 수행하는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 CMode는 SATD(Sum of absolute transformed diffrences) 방법을 사용하여 계산되는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치에 있어서, 상기 모드 검사 스킵부는, 레이트 디스토션 면에서 가장 비용이 비싼 것인 I4x4 모드에 대한 블록 모드 검사를 스킵하는 것이 바람직하다.
또한 본 발명은 H.264 비디오 부호화기로서, 상기 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치를 사용하여 움직임 예측 및 모드 결정을 수행하는 것인 H.264 비디오 부호화기를 제공한다.
또한 본 발명은 (a) SKIP 모드에 대한 RDcost 계산 및 TC16 =4에 대한 AZCB(SKIP)를 검사하는 단계-AZCB(X)는 X 모드에 대한 AZCB값을 의미함-와, (b) P16x16 모드에 대한 움직임 벡터와 RDcost를 계산하고 TC16 =5에 대한 AZCB(P16x16)를 검사하는 단계-TC16은 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미함-와, (c) C16 SKIP 이 0인지 검사하는 단계-C16은 16x16 블록의 전체 계수 코스트 값을 의미하고 C16 SKIP 은 SKIP 모드의 C16값을 의미함-와, (d) C16 SKIP 이 0이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와, (e) C16 SKIP 이 0이 아니면 P16x8과 P8x16에 대한 움직임 벡터 및 RDcost를 계산하는 단계와, (f) AZCB(P16x8)가 1 이거나 AZCB(P8x16)가 1인지 검사하는 단계와, (g) AZCB(P16x8)가 1 이거나 AZCB(P8x16)가 1이면 모드 스킵 플래그 bSkipI4x4=TRUE로 설정하는 단계와, (h) AZCB(SKIP)이 1인지 검사하여 AZCB(SKIP)이 1이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와, (i) AZCB(P16x16)이 1인지 검사하여 AZCB(P16x16)이 1이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와, (j) P8x8, P8x4, P4x8 모드에 대한 움직임 벡터 및 RDcost를 계산하고 TC8 =1에 대한 AZCB(P8x8)를 계산하는 단계-TC8은 8x8 블록을 AZCB로 판단하기 위한 임계치를 의미함-와, (k) AZCB(P8x8)가 1인지 검사하는 단계와, (l) AZCB(P8x8)가 1이 아니면 P4x4 모드에 대한 움직임 벡터 및 RDcost를 계산하는 단계와, (m) 검사하지 않은 8x8 블록이 남아 있는지 확인하는 단계와, (n) 인트라 블록 모드를 결정하는 단계와, (o) 최적의 모드를 선택하는 단계를 포함하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법을 제공한다.
본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에 있어서, 다음 식
Figure 112004037127198-pat00016
Figure 112004037127198-pat00017
위 식에서 cc(i,j)는 계수 코스트(cost) 함수이고, level(i,j)는 계수의 절대값이며, run_before 는 0이 아닌 계수 이전에 위치하는 연속하는 0인 계수의 개수이고, T C8 T C16 은 각각 8x8, 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미하고, C8과 C16은 8x8 블록과 16x16 블록의 전체 계수 코스트 값을 의미하는 것인 상기 식들을 사용하여 AZCB를 생성하는 것이 바람직하다.
또한 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에 있어서, 상기 인트라 블록 모드를 결정하는 단계 (n)는, (n-a)매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 인터 모드인지 검사하는 단계와, 매크로블록의 왼쪽(A), 위쪽(B), 오른쪽 위(C) 및 왼쪽 위(D) 블록이 모두 인트라 모드인 경우: (n-b) I16x16 모드 및 크로마 I8x8 모드 i(i = 0, 1, 2, 3)와 결합하여 IPM(intra prediction mode) 및 RDcost를 계산하는 단계와, (n-c) AZCB(I16x16)가 1이거나 bSkipI4x4이 TRUE인지 검사하는 단계와, (n-d) AZCB(I16x16)가 1이 아니고 bSkipI4x4이 TRUE가 아니면 I4x4 모드 및 크로마 I8x8 모드 i(i = 0 )와 결합하여 IPM 및 RDcost를 계산하는 단계와, (n-e) i값을 1만큼 증가시키고 i<4인지 확인하여 i<4이면 상기 (n-b)단계로 이동하는 단계를 포함하고, 매크로블록의 왼쪽(A), 위쪽(B), 오른쪽 위(C) 및 왼쪽 위(D) 블록 중 어느 하나가 인터 모드인 경우: (n-f) 크로마 I8x8 모드에 대한 IPM을 SATD를 사용하여 계산하는 단계와, (n-g) 상기 계산된 크로마 모드를 사용하여 I16x16 모드에 대한 IPM 및 RDcost를 계산하는 단계와, (n-h) AZCB(I16x16)가 1이거나 bSkipI4x4이 TRUE인지 검사하는 단계와, (n-i) AZCB(I16x16)가 1이 아니고 bSkipI4x4이 TRUE가 아니면 I4x4 모드에 대한 IPM 및 RDcost를 계산하는 단계를 포함하는 것이 바람직하다.
또한 본 발명은 H.264 비디오 부호화기로서, 상기 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법을 사용하여 움직임 예측 및 모드 결정을 수 행하는 것인 H.264 비디오 부호화기를 제공한다.
또한 본 발명은 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵하는 기능과, 상기 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 기능과, 상기 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 기능과, 상기 기능들에 의해서 매크로블록에서 작은 크기의 블록에 대한 블록 모드 검사를 스킵하는 것으로 판단되면 상기 매크로블록의 작은 크기의 블록들에 대한 블록 모드 검사를 스킵하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하, 본 발명의 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치 및 그 방법을 도면을 참조로 하여 보다 구체적으로 설명한다.
도 3은 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치를 포함하는 부호화기의 블록도이다. 도시되듯이, 본 발명에 따른 적응형 움직임 예측 및 모드 결정 장치를 포함하는 H.264 부호화기는 적응형 움직임 예측 및 모드 결정 장치(210, JMIE&MD, Joint Motion/INTRA estimation & Mode decision)와, 움직임 보상 모듈(115, MC), 인트라 프레딕션 모듈(125, IP), 변환 모듈(130, T), 양자화 모듈(135, Q), 역양자화 모듈(140, Q-1), 역변환 모듈(145, T-1), 엔트로피 부호화 모듈(150), 디블록킹 필터(155) 및 프레임 메모리(160) 등을 포함한다.
상기 움직임 보상 모듈(115, MC), 인트라 예측 모듈(125, IP), 변환 모듈(130, T), 양자화 모듈(135, Q), 역양자화 모듈(140, Q-1), 역변환 모듈(145, T-1), 엔트로피 부호화 모듈(150), 디블록킹 필터(155) 및 프레임 메모리(160) 등에 대한 설명은 도 1에 개시된 종래의 H.264 비디오 표준에서 사용되는 부호화기의 예시적인 블록도의 경우와 대동소이하므로 설명을 생략한다.
상기 적응형 움직임 예측 및 모드 결정 장치(210)는 움직임 예측과 매크로블록 모드 결정을 동시에 최적화하고 인트라 프레딕션 및 모드 결정을 순차적으로 수행하는 것이다. 상기 적응형 움직임 예측 및 모드 결정 장치(210)의 기능에 대해서는 도 4, 도 5 및 도 6을 참조로 보다 상세히 설명한다.
상기 적응형 움직임 예측 및 모드 결정 장치(210)는 AZCB 특성으로 파악할 수 있는 비디오 프레임간의 높은 상관관계를 이용한다. AZCB 란 4x4, 8x8, 16x16 블록 등의 모든 양자화된 계수가 0 인 블록을 나타낸다. 이러한 AZCB 는 단순한 양자화에 의해서 또는 계수 임계화 기법에 의해서 생성된다. 상기 계수 임계화 기법은 상기 JM72(http:// bs.hhi.de/~suehring/tml/download 참조)에 개시되어 있고, 부호화기의 코딩 효율을 높이기 위한 목적을 갖는다. 즉, H.264 표준에서 4x4 인티저 변환에 의해서 8x8 또는 16x16 블록에서 하나의 양자화된 계수만이 0 이 아닌 값을 가질 확률이 높아지게 된다. 레이트-디스토션 면에서 이러한 계수는 코딩하기에 비용이 너무 크기 때문에, 계수 임계화 기법은 0 이 아닌 계수 몇 개를 0 으로 치환해서 AZCB를 만들어서 블록 전체를 코딩하지 않는다. 즉, 이하의 수학식 5와 수학식 6의 조건에 따라서 블록을 AZCB 로 만들지를 판단하게 된다. 수학식 5와 수학식 6에서 cc(i,j)는 계수 코스트(cost) 함수를 의미하고, level(i,j)는 계수의 절대값을 의미하며, run_before 는 0이 아닌 계수 이전에 위치하는 연속하는 0인 계수의 개수이다. 또한, T C8 T C16 은 각각 8x8, 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미한다. C8C16은 8x8 블록과 16x16 블록의 전체 계수 코스트 값을 의미한다.
Figure 112004037127198-pat00018
Figure 112004037127198-pat00019
본 발명에 따른 적응형 움직임 예측 및 모드 결정 장치(210)에서 기본적으로 매크로블록 모드를 결정하기 위해서 RDcost를 구하는 과정에서 AZCB 특성을 발견하면, 현재 블록과 참조 영상의 예측 블록 사이에 높은 상관도가 있다고 보고, 그 블록 크기 이하의 모드는 검사하지 않고 스킵할 수 있다는 가정에 기반한다. 그러므로, 블록간의 AZCB 특성을 사용하면 상당수의 움직임 예측(ME)과 매크로블록 모드 결정(MD) 검사를 스킵할 수 있기 때문에 계산량을 크게 줄일 수 있다. 다시 한번 강조하자면, 블록의 AZCB 특성을 파악하기 위해서 별도의 계산은 전혀 필요 없이 RDcost를 구하는 과정에서 부산물로 AZCB 특성을 구할 수 있다. 따라서 계산량 감소와 구현 용이성이 극대화된다.
도 4는 본 발명에 따른 적응형 움직임 예측 및 모드 결정 장치의 블록도이다. 도시되듯이 본 발명에 따른 적응형 움직임 예측 및 모드 결정 장치(210)는 배경 영상 검출부(220)와, 인터 모드 검사부(230)와, 인트라 모드 검사부(240)와, 모드 검사 스킵부(250)를 포함한다.
배경 영상 검출부(220)는 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵한다.
즉 자연 영상의 특성상 흔히 존재하는 고정된 큰 배경 블록 및 느리고 균일하게 움직이는 큰 블록을 검사하며, 검사 결과에 의해 해당되는 배경 또는 느리고 균일하게 움직이는 매크로블록들에 대해서는 이를 크기가 작은 블록으로 나누어 해당 블록에 대해서 블록 모드 검사를 수행하는 것을 하지 않는다. 이러한 특성은 SKIP 모드의 AZCB 검사를 수행하여 얻어질 수 있다. 즉, 16x16의 크기를 가지는 매크로블록에 대해서 만약 이 매크로블록이 배경이나 또는 균일하게 움직이는 부분이라고 판단되면, 더 작은 크기의 블록에 대한 모드 검사, 즉 16x8, 8x16, 8x8, 4x4 모드에 대해서 모드 검사를 수행하는 과정을 생략할 수 있도록 하는 것이다. 이러한 AZCB 검사는 상기 수학식 6을 통하여 16x16의 크기를 가지는 매크로블록에 대해서 검사를 수행하게 된다.
SKIP 모드는 16x16 매크로블록 크기를 갖고, 움직임 벡터가 (0, 0) 또는 주변 블록으로부터 예측된 움직임 벡터이기 때문에 고정된 배경 및 느리고 균일하게 움직이는 큰 블록을 감지하기 적합하다.
인터 모드 검사부(230)는 상기 배경 영상 검출부(220)에 의해서 검출된 부분 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록 모드로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단한다.
즉 상기 매크로블록의 P16x16 블록에 대해서 AZCB 및 움직임 벡터와 레이트 - 디스토션 코스트(RDcost, Rate-distortion cost) 검사를 수행하고, 상기 P16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 P8x8 모드에 대해서 AZCB 및 움직임 벡터와 RDcost 검사를 수행하고, 상기 P16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되는 경우에만 P4x4 모드에 대한 움직임 벡터와 RDcost 검사를 수행하는 것이다.
좀 더 상세히 설명하면, 우선 매크로블록과 해당 매크로블록을 분할한 블록에 대해서 AZCB를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 감지한다. 이러한 검사는 P16x16 및 P8x8 모드에 대해서 수학식 1 및 수학식 2에 의해서 움직임 벡터와 RDcost값을 계산하여 수행할 수 있으며, AZCB는 상기 수학식 6을 통해서 검사를 수행한다.
다시 설명하면, 우선 P16x16 모드에 대해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록인지 검사를 수행한다. P16x16 모드에 대해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록라고 판단되면, 해당 블록내의 더 작은 크기의 블록, 즉 8x8, 8x4, 4x8, 4x4의 크기를 가지는 블록에 대해서는 검사를 하지 않는다. 다만 16x8, 8x16 모드에 대해서는 검사를 수행할 수 있다.
이후 P8x8 모드에 대해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록인지 검사를 수행한다. P8x8 모드에 대해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록이라고 판단되면, 해당 블록내의 더 작은 크기의 블록, 즉 4x4의 크기를 가지는 블록에 대해서는 AZCB 검사를 하지 않는다.
또한 P16x16 모드와 P8x8 모드 대해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록이 아니라고 판단되면 P8x4, P4x8, P4x4의 크기를 가지는 블록 순으로 각각에 대해서 검사를 수행한다.
이러한 검사를 통해서, 상기 P16x16, P16x8, P8x16 모드가 AZCB 이면 이후 레이트 디스토션 면에서 가장 비용이 비싼 것인 I4x4 모드 검사를 스킵하여 계산양을 줄일수 있다.
인터 모드 감지부(230)에서 각 블록 크기에 대한 모드 검사를 수행한 후, 인트라 모드 감지부(240)는 상기 배경 영상 검출부(220)에 의해서 검출된 부분 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단한다.
즉 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 모두 인트라 모드이면, 상기 매크로블록의 I16x16 모드에 대해서 상기 매크로블록의 크로마 I8x8 모드 i(i=0, 1, 2, 3)와 결합하여 AZCB 및 IPM(intra prediction mode)와 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 IPM와 RDcost 검사를 수행하고, 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 하나라도 인터 모드이면, 상기 매크로블록의 크로마 I8x8 모드로부터 IPM 및 CMode를 구하고 I16x16 모드에 대해서 상기 CMode와 결합하여 AZCB 및 IPM과 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블 록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 IPM와 RDcost 검사를 수행하는 것이다.
좀 더 상세히 설명하면, 우선 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 등의 매크로블록의 모드를 검사하여 하나라도 인터 모드이면, 크로마 I8x8 모드에 대해서 SATD(Sum of Absolute Transformed Differences) 방법을 이용해서 크로마 예측 모드를 미리 구한 후, 이를 사용하여 I16x16 모드에 대한 인트라 예측 및 모드 결정을 수행하여 이후 I4x4 모드에 대해서 인트라 예측 및 모드 결정을 수행할지 여부를 검사하게 된다.
또한 해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 등의 매크로블록의 모드를 검사하여 모두가 인트라 모드이면, I16x16모드와 크로마 I8x8 모드 i(i=0, 1, 2, 3)의 결합에 대해서 인트라 예측 및 모드 결정을 수행하며, 또한 AZCB 검사를 통해서 이후 I4x4 모드와 크로마 I8x8 모드 i(i=0, 1, 2, 3)의 결합에 대해서 인트라 예측 및 모드 결정을 수행할지 여부를 검사하게 된다.
모드 검사 스킵부(250)는 이러한 AZCB 검사를 통하여 매크로블록 모드에서 상관도가 입증되면 해당 매크로블록에 대해서는 레이트-디스토션 면에서 가장 코스트가 높은 I4x4 모드 검사를 스킵한다.
즉, 인트라 모드에 대해서, 모드 검사 스킵부(250)는 상기 블록 크기 검사 및 스킵부(220), 블록 움직임 감지 및 모드 선택 범위 제한부(230) 등에서 해당 블록에 대해서 I4x4 모드에 대한 검사를 통해서 블록 모드에서의 높은 상관도가 입증되면, 즉 상기 검사를 통하여 I4x4 블록에 대한 모드 검사를 스킵해도 좋을 것으로 판단되면, 레이트 디스토션 면에서 가장 비용이 비싼 것인 I4x4 모드 검사를 스킵하는 것이다. 이러한 것은 해당 블록에 대해서 모드 스킵 플래그인 bSkipI4x4를 TRUE로 설정하여 이후 해당 블록(매크로블록, 8x8 블록 등)에 대해서는 I4x4 모드 검사를 수행하지 않도록 한다.
본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법은 도 5 및 도 6에 도시된다.
도 5는 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법의 흐름도이다.
본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에서 모든 움직임 예측은 상기 수학식 1을 기초로 수행되고, 매크로블록 모드 결정을 위한 모드 검사는 수학식 2, 수학식 5 및 수학식 6을 기초로 수행된다.
우선 SKIP 모드에 대한 RDcost를 계산하며, 이 과정에서 TC16 =4에 대한 AZCB(SKIP)를 검사한다(S210). AZCB(X)는 X 모드에 대한 AZCB값을 의미하며 예컨대 SKIP, P16x16 등의 각 모드가 X에 대입될 수 있다.
이후 P16x16 모드에 대한 움직임 벡터와 RDcost를 계산하며, 이 과정에서 T C16 =5에 대한 AZCB(P16x16)를 검사한다(S215).
그 다음 단계에서, 후 C16SKIP 이 0인지 검사한다(S220). C16 SKIP 은 SKIP 모드의 C16값을 의미한다.
검사 결과 C16SKIP이 0이면, I4x4 모드 스킵 플래그인 bSkipI4x4를 TRUE로 설정하고(S225), 인트라 블록 모드 결정을 위한 단계(S280)를 수행한다.
C16 SKIP 이 0이 아니면, P16x8 과 P8x16에 대한 움직임 벡터 및 RDcost를 계산한다(S230).
이후 AZCB(P16x8) 또는 AZCB(8x16)의 값이 1인지 검사한다(S235).
검사 결과 AZCB(P16x8) 또는 AZCB(8x16) 이 1이면, I4x4 모드 스킵 플래그인 bSkipI4x4를 TRUE로 설정한다(S240).
검사 결과 AZCB(P16x8) 또는 AZCB(8x16) 이 1이 아닌 경우, AZCB(SKIP)이 1인지 검사하고(S245) AZCB(SKIP)이 1이면 bSkipI4x4를 TRUE로 설정하고(S250), 인트라 블록 모드 결정을 위한 단계(S280)를 수행한다.
단계(S245)의 검사 결과 AZCB(SKIP) 이 1이 아닌 경우 AZCB(P16x16)이 1인지 검사하고(S255), AZCB(P16x16)이 1이면 bSkipI4x4를 TRUE로 설정하고(S260), 인트라 블록 모드 결정을 위한 단계(S280)를 수행한다.
AZCB(SKIP) 및 AZCB(P16x16)이 1이 아닌 경우, 아래의 인터 8x8 블록 모드 선택을 수행한다(S265, S270, S275).
우선 P8x8, P8x4, P4x8 모드에 대한 움직임 벡터 및 RDcost를 구하고, 그 과정에서 T C8 =1에 대한 AZCB(P8x8)을 계산한다(S265).
AZCB(P8x8)가 1인지 검사하여(S270) 1이면 단계(S280)을 수행하고, AZCB(P8x8)가 1이 아니면 P4x4 모드에 대한 움직임 벡터 및 RDcost를 계산한다(S275).
검사하지 않은 8x8 블록이 남아 있으면 S265로 이동한다(S277).
이후 인트라 블록 모드 결정을 수행하여(S280) RDcost를 최소화하는 모드를 최적의 모드로서 선택한다(S285).
인트라 블록 모드를 결정하는 단계(S280)는 도 6을 참조로 상세히 설명한다.
도 6은 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에 있어서 인트라 블록 모드 결정의 블록도이다.
우선 현재 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 인터 모드인지 검사한다(S310).
단계(S310)에서 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 모두 인트라 모드인 것으로 판단하면, 다음의 단계를 수행한다.
우선 I16x16 모드와 크로마(chroma) I8x8 모드 i (i = 0)를 결합하여 인트라 예측 모드(IPM, intra prediction mode) 및 RDcost를 계산한다(S315).
AZCB(I16x16)이 1이거나 bSkipI4x4가 TRUE인지 검사하여(S320), AZCB(I16x16)이 1이 아니고 bSkipI4x4가 TRUE가 아니면, I4x4 모드와 크로마 I8x8 모드 i와 결합하여 IPM 및 RDcost를 구한다.(S325)
이후 상기 i 값을 1 증가시킨다(S330). 만약 i 가 4 보다 작으면 단계(S315)로 이동하여 다시 수행하고, 그렇지 않으면 단계(S355)로 이동한다.
단계(S310)에서 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 하나라도 인터 모드인 것으로 판단하면, 다음의 단계를 수행한다.
우선 크로마 I8x8 모드에 대한 IPM을 SATD(Sum of Absolute Transformed Differences) 방법을 이용해서 구한다(S335). 구한 크로마 모드를 이후 CMode라고 칭한다.
상기 CMode를 사용하여 I16x16 모드에 대한 IPM 및 RDcost를 구한다(S340).
만약 AZCB(I16x16) 이 1이거나 bSkipI4x4가 TRUE인지 검사하여(S345) AZCB(I16x16)이 1이 아니고 bSkipI4x4가 TRUE가 아니면, 상기 CMode를 이용하여 I4x4 모드에 대한 IPM 및 RDcost를 구한다(S350).
종래의 기술은 SKIP 모드를 찾으면 나머지 모드 검사는 모두 스킵하는 특성을 갖는다. 따라서 에러율이 증가하는 단점이 있기 때문에 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에서는 그 단점을 보완하기 위해서 단계(S210, S220 및 S280)는 항상 수행된다.
상기 인트라 블록 모드 결정은 도 6을 참조로 하여 자세히 설명하였지만, H.264 표준은 인트라 예측의 효율을 높이기 위해서 루마(luma) 블록 뿐만 아니라 크로마(chroma) 블록에 대해서도 인트라 예측을 지원한다. 결과적으로, 인트라 모드 결정 문제는 루마 블록과 크로마 블록의 인트라 예측의 결합(joint) 최적화문제가 된다. 여기에서 결합 최적화란 각각의 크로마 인트라 예측 모드에 대해서 각각의 루마 인트라 예측 모드를 구해서 RDcost를 계산한 후 가장 작은 코스트를 가지는 크로마 모드 및 루마 모드의 조합을 최종 인트라 모드로서 선택하는 것으로 많은 계산량이 요구되는 단점이 있다.
따라서 본 발명에 따른 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법에서는 계산량의 감소를 위해서 현재 블록과 인접한 블록들(왼쪽, 위쪽, 오른쪽 위, 그리고 왼쪽 위)의 블록 모드가 모두 인트라인 경우에만 인트라 모 드 결정을 결합 최적화로 수행하고, 그렇지 않은 경우에는 크로마 예측을 우선 계산한 후 정해진 크로마 예측 모드에 대해서만 루마 예측을 수행함으로써 계산량을 줄이게 된다.
비록 본원 발명의 구성이 예시적으로 설명되었지만 이는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 보호 범위가 이들 예시에 의해 제한되는 것은 아니며, 본원 발명의 보호 범위는 청구범위의 기재를 통하여 정하여진다.
이상 설명한 바와 같이, 본 발명에 따르면 종래의 기술에 비해서 H.264 부호화기의 계산량을 대폭 줄임으로써, 실시간 부호화를 위한 가능성을 높였으며, 또한 화질의 열화 및 압축율의 감소가 없다. 또한 소프트웨어적으로 종래의 구조를 변경할 필요 없이 몇 개의 루틴과 플래그를 통하여 쉽게 구현할 수 있는 장점이 있다.

Claims (14)

  1. 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵하는 배경 영상 검출부와,
    상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB(All Zero Coefficients Block)를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인터 모드 검사부와,
    상기 배경 영상 검출부에 의해서 검출된 부분 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 인트라 모드 검사부와,
    상기 배경 영상 검출부와 상기 인터 모드 검사부와 상기 인트라 모드 검사부에 의해서 매크로블록에서 작은 크기의 블록에 대한 블록 모드 검사를 스킵하는 것으로 판단되면 상기 매크로블록의 작은 크기의 블록들에 대한 블록 모드 검사를 스킵하는 모드 검사 스킵부
    를 포함하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  2. 제1항에 있어서, 상기 배경 영상 검출부는, SKIP 모드의 AZCB 검사를 수행하여 고정된 배경 매크로블록 및 느리고 균일하게 움직이는 매크로블록을 검사하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  3. 제1항에 있어서, 상기 AZCB는, 양자화 또는 계수 임계화(coefficient thresholding) 기법을 통하여 생성되는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  4. 제3항에 있어서, 상기 계수 임계화 기법은, 다음 식
    Figure 112004037127198-pat00020
    Figure 112004037127198-pat00021
    -위 식에서 cc(i,j)는 계수 코스트(cost) 함수이고, level(i,j)는 계수의 절대값이며, run_before 는 0이 아닌 계수 이전에 위치하는 연속하는 0인 계수의 개수이고, TC8과 TC16은 각각 8x8, 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미하고, C8과 C16은 8x8 블록과 16x16 블록의 전체 계수 코스트 값을 의미함-.
    를 사용하여 AZCB를 생성하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  5. 제1항에 있어서, 상기 인터 모드 검사부는,
    상기 매크로블록의 P16x16 모드에 대해서 AZCB 및 움직임 벡터와 레이트- 디스토션 코스트(RDcost, Rate-distortion cost) 검사를 수행하고, 상기 P16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 P8x8 모드에 대해서 AZCB 및 움직임 벡터와 RDcost 검사를 수행하고, 상기 P8x8 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되는 경우에만 P4x4 모드에 대한 움직임 벡터와 RDcost 검사를 수행하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  6. 제1항에 있어서, 상기 인트라 모드 검사부는,
    해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 모두 인트라 모드이면,
    상기 매크로블록의 I16x16 모드에 대해서 상기 매크로블록의 크로마 I8x8 모드 i(i=0, 1, 2, 3)와 결합하여 AZCB 및 IPM(intra prediction mode)와 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 AZCB 및 IPM와 RDcost 검사를 수행하고,
    해당 매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 하나라도 인터 모드이면,
    상기 매크로블록의 크로마 I8x8 모드로부터 IPM 및 CMode를 구하고 I16x16 모드에 대해서 상기 CMode와 결합하여 AZCB 및 IPM과 RDcost 검사를 수행하고 상기 I16x16 모드에 대해서 더 작은 크기로 분할된 블록에 대해서 검사를 수행하는 것으로 판단되면 상기 매크로블록의 I4x4 모드에 대해서 AZCB 및 IPM와 RDcost 검사를 수행하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  7. 제6항에 있어서, 상기 CMode는 SATD(Sum of absolute transformed differences) 방법을 사용하여 계산되는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  8. 제1항에 있어서, 상기 모드 검사 스킵부는,
    레이트 디스토션 면에서 가장 비용이 비싼 것인 I4x4 모드에 대한 블록 모드 검사를 스킵하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치.
  9. H.264 비디오 부호화기로서,
    제1항 내지 제8항중 어느 한 항에 기재된 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 장치를 포함하는 H.264 비디오 부호화기.
  10. (a) SKIP 모드에 대한 RDcost 계산 및 TC16 =4에 대한 AZCB(SKIP)를 검사하는 단계-AZCB(X)는 X 모드에 대한 AZCB값을 의미함-와,
    (b) P16x16 모드에 대한 움직임 벡터와 RDcost를 계산하고 TC16 =5에 대한 AZCB(P16x16)를 검사하는 단계-TC16은 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미함-와,
    (c) C16 SKIP 이 0인지 검사하는 단계-C16은 16x16 블록의 전체 계수 코스트 값을 의미하고 C16 SKIP 은 SKIP 모드의 C16값을 의미함-와,
    (d) C16 SKIP 이 0이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와,
    (e) C16 SKIP 이 0이 아니면 P16x8과 P8x16에 대한 움직임 벡터 및 RDcost를 계산하는 단계와,
    (f) AZCB(P16x8)가 1 이거나 AZCB(P8x16)가 1인지 검사하는 단계와,
    (g) AZCB(P16x8)가 1 이거나 AZCB(P8x16)가 1이면 모드 스킵 플래그 bSkipI4x4=TRUE로 설정하는 단계와,
    (h) AZCB(SKIP)이 1인지 검사하여 AZCB(SKIP)이 1이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와,
    (i) AZCB(P16x16)이 1인지 검사하여 AZCB(P16x16)이 1이면 bSkipI4x4=TRUE로 설정하고 단계 (n)로 이동하는 단계와,
    (j) P8x8, P8x4, P4x8 모드에 대한 움직임 벡터 및 RDcost를 계산하고 TC8 =1에 대한 AZCB(P8x8)를 계산하는 단계-TC8은 8x8 블록을 AZCB로 판단하기 위한 임계치를 의미함-와,
    (k) AZCB(P8x8)가 1인지 검사하는 단계와,
    (l) AZCB(P8x8)가 1이 아니면 P4x4 모드에 대한 움직임 벡터 및 RDcost를 계산하는 단계와,
    (m) 검사하지 않은 8x8 블록이 남아 있는지 확인하는 단계와,
    (n) 인트라 블록 모드를 결정하는 단계와,
    (o) 최적의 모드를 선택하는 단계
    를 포함하는 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법.
  11. 제10항에 있어서, 다음 식
    Figure 112006029686393-pat00022
    Figure 112006029686393-pat00023
    -위 식에서 cc(i,j)는 계수 코스트(cost) 함수이고, level(i,j)는 계수의 절대값이며, run_before 는 0이 아닌 계수 이전에 위치하는 연속하는 0인 계수의 개수이고, TC8과 TC16은 각각 8x8, 16x16 블록을 AZCB로 판단하기 위한 임계치를 의미하고, C8과 C16은 8x8 블록과 16x16 블록의 전체 계수 코스트 값을 의미함-.
    를 사용하여 AZCB를 생성하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법.
  12. 제10항에 있어서, 상기 인트라 블록 모드를 결정하는 단계 (n)는,
    (n-a)매크로블록의 왼쪽, 위쪽, 오른쪽 위 및 왼쪽 위 블록이 인터 모드인지 검사하는 단계와,
    매크로블록의 왼쪽(A), 위쪽(B), 오른쪽 위(C) 및 왼쪽 위(D) 블록이 모두 인트라 모드인 경우:
    (n-b) I16x16 모드 및 크로마 I8x8 모드 i(i = 0, 1, 2, 3)와 결합하여 IPM(intra prediction mode) 및 RDcost를 계산하는 단계와,
    (n-c) AZCB(I16x16)가 1이거나 bSkipI4x4이 TRUE인지 검사하는 단계와,
    (n-d) AZCB(I16x16)가 1이 아니고 bSkipI4x4이 TRUE가 아니면 I4x4 모드 및 크로마 I8x8 모드 i(i = 0 )와 결합하여 IPM 및 RDcost를 계산하는 단계와,
    (n-e) i값을 1만큼 증가시키고 i<4인지 확인하여 i<4이면 상기 (n-b)단계로 이동하는 단계를 포함하고,
    매크로블록의 왼쪽(A), 위쪽(B), 오른쪽 위(C) 및 왼쪽 위(D) 블록 중 어느 하나가 인터 모드인 경우:
    (n-f) 크로마 I8x8 모드에 대한 IPM을 SATD를 사용하여 계산하는 단계와,
    (n-g) 상기 계산된 크로마 모드를 사용하여 I16x16 모드에 대한 IPM 및 RDcost를 계산하는 단계와,
    (n-h) AZCB(I16x16)가 1이거나 bSkipI4x4이 TRUE인지 검사하는 단계와,
    (n-i) AZCB(I16x16)가 1이 아니고 bSkipI4x4이 TRUE가 아니면 I4x4 모드에 대한 IPM 및 RDcost를 계산하는 단계
    를 포함하는 것인 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법.
  13. H.264 비디오 부호화기로서,
    제10항 내지 제12항중 어느 한 항에 기재된 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드 결정 방법을 사용하여 움직임 예측 및 모드 결정을 수행하는 것인 H.264 비디오 부호화기.
  14. 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록을 검사하여 해당 매크로블록에 대해서는 작은 크기의 블록으로 분할하여 블록 모드 검사를 수행하는 것을 스킵하는 기능과,
    상기 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록 이외의 매크로블록에 대해서 인터 모드에 대한 AZCB를 검사해서 불규칙적으로 움직이는 블록 및 빠르게 움직이는 블록을 판단하고 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 기능과,
    상기 고정된 배경 및 느리고 균일하게 움직이는 영상에 해당하는 매크로블록 이외의 매크로블록에 대해서 인트라 모드에 대한 AZCB를 검사해서 해당 매크로블록을 작은 크기의 블록으로 분할하여 상기 작은 크기의 블록에 대한 블록 모드 검사를 수행할 것인지 판단하는 기능과,
    상기 기능들에 의해서 매크로블록에서 작은 크기의 블록에 대한 블록 모드 검사를 스킵하는 것으로 판단되면 상기 매크로블록의 작은 크기의 블록들에 대한 블록 모드 검사를 스킵하는 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020040065439A 2004-08-19 2004-08-19 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법 KR100627329B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040065439A KR100627329B1 (ko) 2004-08-19 2004-08-19 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법
US10/976,781 US7764738B2 (en) 2004-08-19 2004-11-01 Adaptive motion estimation and mode decision apparatus and method for H.264 video codec

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040065439A KR100627329B1 (ko) 2004-08-19 2004-08-19 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060016960A KR20060016960A (ko) 2006-02-23
KR100627329B1 true KR100627329B1 (ko) 2006-09-25

Family

ID=35909601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040065439A KR100627329B1 (ko) 2004-08-19 2004-08-19 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법

Country Status (2)

Country Link
US (1) US7764738B2 (ko)
KR (1) KR100627329B1 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100708118B1 (ko) * 2005-01-07 2007-04-16 삼성전자주식회사 복수개의 변형 곱셈 테이블을 이용한 동영상 부호화 및복호화 장치와 그 방법, 및 이를 구현하기 위한프로그램이 기록된 기록 매체
KR100752847B1 (ko) * 2005-01-21 2007-08-29 엘지전자 주식회사 H.264 기반 동영상 디코딩 방법
US7830961B2 (en) * 2005-06-21 2010-11-09 Seiko Epson Corporation Motion estimation and inter-mode prediction
KR100785855B1 (ko) * 2005-07-19 2007-12-14 한국전자통신연구원 향상된 snr 스케일러빌리티 제공을 위한 양자화 장치 및방법
KR100723861B1 (ko) * 2005-11-04 2007-05-31 한국전자통신연구원 고속 움직임 예측을 위한 고속 모드 검색 장치 및 방법
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
US7929608B2 (en) * 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
US20070274396A1 (en) * 2006-05-26 2007-11-29 Ximin Zhang Complexity adaptive skip mode estimation for video encoding
KR101228109B1 (ko) * 2006-07-24 2013-01-31 삼성전자주식회사 움직임 예측장치 및 방법과 이를 채용하는 영상 부호화장치및 방법
KR100814731B1 (ko) * 2006-08-21 2008-03-19 연세대학교 산학협력단 H.264 부호화를 위한 고속 모드 결정 방법
KR100807330B1 (ko) * 2006-09-07 2008-02-28 엠엠비 주식회사 H.264/avc 인코더의 인트라 매크로블록 모드 스킵 방법
US20080063064A1 (en) * 2006-09-13 2008-03-13 Macinnis Alexander Method and System for Motion Compensated Temporal Filtering Using IIR Filtering
KR100845303B1 (ko) * 2006-09-29 2008-07-10 한국전자통신연구원 고속 부호화를 위한 되먹임 구조를 가진 동영상 압축부호화 장치 및 최적 모드 결정 방법
KR100810391B1 (ko) 2006-10-31 2008-03-04 삼성전자주식회사 움직임 보간을 이용한 프레임 레이트 변환 방법
CN101569201B (zh) * 2006-11-07 2011-10-05 三星电子株式会社 基于帧内预测进行编码和解码的方法和装置
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
KR100900316B1 (ko) * 2006-12-06 2009-06-02 한국전자통신연구원 실시간 비디오 신호 압축을 위한 인트라 모드 예측 검색방법 및 장치
JP4908180B2 (ja) * 2006-12-20 2012-04-04 株式会社東芝 動画像符号化装置
US8929448B2 (en) * 2006-12-22 2015-01-06 Sony Corporation Inter sub-mode decision process in a transcoding operation
US7751631B2 (en) * 2006-12-22 2010-07-06 Sony Corporation Bypass using sum of absolute transformed differences value (SATD) in a video coding process
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
KR100771641B1 (ko) * 2007-04-23 2007-10-30 주식회사세오 H.264 고속 모드 결정 방법
US8175150B1 (en) * 2007-05-18 2012-05-08 Maxim Integrated Products, Inc. Methods and/or apparatus for implementing rate distortion optimization in video compression
US20090067495A1 (en) * 2007-09-11 2009-03-12 The Hong Kong University Of Science And Technology Rate distortion optimization for inter mode generation for error resilient video coding
US8467451B2 (en) * 2007-11-07 2013-06-18 Industrial Technology Research Institute Methods for selecting a prediction mode
JP5206070B2 (ja) * 2008-03-28 2013-06-12 富士通株式会社 復号装置および復号方法
US8270467B1 (en) 2008-05-13 2012-09-18 Marvell International Ltd. Encoding image data
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8687702B2 (en) * 2008-10-27 2014-04-01 Advanced Micro Devices, Inc. Remote transmission and display of video data using standard H.264-based video codecs
US8265155B2 (en) * 2009-01-05 2012-09-11 Electronics And Telecommunications Research Institute Method of block partition for H.264 inter prediction
WO2010137324A1 (ja) * 2009-05-29 2010-12-02 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法
US20110255589A1 (en) * 2009-08-03 2011-10-20 Droplet Technology, Inc. Methods of compressing data and methods of assessing the same
KR101624649B1 (ko) 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101040087B1 (ko) * 2010-01-13 2011-06-09 전자부품연구원 H.264 svc를 위한 효율적인 부호화 방법
EP2628298A1 (en) * 2010-10-12 2013-08-21 Dolby Laboratories Licensing Corporation Joint layer optimization for a frame-compatible video delivery
KR101677696B1 (ko) 2010-12-14 2016-11-18 한국전자통신연구원 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
US8856212B1 (en) 2011-02-08 2014-10-07 Google Inc. Web-based configurable pipeline for media processing
US8804819B1 (en) 2011-04-19 2014-08-12 Google Inc. Method and apparatus for encoding video using data frequency
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US8705620B1 (en) 2011-04-28 2014-04-22 Google Inc. Method and apparatus for encoding anchor frame by encoding features using layers
US9749638B1 (en) 2011-04-28 2017-08-29 Google Inc. Method and apparatus for encoding video with dynamic quality improvement
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
CN105791835A (zh) 2011-06-23 2016-07-20 Jvc建伍株式会社 图像编码装置和图像编码方法
KR101943049B1 (ko) * 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
KR101955374B1 (ko) 2011-06-30 2019-05-31 에스케이 텔레콤주식회사 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
KR101830352B1 (ko) 2011-11-09 2018-02-21 에스케이 텔레콤주식회사 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
JP2013115583A (ja) * 2011-11-28 2013-06-10 Canon Inc 動画像符号化装置及びその制御方法並びにプログラム
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US10230956B2 (en) 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US20140219331A1 (en) * 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
KR101517184B1 (ko) * 2013-10-30 2015-05-15 인하대학교 산학협력단 고효율 비디오 코딩에서 인터 예측을 위한 작동 수준의 조기 종료 방법
EP3120556B1 (en) 2014-03-17 2021-01-13 Microsoft Technology Licensing, LLC Encoder-side decisions for screen content encoding
WO2016123792A1 (en) 2015-02-06 2016-08-11 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
KR101624661B1 (ko) 2015-04-23 2016-05-27 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101624662B1 (ko) 2015-04-23 2016-05-27 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
KR101676793B1 (ko) * 2016-05-13 2016-11-16 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101676794B1 (ko) * 2016-05-13 2016-11-16 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101943058B1 (ko) * 2016-06-23 2019-01-29 에스케이텔레콤 주식회사(Sk Telecom Co., Ltd.) 영상 부호화/복호화 방법 및 장치
CN108124163B (zh) * 2017-12-14 2020-07-14 西北工业大学 一种适用于hevc的全零块检测方法
KR101997655B1 (ko) * 2018-08-03 2019-10-01 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
KR101997604B1 (ko) * 2019-01-22 2019-07-08 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
US11924437B2 (en) * 2022-03-28 2024-03-05 Bitmovin Gmbh Variable framerate encoding using content-aware framerate prediction for high framerate videos

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004064398A1 (en) 2003-01-10 2004-07-29 Thomson Licensing S.A. Fast mode decision making for interframe encoding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280349A (en) * 1992-02-13 1994-01-18 Industrial Technology Research Institute HDTV decoder
US6879723B1 (en) * 1999-11-12 2005-04-12 8X8, Inc. Method and apparatus for encoding frames of image data at a varying quality level
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
US7190840B2 (en) * 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
US7333544B2 (en) * 2003-07-16 2008-02-19 Samsung Electronics Co., Ltd. Lossless image encoding/decoding method and apparatus using inter-color plane prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004064398A1 (en) 2003-01-10 2004-07-29 Thomson Licensing S.A. Fast mode decision making for interframe encoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문

Also Published As

Publication number Publication date
US20060039470A1 (en) 2006-02-23
US7764738B2 (en) 2010-07-27
KR20060016960A (ko) 2006-02-23

Similar Documents

Publication Publication Date Title
KR100627329B1 (ko) H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법
KR101000926B1 (ko) 영상의 불연속성을 제거하기 위한 필터 및 필터링 방법
KR100984517B1 (ko) 인터프레임 인코딩을 위한 빠른 모드 결정 방법
CA3011659C (en) Intra prediction of a processing block using a predicted value which is proportional to the amount of change in the horizontal direction of the signal value of a pixel adjacent tothe left of the processing block
KR100644498B1 (ko) 노이즈 검출방법과 노이즈 검출장치 및 화상 복호화장치
JP5579852B2 (ja) レート歪み最適化された量子化のための高速化技法
TWI492634B (zh) 根據內容調適性二進制算數寫碼之寫碼器之二遍量化
EP1675402A1 (en) Optimisation of a quantisation matrix for image and video coding
US8189667B2 (en) Moving picture encoding apparatus
KR100871588B1 (ko) 인트라 부호화 장치 및 그 방법
JP2008503177A (ja) 色差デブロッキングのための方法
WO2007025809A2 (en) Method and apparatus for encoding video data using skip mode
KR101623064B1 (ko) 영상 부호화 장치, 영상 부호화 방법 및 영상 부호화 프로그램
JP5361998B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法
US9055292B2 (en) Moving image encoding apparatus, method of controlling the same, and computer readable storage medium
JP2003230149A (ja) 高圧縮符号化装置
WO2005055612A1 (en) Method and apparatus for video encoding
KR100771641B1 (ko) H.264 고속 모드 결정 방법
KR101247024B1 (ko) 루프 내 전처리 필터링을 이용한 움직임 추정 및 보상 방법
EP1675405A1 (en) Optimisation of a quantisation matrix for image and video coding
KR100987581B1 (ko) 고속 움직임 추정을 위한 부분 블록정합 방법
Zhang et al. A frequency-based fast block type decision algorithm for intra prediction in H. 264/AVC high profile
JP2007251996A (ja) 動画像符号化方法及びその装置
WO2012111208A1 (ja) 動画像符号化装置
JP4232733B2 (ja) ノイズ低減方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140708

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160908

Year of fee payment: 11