IP 네트워크 및 이머징 비디오 애플리케이션의 비디오 트랜스코딩 요구
비디오 인코딩 표준이 증가하고 IP 네트워크에서 대역폭 및 지연시간이 제한됨으로 인해 비디오 트랜스코딩 기술이 필요하게 되었다. 이 글에서 소개하고 있는 TI의 C6455 DSP와 데모 소프트웨어 컴포넌트는 현재 및 미래에 IP를 통한 비디오의 요구를 충족할 수 있도록 한다.
글│Dr. Cheng Peng, Zhengting He, 텍사스 인스트루먼트
비디오 트랜스코딩의 필요성
디지털 비디오 압축은 이제 대부분의 비디오 애플리케이션에서 중요한 기술로 자리잡고 있다. 미디어 컨버전스가 지속됨에 따라서 압축 및 상호운용성은 갈수록 더 중요해질 것이다.
가장 두드러진 디지털 비디오 애플리케이션으로서 DVD, HDTV, 비디오 전화/화상회의와 좀더 최근의 비디오 감시기를 들 수 있다. 하지만 이들 각각의 가전 시스템 기술은 역사적 배경이 각기 다르다. 결과적으로 각각의 기술이 각기 다른 압축 알고리즘을 채택하고 있다.
지난 수년에 걸쳐서 시장의 표준 수가 급격하게 증가했다. 특히 다양한 프로파일의 H.264/MPEG-4 AVC와 다양한 프로파일의 WMV9/VC-1 같은 새로운 코덱이 등장하면서 더욱 그러하다. 이와 동시에 비디오 시스템을 설계하는 엔지니어들은 H.261/H.263, MPEG-2, MPEG-4 Part 2 SP, ASP 같은 소수의 이전 표준만을 지원하는 기존 장비를 계속해서 다루어야 한다. 하지만 애플리케이션에 따라서 이 장비는 새로운 알고리즘을 채택한 최신 장비와 상호운용이 가능해야 한다.
알고리즘 개발도 작업의 중요한 부분이다. 새롭고 더 강력한 알고리즘이 개발되고 표준화됨에 따라 이 표준들은 모든 기존 알고리즘과 호환이 가능해야 한다. 이는 매우 까다로운 작업이며 또는 강력한 범용 트랜스코딩 기법을 개발해야 한다.
IP의 측면에서 이 문제는 더 복잡해질 수 있다. MPEG2, MPEG4, H.263, H.264/AVC 같은 다수의 비디오 코딩 알고리즘이 공개 표준이지만, On2나 Real Video 같은 기타 표준은 고유기술이다. 때로는 고유기술 알고리즘이 표준이 되기도 한다. 예를 들어 마이크로소프트의 Media Video는 고유기술 알고리즘으로 시작했으며 최종적으로 SMPTE(Society of Motion Picture Television Engineers)에 의해 공개 VC1 표준으로 채택되었다.
비디오 트랜스코딩이란 무엇인가?
비디오 트랜스코딩은 한 비디오 형식을 다른 형식으로 변환하는 것이며 두 가지의 중요한 역할을 한다.
*트랜스코딩은 기존 장비와 새로운 장비 사이에 통신을 가능하게 한다. 예를 들어 다수의 기존 화상 회의 시스템은 기존 비디오 코딩 표준인 H.263을 기반으로 한다. 하지만 최신 화상 회의 시스템은 H.264/AVC 베이스라인 프로파일을 이용한다. 이들 사이에 통신을 가능하게 하기 위해서는 실시간 비디오 트랜스코딩이 필요하다.
*네트워크 특히 인터넷은 비디오 전송에 있어서 대역폭 제약을 야기한다. 예를 들어 오늘날 대다수의 영화는 MPEG2 형식을 이용해 DVD에 저장된다. 주문형 비디오 및 IP를 통한 비디오 스트리밍(Video Streaming Over IP) 시스템은 대역폭 제한 때문에 전송에 앞서 실시간 비디오 트랜스코딩을 이용해 비디오 데이터를 대역폭 효율이 높은 형식으로 변환해야 한다.
화상 회의 시스템을 위해서는 비디오 트랜스코딩을 이용해 기존 스트림 및 새로운 비디오 스트림을 서로 변환해야 한다. 주문형 비디오 애플리케이션을 위한 변환은 주로 기존 비디오 코딩 표준(MPEG2, H.263)으로 인코딩된 비디오 스트림에서 H.264/AVC나 WMV1/VC1 같은 새로운 비디오 코딩 표준으로 인코딩된 스트림으로 이루어진다. 트랜스코딩의 이유는 비디오 품질을 저하시키지 않으면서 최대 50%에 달하는 네트워크 대역폭을 절약할 수 있다는 것이다.
비디오 트랜스코딩 시스템의 개요
운용 측면에서 보통 시스템 중앙국의 비디오 인프라에 비디오 트랜스코딩이 채택된다. 가장 일반적인 구현은 네트워크 트래픽을 처리하기 위한 호스트 프로세서를 필요로 하며, 다중의 DSP가 트랜스코딩 작업에 관련된 비디오 인코딩 및 디코딩을 처리한다. 보통은 단일 비디오 MCU로 다중의 비디오 트랜스코딩 채널을 동시에 다루기에 충분하다.일례로 그림 1은 화상 회의 시스템에서 개략적인 MCU의 기본적인 비디오 트랜스코딩 요구 및 데이터흐름을 보여준다. 하나의 DSP(DSP2)가 입력 비디오 스트림을 디코딩하고 복원된 비디오 프레임을 생성하고 이를 SRIO 인터페이스를 통해 다른 DSP(이 예의 DSP1)으로 전송한다. 또 다른 DSP가 복원된 비디오 프레임을 목표 형식으로 인코딩한다. 가장 일반적인 시나리오는 화상 회의의 한쪽 말단에서 H.263 기반 장비를 이용하고 상대측에서 H.264 기반 장비를 이용하는 것이다.
이 경우에는 호스트 프로세서는 PCI 접속을 통해서 다중의 DSP(이 경우에는 4개)와 통신한다.
이 예에서 프로세서 상호통신의 중요한 기능은 4개의 DSP 간의 Serial RapidIO(SRIO) 연결이다. DSP 간에 전송되는 데이터는 보통 초당 30프레임의 비압축 비디오 데이터이므로 디바이스 간의 대역폭 요구가 매우 높다.
NTSC 표준 해상도(720 x 480) YUV 4:2:0 비디오를 예로 들면 각 프레임의 크기가 720 x 480 x 1.5 = 518400 바이트이다. 30fps로 트랜스코딩 한다면 각 채널이 대략 124Mb/s를 필요로 한다. SRIO를 선택한 것은 비디오 대역폭 요구와 유연한 스위칭 패브릭 지원 때문이다. SRIO의 이러한 이점은 다시 이 애플리케이션을 위한 DSP의 선택에 있어서 중요한 요인이 된다.
SRIO는 1.24Gbps, 2.5Gbps, 3.125Gbps의 3개 데이터율을 제공하는 AC 결합 인터페이스이다. 이 인터페이스는 SerDes 기술을 이용해서 데이터 스트림으로부터 클록 복구를 수행하고 8b/10b 코딩을 이용한다. 이 직렬 표준은 1레인(1X) 및 4레인(4X) 포트 크기를 지원한다. SRIO의 물리층은 링크 당사자 간의 핸드세이크 메커니즘과 CRC를 기반으로 한 오류 탐지 처리를 정의한다. 또한 스위치 패브릭 내에서 루팅에 이용되는 패킷 우선순위도 정의한다.
SRIO의 대역폭 성능을 최대한 활용하기 위해 DSP는 SRIO 인터페이스를 갖추어야 한다. 텍사스 인스트루먼트의 TMS320C6455 DSP의 빌트인 SRIO 인터페이스는 4개 동시 링크를 구현하며 양방향으로 20Gb/s의 피크 데이터 전송을 가능하게 한다.
비디오 트랜스코딩 프로토타입 구현
트랜스코딩은 회사 교육 애플리케이션, 주문형 비디오 애플리케이션, 비디오 브로드캐스팅 애플리케이션에서와 같이 IP 네트워크를 통해서 DVD 출처 데이터를 전송하는 데에도 적합하다. 이 경우에는 MPEG2가 소스 비디오 형식이고 WMV9이 목표 형식으로 이용될 가능성이 높다. 그러면 2개 TI의 TMS320C6455 DSP를 이용하는 이와 같은 시스템의 프로토타입 구현에 대해 살펴보자.
기술적으로 형식 변환, 비트율 감소, 시간/공간 분해능 감소 등의 많은 문제를 해결하기 위해서는 비디오 트랜스코딩이 필요하다. 이에 따라서 각각의 문제를 해결하기 위해 각기 다른 지능형 비디오 트랜스코딩 기법들이 개발되었다. 이의 원리는 수신되는 원래 비디오 스트림에 들어있는 정보를 최대한 재사용함으로써 복잡성을 간소화하는 것이다.
예를 들어 모션 벡터 맵핑, DCT 영역 변환, 잔여 재계산은 연산 복잡성을 대폭적으로 낮추기 위해 비디오 트랜스코딩에 널리 이용되는 기법들이다.
이와 함께 단순하면서 확장 가능한 트랜스코딩 아키텍처가 요구된다. 각기 다른 비디오 트랜스코딩 솔루션은 다양한 방식으로 맞춤화 알고리즘 및 아키텍처를 필요로 하고 단일한 표준화 비디오 트랜스코딩 기법이 존재하지 않으므로 C6455 DSP와 같은 DSP의 프로그램 가능성이 이와 관련해 적합한 솔루션을 제공한다.
이 글의 후반부에는 모든 유형의 트랜스코딩 기법에 적합한 범용 비디오 트랜스코딩 아키텍처 및 프로토타입을 제안할 것이다. 목표로 하는 비디오 트랜스코딩의 각기 다른 시나리오에 적합하도록 디코딩된 비디오 스트림을 새로운 제약에 따라서 완벽하게 재인코딩하는 가장 단순한 트랜스코딩 기법을 선택했다.
일차적인 비디오 트랜스코딩 구현은 원래의 비디오 스트림에 들어있는 정보를 재사용하지 않으며 최대한의 디코딩 및 재인코딩 복잡성을 처리할 수 있는 성능을 나타낸다.
하지만 이 비디오 트랜스코딩 아키텍처 및 소프트웨어 인프라는 채널 밀도를 높이고 품질의 최적화가 가능한 지능형 트랜스코딩 기법(MV 맵핑, DCT 영역 변환 등)을 이용하도록 확장할 수 있다.
유연한 하드웨어/소프트웨어 프레임워크를 기반으로 한 이 아키텍처를 이용해서 다수의 기존 및 새로운 트랜스코딩 기법 구현이 가능하다.
A. 코덱 소개
MPEG2은 가장 인기가 높고 널리 이용되는 비디오 압축 기법이다. DVD와 디지털 TV 브로드캐스팅이 MPEG2 표준을 기반으로 한다. 프로그래시브(Progressive) 및 인터레이스(Interlace) 비디오 형식을 모두 지원한다.
MPEG2의 가장 큰 단점은 우수한 비디오 품질을 달성하기 위해 매우 높은 비트율을 필요로 한다는 것이다. 예를 들어 30fps의 NTSC 표준 해상도(720 x 480화소)를 위해서는 5~8Mbps의 MPEG2를 필요로 한다.
마이크로소프트의 윈도우즈 미디어 비디오 9(WMV9) 시리즈의 압축 알고리즘은 2002년에 처음 고유기술 표준으로 소개되었다. 지난 4년에 걸쳐서 WMV9은 이 코덱의 앞선 기능에 힘입어서 Video Streaming Over IP나 주문형 비디오 시스템 같은 분야에서 기술 커뮤니티로부터 갈수록 관심이 높아지고 있다.
MPEG2 같은 기존 비디오 코딩 표준과 비교해서 WMV9은 다음과 같은 앞선 기능들을 제공한다.
*모션 예측에 있어서 1/2 및 1/4 화소 보정(Interpolation)을 지원한다. 이 기능은 영상 품질에 직접적인 영향을 미친다.
*적응식 인루프 디블로킹 필터링을 지원한다. 이 기능은 목표 비트율이 낮을 때 양자화 아티팩트를 현저히 감소시킨다.
*다중 VLC 테이블 지원: WMV9의 메인 프로파일은 각기 다른 유형의 콘텐츠에 대해 최적화된 다중의 VLC 테이블 셋을 포함한다. 테이블은 입력 비디오의 특성에 맞게 적합하도록 프레임 레벨에서 전환할 수 있다.
*DCT/IDCT 변환 전환: WMV9은 변환 시에 8x8, 8x4, 4x8, 4x4 등의 다중 블록 크기를 지원한다. DCT는 또한 MPEG를 이용할 때의 문제점인 구현 간의 편차를 방지하기 위해서 정수 변환으로 지정되었다.
*양자화: 데드존(Dead-Zone) 양자화를 지원하므로 비트 예산이 낮은 경우에 상당량의 비트를 절약할 수 있다.
MPEG2/MPEG4와 비교해 WMV9은 비디오 코딩 효율 측면에서 훨씬 우수한 성능을 나타낸다. H.264/AVC와 비교해서는 WMV9가 더 낮은 연산 로딩을 필요로 하면서 비슷한 압축 효율을 제공한다.
또한 WMV9은 마이크로소프트의 개발과 직접적으로 연관된 또 다른 추가적인 속성을 지닌다. 이것은 시간이 흐를수록 비디오를 위한 디스플레이 플랫폼으로서 PC에 널리 이용되고 있다는 점으로 인해서 주류 코덱으로 자리잡고 있다는 것이다. WMV9은 HD-DVD 및 블루레이를 위한 필수적인 형식으로 채택되고 있기도 하다.
TI의 C6455 DSP의 높은 DSP 연산 성능은 비디오 인코딩 및 디코딩을 위한 없어서는 안될 요소이다. 이는 뿐만 아니라 트랜스코딩 같은 비디오 인프라 애플리케이션을 위해 이상적인 일련의 추가적인 중요한 기능들을 제공한다. 일반적으로 이들 기능을 다음의 4개 주요 분야로 구분할 수 있다.
*다중의 강력한 I/O 옵션
시스템 디자이너들은 각기 다른 관점에서 문제를 해결하므로 비디오 인프라 애플리케이션을 위한 DSP가 보드 레벨 연결성을 위한 I/O 옵션을 제공해야 한다. 앞에서 언급했듯이 디바이스간 통신을 위해서 SRIO 포트가 통합되었다. SRIO는 높은 스루풋 메시지 전달 기법을 채택해서 가용 데이터 대역폭의 95퍼센트 활용도를 달성한다.
그 밖의 I/O 옵션으로서 1Gb/s 이더넷 미디어 액세스 컨트롤러(EMAC), 32비트 DDR(DDR2-500) 메모리 컨트롤러, 66MHz PCI 버스를 포함한다. 온칩 UTOPIA 2(Universal Test and Operations PHY Interface for ATM) 포트는 C6455 DSP를 통신 인프라에 이용할 수 있도록 한다.
*효율적 온칩 데이터 이동
효율적 데이터 이동을 위한 칩 아키텍처는 C6455 DSP가 이전 세대와 비교해서 제공하는 주요한 이점 중의 하나이다. 비디오 인프라 애플리케이션에서는 DSP가 호스트 프로세서에 대한 슬레이브 장치로 동작한다. 그러므로 높은 스루풋, 낮은 지연시간, 마스터와 슬레이브 사이의 동시적 데이터 전송을 달성하는 것이 중요한 고려사항이다. 이러한 요구에 의한 아키텍처적 결과로서 C6455 DSP의 효율적 SRC(Switched Central Resource)를 통해서 주변장치, 내부 메모리, DSP 코어가 상호접속된다.
데이터 흐름의 간소화 역시 중요한 문제이다. 256비트 폭 메모리 버스 및 내부 DMA(IDMA)를 채택함으로써 향상을 달성할 수 있다. IDMA가 2개 레벨의 내부 메모리 간에 그리고 주변장치 버스에 대해서 백그라운드 데이터 이동을 수행한다.
*대형 온칩 메모리
오프칩 SDRAM과 비교해서 온칩 SRAM은 훨씬 신속하며 구현 비용 때문에 크기가 훨씬 작다. 일반적인 비디오 애플리케이션의 경우에 온칩 메모리는 주로 다음의 두 가지 용도로 이용된다: 1) VLC 테이블 등과 같이 빈번하게 액세스하는 코드 및 데이터를 저장하고, 2) 프로세싱 전후에 시간적 데이터를 주고받는다. 보통은 더 많은 온칩 메모리를 이용하면 애플리케이션 성능이 더 우수할 수 있다. C6455 DSP에는 최고 2메가바이트의 온칩 SRAM이 통합되었으며 이는 비디오 애플리케이션의 성능을 높일 수 있도록 할 뿐 아니라 대다수 비디오 인프라 시스템에 요구되는 것과 같이 다중의 채널을 처리할 수 있게 한다.
*코드 호환성
비디오 애플리케이션에 이용되는 많은 양의 코드가 비디오 인프라 애플리케이션을 위한 트랜스코딩이 오늘날과 같이 일반화되기 훨씬 전에 개발된 것이므로 역 코드 호환성이 중요하다. 명령 셋 변경과 비교해서 DSP 코어 아키텍처는 주요 신호 프로세싱 동작에 대해서 성능 향상을 달성할 수 있는 적합한 장소이다. C6455 DSP에는 2가지의 아키텍처 혁신이 구현되었다. 첫째는 루프 버퍼를 채택해서 소규모 루프 코드의 소프트웨어 파이프라인 효율을 향상시킬 수 있다는 것이다. 둘째는 고유 32비트 명령의 16비트 버전을 채택함으로써 코드 크기를 대폭적으로 줄이고 그럼으로써 프로그램 캐시 미스 비율을 낮춘다는 것이다.
B. 프로토타입 구현
그림 2는 MPEG2 및 WMV9을 원래 및 목표 형식으로 이용한 비디오 트랜스코딩 엔진을 보여준다. MPEG2/WMV9 조합이 가장 널리 이용될 것으로 기대되기는 하지만 DSP의 프로그램 가능성은 거의 모든 조합의 소스/목표 비디오 형식을 처리하는 것을 수월하게 할 것이다.
이 시스템의 데이터 흐름은 다이어그램 왼쪽에서 하드 디스크에 저장된 압축 MPEG2 비디오 파일에서 시작해서 윈도우즈 미디어 플레이어 소프트웨어를 거쳐 평면 패널 디스플레이에서 끝난다. 이 애플리케이션 예에서는 비디오가 NTSC 표준(720 x 480화소) 해상도이며 30fps로 트랜스코딩된다.
DSP1 상에서 실행되는 스트리밍 리시버 모듈이 MPEG2 스트림을 버퍼링하고 MPEG2 디코더 모듈을 위한 입력 데이터를 관리한다. 데이터 수신 동작은 근본적으로 TCP/IP 스택인 TI의 Network Development Package(NDK) 라이브러리에 의해 제어된다. DSP2 상에서 실행되는 ASF 패킷화 모듈은 압축 RCV 출력 데이터를 WVM9 모듈에서 ASF 형식으로 패킷화한다. DSP2 상에서는 또한 NDK 기반 HTTP 서버가 실행되어서 윈도우즈 미디어 플레이어가 전송한 스트리밍 요청을 처리하고 여기로 ASF 패킷을 전송한다. 윈도우즈 미디어 플레이어가 ASF 패킷을 디코딩하고 화면 상에 비디오를 표시한다.
이 데이터흐름의 가장 흥미로우면서 까다로운 부분은 2개 DSP 간에 SRIO 인터페이스를 통한 상호작용이다. 각각의 비디오 프레임 전송을 위해서 다음과 같은 동작이 이루어진다.
*DSP1이 비디오 프레임 전송을 완료하자마자 SRIO 프로토콜 규격에서 DOORBELL 패키지라고 하는 것을 전송한다. DOORBELL 패키지는 DSP2 상에서 시스템 인터럽트를 생성하는데 이는 프레임을 이용할 수 있다는 표시이며, 이후 WMV9 인코딩을 시작한다. 프레임이 인코딩된 후에는 DSP2가 DSP1으로 다시 DOORBELL 패키지를 전송해서 DSP1으로 인터럽트를 트리거함으로써 DSP1이 계속해서 다음 프레임을 전송할 수 있다는 것을 알려준다. 실제 구현 시에는 PING -PONG 버퍼 기법을 채택해서 인코딩/디코딩 및 데이터 전송 동작을 병렬화한다. 이 데모가 정지할 때까지 이 시퀀스가 루프 방식으로 이어진다.
*GUI 블록은 이 시스템에 구축된 제어 및 모니터링 기능을 보여준다. SRIO 링크 및 기가비트 MAC (GMAC) 링크의 동작이 실시간으로 표시된다. MPEG2 스트림을 전송하는 링크의 경우에는 평균 데이터율이 8Mb/s로서 이는 30fps로 인코딩되는 표준 해상도를 위해서 일반적이다. ASF 패킷을 전송하는 링크의 경우에는 평균 비트율이 4Mb/s로 이는 MV9이 약 50%의 대역폭을 절약하면서 동시에 유사한 비디오 품질을 달성할 수 있다는 것을 보여준다. SRIO 링크의 경우에는 평균 비트율이 124Mb/s이다.
소프트웨어 아키텍처
그림 2의 하드웨어 아키텍처는 그림 3에서 보는 것과 같은 소프트웨어 아키텍처를 이용한다.
결론
비디오 인코딩 표준이 증가하고 IP 네트워크에서 대역폭 및 지연시간이 제한됨으로 인해 비디오 트랜스코딩 기술이 필요하게 되었다.
기본 기술은 상당 기간 동안 자리잡아 왔지만 더 높은 품질의 비디오와 궁극적으로 IP 네트워크를 통한 HDTV를 위해서는 서로 상호작용하며 이 인터페이스의 전송 기법을 보완하는 SRIO 및 DSP를 포함하는 새로운 비디오 인프라 아키텍처를 필요로 한다. 인프라 애플리케이션에 이용되는 DSP는 다중의 채널을 동시에 처리하기 위해 대량의 온칩 메모리를 제공해야 한다. 뿐만 아니라 디자이너들에게 GMAC 및 UTOPIA를 포함한 다중의 IP 옵션을 제공하고 더 우수한 내부 데이터 흐름을 제공해야 한다.
이 글에서 소개하고 있는 TI의 C6455 DSP와 데모 소프트웨어 컴포넌트는 현재 및 미래에 IP를 통한 비디오의 요구를 충족할 수 있도록 한다.
<자료제공: 월간 반도체네트워크 2007년 06월호>