차세대 비디오 인코딩
새로운 코덱 이면에 있는 몇몇 주요 기술에 대해 조명하고
  • 2014-02-14
  • 편집부

본고에서는 새로운 코덱 이면에 있는 몇몇 주요 기술에 대해 조명하고 텍사스 인스트루먼트(TI)의 키스톤(KeyStone)™ 플랫폼에서 HEVC 실행에 대해 알아본다.

엔터테인먼트, 소셜 미디어, 온라인 교육에 이르기까지 비디오는 인터넷 대역폭에서 지속적으로 불균형적인 지분을 차지하고 있다. 시스코(Cisco) 비주얼 네트워킹 인덱스(VNI)는 2017년까지 소비자 인터넷 비디오 트래픽이 모든 소비자 인터넷 트래픽의 69%를 차지할 것으로 예측하고 있다. 느린 속도라 하더라도 이러한 추세가 지속된다면 그러한 성장을 지속시키기 위한 방법에 대해 의문을 제기하지 않을 수 없다.
비디오 소비자는 어느 장치에서나 자신이 원하는 시간에 선택한 비디오를 볼 수 있기를 원하는 경향이 늘고 있다. 이러한 경향에 뒤쳐지지 않기 위해 클라우드 인프라, 데이터센터, 네트워킹 및 스토리지 구축에 막대한 투자가 이뤄지고 있다. 따라서 기술을 통해 대역폭 효율을 개선할 수 없는 경우 생산자와 소비자를 연계하기 위해서는 비트 전송 파이프의 업그레이드가 요구된다. 고효율 비디오 코딩(HEVC, High Efficiency Video Coding)은 ITU-T와 ISO/IEC 표준화 기관의 노력을 통해 최근에 만들어진 비디오 압축 표준으로 적시에 만들어진 최적의 기술이라 할 수 있다.

비디오 압축 배경
비디오 압축 기술은 수 십년 동안 지속되어 왔으며 오늘날 시장에서 다양한 코덱을 사용할 수 있음에도 불구하고 기본적인 압축 기술은 변함이 없었다. 코덱을 구분짓는 방법 중 하나는 여러 애플리케이션을 공급하고 시장 수요를 충족하기 위해 사용되는(또는 사용되지 않는) 기술 툴이다.
예를 들어, 비디오 제공 및 편집 애플리케이션에 사용되는 코덱은 다세대 인코딩을 위한 원본 품질 보존을 추구하는 반면 배포에 사용된 코덱은 허용 가능한 품질에서 비트 전송률 절감을 주요 목표로 한다. 따라서 JPEG2000 및 AVC-Intra와 같은 코덱은 비디오 제공 분야에서 널리 사용되고 H.264/AVC는 배포 인코더를 위한 코덱이다.
비디오 압축을 위한 중요한 것은 비디오 프레임의 시퀀스에 존재하는 중복성을 활용하여 점증적 변화만을 전송하는 것이다. 주어진 프레임에서 픽셀과 이웃하는 픽셀은 공간 중복성 또는 인트라프레임 중복성으로 알려진 중복성 형식으로 고도의 관련성을 갖는다.
이와 유사하게 합당한 프레임률로 캡처된 비디오 시퀀스를 위해 연속적인 프레임의 픽셀은 시간 중복성 또는 인터프레임 중복성이라고 불리는 형식으로 상호 연관성을 갖는다. 비디오 압축 기술은 이러한 중복성을 활용해 이전 프레임으로부터 현재 프레임을 예측하고 이러한 예측에서 만들어진 잔여 오류를 인코딩한다.
연속 프레임 사이에서 객체의 모션을 효율적으로 재현하기 위해 모션 벡터를 사용하는 모션 보정은 인터프레임 예측을 위해 훨씬 더 많은 보정 이득을 제공한다. 압축 과정에서의 최종 단계는 최소 비드로 바이너리 데이터를 재현하기 위해 코딩 중복성(coding redundancy)이라고도 불리는 데이터 재현에서의 중복성을 활용하는 엔트로피 부호화 방식이다. 압축 해제나 디코딩 프로세스는 그러한 단계의 역순을 따르지만 압축 프로세스보다 훨씬 덜 (5~10배) 복잡하다.
모든 비디오 압축 기술에서의 주요 관점은 주어진 품질을 위한 계산 복잡성과 코딩 효율 간 균형이다. 예를 들어, 인코더는 일련의 복잡한 계산을 거쳐 최적의 압축 결과에 도달하지만 이를 얻기 위해서는 수 초가 걸릴 수 있어 실시간 인코딩에는 부적절하다. 이러한 상충 관계는 제품 분야 및 비용 제한에 따라 신중하게 관리되며 이러한 이유로 시장에 지금과 같이 여러 인코더가 사용되고 있다.



비디오 표준의 적용 범위
표준화 작업은 여러 공급업체의 장치가 상호 운용 가능함을 보장하는 것이 중요한 반면, 비디오 표준은 일반적으로 디코딩 프로세스만을 지정한다. 이러한 지정은 인코딩된 비트스트림의 구조와 그러한 비트스트림이 디코딩된 화상을 생성하기 위해 어떻게 변환되는지를 설명한다. 적합한 비트스트림을 생성하는 방법과 애플리케이션 요구조건에 관한 제한 내에서 상충 요소를 어떻게 해결할지는 인코더 설계자의 몫이다. 따라서 인코더 플랫폼 선택 시 고려해야 할 중요한 요소는 제품 차별화 구현에서의 유연성이다.

HEVC 소개
HEVC 표준은 이전 세대 동안 10년 주기로 약 두 배의 압축 효율을 개선한 이전 표준보다 더욱 진보된 비디오 표준이다. 1994년 MPEG-2, 2003년 AVC, 2013년 HEVC로 시작하여 각각의 차세대 표준은 이전 세대 표준보다 비트 전송 속도를 50% 개선해 제공했다. 첫 번째 HEVC 표준 버전은 2013년 4월에 승인되었고 세 가지 프로파일 즉, 8비트 심도를 위한 메인, 최대 10비트의 비트 심도를 위한 메인 10, 정지 화상 인코딩을 위한 메인 스틸 픽처(Main Still Picture)를 지원했다.
HEVC는 AVC/H.264와 비교하여 최대 50%의 낮은 전송 대역폭 또는 저장 파일 크기로 동일한 화질을 제공할 수 있다. 다른 방식으로 변환되기 때문에 주어진 비트 전송률로 고품질 고해상도 비디오를 전송하기 위해 사용될 수 있다. 예상했듯이 HEVC는 알고리즘에 상당한 복잡성을 추가하여 이러한 목표를 달성한다. 일부 평가에 따르면 HEVC 인코딩에는 범용 H.264 인코딩에 비해 최대 4배나 더 많은 프로세싱 리소스가 요구된다. 몇몇 산업 평가는 인코딩 복잡성에 훨씬 더 많은 비중을 두며 이 역시 비디오 콘텐츠 유형에 따라 달라진다. 다행히 HEVC 디코딩은 이전 세대 H.264 스킴보다 20~25% 더 복잡하기 때문에 현재 이용 가능한 장치를 HEVC 디코딩에 완전히 적합하도록 만든다.
다음 설명은 HEVC 코딩 효율에 직접적인 관련이 있는 몇몇 콘셉트에 대한 세부적인 소개를 제공한다.
HEVC - 기술 관련 중점 사항



가변 크기의 코딩 블록
고정 크기의 16×16 픽셀 마크로블록을 가진 H.264와 비교해 HEVC는 최대 64×64 픽셀까지 증가할 수 있는 코딩 트리 유닛(CTU, coding-tree units)라 불리는 유연한 코딩 구조를 지원하며 추가적으로 코딩 유닛(CU, coding units)으로 유연하게 파티션될 수 있다. 가변 블록 크기는 콘텐츠에 코딩 유닛 크기를 적응시키기 위해 더 많은 유연성을 제공한다. 이 때문에 더 많은 세밀함을 가진 영역은 더 작은 크기를 사용할 수 있으며 배경과 같이 세밀함이 적은 영역은 더 큰 블록으로 인코딩될 수 있다. 더 큰 블록 크기를 지원할 경우 더 큰 압축 효율을 제공한다. 이는 고해상도 화상을 인코딩할 때 특히 중요하며 따라서 HEVC는 울트라 HD 해상도 콘텐츠 시대에서 핵심 기술 중 하나로 각광받고 있다(그림 1).
인트라프레임 예측
H.264에 사용되는 최대 10 인트라 예측 모드와는 반대로 HEVC는 35개의 모드가 있으며 잔여 오류를 최소화하는 최적의 예측 모드 선택에서 많은 선택 기회를 제공한다. 그러나 이러한 유연성은 인트라 예측 모드를 위한 검색 공간을 대폭 확장하기 때문에 희생이 뒤따른다. 따라서 계산 부담이 증가한다. 동시에 인코더 차별화를 위한 여지를 남기기 때문에 이러한 대형 검색 공간을 축소하기 위한 스마트한 알고리즘을 실행할 수 있으며 계산 시간과 품질 간 최적의 타협점을 찾을 수 있다(그림 2).

인터프레임 예측
H.264는 다양한 형태와 크기를 가진 16×16 매크로블록(macroblock)을 사용하여 연속 비디오 프레임 사이에서 시간 중복성과 모션을 찾는다. HEVC는 이러한 파티셔닝 스킴을 보다 유연한 쿼드트리 구조로 대체하여 모션 표현에서 정교함을 제공한다. 각각의 트리 블록은 최대 64×64 픽셀까지 확장될 수 있어 거칠거나 덜 세밀한 예측을 인코딩하는 데 더 높은 효율을 제공한다. 세부적인 영역은 더 작은 블록을 사용해 품질 및 선예도를 보존할 수 있다.

병렬 프로세싱
HEVC는 다른 비디오 코덱보다 훨씬 더 복잡하지만 최신 CPU 아키텍처의 여러 코어 사이에서 동시에 프로세싱을 활성화하여 이러한 계산 부담을 극복할 수 있는 설계 요소를 지닌다. 이를 위해 규격에서 몇몇 프로세싱 작업 간의 상호 의존성 제거를 신중하게 고려했다. 전체 인코딩 작업의 경우, H.264에서 확인된 슬라이스 기반 인코딩 외에 HEVC는 타일 기반 코딩과 파면 병렬 프로세싱(WPP, wavefront parallel processing)으로 불리는 새로운 기술을 지원한다.
타일 기반 코딩에서 프레임은 직사각형 영역으로 나뉘며 각각을 조립자 병렬 방식으로 독립적으로 처리할 수 있다. WPP에서 주어진 슬라이스는 코딩 유닛 열로 나뉘며 각각의 스레드가 이전 열 스레드로부터 2개의 CTU 래그로 시작하는 경우 각각을 별도의 프로세싱 스레드로 작업할 수 있다. 이는 보다 정교한 입자의 병렬을 제공한다.
프로세서 아키텍처와 하드웨어 리소스에 따라 이러한 기술을 사용해 최적의 프로세스 활용성을 얻을 수 있다.
변형 인코딩 과정에서 더 적은 계수로 오류를 재현할 수 있도록 예측 오류 상에서 변형이 수행된다. HEVC는 최대 8×8까지의 크기 변형만을 지원하는 AVC와는 달리 최대 32×32의 크기 변형을 지원한다. HEVC에서의 더 큰 변형은 코딩 효율 이득에 기여하며 최신 프로세스에 대한 SIMD 최적화에 더 많은 기회를 제공한다.

인트로피 코딩
HEVC는 이진산술부호화방식(CABAC, context-adaptive binary arithmetic conding)이라고 불리는 단일 엔트로피 인코딩 스킴만을 지원하는 반면 H.264는 CABAC 외에도 더 낮은 효율을 갖는 적응산술부호화방식(CAVLC, context-adaptive variable length coding)을 지원한다. HEVC에서 데이터 의존성을 줄이고 병렬 연산을 수월하게 함으로써 처리량을 개선하기 위한 여러 개선 작업이 이뤄졌다.



인루프 필터
블록 기반의 인코딩에서 발생하는 블로킹 결과물을 매끄럽게 하기 위해 디블록킹 필터가 적용된다. H.264와 비교했을 때 HEVC의 디블록킹 필터는 대형 블록에서 수행되며 별도로 완료된다. 이는 계산 수를 줄일 뿐만 아니라 병렬로 수행되도록 할 수 있다. HEVC에서 적응형 샘플 오프셋(SAO, sample adaptive offset)이라 불리는 새 필터가 디블록킹 필터 다음에 적용돼 화질을 개선하고 발생하는 결과물을 줄여준다.

TI 키스톤 아키텍처에서의 HEVC 실행
TI의 연구진들은 HEVC 표준화 프로세스에 적극 참여했으며 표준화에 상당한 기여를 해왔다. 이러한 선도적인 아이디어 중 일부는 고성능 멀티코어 키스톤 아키텍처 상에서 TI의 HEVC 실행을 위해 이미 통합되었다.
TMS320C6678 멀티코어 DSP는 고정 및 부동 소수점을 결합한 320 GMAC 및 160 GFLOP의 성능을 제공할 수 있는 8개의 1.25 GHz DSP 코어를 갖추고 있다. 앞서 언급했듯이 HEVC 표준은 병렬 프로세싱을 목표로 다양한 개선이 이뤄졌기 때문에 C6678 DSP의 사용은 다양한 이점을 제공한다. TI의 소프트웨어를 기반으로 한 HEVC 코덱의 실행을 통해 고객은 코덱 및 기타 전후 처리 알고리즘에서 차별화를 추가할 수 있는 다양한 기회를 얻을 수 있다.
단일 DSP 내에서 여러 코어뿐만 아니라 여러 DSP에서 코어를 활용하기 위한 인코딩/디코딩 작업을 파티션하기 위해 코덱이 실행되었다. 이러한 방식이 가지는 한 가지 분명한 이점은 비디오 화상회의 서버에서 분배 헤드엔드에 이르는 제품에서 동일한 솔루션을 재사용할 수 있다는 확장성이다. 이 제품은 해상도, 화질, 비트 전송율 및 지연과 관련한 다양한 요구조건을 가진다. 모듈 설계와 함께 유연한 구성을 통해 코덱은 저지연 또는 랜덤 액세스와 같은 다양한 사용 사례에서 작동할 수 있다. 요구조건에 따라 여러 도구를 선택적으로 활성화 또는 비활성화하여 다양한 상충관계를 조정하고 원하는 결과를 얻을 수 있다.
코덱 외에도 TI는 고객 애플리케이션 기록을 쉽게 만드는 툴, 프레임워크 및 예시 코드와 함께 소프트웨어 개발 키트(SDK, sofeware development kits)를 제공한다. 저레벨 드라이버에서 SDK에 이르는 모든 소프트웨어가 적절하게 배치되어 있어 고객은 적절한 수준의 추상화에서 해당 소프트웨어를 사용할 수 있다.
소프트웨어 외에도 시장 진입을 가속화할 수 있는 다양한 하드웨어 옵션을 이용할 수 있다. 절반 길이의 PCIe 카드부터 전체 길이 PCIe 및 ATCA 카드에 이르는 다양한 폼팩터로 C6678 DSP를 가진 보드를 이용할 수 있다. C6678 DSP 기반 상용제품(COTS) PCIe 카드를 표준 서버에 끼우기만 하면 고객은 기존 서버 기반 솔루션을 쉽게 늘리거나 새 서버 기반 설계를 생성할 수 있다(그림 3).

HEVC - 향후 개선
회원사들은 HEVC 표준을 개선하기 위해 각고의 노력을 기울이고 있으며 버전 2의 표준이 올해 초에 발매될 예정이다. H.264와 같이 특정 문제 영역이나 시장 부문을 타겟으로 한 개선을 포함해 앞으로 몇 년 동안 HEVC 표준이 진화할 것으로 기대된다. 그러한 개선은 다음과 같다.
- 비트 심도 12 비트 이상 및 밀도 4:2:2, 4:4:4 크로마 서브샘플링을 포함하는 범위 확장. 높은 비트 심도 및 크로마 서브샘플링은 제작 및 제공에 널리 사용되며 이러한 기능은 TV 세트를 넘어 울트라 HD에서 풍부한 시각적 경험을 제공하는데 중요한 역할을 함
- 확장 가능한 비디오 코딩(SVC, scalable Video Coding)을 통해 레이어 코딩 구조를 활성화하여 해상도, 프레임 전송율, 화질에서의 유연성을 제공하고 여러 환경에서 운영하는 클라이언트는 가장 적합한 스트림을 선택해 디코딩할 수 있음
- 3D 비디오 시스템에서 사용되는 기법인 배각으로부터 비디오 및 관련 심도 데이터를 인코딩하기 위한 멀티뷰 비디오 코딩(MVC, multiview Video Coding)

결론
대용량 데이터와 함께 비디오는 인터넷 상에서 지속적으로 지배적인 역할을 하게 될 것이다. 비디오와 관련해 급격히 증가하는 용량으로 인해 비디오 저장 공간이나 전송 대역폭을 줄일 수 있는 기술이 시장을 주도하게 될 것이다. 이러한 상황을 대비하여 HEVC 표준은 오늘날의 인프라 병목현상을 완화시킬 수 있는 막강한 잠재력을 지니고 있다.
HEVC의 이점이 보고되고 있음에도 불구하고 여러 시장 참여자들은 HEVC의 계산 복잡성으로 인한 추가 비용의 영향을 여전히 지켜보고 있다. 채널 수 당 비용을 줄여 줄 HEVD 인코드를 위한 가속화된 솔루션은 여전히 시기상조이다. 따라서 초기 시장 선도기업들은 표준이 진화함에 따른 새로운 기능과 미래의 수요를 해결할 확장성을 통합할 수 있는 유연성을 제공하는 플랫폼을 선택해야 한다. 

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>



  •  홈페이지 보기
  •  트위터 보기
  •  페이스북 보기
  •  유투브 보기
  • 100자평 쓰기
  • 로그인

세미나/교육/전시
TOP