본 논문에서는 HEVC(high efficiency video coding)의 루프내 필터 중 하나인 SAO (sample adaptive offset) 기술을 고속화하는 방법을 제안한다. 기존의 SAO는 원 영상과 복원된 영상 간의 오차를 최소화하기 위한 오프셋 값을 각 CTB마다 계산한다. 최적의 오프셋 값 결정을 위해 오프셋 값 후보군 내의 모든 오프셋 값을 검사한 후, 율-왜곡 비용 값을 최소화하는 오프셋 값을 선택한다. 따라서 SAO는 HEVC 부호기에서 상당한 양의 복잡도를 차지한다. 제안한 방법에서는 오프셋 값의 통계적 특성을 고려해 사용 빈도가 낮은 밴드를 결정하고, 사용 빈도가 낮은 밴드에 포함되는 오프셋 값을 처리하지 않는다. 또한, 오프셋 값 결정 단계에서 후보군 내의 모든 오프셋 값 대신 일부 오프셋 값만 검사한다. 실험 결과를 통해 제안한 방법이 큰 부호화 효율 감소 없이 약 8.15%의 부호화 시간을 감소시키는 것을 확인했다.
Ⅰ. 서 론
최근 디지털 방송 기술과 디스플레이 기기 등의 발전으로 고해상도 비디오 품질에 대한 소비자의 요구가 커짐에 따라, 기존의 영상 크기를 넘어선 UHD(Ultra High Definition)급 초고해상도 영상에 대한 필요성이 대두되고 있다
[1]
.
초고해상도 비디오 콘텐츠는 고해상도 영상을 필요로 하는 많은 응용 분야에서 사용된다. 고해상도 영상은 데이터의 양이 많으므로 데이터를 효율적으로 저장하거나 전송하기 위한 압축 기술이 필수적이며, 그 결과 기존 H.264/AVC
[2]
의 압축 효율을 뛰어넘는 새로운 비디오 표준이 필요하게 되었다. 2013년 1월 HEVC 영상 압축 표준이 VCEG(Video Coding Experts Group)과 MPEG(Moving Picture Experts Group)에 의해 완성되었다. HEVC는 이전의 표준과 달리, 디블록킹 필터(deblocking filter)와 SAO(Sample Adaptive Offset) 두 가지 루프내 필터 기술을 사용한다. 루프내 필터는 복호된 화면에 적용되어 부호화 과정에서 발생된 오류를 최소화하고, 복호 영상의 주관적 화질 및 객관적 화질을 높인다. 또한, 화면 간 예측의 참조 영상으로 필터링 된 영상을 사용해 예측 성능을 높임으로써 부호화 효율을 향상시킨다. 반면 후처리 필터는 필터링 된 픽처를 화면 간 예측 모드에서 참조 영상으로 사용하지 않는 성질이 있다
[3]
.
HEVC에서는 복원 영상의 경계에서 발생하는 왜곡 현상을 개선하기 위해 복원 영상의 수직, 수평 에지에 대해 디블록킹 필터를 적용한다. 다음으로, 디블록킹 필터링 된 영상에 대해 적응적 샘플 오프셋을 사용한다.
HEVC는 루프내 필터를 통해 높은 부호화 효율을 얻을 수 있지만, 두 개의 루프내 필터를 사용하므로 복잡도가 높다는 문제점이 있다. 적응적 샘플 오프셋에서 밴드 오프셋의 경우, 최적의 오프셋 값을 찾기 위해 32개의 모든 밴드에 대해서 왜곡율과 비용 값을 계산하여 이전에 계산된 값들과 비교하는 과정을 거쳐야 한다. 이 과정에서 필요로 하는 연산들이 많기 때문에 시간 복잡도를 높이는 원인이 된다. 따라서 루프내 필터의 성능은 유지하면서 처리 속도를 높일 수 있는 고속화 기술이 필요하게 되었다.
본 논문은 다음과 같이 구성된다. 2장에서는 적응적 샘플 오프셋의 구조와 밴드 오프셋에 대해 소개하고, 3장에서는 밴드의 사용을 제한한 방법과 오프셋의 증감 크기 변화에 따른 복잡도 감소 방법에 대하여 소개한다. 이후, 4장에서는 3장에서 제안한 복잡도 감소 방법을 각각 참조 소프트웨어에 적용하고 두 가지 방법을 동시에 사용한 경우의 복잡도 감소 효율을 실험을 통해 확인한다. 마지막으로 5장에서는 이러한 내용을 바탕으로 결론을 맺는다.
Ⅱ. 적응적 샘플 오프셋
- 1. 적응적 샘플 오프셋의 구조
부호화 과정에서 양자화(quantization)는 부호기 내의 다른 기술들과 달리 부호화 손실을 발생시킨다. 양자화 과정에서의 손실은 화소의 값이 원래의 값에 비해 일정 값만큼 커지거나 작아지게 만든다. 이러한 오류를 양자화 오류라고 한다. 적응적 샘플 오프셋은 각 영역에 적합한 오프셋값을 계산하고 이를 이용해 양자화 오류를 감소시킨다. 적응적 샘플 오프셋은 기존의 H.264/AVC 영상 압축 표준에는 존재하지 않던 기술이며, HEVC 표준화 과정에서 제안된 새로운 루프내 필터 기술이다. 이 기술은 복잡도 대비 압축 효율이 높은 장점을 가지고 있다. 적응적 샘플 오프셋에서는 현재 부호화 단위 내 화소 값의 특징에 따라
표 1
과 같은 3개의 필터 유형 중 한 가지 유형을 사용하게 된다. 적응적 샘플 오프셋 필터링이 불필요한 경우 0번 유형이 선택되어 필터링이 수행되지 않는다. 1번 유형은 적응적 샘플 오프셋 계산 방법 중 BO(band offset)를 사용하고 2번 유형의 경우 적응적 샘플 오프셋 계산 방법 중 EO(edge offset)를 사용한다. EO는 경계 정보를 포함한 영역에서 더 효율적인 오프셋 계산 방법이고, BO는 특정 밝기 대역에서 원본 화소들과 값의 차이가 발생하는 경우에 사용하는 것이 효율적인 방법이다. 제안한 방법을 설명하기에 앞서 BO에 대해 자세히 알아보기로 한다.
- 2. Band Offset (BO)
밴드 오프셋에서는 해당 영역 안의 비슷한 화소 밝기 값을 가진 화소 집합에 대해 오프셋 값을 결정하고, 해당 밴드에 오프셋 값을 더해 부호화 오류를 감소시킨다
[4]
. 코딩하려는 밝기 값을 갖는 CTB가 밴드 오프셋을 사용할 경우 부호기에서는 밝기 값을 갖는 CTB 내의 화소들을 유사한 밝기 값을 갖는 밴드로 분류한 후 연속된 네 개의 밴드들에 대해서 오프셋 값을 더해준다. 복호기에서도 마찬가지로 밝기 값을 갖는 CTB 내의 화소들을 분류 한 후 부호기에서 전송된 오프셋 정보를 통해 해당 밴드에 오프셋 값을 더해줌으로써 복원 영상의 화소 값을 보정한다. 즉 밴드 오프셋은 원본 영상과 복원 영상 간의 차이를 줄이는 기술이다. 부호기에서 밝기 CTB 내의 화소를 나누는 방법은 먼저
그림 1
과 같이 화소의 밝기 값을 32개의 밴드로 나눈다. 8비트 심도의 화소 밝기 값의 경우 0~255의 값을 갖기 때문에 한 밴드에 8개의 화소 값을 사용하게 된다. 즉, 첫 번째 밴드는 0~7의 화소 값을 두 번째 밴드는 8~15를 갖게 되고 i 번째 밴드의 경우 8i~8i+7의 화소 값을 갖게 된다.
밴드 오프셋의 예 Fig 1. Example of band offset
밴드 오프셋에서는 32개의 밴드 중 연속된 네 개의 밴드에 대해서만 오프셋 값을 더해준다. 즉 네 개의 오프셋 값을 전송하며 오프셋 값을 더할 네 개의 밴드 중 시작 밴드에 대한 정보를 함께 전송해야 한다. 네 개의 밴드 중 시작 밴드는 밴드의 가장 왼쪽 밴드를 의미한다. 연속된 네 개의 밴드에 동일한 오프셋 값을 더해 부호화 오류를 감소시키며 네 개의 밴드에 사용되는 오프셋 값들을 비교해가며 가장 최적의 오프셋 값을 찾게 된다
[5]
. 최적의 오프셋 값은 원 화소 값과 복원된 화소와 오프셋이 더해진 값의 차이를 최소화하는 값이다. 또한 밴드 오프셋의 경우 에지 오프셋의 경우와 달리 네 개의 오프셋 값에 대한 부호 정보를 따로 갖고 있지 않으므로 부호 정보를 함께 보내야 한다.
Ⅲ. 제안하는 방법
- 1. 밴드의 사용을 제한한 SAO
기존의 HEVC 참조 소프트웨어인 HM 11.0의 밴드 오프셋에서는 기존 영상의 화소 값과 복원된 영상의 화소 값의 차이들의 평균을 더해 오류를 보정한다. 본 논문에서는 사전 실험을 통해 32개의 밴드 중에서 사용하는 빈도가 낮은 밴드를 결정하고, 이 밴드에 대해서는 오프셋 값을 연산하는 것을 제한한다. 밴드 오프셋은 밝기 CTB 값을 32개의 밴드로 나누고 시작 밴드를 바꿔가며 최소의 비용 값을 갖게 하는 오프셋 값을 찾는 과정을 거친다. 이 과정에서 비용 값을 계산하기 위해 필요한 왜곡율을 구하기 위해 곱셈 연산을 사용하고 비용 값을 계산하는 과정에서 또한 곱셈 연산이 사용된다. 각각의 밴드에 대해서 다른 오프셋 값을 적용해가며 위 과정을 수행하기 때문에 연산 복잡도가 증가한다. 현재 복원할 CTB에 대해 비용 값 계산이 끝난 뒤 각각의 밴드가 갖는 비용 값들 사이에서 비교를 통해 가장 적은 비용 값을 갖게 하는 오프셋 값을 찾는다. 밴드 오프셋에서 4개의 연속된 밴드 중 시작 밴드에 값이 더해지게 되는데, 이때 오프셋 값이 더해지는 밴드의 인덱스를 확인하여 적응적 샘플 오프셋을 수행하는 동안 사용되는 인덱스의 카운트 수를 증가시켜가며 각 밴드의 사용 빈도를 찾아낸다
[6]
. 제안 한 방법의 효율을 증명하기 위해표준 실험 영상중 Class A, B, C, D에서 각각 2개의 영상을 사용하여 사용 빈도가 낮은 밴드(least used band, LUB)를 구하는 대상으로 활용했다.
실험 영상을 통해 얻어낸 통계 자료를
그림 2
에 나타냈다. 히스토그램 자료를 기준으로 사용 빈도가 낮은 4번, 5번, 20번 그리고 22번 밴드에서의 왜곡율 계산과 비용값 계산 과정을 수행하지 않도록 제한하여 복잡도를 감소시킨다.
밴드 사용 빈도 Fig 2. Frequency of band usage
제안한 방법에 대한 순서도를
그림 3
에서 설명하고 있다.
밴드 사용제한 알고리즘의 순서도 Fig 3. Band restrict algorithm flow chart
밴드 오프셋을 진행하면 LUB와 현재 처리할 밴드와 일치하는 경우 해당 밴드에서 왜곡율과 오프셋 값 그리고 비용 값을 계산하지 않는다. 단 여기서 LUB는 테스트 영상을 기반으로 한 실험에서 사용빈도가 낮은 밴드로 정의한다. LUB에 해당하지 않을 경우에는 미리 연산된 오프셋 값을 더해 오류를 보정한다.
- 2. 최적 오프셋 검색과정의 증감 크기변화
3-1절에서는 적응적 샘플 오프셋을 수행할 때 특정 밴드의 사용을 제한한 방법을 제안했다.
하지만 적응적 샘플 오프셋을 수행하는 과정에서 최적의 오프셋 값을 찾아내기 위해서는 오프셋 값을 바꿔가며 비용값을 계산해줘야 한다. 이 과정에서 원본 영상과 오프셋이 더해진 영상의 왜곡율 차이를 계산하여 시간 복잡도가 증가한다. 본 절에서는 오프셋의 비교를 위한 크기 증감 변화를 조절함으로써 복잡도를 줄이는 방법을 제안한다. 부호화를 수행하는 과정에서 비용 값 최적화 과정
[7]
은 원본 영상과 복원된 샘플 영상과의 차이를 반복적으로 계산하여 구한다.
이러한 과정을 반복적으로 수행하게 되면 메모리에 대한 접근 빈도가 높아져 성능에 영향을 미칠 수 있다. 메모리로의 접근 및 동작 빈도를 줄이기 위해 고속 왜곡율 측정 방법을 사용한다
[8]
.
왜곡율 계산을 위해 k, s(k) 그리고 x(k)를 각각 샘플의 위치, 원본 영상의 샘플, 전처리 적응적 샘플 오프셋의 샘플로 지정한다. k는 CTB 내에 있는 샘플 영상이라 할 때 전처리 적응적 샘플 오프셋 샘플 영상과 원본 영상과의 왜곡율 차이는 다음과 같은 식으로 정의한다.
오프셋 값은 식 (2)와 같이 N 개의 화소에 대해 원 화소와 복원 화소 간의 오차 평균을 계산함으로써 구할 수 있다.
다음 식 (3)은 원본 영상과 오프셋 값 h가 더해진 복원된 적응적 샘플 오프셋 샘플 영상과의 왜곡율 차이를 나타낸다.
식 (4)는 비용 값을 구하는 과정에서 오프셋 값 h를 더한 샘플 영상과 원본 샘플 영상과의 차이를 이용해 왜곡율을 구하는 과정을 설명한다. 왜곡율은 식 (1)과 식(3)의 차이를 계산해 최종적으로 최적의 오프셋 값을 찾기 위한 비용값을 계산하는데 사용한다.
식 (4)에서 s(k)는 원본 화소, x(k)는 복원 화소이므로 둘의 차이는 원본 화소와 복원 화소의 차이 값이 되는데, 이 차이를 부호화 오차 E로 정의할 수 있다.
식 (5)의 부호화 오차 E를 이용해 식 (4)를 정리하면 다음과 같이 정의할 수 있다.
식 (6)에서 C는 화소 집합을, N은 화소 집합 C 내의 화소 수를 의미한다. 식 (6)의 값을 비용값을 구하는 식 (7)에 대입하여 최적의 오프셋 값을 찾아낸다.
최적의 오프셋 값을 찾아내기 위해 오프셋을 변화시켜가면서 가장 적은 비용 값을 가질 때의 오프셋 값을 사용한다. 이 과정은 입력된 오프셋 값, 식 (6)에서 h 값을 일정 크기로 증가 혹은 감소시켜가면서 비용값을 측정한다. 비용값을 계산하기 위해서는 먼저 왜곡율을 구해야 하고 이를 통해 비용값을 계산한다. h의 증감 크기가 1인 경우에는 h값이 0까지 가는 모든 h에 대해 복잡한 연산을 수행해야 하기 때문에 h값의 증감 크기를 변환시키는 방법을 제안한다. 이 과정에서 기존 입력 h 값의 증감 크기가 1이었던 값을 3으로 조절하여 최적의 오프셋 값을 찾는 과정에서 비교 횟수를 줄여 시간 복잡도를 감소시킨다.
Ⅳ. 실험 결과 및 분석
성능 비교 실험을 위해 제안한 방법을 참조 소프트웨어인 HM 11.0에 구현했다. 제안한 방법의 효율을 증명하기 위해 4개의 클래스에서 각각 2가지 영상을 가지고 테스트를 했으며, 다음과 같은 개발 환경에서 실험을 진행했다. 운영체제는 Windows 7 64bit를 사용하였고, 램은 32GB를 사용했으며, 컴파일러 및 언어는 Microsoft visual studio 2008 C/C++을 사용하였다. 양자화 계수는 22, 27, 32, 37을 사용했으며 All-intra 모드에서만 실험을 수행했다. 저 지연 모드와 임의 접근 모드를 사용할 경우 화면간 중복성이 화면내 중복성보다 높기 때문에 압축 효율을 높일 수 있다. 하지만 이 두 가지 방법은 P 프레임과 B 프레임을 사용하여 부호화나 복호화 수행할 때 해당 프레임이 참조해야하는 영상이 처리될 때까지의 지연시간을 가지게 된다. 본 논문에서는 복잡도 감소를 목적으로 실험을 했기 때문에 All-intra 모드에서만 실험했다.
실험 결과, 밴드 오프셋 수행 과정에서 LUB의 오프셋 연산을 제한하는 방법을 통한 실험 결과로 0.05%의 BD-rate가 증가한 것을
표 2
에서 확인할 수 있다.
Table 2. BD-Rate results of band restrict method
Table 3. BD-Rate results of offset value change method
제안한 방법을 동시에 사용한 BD-Rate 결과
Table 4. BD-Rate results of using proposed methods simultaneously
표 5
에서는 이 방법을 통해 8.15%의 시간 복잡도가 감소된 것을 보인다.
Table 5. Performance of proposed method
두 번째 제안한 오프셋의 증감 크기 변환 방법을 사용했을 때 0.03%의 BD-rate가 증가한 것을
표 3
에서 알 수 있다.
표 5
에서는 이 방법을 통해 6.07%의 복잡도 감소 효율을 얻은 것을 확인할 수 있다. 위 두 가지 제안한 방법을 동시에 사용했을 경우 0.07%의 BD-rate가 증가한 것을
표 4
에 보였다. 시간 복잡도 감소 효율은 8.56% 향상된 성능을
표 5
에서 확인할 수 있다.
위 두 가지 제안 방법을 통해 적응적 샘플 오프셋 수행 과정에서 오프셋 연산 과정을 생략하거나 오프셋 변환 범위를 조절하는 방법을 통해 시간 복잡도를 감소시키는 결과를 얻었고 BD-rate 증가율은 무시할 만큼 적음을 확인할 수 있다.
Ⅴ. 결 론
본 논문에서는 HEVC 인코더의 복잡도를 감소시키기 위해 8개 시퀀스 영상에 대해 밴드의 사용빈도 통계를 조사하여 밴드를 제한하는 방법을 사용했다. 이를 통해 최적의 오프셋 값을 얻는 과정에서 필요한 왜곡율 계산과 비용값 계산을 통해 얻어진 결과를 비교하는 수를 줄여 시간 복잡도를 감소시켰다. 또한 최적의 오프셋 값을 찾는 과정에서 기존 오프셋 값의 증감 크기와 변화율을 통해 비용 값을 계산하는 과정의 연산 횟수를 줄임으로써 인트라 모드에서의 부호화 시간을 단축시켰다. 마지막으로 두 가지를 동시에 사용한 경우를 통해 효율적으로 복잡도를 감소시켰다. 첫 번째 제안된 방법을 사용하였을 때 부호화 시간을 8.15% 감소시킬 수 있었고, 두 번째 제안된 방법을 사용한 경우에는 6.07%의 부호화 시간 감소 효율을 얻을 수 있었다. 두 가지 방법을 동시에 사용한 경우에는 8.56%의 시간 감소 효율을 얻었다.
BIO
문 지 훈
- 2013년 : 전북대학교 전자공학과 졸업(학사)
- 2013년 ~ 현재 : 광주과학기술원 정보통신공학부 석사과정
- 주관심분야 : 영상신호 처리 및 압축, HEVC
최 정 아
- 2007년 : 한국항공대학교 전자공학과 학사
- 2008년 : 광주과학기술원 정보통신공학화 석사
- 2008년 ~ 현재 : 광주과학기술원 정보통신공학화 박사과정
- 주관심분야 : 영상신호 처리 및 압축, H.264/AVC, HEVC
호 요 성
- 1981년 : 서울대학교 공과대학 전자공학화 졸업(학사)
- 1983년 : 서울대학교 대학원 전자공학과 졸업(석사)
- 1989년 : Univ. of California, Santa Barbara, Dept. of Electrical and Computer Engineering.(박사)
- 1983년 ~ 1995년 : 한국전자통신연구소 선임연구원
- 1990년 ~ 1993년 : 미국 Philips 연구소, Senior Research Member
- 1995년 ~ 현재 : 광주과학기술원 정보통신공학과 교수
- 주관심분야 : 디지털 신호처리, 영상 신호 처리 및 압축, 디지털 TV와 고선명 TV, 멀티미디어 시스템, MPEG 표준, 3차원 TV, 실감방송
Parka U.
,
Choi H.
,
Kang J.
,
Kim J.
2013
"Scalable Video Coding Using Large Block and its Performance Analysis"
Journal of Broadcast Engineering
18
(2)
249 -
260
DOI : 10.5909/JBE.2013.18.2.249
Wiegand T.
,
Sullivan G.
,
Bjontegaard G.
,
Luthra A.
2003
"Overview of the H.264/AVC Video Coding Standard"
IEEE Transactions on Circuits and Systems for Video Technology
13
(7)
560 -
576
DOI : 10.1109/TCSVT.2003.815165
Ho Y.
,
Choi J.
2013
“Understanding of HEVC and analysing program”
JINSAEM media
Seoul
31 -
33
Maani E.
,
Nakagami O.
2012
"Flexible Band Offset Mode in SAO"
8th JCT-VC Meeting, document JCTVC-H0406
Laroche G.
,
Poirier T.
,
Onno P.
2011
"On Additional SAO Band Offset Classifications"
7th JCT-VC Meeting, document JCTVC-G246
Mun J.
,
Choi J.
,
Ho Y.
2013
“Improve the speed by offset control in HEVC SAO intra mode”
The 2013 Fall Conference of the Korean Society of Broadcasting Engineering(KSBE)
67 -
70
Sullivan G.
,
Wiegand T.
1998
"Rage-distortion Optimization for Video Compression"
IEEE Signal Process. Mag.
15
(6)
74 -
90
DOI : 10.1109/79.733497
Fu C.
,
Chen C.
,
Huang Y.
,
Lei S.
2011
"Sample Adaptive Offset for HEVC"
Proc. of IEEE 13th Int. Workshop MMSP
1 -
5