KR20100094759A - 동영상 부호화의 연산 복잡도 제어 방법 및 장치 - Google Patents

동영상 부호화의 연산 복잡도 제어 방법 및 장치 Download PDF

Info

Publication number
KR20100094759A
KR20100094759A KR1020090013895A KR20090013895A KR20100094759A KR 20100094759 A KR20100094759 A KR 20100094759A KR 1020090013895 A KR1020090013895 A KR 1020090013895A KR 20090013895 A KR20090013895 A KR 20090013895A KR 20100094759 A KR20100094759 A KR 20100094759A
Authority
KR
South Korea
Prior art keywords
complexity
level
complexity level
current frame
mode
Prior art date
Application number
KR1020090013895A
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 KR1020090013895A priority Critical patent/KR20100094759A/ko
Publication of KR20100094759A publication Critical patent/KR20100094759A/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 동영상 부호화의 연산 복잡도 제어 방법 및 장치에 관한 것이다. 본 발명의 방법은, 동영상 부호화의 연산 복잡도 제어 방법에 있어서, 현재 프레임을 구성하는 매크로 블록들 각각의 복잡도 레벨을 설정하는 과정과, 상기 설정된 복잡도 레벨에 따라 상기 현재 프레임의 전체 복잡도를 계산하는 과정과, 상기 계산된 전체 복잡도가 미리 결정된 목표 복잡도보다 큰 경우, 상기 설정된 복잡도 레벨을 조절하는 과정을 포함한다.
동영상 부호화, 연산 복잡도, 복잡도 레벨

Description

동영상 부호화의 연산 복잡도 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING COMPUTATIONAL COMPLEXITY OF VIDEO ENCODING}
본 발명은 동영상 부호화 방법 및 장치에 관한 것이다. 더 상세하게는, 동영상 부호화 이전에 현재 프레임의 전체 복잡도를 예측하여, 동영상 부호화의 연산 복잡도를 제어하기 위한 방법과 장치에 관한 것이다.
최근 통신 기술의 발달과 함께, 이동 통신 시스템에서도 동영상을 실시간으로 송수신할 수 있다. 이동 통신 시스템에서 고품질의 동영상을 송수신하기 위해서는 이동 통신 시스템의 고속화와 동영상 압축 기술이 중요한 요소 중의 하나이다. 즉, 이동 통신 시스템을 통하여 송수신하기 이전에 고용량의 동영상 데이터를 얼마나 효율적으로 압축하느냐는 매우 중요한 문제이다.
상기 동영상 압축의 기본적인 개념은 원본 영상 데이터에서 공간적, 시간적으로 중복되는 데이터를 제거하는 것이다. 인트라 모드(Intra mode)는 공간적인 중복성을 제거하는 방식, 즉, 현재 프레임에서 소정 크기의 매크로 블록 내에 있는 화소 간의 중복성을 제거하는 방식이다. 한편, 인터 모드(Inter mode)는 시간적인 중복성을 제거하는 방식, 즉, 인접한 두 프레임 내의 대응하는 매크로 블록 간의 움직임 추정을 통하여, 이전 프레임의 매크로 블록의 차이만을 추출하는 방식이다. 참고로, 상기 매크로 블록이란 소정 크기로 설정된 블록들의 집합으로서, 하나의 프레임은 복수의 매크로 블록으로 구성된다. 한편, 대표적인 영상 압축기술로는 MPEG, H.26x 등의 압축 표준이 있으면, 최근에는 H.264 표준이 우수한 압축 성능으로 주목받고 있다.
상기, H.264 표준은 4x4에서부터 16x16까지의 다양한 크기의 매크로 블록을 사용하여 가변 매크로 블록에 의하여 부호화하는데, 종래의 일반적인 영상 압축 기술보다 더욱 정교하게 움직임 보상을 할 수 있어 부호화 성능을 크게 향상시킬 수 있다.
도 1은 H.264 의 매크로 블록을 나타낸 도면이다.
H.264의 매크로블록(macroblock)은 4x4에서부터 16x16에 이르는 다양한 크기를 갖는다. 시간적 압축을 위한 움직임 추정에 적용되는 인터 모드(100)에서는 SKIP, P16x16, P16x8, P8x16과 P8x8모드가 사용될 수 있다. 한편, 상기 P8x8 모드는 매크로 블록을 구성하는 블록들 각각에 또 다시 8x8, 8x4, 4x8, 4x4 블록 중의 하나가 선택될 수 있는 계층적 구조를 가진다. 공간적 압축을 위한 인트라 모드(110)에서는 I4MB와 I16MB 모드가 사용될 수 있다. 상기 I4MB 모드는 4x4 블록 크기의 공간 예측에 사용되고, 상기 I16MB 모드는 16x16블록 크기의 공간 예측에 사용된다. 한편, 상기 인터 모드(100) 및 인트라 모드(110)에서는 매크로 블록을 사용할지를 결정할 때, 부호화 효율을 고려하여 비트율-왜곡 성능이 가장 좋은 매 크로 블록을 선택하는 가변 블록 방식이 사용된다. 이렇게 동영상 부호화 시에 가변 매크로 블록의 크기에 따라 움직임 추정을 수반하기 때문에 부호화 시의 복잡도가 증가하는 문제점이 있다. 특히, 연산, 저장 등을 위한 자원이 제한되어 있는 휴대 기기 상에서 고품질의 영상을 실시간으로 구현하고, 부호화 효율을 적정 수준으로 유지하기 위해서는 부호화 시의 복잡도를 제어하기 위한 기술이 필요하다.
따라서 본 발명은 동영상 부호화 시의 복잡도를 제어할 수 있는 방법 및 장치를 제공한다.
본 발명은 동영상 부호화에 적합한 매크로 블록 모드를 결정하기 위한 방법 및 장치를 제공한다.
본 발명은 후보 매크로 블록 모드를 결정하고, 부호화 시의 복잡도를 계산하는 방법 및 장치를 제공한다.
본 발명은 계산된 복잡도를 이용하여 적정 수준의 부호화 효율과 신속한 부호화를 위하여 복잡도를 조절할 수 있는 방법 및 장치를 제공한다.
본 발명의 방법은,
동영상 부호화의 연산 복잡도 제어 방법에 있어서, 현재 프레임을 구성하는 매크로 블록들 각각의 복잡도 레벨을 설정하는 과정과, 상기 설정된 복잡도 레벨에 따라 상기 현재 프레임의 전체 복잡도를 계산하는 과정과, 상기 계산된 전체 복잡도가 미리 결정된 목표 복잡도보다 큰 경우, 상기 설정된 복잡도 레벨을 조절하는 과정을 포함한다.
또한, 본 발명의 장치는,
동영상 부호화의 연산 복잡도 제어 장치에 있어서, 현재 프레임을 구성하는 매크로 블록들 각각의 복잡도 레벨을 설정하는 복잡도 레벨 설정부와, 상기 설정된 복잡도 레벨에 따라 상기 현재 프레임의 전체 복잡도를 계산하는 복잡도 계산부와, 상기 계산된 전체 복잡도가 미리 결정된 목표 복잡도보다 큰 경우, 상기 설정된 복잡도 레벨의 조절을 지시하는 복잡도 비교부와, 상기 복잡도 비교부의 지시에 따라 상기 복잡도 레벨을 조절하는 복잡도 레벨 조절부를 포함한다.
본 발명의 구성에 따른 대표적인 효과는 다음과 같다.
본 발명은 동영상 부호화에 있어서, 후보모드를 선택하고 이에 따른 복잡도를 사전에 계산하고, 그 결과가 목표 복잡도를 초과한 경우, 동영상 부호화에 앞서 복잡도를 제어하여 부호화의 속도 및 부호화 효율을 원하는 수준으로 유지할 수 있도록 한다.
특히, 복잡도 제어 수준에 따라 실시간으로 동영상 부호화가 수행되어야 하는 이동 단말에서 동영상 부호화의 품질을 향상시키고, 전력 소모를 최소화하여 사용도 만족도를 높일 수 있다.
첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
먼저 본 발명의 기본적인 개념에 대하여 설명한다. 본 발명은 영상 부호화에 앞서 현재 프레임의 특성에 따라 현재 프레임의 연산 복잡도(이하 "복잡도"로 약칭함)를 계산하고, 만약 현재 프레임의 전체 복잡도가 목표 복잡도보다 크다면 현재 프레임의 복잡도 레벨을 제어하여 상기 현재 프레임의 전체 복잡도가 상기 목표 복잡도보다 낮아지도록 하는 것이다.
구체적으로, 본 발명은 현재의 영상 프레임(이하 "현재 프레임")을 구성하는 매크로 블록들 각각에 대하여 가능한 후보 매크로 블록 모드(이하 "후보모드")를 결정하고, 상기 결정된 후보모드들과 소정의 부호화 파라미터(후술하는 "부화소 움직임 탐색 횟수")를 이용하여 매크로 블록별로 복잡도 레벨을 설정한다. 이후, 상기 매크로 블록별 복잡도 레벨에 따라 현재 프레임에 대한 전체 복잡도를 계산한다. 만약 상기 계산된 복잡도가 미리 결정된 목표 복잡도보다 큰 경우에는 상기 초기 복잡도 레벨을 순차적으로 감소시켜서 영상 프레임의 복잡도가 목표 복잡도 이하가 될 수 있도록 한다.
이하에서 본 발명의 실시예를 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 동영상 부호화 장치의 블록도이다. 상기 동영상 부호화 장치는 H.264 방식에서 적용되는 경우를 예로 들어 설명한다. 다만, 이것이 본 발명을 H.264 방식이 적용되는 경우로만 한정하는 것이 아님은 물론이다.
부호화 장치(200)에 입력되는 신호는 "목표 복잡도" 신호와 "영상 프레임" 신호이다. 상기 목표 복잡도는 복잡도 제어기(201)로 입력되고, 상기 영상 프레임은 미리 결정된 매크로 블록 단위로 복잡도 제어기(201), 감산기(203), 움직임 추정기(205)로 각각 입력된다.
복잡도 제어기(201)는 현재 프레임을 구성하는 매크로 블록들 각각에 대한 후보 매크로 블록 모드(이하 "후보모드")와 "부화소 움직임 탐색 횟수"의 조합으로 구성되는 복잡도 레벨에 따라 현재 프레임의 전체 복잡도 레벨을 순차적으로 조정하여 상기 복잡도 레벨에 따른 현재 프레임의 전체 복잡도가 목표 복잡도 이하의 값이 되도록 한다. 한편, 복잡도 제어기(201)는 이렇게 조정된 복잡도 레벨일 때의 후보모드를 매크로블록 모드결정기(209)로 전달하고, 부화소 움직임 탐색 횟수를 움직임 추정기(205)로 전달한다. 상기 복잡도 제어기(201)의 동작에 대해서는 도 3을 참조하여 상세히 후술하기로 한다.
움직임 추정기(205)는 상기 복잡도 제어기(201)에서 전달받은 움직임 탐색 횟수 정보에 따라 프레임 메모리(213)에 저장된 참조 영상 중 적어도 하나의 영상을 제공받아, 상기 입력된 영상 프레임에 대하여 매크로 블록 단위의 움직임 추정을 수행하고, 그 결과에 따라 움직임 벡터(motion vector)와 참조영상을 나타내는 인덱스(index) 데이터를 움직임 보상기(211)로 전달한다.
움직임 보상기(211)는 상기 움직임 추정기(205)로부터 전달받은 인덱스 데이터에 따라 움직임 보상값을 출력한다. 매크로블록 모드 결정기(209)는 복잡도 제어기(201)에서 출력된 후보 매크로블록 모드들 중 최적의 모드를 결정하고 모드 정보를 나타내는 인덱스(index) 데이터를 출력한다.
감산기(203)는 움직임 보상기(211)로부터 입력된 매크로블록에 대응하는 참조 영상 내의 영상데이터를 입력받아 입력된 프레임의 매크로 블록과 감산 연산을 수행하여 잔차 신호(residual signal)를 잉여데이터 부호화부(207)로 출력한다. 상기 잉여데이터 부호화부(207)는 상기 잔차 신호에 대해 DCT 변환 및 양자화 연산을 수행하여 그 결과를 엔트로피 부호화부(219)로 전달한다. 상기 엔트로피 부호화부(219)는 상기 전달받은 신호를 이용하여 압축된 스트림 신호를 생성한다. 한편, 잉여데이터 복호화부(217)는 상기 잉여데이터 부호화부(207)의 출력신호에 대한 복호화를 수행한다. 상기 복호화된 신호는 상기 움직임 보상기(211)의 출력 신호와 가산기(215)에서 가산되어 프레임 메모리(213)에 저장된다.
도 3은 본 발명의 실시예에 따른 동영상 부호화 장치에서 복잡도 제어기의 동작을 설명하는 도면이다. 복잡도 제어기는 후보모드 선택부(304), 복잡도레벨 설정부(305), 복잡도 계산부(307), 복잡도 비교부(309), 복잡도레벨 조절부(311)를 포함한다.
후보모드 선택부(304)는 소정의 방식을 통하여 매크로 블록에 대해서 가능한 후보모드를 결정하여 이를 복잡도레벨 설정부(305)로 전달한다. 이를 상세히 설명하면 다음과 같다.
후보모드 선택부(304)는 블록판단부(301)와 후보모드 추정부(303)를 포함한다. 프레임은 미리 결정된 크기의 매크로 블록 단위로 후보모드 선택부(304)에 입력되는데, 블록 판단부(410)는 입력된 매크로 블록에 대하여 거대 블록 계속성(Large Block Consistency: LBC) 값과 제로 모션 계속성(Zero Motion Consistency: ZMC) 값을 계산하고 상기 계산된 LBC값 및 ZMC 값을 이용하여 소정의 방식을 통하여 LBCS와 ZMCS 를 구한다. 상기 LBC, ZMC 및 LBCS와 ZMCS에 대해서는 후술하기로 한다. 한편, 후보모드 추정부(303)는 상기 LBCS와 ZMCS에 따라 현재 프레임을 구성하는 모든 매크로 블록들 각각에 대해서 가능한 후보모드들을 결정한다. 상기 후보모드 추정부(303)가 후보모드를 결정하는 방식은 하기 <표 1>에 예시한다.
Figure 112009010357582-PAT00001
상기 <표 1>을 참조하면, 임의의 매크로 블록에 대한 블록 판단부(301)의 판단 결과 ZMCS가 Low이고, LBCS가 High라면, 후보모드 추정부(303)는 상기 매크로 블록에 대한 후보모드를 SKIP 모드와 P16X16 모드로 결정한다. 상기 <표 1>에서 상기 ZMCS 및 LBCS의 레벨에 따라 후보모드의 개수가 달라짐을 볼 수 있다. 이는 ZMCS 및 LBCS가 매크로 블록의 영상 특성(일 예로, 움직임이 많은 영상등)을 알려주는 지표이기 때문에, 해당 매크로 블록의 영상 특성에 따라 후보모드의 개수를 달리 설정하는 것이다.
한편, 복잡도레벨 설정부(305)는 후보모드 선택부(304)로부터 전달받은 매크로블록들에 대한 "후보모드"의 정보와 미리 결정된 "부화소 움직임 탐색"의 횟수에 따라 매크로 블록들 각각에 대한 복잡도레벨을 설정한다. 참고로 상기 "부화소 움직임 탐색"이란 영상 부호화의 정확도를 조절하는 파라미터이다.
이해를 돕기 위하여 상기 부화소 움직임 탐색에 대하여 간략히 설명한다. 상기 부화소 움직임 탐색은 매클로 블록에 대한 정수(integer) 화소에 대한 움직임 추정 이후에, 더 정확한 추정을 위하여 1/2화소(half pel) 및 1/4화소(quadra pel)에 대해서 움직임 추정을 수행하는 것을 말한다. 통상 (hpel, qpel)=(n, m)으로 표기하는데, 이는 1/2화소에 대해서 n번, 1/4화소에 대해서 m번의 움직임 추정을 수행함을 의미한다.
한편, 상기 부화소 움직임 탐색은 "부화소 움직임 추정 반복(Subpel motion estimation iteration)" 단계와 "최종 부화소 움직임 추정(Subpel motion estimation refinement)" 단계로 분류된다. 매크로 블록에 대한 여러 개의 후보모드들에 대해 "부화소 움직임 추정 반복" 단계를 수행하여 최적의 매크로블록 모드를 결정할 수 있다. 이렇게 결정된 최적의 매크로블록 모드에 대해서 부호화의 정확성을 높이기 위하여 "최종 부화소 움직임 추정" 단계를 추가로 수행한다.
일 예로, "부화소 움직임 추정 반복" 단계에서 (hpel, qpel)=(1,1)로 설정되고, "최종 부화소 움직임 추정" 단계에서 (hpel, qpel)=(0,1)로 설정되었다면, 이는 1/2화소에 대하여 1회의 움직임 추정과 1/4화소에 대해서 1회의 움직임 추정을 수행하여 최적의 매크로블록 모드를 결정한 이후, 상기 결정된 최적의 매크로블록 모드에 대해 1/4화소에 대해서 1회의 움직임 추정을 수행한다.
한편, 상기 복잡도레벨 설정부(305)가 상기 후보모드 정보와 부화소 움직임 추정에 따라 매크로 블록에 대한 복잡도레벨을 설정하는 방식을 하기 <표 2>에 예시한다.
Figure 112009010357582-PAT00002
상기 <표 2>에서 왼쪽 3개의 열은 상기 <표 1>과 동일한 것임을 볼 수 있다. <표 1>에서 상술한 바와 같이 해당 매크로 블록에 대한 블록 판단부(301)의 판단 결과 ZMCS 레벨이 Low이고 LBCS 레벨이 High라면, 후보모드 추정부(303)는 상기 해당 매크로 블록의 후보모드를 SKIP 모드와 P16X16 모드로 결정한다. 한편, 복잡도레벨 설정부(305)가 해당 매크로블록에 대한 "부화소 움직임 탐색"을 위하여 "부화소 움직임 추정 반복" 단계에서 (hpel, qpel)=(1,2)로 설정하고, "최종 부화소 움직임 추정" 단계에서 (hpel, qpel) =(0,1)로 설정하였다면 해당 매크로 블록의 복잡도 레벨은 10으로 결정된다. 참고로 상기 <표 2>는 상기 "부화소 움직임 추정 반복" 및 "최종 부화소 움직임 추정"의 단계의 추정 횟수를 각각 (1,2)와 (0,1)로 설정한 때의 복잡도 레벨을 나타낸 것이며, 상기 "부화소 움직임 추정 반복" 및 "최종 부화소 움직임 추정"의 값을 다르게 설정한다면 복잡도 레벨도 다르게 결정될 것이다. 이는 상기 <표 2>에서 생략되었다.
이렇게 상기 복잡도레벨 설정부(305)는 상술한 바에 따라 현재 프레임의 모든 매크로 블록들 각각에 대한 초기 복잡도 레벨을 결정하고 이를 복잡도 계산부(307)로 출력한다. 이후, 상기 복잡도 계산부(307)는 현재 프레임의 전체 복잡도를 계산하고, 그 결과를 복잡도 비교부(305)로 전달한다. 현재 프레임의 전체 복잡도는 하기 <수학식 1> 및 <수학식 2>로 계산된다.
Figure 112009010357582-PAT00003
상기
Figure 112009010357582-PAT00004
는 복잡도 레벨이 gk번째 매크로블록의 복잡도를 나타내며,
Figure 112009010357582-PAT00005
는 복잡도 레벨 g에 대응하여 설정되는 가중치로서, 복잡도 레벨이 크면 더 큰 값으로 설정되는 것이 일반적이다. 상기
Figure 112009010357582-PAT00006
는 가장 높은 복잡도 레벨을 가지는 매크로 블록의 복잡도이다. 상기 <수학식 1>을 이용하면 하나의 매크로 블록의 복잡도를 계산할 수 있다.
Figure 112009010357582-PAT00007
상기
Figure 112009010357582-PAT00008
는 현재 부호화 프레임의 전체 복잡도 값으로 N개의 매크로블록 각각의 복잡도를 합한 값이다.
상기 <수학식 2>을 이용하여 상기 <수학식 1>에 의해 계산된 각각의 매크로 블록의 복잡도를 모두 합하여 현재 프레임의 전체 복잡도를 구할 수 있다. 이렇게 구해진 전체 프레임의 복잡도는 복잡도 비교부(305)로 전달된다.
상기 복잡도 비교부(305)에는 목표 복잡도가 입력되며, 상기 복잡도 계산부(307)로부터 전달받은 현재 프레임의 전체 복잡도와 상기 목표 복잡도를 비교하고 그 결과를 복잡도레벨 조절부(307)로 출력하여 복잡도레벨 조절부(307)로 하여금 현재 프레임의 전체 복잡도를 조절할지 여부를 지시한다. 즉, 상기 현재 프레임의 전체 복잡도가 상기 목표 복잡도보다 큰 경우 상기 복잡도단계 조절부(307)에게 복잡도 레벨의 단계적 조절을 지시한다. 반면, 상기 현재 프레임의 전체 복잡도가 상기 목표 복잡도보다 크지 않은 경우에는 복잡도 레벨의 조절을 지시하지 않는다.
복잡도레벨 조절부(307)는 상기 복잡도 비교부(305)로부터 비교 결과를 포함하여 복잡도 조절을 지시받으면, 현재 프레임의 전체 복잡도가 상기 목표 복잡도 이하가 되도록 복잡도 레벨을 순차적으로 감소시킨다. 또한, 상기 조절의 결과 현재 프레임의 전체 복잡도가 목표 복잡도 이하가 될 경우, 이 때의 복잡도 레벨에 따른 부화소 움직임 추정 횟수 정보를 도 2의 움직임 추정기(205)로 전달한다. 또한, 이 때의 복잡도 레벨에 따른 상기 후보모드 정보를 도 2의 모드 결정기(209)로 전달한다. 복잡도레벨 조절부(311)가 복잡도 레벨을 조절하는 방식의 예를 하기 <표 3>과 <표 4>를 참조하여 설명한다.
하기 <표 3>은 복잡도 레벨을 조절하기 위한 파라미터로 "후보모드 레벨"을 사용하는 경우를 예시한 것이다.
Figure 112009010357582-PAT00009
<표 3>을 참조하면, "후보모드 레벨"은 해당 매크로 블록의 후보모드의 개수에 따라 복잡도 레벨을 정한 것이다. 예를 들어, 임의의 매크로 블록의 후보모드가 SKIP 모드와 P16x16 모드라면 상기 매크로 블록의 후보모드 레벨은 1이 된다. 상기 <표 3>에 따라 현재 프레임을 구성하는 다수의 매크로 블록들을 각각의 후보모드 레벨을 결정할 수 있다. 만일 현재 프레임의 전체 복잡도가 목표 복잡도보다 크다면, 복잡도레벨 조절부(311)는 현재 프레임을 구성하는 매크로 블록들 중 후보모드 레벨이 가장 높은 매크로 블록들의 레벨을 한 단계 감소시키고, 이 결과를 복잡도 계산부(307)로 전달한다.
예를 들어, 현재 프레임이 1번 내지 5번까지의 5개의 매크로 블록으로 구성되고 이 중 1번 매크로 블록과 4번 매크로 블록의 후보모드 레벨이 6이라고 가정하자. 만일 상기 현재 프레임의 전체 복잡도가 목표 복잡도보다 크다면 복잡도레벨 조절부(311)는 상기 1번, 4번 매크로 블록의 후보모드 레벨을 5로 낮추고, 이 정보를 복잡도 계산부(307)로 전달한다. 복잡도 계산부(307)는 상기 1번, 4번 매크로 블록에 대한 후보모드를 상기 레벨 5에 해당하는 후보모드들로 다시 설정한 상태에서 현재 프레임의 전체 복잡도를 다시 계산한다. 이렇게 하면 상기 1번, 4번 매크로 블록의 후보모드의 개수가 복잡도 조절 전보다 적어지기 때문에 현재 프레임을 부호화할 경우 전체 복잡도는 감소할 것이다. 만일 이렇게 한번 후보모드 레벨을 한 단계 감소시킨 이후에도 전체 복잡도가 목표 복잡도보다 여전히 크다면, 복잡도 레벨 조절부(311)는 후보모드 레벨이 5단계인 모든 매크로 블록들의 레벨을 4단계로 감소시키는 방식으로 다시 한번 복잡도를 조절하고 이 과정은 전체 복잡도가 목표 복잡도 이하가 될 때까지 반복된다.
하기 <표 4>는 복잡도 레벨을 조절하기 위한 파라미터로 "부화소 움직임 탐색"을 사용하는 방식을 예시한 것이다. 상기 <표 3>은 후보모드 레벨을 복잡도 레벨로 사용한 예이고, <표 4>는 "부화소 움직임 탐색" 횟수를 복잡도 레벨로 사용한 예라는 차이가 있을 뿐이다.
Figure 112009010357582-PAT00010
상기 <표 4>를 참조하면, 부화소 움직임 탐색 레벨을 "부화소 움직임추정 반복" 횟수와 "최종 부화소움직임 추정" 횟수에 따라 복잡도 레벨을 설정하였다. 예를 들어, "부화소 움직임추정 반복" 단계의 (hpel, qpel)=(1,2)이고, "최종 부화소움직임 추정" 단계의 (hpel, qpel)=(0,1)이면 해당 매크로 블록의 부화소 움직임 탐색 레벨은 5단계가 된다. 상기 <표 4>에 따른 복잡도 조절 방식은 상기 <표 3>과 동일하므로 상세한 설명은 생략한다.
한편, 상기 <표 3>의 후보모드 레벨과 <표 4>의 부화소 움직임 탐색 횟수를 조합하여 복잡도 레벨을 더 정밀하게 조절할 수도 있다. 즉, 후보모드 레벨은 총 6단계로 분류되고, 부화소 움직임 탐색 레벨은 총 5단계로 분류되기 때문에, 양자를 결합하면, 총 30 단계로 구성되는 복잡도 레벨을 생성할 수 있다. 이는 도 4에 도시되었다.
도 4는 후보모드 레벨(MDlevel)과 부화소 움직임 추정 레벨(SMElevel)을 조합한 경우 평균 화질 열화와 복잡도를 나타내는 도면이다.
도 4를 참조하면, x축은 영상 부호화 평균 화질 열화 정도를 나타내고, y축은 복잡도를 나타낸다. 즉, 상기 6단계로 나누어진 후보모드 레벨(MDlevel)과 5단계로 나누어진 부화소 움직임 추정 단계(SMElevel)의 조합을 통하여 30(=6X5)단계의 평균 화질 열화(x축) 및 복잡도(y축)를 설정할 수 있다.
도 4에서 후보모드 레벨(MDlevel)과 부화소 움직임 추정 레벨의 실제 조합은 그래프 상의 마름모, 사각형, 삼각형 등의 도형들로 표시된 30개의 지점이다. 즉, 각각의 지점에서 y축의 좌표는 복잡도를 나타내고, x의 좌표는 평균 화질 열화를 나타낸다. 본 발명에서는 복잡도 레벨로서 상기 30개의 지점들의 정확한 좌표를 사용하지는 않고, 상기 30개의 좌표에 기초하여 복잡도 감소 대비 평균 화질 열화가 가장 최소가 될 수 있도록 하는 좌표들을 사용할 것이다. 이는 실선으로 표시되었다. 이 실선에 따라서 단계적으로 복잡도를 조절하면 복잡도 대비 최적의 화질을 유지할 수 있다.
도 4의 결과를 바탕으로 하여, 후보모드 레벨(MDlevel)과 부화소 움직임 추정 레벨(SMElevel)의 최적의 조합에 의한 복잡도 레벨(g)을 구성하였으며 이를 하기 <표 5>에 나타냈다. 한편, 복잡도 레벨 간 실제 얼만큼의 복잡도 차이가 있는지를 표시하기 위하여 정규화 복잡도도 같이 나타냈다.
Figure 112009010357582-PAT00011
복잡도 레벨 조절부(307)가 상기 <표 5>에 따라 복잡도를 단계적으로 조절하는 방법은 상기 <표 3> 및 <표 4>에 설명된 방식과 동일하므로 그 설명은 생략한다. 한편, <표 5>에서 정규화된 복잡도를 도 5에 도시하였다.
도 5은 후보모드 레벨(MDlevel)과 부화소 움직임탐색 레벨(SMElevel)을 조합하여 구성된 복잡도 레벨에 따른 정규화된 복잡도를 나타내는 도면이다.
도 5을 참조하면, x축은 복잡도 레벨(Complexity level)을 나타내며, y축은 상기 복잡도 레벨에 따른 정규화된 복잡도를 나타내며, 양자가 선형(linear) 관계임을 알 수 있다. 이 선형 관계를 일반화한 복잡도 계산식은 하기 <수학식 3>에 표시하였다. 하기 <수학식 3>는 상기 <수학식 1>을 일반화한 식이다.
Figure 112009010357582-PAT00012
상기 a와 b는 상기 선형 관계에 따른 상수값이며, g는 복잡도 레벨을 의미하며,
Figure 112009010357582-PAT00013
는 최대 복잡도 레벨을 갖는 매크로블록의 복잡도를 나타낸다. 본 발명에서 a=0.0529, b=0.1212으로 계산되었으며,
Figure 112009010357582-PAT00014
는 g=19인 매크로블록의 복잡도가 된다.
이상에서 본 발명에서 복잡도를 조절하기 위한 파라미터로서 후보모드 레벨, 부화소 움직임 탐색 레벨, 또는 상기 후보모드 레벨, 부화소 움직임 탐색 레벨을 조합한 복잡도 레벨이 사용한 예를 설명하였다. 그러나 이는 본 발명의 일 예일 뿐, 부호화 복잡도에 관계될 수 있는 어떠한 파라미터를 이용하여도 적절히 복잡도 단계를 설정함으로써 복잡도 조절의 파라미터로 사용될 수 있음을 밝혀 둔다.
이하에서는 앞서 설명된 후보모드 선택부(304)에서 후보모드를 선택하는 방식을 계산식을 중심으로 설명한다.
앞서 설명한 것처럼 도 3의 후보모드 선택부(304)의 블록 판단부(301)는 입력된 매크로 블록에 대하여 LBC 및 ZMC를 계산하고 상기 계산된 LBC 및 ZMC 에 따라 소정의 방식으로 LBCS와 ZMCS 를 구하고, 후보모드 추정부(303)는 상기 LBCS와 ZMCS에 따라 현재 프레임을 구성하는 모든 매크로 블록들 각각에 대해서 가능한 후 보모드를 결정한다. 상기 LBC, ZMC 및 LBCS와 ZMCS를 설명한다.
ZMC는 "제로 모션 계속성(Zero Motion Consistency)"이라는 명칭에서 알 수 있듯이, 해당 매크로 블록에 대한 움직임 벡터가 0 벡터(0,0)로 얼마나 계속하여 유지되었는가를 나타내는 값이다. 구체적으로 상기 ZMC는 하기 <수학식 4>로 표현된다.
Figure 112009010357582-PAT00015
상기
Figure 112009010357582-PAT00016
Figure 112009010357582-PAT00017
는 t번째 프레임의 (i,j) 매크로블록 내의 (n,m)블록에서 탐색된 움직임 벡터를 나타낸다. 이 때, ZMCt(n,m;i,j)의 초기값은 0으로 설정할 수 있다.
상기 <수학식 4>의 일 예로, 1번 프레임의 (i,j) 매크로블록 내의 (n,m)블록의 움직임 벡터가 (0,0)이면 ZMC1(n,m;i,j)=1이 되며, 2번 프레임의 (i,j) 매크로블록 내의 (n,m)블록의 움직임 벡터가 (0,0)이면 ZMC2(n,m;i,j)=2이 되고, 3번 프레임의 (i,j) 매크로블록 내의 (n,m)블록의 움직임 벡터가 (0,0)이 아니면 ZMC3(n,m;i,j)=0 된다. 결국 ZMCt(n,m;i,j)는 t번째 프레임까지 움직임 벡터가 연속 하여 (0,0)인 횟수를 나타낸다.
한편, 상기 ZMC가 구해지면, 이를 이용하여 ZMCS를 구한다. 상기 ZMCS는 하기 <수학식 5>로 표현된다.
Figure 112009010357582-PAT00018
상기 ZMCSt(i,j)는 (i, j)번째 매크로블록의 제로 모션 계속성의 정도(ZMC Score)를 나타낸다. 상기 <수학식 5>를 참조하면, (i, j)번째 매크로블록 안에 포함된 모든 블록들의 ZMC 값이 소정 임계치 이상일 경우 High의 값이 되고, 그렇지 않으면 Low의 값이 된다. 상기 예에서, (i, j)번째 매크로 블록이 4개의 블록, 즉, (1,1) 블록, (1,2) 블록, (2,1) 블록, (2,2) 블록으로 구성되어 있고, 상기 Tmotion=1 로 가정하자.
일 예로, t=1에서 상기 4개 블록의 움직임 벡터가 모두 0이라면, 모든 블록들의 ZMC 값은 1이된다. 이 경우 ZMCS1(i, j)=High가 될 것이다. 다른 예로, (2, 1) 블록의 움직임 벡터가 0이 아니라면 상기 <수학식 4>에 의하여 ZMC1(i, j, 2, 1)=0이 되고, 이 때는 ZMC 값(=0)이 Tmotion 값(=1) 이상이 되지 못한다. 따라서 모든 블 록들의 ZMC 값이 Tmotion 값 이상이 되지 못하므로 상기 <수학식 5>에 의할 때 ZMCS1(i, j)=Low가 될 것이다.
상기 예를 통해서 알 수 있듯이 이전의 영상 프레임들의 (i, j) 번째 매크로블록의 움직임 벡터가 소정 임계값 이상이라면 ZMCSt(i,j)는 High로 설정되며, 이는 움직임 벡터의 대부분이 (0,0)이란 의미는 (i,j) 번째 매크로블록은 움직임이 거의 없는 배경 영상임을 의미한다.
ZMCS가 High라는 것은 매크로 블록을 구성하는 블록의 움직임 벡터의 대부분이 (0,0)벡터임을 의미한다. 따라서 이 경우 상기 매크로 블록은 프레임 간에 움직임이 거의 없는 배경(background) 영상임을 나타낸다. 반면, ZMCS가 Low라는 것은 프레임 간의 움직임이 있는 영상임을 나타낸다. 다만, 어느 정도의 움직임이 없는 영상을 배경 영상으로 결정할 지 여부는 상기 Tmotion의 값을 변화시킴에 따라 다르게 설정할 수 있다.
한편, 상기 LBC는 "거대 블록 계속성(Large Block Consistency)"이라는 명칭에서 알 수 있듯이, 해당 매크로 블록에 대한 현재 시점 이전에 영상 부호화를 수행 시 사용된 최적의 매크로 블록 모드가 "블록 사이즈가 가장 큰 모드"로 얼마나 계속하여 유지되었는가를 나타내는 값이다. 상기 블록 사이즈가 가장 큰 모드란 SKIP 모드 P16X16 모드를 의미한다. 참고로 상기 두 모드의 경우 움직임 보상 시에 사용되는 매크로 블록 사이즈는 16X16이다. 구체적으로 상기 LBC는 하기 <수학식 6>으로 표현된다.
Figure 112009010357582-PAT00019
상기 bestModet(i,j)는 t번째 프레임의 (i,j) 매크로블록에 대해 결정된 최적의 매크로 블록 모드를 나타내고, LBCt(i,j)는 t번째 프레임까지 해당 매크로블록에 대한 최적의 매크로 블록 모드가 연속하여 SKIP 모드 또는 P16x16 모드인 횟수를 나타낸다. LBCt(i,j)의 초기값은 0으로 설정할 수 있다.
일 예로, 1번 프레임의 (1,1) 매크로 블록에 대한 최적 모드가 P16X16 모드라면, LBC1(1.1)=1이되고, 2번 프레임의 (1,1) 매크로 블록에 대한 최적 모드가 SKIP 모드라면 LBC2(1.1)=1+1=2가 된다. 3번 프레임의 (1,1) 매크로 블록에 대한 최적 모드가 P16X8 모드라면 LBC3(1.1)=0의 값을 가질 것이다.
한편, 상기 LBC가 구해지면, 이를 이용하여 LBCS를 구한다. LBCS는 하기 <수학식 7>로 표현된다.
Figure 112009010357582-PAT00020
상기 LBCSt(i,j)는 (i,j)번째 매크로블록의 거대 블록 계속성의 정도(LBC Score)를 나타낸다. 즉, 현재 매크로 블록의 LBC 값을 소정 임계값(TLBC2 및 TLBC1)과 비교하고 그 결과에 따라 High, Medium, Low로 정할 수 있다. 상기 임계값은 시스템에 따라 다르게 설정될 수 있는 값이다.
도 6은 본 발명의 실시예에 따른 부호화 복잡도 제어 방법을 설명하는 흐름도이다.
601 단계에서는 현재 프레임을 구성하는 매크로 블록들 각각에 대한 후보모드를 결정한다.
603 단계에서는 상기 결정된 매크로 블록들에 대해 후보모드와 미리 결정된 부화소 움직임 탐색 횟수에 따라 초기 복잡도 레벨을 결정한다. 상기 초기 복잡도 레벨은 상기 <표 2>에 따라 결정된다. 605 단계에서는 상기 후보모드에 따라 현재 프레임의 전체 복잡도를 계산한다. 복잡도 계산은 상기 <수학식 2>로 계산된다. 이후, 607 단계에서 상기 계산된 현재 프레임의 전체 복잡도와 미리 결정된 목표 복잡도를 비교하여, 현재 프레임의 전체 복잡도가 목표 복잡도보다 크면 709 단계로 진행하고, 작거나 같다면 611 단계로 진행한다.
611 단계에서는 전체 복잡도가 목표 복잡도보다 작거나 같은 상태이므로 복잡도 레벨의 조절이 필요하지 않다. 따라서 현재의 복잡도 레벨에 따른 후보모드 및 부화소 움직임 탐색 횟수를 최종적인 후보모드 및 움직임 추정 탐색 횟수로 결정한다.
609 단계에서는 현재 프레임의 전체 복잡도가 목표 복잡도보다 크므로 복잡도 레벨의 조절이 필요하다. 따라서 현재 프레임을 구성하는 모든 매크로 블록 중 가장 높은 복잡도를 갖는 매크로 블록들의 복잡도 레벨을 감소시킨다. 통상 복잡도 레벨을 한 단계씩 감소시키는 것이 일반적일 것이나, 전체 복잡도와 목표 복잡도가 일정 정도 이상으로 차이가 크다면 두 단계 이상씩 감소시킬 수도 있다. 이렇게 감소된 복잡도 레벨에 따라 다시 605 단계로 되돌아가서 상기 감소된 복잡도 레벨에 따라 현재 복잡도를 다시 계산한다. 이후 607 단계에서 전체 복잡도가 목표 복잡도보다 작거나 같다면 611 단계로 진행하여 최종적인 후보모드와 부화소 움직임 추정 횟수가 결정될 것이다.
한편, 613 단계에서는 상기 최종적인 후보모드와 부화소 움직임 추정 횟수에 따라서 ZMC 값과 LBC 값을 갱신한다.
도 1은 H.264 의 매크로 블록을 나타낸 도면,
도 2는 본 발명의 실시예에 따른 동영상 부호화 장치의 블록도,
도 3은 본 발명의 실시예에 따른 동영상 부호화 장치에서 복잡도 제어기의 동작을 설명하는 도면,
도 4는 후보모드 레벨(MDlevel)과 부화소 움직임 추정 레벨(SMElevel)을 조합한 경우 평균 화질 열화와 복잡도를 나타내는 도면,
도 5은 후보모드 레벨(MDlevel)과 부화소 움직임탐색 레벨(SMElevel)을 조합하여 구성된 복잡도 레벨에 따른 정규화된 복잡도,
도 6은 본 발명의 실시예에 따른 부호화 복잡도 제어 방법을 설명하는 흐름도.

Claims (10)

  1. 동영상 부호화의 연산 복잡도 제어 방법에 있어서,
    현재 프레임을 구성하는 매크로 블록들 각각의 복잡도 레벨을 설정하는 과정과,
    상기 설정된 복잡도 레벨에 따라 상기 현재 프레임의 전체 복잡도를 계산하는 과정과,
    상기 계산된 전체 복잡도가 미리 결정된 목표 복잡도보다 큰 경우, 상기 설정된 복잡도 레벨을 조절하는 과정을 포함하는 동영상 부호화의 연산 복잡도 제어 방법.
  2. 제 1항에 있어서, 상기 복잡도 레벨을 조절하는 과정은,
    상기 현재 프레임의 전체 복잡도가 상기 목표 복잡도보다 작거나 같을 때까지 반복됨을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 방법.
  3. 제 1항에 있어서,
    상기 복잡도 레벨을 설정하는 과정 이전에, 상기 매크로 블록들 각각에 대한 후보 매크로 블록 모드를 결정하는 과정을 더 포함함을 특징으로 하는 동영상 부호
    화의 연산 복잡도 제어 방법.
  4. 제 3항에 있어서, 상기 복잡도 레벨을 설정하는 과정은,
    상기 결정된 후보 매크로 블록 모드와 소정의 부화소 움직임 탐색 횟수 중 적어도 하나의 의하여, 상기 매크로 블록들 각각에 대한 복잡도 레벨을 결정하는 과정을 포함함을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 방법.
  5. 제 1항에 있어서, 상기 복잡도 레벨을 조절하는 과정은,
    상기 매크로 블록들 중 상기 설정된 복잡도 레벨이 최고 단계인 매크로 블록의 복잡도 레벨을 소정 단계만큼 감소시키는 과정을 포함함을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 방법.
  6. 동영상 부호화의 연산 복잡도 제어 장치에 있어서,
    현재 프레임을 구성하는 매크로 블록들 각각의 복잡도 레벨을 설정하는 복잡도 레벨 설정부와,
    상기 설정된 복잡도 레벨에 따라 상기 현재 프레임의 전체 복잡도를 계산하는 복잡도 계산부와,
    상기 계산된 전체 복잡도가 미리 결정된 목표 복잡도보다 큰 경우, 상기 설정된 복잡도 레벨의 조절을 지시하는 복잡도 비교부와,
    상기 복잡도 비교부의 지시에 따라 상기 복잡도 레벨을 조절하는 복잡도 레벨 조절부를 포함하는 동영상 부호화의 연산 복잡도 제어 장치.
  7. 제 6항에 있어서, 상기 복잡도 레벨 조절부는,
    상기 현재 프레임의 전체 복잡도가 상기 목표 복잡도보다 작거나 같을 때까지 상기 복잡도 레벨의 조절을 반복함을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 장치.
  8. 제 6항에 있어서,
    상기 매크로 블록들 각각에 대한 후보 매크로 블록 모드를 결정하는 후보모드 선택부를 더 포함함을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 장치.
  9. 제 8항에 있어서, 상기 복잡도 레벨 설정부는,
    상기 결정된 후보 매크로 블록 모드와 소정의 부화소 움직임 탐색 횟수 중 적어도 하나의 의하여, 상기 매크로 블록들 각각에 대한 복잡도 레벨을 결정함을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 장치.
  10. 제 6항에 있어서, 상기 복잡도 레벨 조절부는,
    상기 매크로 블록들 중 상기 설정된 복잡도 레벨이 최고 단계인 매크로 블록의 복잡도 레벨을 소정 단계만큼 감소시키는 것을 특징으로 하는 동영상 부호화의 연산 복잡도 제어 장치.
KR1020090013895A 2009-02-19 2009-02-19 동영상 부호화의 연산 복잡도 제어 방법 및 장치 KR20100094759A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090013895A KR20100094759A (ko) 2009-02-19 2009-02-19 동영상 부호화의 연산 복잡도 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090013895A KR20100094759A (ko) 2009-02-19 2009-02-19 동영상 부호화의 연산 복잡도 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20100094759A true KR20100094759A (ko) 2010-08-27

Family

ID=42758687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090013895A KR20100094759A (ko) 2009-02-19 2009-02-19 동영상 부호화의 연산 복잡도 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20100094759A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114173134A (zh) * 2021-12-03 2022-03-11 京东科技信息技术有限公司 视频编码方法、装置、电子设备和计算机可读介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114173134A (zh) * 2021-12-03 2022-03-11 京东科技信息技术有限公司 视频编码方法、装置、电子设备和计算机可读介质
CN114173134B (zh) * 2021-12-03 2024-04-05 京东科技信息技术有限公司 视频编码方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
KR101671460B1 (ko) 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
RU2530318C2 (ru) Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство
CN108012163B (zh) 视频编码的码率控制方法及装置
Correa et al. Coding tree depth estimation for complexity reduction of HEVC
WO2011064990A1 (ja) 画像符号化装置、画像復号化装置、画像符号化方法、及び画像復号化方法
JPWO2008126135A1 (ja) 動画像符号化方法及び装置並びに動画像復号装置
CN102413323B (zh) 一种基于h.264的视频压缩方法
CN101946516A (zh) 快速宏块增量量化参数的决定
RU2573747C2 (ru) Способ и устройство кодирования видео, способ и устройство декодирования видео и программы для них
JP2008227670A (ja) 画像符号化装置
CN111314698A (zh) 一种图像编码处理方法及装置
CN103327327B (zh) 用于高性能视频编码hevc的帧间预测编码单元选择方法
CN101888546B (zh) 一种运动估计的方法及装置
CN107846593B (zh) 一种率失真优化方法及装置
CN104301724A (zh) 视频处理方法、编码设备和解码设备
EP1642464B1 (en) Method of encoding for handheld apparatuses
JP2008124772A (ja) 符号化装置及び符号化方法
JPWO2009157581A1 (ja) 画像処理装置及び画像処理方法
CN102291582A (zh) 一种基于运动补偿精化的分布式视频编码方法
CN114339218A (zh) 图像编码方法、图像编码装置、电子设备和可读存储介质
CN116193126A (zh) 视频编码方法及装置
KR20130103140A (ko) 영상압축 전에 행해지는 전처리 방법, 영상 압축률 개선을 위한 적응성 움직임 추정방법 및 영상 타입별 영상 데이터 제공방법
KR101596085B1 (ko) 적응적인 인트라 예측을 이용한 영상 부호화/복호화 장치 및 방법
KR101522391B1 (ko) 양자화 제어 장치 및 방법, 및 양자화 제어 프로그램
CN115428451A (zh) 视频编码方法、编码器、系统以及计算机存储介质

Legal Events

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