KR100771641B1 - H.264 고속 모드 결정 방법 - Google Patents

H.264 고속 모드 결정 방법 Download PDF

Info

Publication number
KR100771641B1
KR100771641B1 KR1020070039500A KR20070039500A KR100771641B1 KR 100771641 B1 KR100771641 B1 KR 100771641B1 KR 1020070039500 A KR1020070039500 A KR 1020070039500A KR 20070039500 A KR20070039500 A KR 20070039500A KR 100771641 B1 KR100771641 B1 KR 100771641B1
Authority
KR
South Korea
Prior art keywords
mode
skip
intra
satisfied
value
Prior art date
Application number
KR1020070039500A
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 KR1020070039500A priority Critical patent/KR100771641B1/ko
Application granted granted Critical
Publication of KR100771641B1 publication Critical patent/KR100771641B1/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction

Abstract

본원 발명은 H.264 인코딩시의 모드결정 과정을 고속으로 수행하는 것에 의해 H.264 인코딩을 최적화할 수 있도록 하는 H.264 고속 모드 결정 방법을 제공하는 것을 그 목적으로 하며,
상술한 목적을 달성하기 위하여 H.264 인코딩을 위한 모드 선택에 있어서, 스킵(SKIP) 모드 조건을 적용하여 스킵(SKIP) 모드를 만족하지 않는 경우 인터모드를 결정하는 인터모드 결정 과정과; 상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는 지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 포함하여 이루어 지는 것을 특징으로 한다.
H.264, MPEG4, 인코더(Encoder), 인터모드, 인트라모드, 스킵(SKIP) 조건

Description

H.264 고속 모드 결정 방법{FAST MEHTOD OF DETERMINNING H.264 MODE}
도 1은 종래기술의 H.264에서 사용되는 인터모드를 나타내는 도면,
도 2는 종래기술의 H.264에서 4*4 인트라모드 예측을 나타내는 도면,
도 3은 종래기술의 H.264 모드 결정 과정을 나타내는 순서도,
도 4는 종래기술의 h.264 인코더(부호기)에서의 주요 모듈별 수행시간 비율을 나타내는 도면,
도 5는 본원 발명의 H.264 고속 모드 결정 방법의 처리과정을 나타내는 순서도이다.
본원 발명은 H.264 인코딩에 관한 것으로서, 더욱 상세하게는, H.264 인코딩시의 모드결정 과정을 고속으로 수행하는 것에 의해 H.264 인코딩을 최적화할 수 있도록 하는 H.264 고속 모드 결정 방법에 관한 것이다.
일반적으로 H.264 국제 비디오 표준은 차세대 MPEG4 표준기술로서 통상 AVC(advanced Video Coding)이라고 하며 MPEG-4 Part 10 또는 MPEG-4 AVC라고도 한다.
상술한 바와 같은 H.264 국제 비디오 표준에서는 움직임 예측 및 모드 결정 방법을 사용하며, 상기 움직임 예측 및 모드 결정 방법은 가변블록을 이용한 움직임 보상 기술을 적용한 것으로서 매크로블록의 크기를 16*16에서 4*4까지 나눈 후 비트율-왜곡 최적화 기법을 사용하기 때문에 영상의 특성을 잘 반영하므로 전체적으로 15%정도 부호화 효율을 증가시킨다.
이러한 비디오 처리를 위하여 H.264에서는 인터모드와 인트라모드를 구별하여 설정한다. 이를 더욱 상세히 설명하면, H.264는 매크로블록 모드를 위해 5개의 인터모드와 3개의 인트라모드를 지원한다. 이중 스킵(SKIP), 16*16, 16*8, 8*16과 P8*8은 인터모드에 해당되며 움직임 예측을 통한 매크로블록 부호화에 이용된다. P8*8 모드는 각각의 8*8 블록 안에서 8*8, 8*4, 4*8, 4*4 중의 하나로 나누어질 수 있다. 도 1은 H.264에서 사용되는 인터모드를 나타낸다.
H.264는 인트라모드 예측을 위해 인트라4*4, 인트라8*8, 인트라16*16을 제공하며, 휘도 블록을 위한 인트라8*8 모드는 FRExt 프로파일에서만 제공된다. 인트라모드에서는 이전에 부호화된 유효한 이웃 매크로블록의 경계 화소를 이용해 현재 매클로블록을 예측한다.
도 2는 4*4 인트라모드 예측을 나타낸다.
도 2에 도시된 바와 같이 휘도 블록의 인트라4*4와 인트라8*8은 각각 4*4와 8*8 블록 단위로 총 9가지 예측 방향을 이용하여 예측을 수행한다. 그리고 도면에는 미도시되어 있으나 인트라16*16은 16*16 블록 단위로 4가지 예측 방향을 이용해 현재 매크로블록을 예측한다.
이렇게 예측된 인터모드와 인트라모드들 중에서 비트율-왜곡 비용이 가장 작은 모드가 최종 매크로블록 모드로 결정된다. 인터모드에서 색차 신호는 휘도 신호의 움직임 벡터를 이용해 예측되지만, 인트라모드에서 색차 신호는 휘도 신호와 별도로 예측된다. 인트라모드에 대한 색차 신호 예측은 8*8 블록 단위로 이루어지며, 각 8*8 블록당 4가지 예측 방향을 제공한다.
다음으로 종래기술의 H.264에서의 매크로블럭 모드결정 방법을 상세히 설명한다.
매크로블록을 어떤 모드로 부호화할 것인가 결정하는 것은 H.264 부호기(인코더)의 핵심이다. 기존의 비디오 압축 부호화 표준과는 달리 H.264는 여러 개의 모드 중에서 최적의 모드를 결정하기 위해서 왜곡도와 함께 발생비트를 고려한다. 이를 위해 라그랑지안(Lagrangian) 함수에 기반한 비용함수를 사용한다. 각 블록에 대한 움직임 벡터 결정과 매크로블록의 최적모드를 결정하기 위해 사용되는 이 함수는 왜곡도와 발생 비트량을 나타내는 항과 발생 비트량의 가중치 값인 라그랑지안 계수 (Lagrangian multiplier)로 이루어져 있다
비트율-왜곡 최적화 기법에서는 각 매크로블록 모드에 대한 비트율-왜곡 비 용을 계산한다. 인터모드에서는 이 값을 계산하기 전에 움직임 벡터와 참조영상을 결정해야 한다. 가변 블록에 대한 움직임 벡터와 참조영상은 수학식 1의 최소값으로 결정된다.
Figure 112007030693989-pat00001
여기서 λmotion은 라그랑지안 계수로, 양자화 계수에 의존하는 값을 갖는다. R(s,r(MV, REF))는 움직임 벡터와 참조영상을 부호화하는데 필요한 비트량으로 표 참조 연산에 의해 얻어진다. SAD(s,r(MV, REF))는 원 영상과 움직임 예측에 의해 복원된 영상과의 차에 대한 절대값의 합이고, 블록에 대하여 다음의 수학식 2로 정의된다.
Figure 112007030693989-pat00002
여기서 s와 r은 각각 원 블록과 복호된 블록의 화소값을 나타낸다. h와 V는 각각 가변 블록의 넓이와 높이이며, mx와 my는 움직임 벡터이다.
P8*8 모드에서 각 8*8 블록에 대한 최적의 하위 매크로블록 모드의 결정, 인트라모드에서 최적의 예측 방향 결정과 매크로블록에 대한 최적모드 결정은 수학식3의 최소값에 의해 결정된다.
Figure 112007030693989-pat00003
여기서 λmode는 λmotion의 제곱값이다. M은 매크로블록 모드, 예측방향 모드 또는 하위 매크로블록 모드이다. R(s,r,M)은 M에 해당하는 모드로 부호화했을 때, 실제로 발생되는 비트량이며, H.264 참조 소프트웨어에서는 이 값을 계산하기 위해 모든 부호화 과정을 수행한다. SSL(s,r,M)는 원 영상과 복호된 영상과의 차이에 대한 제곱의 합이고, 다음의 수학식 4에 의해 계산된다.
Figure 112007030693989-pat00004
P8x8 모드의 하위 모드결정과 인트라모드에서 예측방향 결정의 경우에 수학식 1과 수학식 3은 휘도 성분만을 고려하여 계산하고, 최종 모드결정을 위한 경우는 휘도와 색차 성분 모두에 대해서 계산을 수행한다.
도 3은 종래기술의 H.264 모드 결정 과정을 나타내는 순서도이다.
도 3에서 (A)는 인터모드를 위한 움직임 벡터와 참조영상을 결정하는 과정이다. 16*16과 16*8, 8*16 모드의 각각에 대해 수학식 1의 비용함수가 최소값을 가지는 움직임 벡터와 그때의 참조영상이 저장된다. P8*8 모드의 하위 최적모드를 결정 하는 과정은 8*8과 8*4, 4*8, 4*4 모드에 대해 움직임 벡터와 참조영상을 결정하는 과정과 이 값들을 이용하여 수학식 3을 통해 최적모드를 결정하는 두 과정으로 이루어져 있다. 스킵(SKIP) 모드의 움직임 벡터를 계산한 후에 (B) 과정에서는 수학식 3을 이용하여 최적모드를 결정하게 된다. 이 과정에서는 인트라모드들을 포함하게 되며 모든 모드들에 대해서 비용함수 값이 최소가 되는 모드가 최적모드가 된다
그러나 상술한 바와 같이 H.264 국제 비디오 표준에서 지원하는 가변블록을 이용한 움직임 보상 기술은 가변 블록 움직임 보상을 위한 매크로블록의 모드를 결정하기 위해 많은 계산량을 요구하는 비트율-왜곡 최적화 기법을 사용하기 때문에 그 복잡도가 증가하게 되고, 이로 인해 H.264 인코딩 과정은 움직임 예측과 모드결정 부분에 요구되는 많은 계산적 복잡도로 인해 실시간으로 인코딩을 처리하는 것이 소프트웨어적으로는 사실상 불가능하게 되는 문제점을 가진다.
따라서 본원 발명은 상술한 종래기술의 문제점을 해결하기 위한 것으로서, H.264 인코딩 과정에서 움직임 예측 및 모드 결정과정을 수행함에 있어, 조기에 스킵(SKIP) 조건을 만족하는 매크로 블록에 한하여 모드결정과정을 종료하도록 하고, 인터 화면에 대해서는 인트라모드 검색을 부분적으로 수행하며, 인터모드들 간의 검색시 각 모드들을 계층적으로 체크하는 것에 의해 모든 모드를 다 체크하지 않고 조기에 주어진 임계값을 만족하면 중간에 모드결정과정을 종료하도록 하는 것에 의해 H.264 인코딩을 위한 모드를 신속하게 결정하고 이에 의해 H.264 인코딩 과정을 소프트웨어적으로 처리할 수 있도록 하는 H.264 고속 모드 결정 방법을 제공하는 것을 그 목적으로 한다.
상술한 목적을 달성하기 위한 본원 발명의 H.264 고속 모드 결정 방법은, H.264 인코딩을 위한 모드 선택에 있어서, 모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록 중 적어도 하나 이상이 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하인 경우 모드 결정 과정을 종료하는 조건인 스킵(SKIP) 모드 조건을 적용하여 스킵모드를 결정하는 스킵(SKIP)모드결정과정과; 상기 스킵(SKIP) 모드 조건을 만족하지 않는 경우 인터모드를 결정하는 인터모드 결정 과정과; 상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 포함하여 이루어지는 것을 특징으로 한다.
상기 스킵(SKIP) 모드 조건은 상기 스킵(SKIP) 모드 조건이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산하여 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 스킵(SKIP)로 결정하고 모드결정과정이 조기에 종료되는 과정인 것을 특징으로 한다.
상기 인터모드 결정 과정은, 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우 P8*8 모드에 대한 비트율 왜곡값을 구한 후 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우에는 모드를 P8*8 모드로 결정한 후 모드 결정과정을 종료하는 P8*8 모드 결정 과정과; 상기 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우 16*8, 8*16 모드로 모드를 결정한 후 비트왜곡을 계산하는 16*8·8*16 모드 결정과정;을 포함하여 이루어지는 것을 특징으로 한다.
상기 인트라모드 결정과정은, 상기 인터모드 결정 과정 이후, 상기 인트라모드 조건을 만족하는 지를 판단하는 인트라모드 결정 판단 과정과; 상기 인트라모드 결정 판단 과정의 판단 결과 인트라모드 조건을 만족하는 경우 인트라모드의 비트 왜곡을 계산하여 인트라모드를 설정하고, 만족하지 않는 경우 인트라모드의 결정을 수행하지 않고 처리과정을 종료하는 상세 인트라모드 결정 과정;을 포함하여 이루어지는 것을 특징으로 한다.
상기 처리과정은 SIMD(single instruction multiple data) 명령어를 적용하여 컴퓨터로 읽을 수 있는 기록 매체로 구현되는 것을 특징으로 한다.
이하, 첨부도면을 참조하여 본원 발명을 더욱 상세히 설명한다.
도 4는 종래기술의 H.264 인코더(부호기)에서의 주요 모듈별 수행시간 비율을 나타내는 도면이다.
도 4에 도시된 바와 같이, 비용 생성을 위한 변환과 모드 결정과정이 많은 부분을 차지하는 것을 알 수 있다. 모드 결정과정에서 사용되는 수학식 3의 발생 비트량을 계산하기 위해서는 각 모드에 대해 DCT/Hardamard 변환 및 양자화/역양자화, 역 DCT/Hadamard 변환과정, 그리고 엔트로피 부호화 과정을 거치게 된다. 엔트로피 부호화 과정에서 사용되는 Exp-Golomb VLC와 CAVLC, CABAC은 다소 복잡한 계산 과정을 필요로 하지만, 실제 부호기에서 차지하는 복잡도는 그렇게 크지 않다. 따라서 부호기의 복잡도를 줄이기 위해서는 고속 모드결정 방법의 개발이 필수적이다. 특히, 고속 모드결정 방법의 핵심은 단순히 최적모드 결정과정의 복잡도를 줄이는 것 외에 실제로 가장 큰 부호화 시간을 차지하는 움직임 예측 과정의 복잡도를 줄이는 것이다.
또한, 일반적으로 같은 영상에 대해서도 양자화 계수값이 변하면 모드 분포의 변화가 심하며, 일반적으로 양자화 계수값이 큰 경우에는 스킵(SKIP) 모드와 16*16 모드의 빈도가 양자화 계수값이 작은 경우보다 증가한다. 이는 DCT 연산 후 큰 양자화 계수로 인한 발생 비트량의 변화로 최적모드가 변했기 때문이다. 실제 매크로블록이 복잡한 화면의 부분이라 할지라도, 양자화 계수가 커질수록 DCT한 결과 계수들이 0을 가지는 경우가 많아지며 따라서, 최적모드가 스킵(SKIP)이나 16*16으로 결정되는 빈도수가 증가하게 되는 것이다. 영상에서 매크로블록이 배경 이나 움직임이 느린 부분에 속해 있을 경우에는 최적모드가 스킵(SKIP)이나 16*16 모드로 결정되는 경우가 많다. 이는 큰 블록을 사용하여 매크로블록을 부호화해도 왜곡도가 충분히 작기 때문에 작은 블록으로 부호화할 필요가 없기 때문이다. 블록을 작게 나누어 부호화하여 왜곡도가 감소하더라도, 각 블록에 대한 정보를 복호기(디코더:Decoder)에 알려주어야 하기 때문에 비트량이 증가하게 된다
H.264 모드결정에 사용되는 비트율-왜곡 최적화 기법은 각 매크로블록 모드에 대한 비트율-왜곡 비용을 계산한다. 인터모드에서는 이 값을 계산하기 전에 움직임 벡터와 참조영상을 결정해야 한다. 따라서, 비트율-왜곡 자체를 계산하는 것이 많은 계산량을 요구하게 된다.
도 5는 본원 발명의 H.264 고속모드 결정 방법의 처리과정을 나타내는 순서도이다.
도 5는 도 4를 참조한 분석을 바탕으로서 모드결정을 고속화하는 것에 의해 H.264 인코더에서의 고속 인코딩을 가능하게 하며, 소프트웨어적인 처리를 수행할 수 있도록 한다.
상술한 바와 같은 고려사항 및 도 5를 참조하여 본원 발명의 H.264 고속 모드 결정 방법을 설명하면, 도 5에 도시된 바와 같이, 처음에 조기 스킵(SKIP) 모드 결정 조건을 만족하는지 검사한다. 이 때 조기 스킵(SKIP)모드의 조건은 모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록들(상단과 좌측)이 하나라도 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하일 경우인지를 판단하는 것이다. 이를 더욱 상세히 설명하면, 일반적으로 스킵모드는 가장 간단히 부호화 과정을 수행하는 모드이다. 일단 스킵모드라고 가정하여 해당 매크로블록(16x16화소)을 부호화했을 때, 최종적으로 얻어진 매크로 블록과 원래의 영상(매크로블록)과 차이가 생긴다. 만약 스킵모드로 부호화했을 때 원래의 영상과 차이가 크다면, 다른 모드로 검색해야 하며, 그렇지 않은 경우 스킵모드를 최종모드로 결정하고 모드결정과정을 종료한다. 이때, 원래의 영상과 스킵모드로 가정해서 부호화해서 얻어진 영상(매크로블록) 간의 차이를 H.264에서 일반적인 왜곡의 척도로 사용하는 비트율 왜곡 값(수학식 3에 의해 얻어지는 값)을 통해서 수치적으로 계산할 수 있고 이때 얻어진 비트율 왜곡 값이 일정수준(임계값) 이하인 경우 왜곡 정도가 작다고 간주하여 스킵모드를 최종모드로 결정하며 그렇지 않은 경우 다른 모드를 검색하게 된다. 이때 임계값의 결정은 주어진 양자화 파라미터를 기반으로 수학적으로 얻어지는 평균 비트율 왜곡 값을 기준으로 삼는다(S11).
상술한 바와 같은 스킵(SKIP)모드 조건을 만족하는지에 대한 S11 과정의 판단 결과 주어진 조건을 만족하는 경우에는 주어진 모드 결정 과정을 종료하는 것에 의해 처리과정을 종료한다(S12).
이와 달리 S11 과정의 판단 결과 주어진 스킵(SKIP) 모드 조건(조기 스킵(SKIP)모드 조건)이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산한다(S13).
이 후 스킵(SKIP)모드에 대한 비트-왜곡값과 16*16모드에 대한 비트율 왜곡값을 비교한다(S14).
S14 과정의 비교 결과 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 최적의 모드가 스킵(SKIP)으로 결정되고 모드결정과정이 조기에 종료된다(S15).
이와 달리 S14 과정의 비교 결과 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우에는, 16*8과 8*16 모드에 대한 비트 왜곡을 계산하지 않고 P8*8 모드에 대한 비트율 왜곡값을 구한다(S16).
이 후 S16 과정에서 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값 비교하여 16*8과 8*16 모드에 대한 비트율 왜곡값을 계산해야하는지 판단한다. 일반적으로, 16x16 모드를 통해서 얻어진 비트율 왜곡값이 P8x8모드를 통해서 얻어진 제이 모드(J mode) 값보다 크면 P8x8모드로 모드를 결정하며 그렇지 않은 경우 16x16, 16x8, 8x16 모드 중에서 다시 최종 모드를 결정해야 한다. 하지만, 본원 발명의 고속 알고리즘 구현에 있어서 상충되는 두 조건은 압축 효율과 계산적인 복잡도이다. 처음 16x16모드와 P8x8모드를 비교하여 두 모드에서 얻어진 비용 값이 큰 차이가 없다면 실제 압축 효율에 있어서도 매우 유사한 성능을 나타낸다. 따라서 16x16모드와 P8x8모드의 두 모드에서 얻어진 비용 값이 큰 차이가 없다면 P8x8모드로 최종모드를 쉽게 결정하기 위하여 사용하는 것이 바로 16x16 모드의 비용 값에 추가적으로 'C'를 더하여 사용한다. 실제 구현에서는 C는 더해지는 상수 값이 아니라, 비례 값으로서 16x16 비용 값 x C(=1.1)로 적용될 수도 있다. 이 경우 16x16(C) > P8x8 의 관계식을 이용하게 된다(S17).
S17 과정의 판단 결과, P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우에는 모드를 P8*8 모드로 결정한 후 모드 결정과정을 종료한다(S18).
이와 달리 S17 과정의 판단 결과, P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우에는 16*8·8*16 모드로 모드를 결정한 후 비트왜곡을 계산한다(S19).
다음으로 인트라모드에 대한 결정을 수행한다. 통계적으로, 인터화면에서 인트라모드가 최종모드로 결정되는 경우는 2%미만이며 실제로, 인트라모드로 부호화가 필요한 경우는 인터화면에서 얻어지는 비용 값이 매우 클 경우이다. 일 예로 위의 인터 모드결정 과정을 통해 얻어진 최종 인터모드로 얻어진 비용 값이 상기 스킵모드 결정을 위한 임계값의 설정을 위해 얻어지는 주어진 양자화 파라미터를 기반으로 얻어지는 평균 비트율 왜곡 값보다 3배 이상인 경우에만 인트라모드를 검색하도록 설정할 수 있다. 즉, 인터 매크로 블록의 경우 인트라모드가 거의 최적의 모드로 발생하지 않기 때문에 인트라모드를 항상 체크하는 것은 많은 계산적 중복성을 초래하게 된다. 이에 제안된 본원 발명의 고속 모드 결정 방법에서는 인터모드들에서 결정된 최적의 모드의 비트왜곡값이 주어진 양자화 계수를 고려해서 결정된 임계값 이하인 경우에는 인트라모드 검색을 생략한다.
따라서, 상술한 S19 과정의 처리과정 이 후 인트라모드 조건을 만족하는 지를 판단한다. 이때의 인트라모드 조건은 상술한 바와 같이 인터 모드결정 과정을 통해 얻어진 최종 인터모드로 얻어진 비용 값이 상기 스킵모드 결정을 위한 임계값 의 설정을 위해 얻어지는 주어진 양자화 파라미터를 기반으로 얻어지는 평균 비트율 왜곡 값보다 3배 이상인 경우 등으로 설정될 수 있다(S20).
S20 과정의 판단 결과 인트라모드 조건을 만족하지 않는 경우에는 모드 결정 과정을 종료한다(S21).
이와 달리 S20 과정의 판단 결과 인트라모드 조건을 만족하는 경우에는 인트라모드 비트 왜곡을 계산한 후 최종 인트라모드를 결정한 후 처리과정을 종료한다(S22, S23)
상술한 바와 같은 본원 발명의 처리과정을 소프트웨어로 구현하는 경우에 있어서 SIMD 명령어를 이용하여 최적화할 수 있다.
인텔 펜티엄 아키텍처에서부터는 SIMD(single instruction multiple data), 즉 여러 데이터에 대해 한 명령어로 같은 연산을 동시에 수행하는 명령어가 지원되어 MMX, SSE, SSE2 라는 이름으로 제공되고 있다. 이같은 명령어는 data-level parallelism이 크게 존재하는 멀티미디어 응용에서 쓰이기에 효과적이다. 따라서 본원 발명이 적용되는 소프트웨어에서는 SIMD명령어를 적용하는 것이 바람직하다. 이 경우, 본원 발명이 적용되는 소프트웨어는 CPU에 따라 최적의 성능을 갖도록 DCT 변환, 디 블록킹 필터, 움직임 예측 및 보상과정 및 양자화 과정에 대해서 MMX, SSE, SSE2 명령어를 사용하여 반복적인 계산과정을 고속으로 처리할 수 있도록 한다.
상술한 본원 발명의 H.264 고속 모드결정방법은 스킵(SKIP) 모드를 조기에 검색할 때 주변에 있는 매크로 블록들의 모드정보를 이용하여 조기에 스킵(SKIP) 조건을 만족하는 매크로 블록에 한하여 모드결정과정을 종료하도록 하였다. 또한 인터 화면인 경우에는 인트라모드가 거의 발생하지 않으며 사실상 압축효율에 크게 영향을 주지 않으므로 인터 화면에 대해서는 인트라모드 검색을 부분적으로 수행하도록 하였다. 인터모드들 간의 검색에서도 스킵(SKIP)모드와 16x16모드, 16x8, 8x16모드, 8x8모드등을 계층적으로 체크하여 모든 모드를 다 체크하지 않고 조기에 주어진 임계값을 만족하면 중간에 모드결정과정을 종료하도록 하였다.
또한 상술한 본원 발명은 H.264 기반의 실시간 인코딩을 신속하게 처리할 수 있도록 단순 반복되는 계산이 요구되는 DCT 변환, 디 블록킹 필터, 움직임 예측 및 보상과정 및 양자화 과정에 대해서 SSE2, SSE3 명령어를 이용한 SIMD 명령어를 사용하여 기존의 H.264 비디오 참조 소프트웨어에 구현된 움직임 예측 및 모드결정과정 알고리즘을 새롭게 구현하는 것에 의해 H.264 인코딩을 위한 모드 결정을 고속으로 수행할 수 있도록 하였다.
상술한 바와 같은 특징을 가지는 본원 발명을 통해 얻어진 H.264 인코더는 압축성능을 그대로 유지하면서, Pentium-4 3.6GHz PC를 기준으로 VGA급 영상을 초당 35프레임에서 45프레임까지 인코딩할 수 있음을 확인하였다.
상술한 바와 같은 구성을 가지는 본원 발명은 H.264 모드 선택 과정에서 모드 선택 절차를 최소화하고, H.264 인코딩을 위한 소프트웨어에 SIMD 명령어를 적 용하는 것에 의해 H.264의 계산 속도를 현저히 향상시키며, 이에 의해 H.264 인코더의 성능을 현저히 향상시키는 효과를 제공한다.

Claims (5)

  1. H.264 인코딩을 위한 모드 선택에 있어서,
    모드 결정 대상 블록의 주변에 이미 모드가 결정된 매크로 블록 중 적어도 하나 이상이 스킵(SKIP)모드로 되어있는 경우 스킵(SKIP)모드에 대한 비트율 왜곡값을 계산하고 주어진 양자화 파라미터값을 고려하여 스킵(SKIP)모드에 대해서 비트율 왜곡값이 주어진 임계값 이하인 경우 모드 결정 과정을 종료하는 조건인 스킵(SKIP) 모드 조건을 적용하여 스킵모드를 결정하는 스킵(SKIP)모드결정과정과;
    상기 스킵(SKIP) 모드 조건을 만족하지 않는 경우 인터모드를 결정하는 인터모드 결정 과정과;
    상기 인터모드 결정 과정 이후, 인트라모드 조건을 만족하는 지를 판단하여 인트라모드 조건을 만족하는 경우 인트라모드를 결정하는 인트라모드 결정 과정을 포함하여 이루어지는 것을 특징으로 하는 H.264 모드 결정 방법.
  2. 청구항 1에 있어서, 상기 스킵모드 결정과정은,
    상기 스킵(SKIP) 모드 조건이 만족되지 않으면 16*16모드에 대한 비트 왜곡 값을 계산하여 상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 적을 경우 스킵(SKIP)로 결정하고 모드결정과정이 조기에 종료되는 과정인 것을 특징으로 하는 H.264 모드 결정 방법.
  3. 청구항 1에 있어서, 상기 인터모드 결정 과정은,
    상기 스킵(SKIP)모드에 대한 비트-왜곡값이 16*16모드에 대한 비트율 왜곡값보다 큰 경우 P8*8 모드에 대한 비트율 왜곡값을 구한 후 구해진 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 작은 경우에는 모드를 P8*8 모드로 결정한 후 모드 결정과정을 종료하는 P8*8 모드 결정 과정과;
    상기 P8*8 모드에 대한 비트율 왜곡값이 16*16 + C 값보다 큰 경우 16*8, 8*16 모드로 모드를 결정한 후 비트왜곡을 계산하는 16*8·8*16 모드 결정과정;을 포함하여 이루어지는 것을 특징으로 하는 H.264 모드 결정 방법.
  4. 청구항 1에 있어서, 상기 인트라모드 결정과정은,
    상기 인터모드 결정 과정 이후, 상기 인트라모드 조건을 만족하는 지를 판단하는 인트라모드 결정 판단 과정과;
    상기 인트라모드 결정 판단 과정의 판단 결과 인트라모드 조건을 만족하는 경우 인트라모드의 비트 왜곡을 계산하여 인트라모드를 설정하고, 만족하지 않는 경우 인트라모드의 결정을 수행하지 않고 처리과정을 종료하는 상세 인트라모드 결정 과정;을 포함하여 이루어지는 것을 특징으로 하는 H.264 모드 결정 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 처리과정은 SIMD(single instruction multiple data) 명령어를 적용하여 컴퓨터로 읽을 수 있는 기록 매체로 구현되는 것을 특징으로 하는 H.264 모드 결정 방법.
KR1020070039500A 2007-04-23 2007-04-23 H.264 고속 모드 결정 방법 KR100771641B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070039500A KR100771641B1 (ko) 2007-04-23 2007-04-23 H.264 고속 모드 결정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070039500A KR100771641B1 (ko) 2007-04-23 2007-04-23 H.264 고속 모드 결정 방법

Publications (1)

Publication Number Publication Date
KR100771641B1 true KR100771641B1 (ko) 2007-10-30

Family

ID=38816372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070039500A KR100771641B1 (ko) 2007-04-23 2007-04-23 H.264 고속 모드 결정 방법

Country Status (1)

Country Link
KR (1) KR100771641B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051331B1 (ko) 2009-05-08 2011-07-22 중앙대학교 산학협력단 다이나믹 임계치를 이용한 적응적 고속 모드 결정방법
WO2011108879A2 (ko) * 2010-03-05 2011-09-09 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
CN107409218A (zh) * 2015-03-06 2017-11-28 高通股份有限公司 使用块分割的快速视频编码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050026318A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 인트라 스킵 모드를 포함하는 비디오 인코딩_디코딩 장치및 방법
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치
KR20060016960A (ko) * 2004-08-19 2006-02-23 전자부품연구원 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050026318A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 인트라 스킵 모드를 포함하는 비디오 인코딩_디코딩 장치및 방법
KR20050053297A (ko) * 2003-12-02 2005-06-08 학교법인 성균관대학 동영상 부호화 방법 및 장치
KR20060016960A (ko) * 2004-08-19 2006-02-23 전자부품연구원 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051331B1 (ko) 2009-05-08 2011-07-22 중앙대학교 산학협력단 다이나믹 임계치를 이용한 적응적 고속 모드 결정방법
WO2011108879A2 (ko) * 2010-03-05 2011-09-09 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
WO2011108879A3 (ko) * 2010-03-05 2012-01-12 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
US9232234B2 (en) 2010-03-05 2016-01-05 Sk Telecom Co., Ltd. Video coding device, video coding method thereof, video decoding device, and video decoding method thereof
CN107409218A (zh) * 2015-03-06 2017-11-28 高通股份有限公司 使用块分割的快速视频编码方法

Similar Documents

Publication Publication Date Title
RU2700396C1 (ru) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений, способ декодирования изображений и устройство прогнозирования изображений
RU2642356C1 (ru) Устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений
KR101246294B1 (ko) 영상의 인트라 예측 부호화, 복호화 방법 및 장치
CN105959706B (zh) 图像编码装置和方法、以及图像译码装置和方法
KR100739714B1 (ko) 인트라 예측 모드 결정 방법 및 장치
US8204136B2 (en) Image encoding apparatus
WO2010001918A1 (ja) 画像処理装置および方法、並びにプログラム
WO2010131601A1 (ja) 画像処理装置および方法、並びにプログラム
US20080069211A1 (en) Apparatus and method for encoding moving picture
JP2009094828A (ja) 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法
JP2010508684A (ja) イントラ符号化選択によるビデオ符号化
CN102077598A (zh) 用于视频编码器中的计算有效的帧内模式预测的设备和方法
JP2006222968A (ja) 画面間又は画面内符号化モードの動画像符号化方法及び装置
US8290041B2 (en) Communication terminal
CN111586405B (zh) 一种多功能视频编码中基于alf滤波的预测模式快速选择方法
JP2007013298A (ja) 画像符号化装置
KR100845303B1 (ko) 고속 부호화를 위한 되먹임 구조를 가진 동영상 압축부호화 장치 및 최적 모드 결정 방법
KR100677118B1 (ko) 움직임 추정 방법 및 그 장치
JP4994877B2 (ja) ビデオのフレームシーケンスにおけるマクロブロックの符号化モードを選択する方法及びシステム
KR20070077609A (ko) 인트라 예측 모드 결정 방법 및 장치
KR100771641B1 (ko) H.264 고속 모드 결정 방법
KR100771640B1 (ko) 고속 모드 결정 기능을 구비한 h.264 인코더
KR20080097673A (ko) 모션 벡터 탐색 방법
KR20230029717A (ko) 비디오 분할 블록의 복호화 방법
JP2005268879A (ja) 画像符号化方法およびその装置

Legal Events

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

Payment date: 20121011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141024

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151023

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161212

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13