대부분의 소비자 비디오 제품은 압축 해제 도중과 압축 해제 후에 사용되는 비디오 처리 기술과 알고리즘으로 구별됩니다. 일부 비디오 처리 기술은 아래 나열된 것과 다른 방식으로 구현될 수 있으며 다음 기술은 응용 프로그램에 따라 다른 이름을 가질 수 있습니다. 성공적인 디지털 비디오 제품을 만들려면 올바른 프로세서를 선택해야 합니다. 간단하게 들리지만 물론 그렇지 않습니다. 큰 문제 중 하나는 범용 CPU, FPGA, DSP, 구성 가능 프로세서, 고정 기능 칩 및 기타 유형의 프로세서 등 선택할 수 있는 프로세서 스타일이 너무 많다는 것입니다.
문제를 더욱 복잡하게 만드는 것은 디지털 비디오가 표준이 끊임없이 진화하고 변화하면서 빠르게 발전하는 분야라는 것입니다. 따라서 디지털 비디오 분야에서는 변화에 적응하는 프로세서의 능력이 다른 응용 분야보다 더 중요하지만 이러한 유연성은 일반적으로 효율성 저하를 초래합니다.
프로세서를 선택할 때 어느 정도 타협은 불가피하겠지만, 제품의 성공을 타협하지 않도록 프로세서를 선택하는 방법을 아는 것이 핵심이다. 선택할 수 있는 프로세서가 너무 많기 때문에 이를 모두 살펴보거나 각 주요 범주를 자세히 살펴보는 것은 사실상 불가능합니다. 대신 계층적 접근 방식을 사용하십시오. 즉, 가장 중요한 필터링 기준을 사용하십시오. 당신과 적합하지 않은 후보자를 제거합니다.
기본 선택을 수행할 때 사용되는 일반적인 기준은 다음과 같습니다:
* 속도. 다른 많은 유형의 신호 처리 작업과 마찬가지로 디지털 비디오 작업에는 프로세서에 막대한 계산 작업량이 필요합니다. 프로세서가 대상 응용 프로그램에 충분한 속도를 가지고 있는지 주의 깊게 분석하십시오. BDTI Video Benchmarks와 같은 비디오 중심 테스트 벤치마크를 사용하는 것이 가장 좋습니다.
* 가격. 칩 가격도 중요하지만 채널당 비용이나 전체 시스템 비용이 더 중요할 수 있습니다.
* 에너지 효율성. 대부분의 경우 에너지 사용량이 배터리 수명을 결정하기 때문에 전력 소비보다 에너지 효율성을 평가하는 것이 더 합리적입니다.
* 유연성. 일부 유형의 프로세서는 다른 유형보다 유연성이 뛰어나 향후 제품 기능 변경이 가능하거나 새로운 압축 알고리즘에 대한 지원 추가와 같은 현장 업그레이드가 가능합니다. 그러나 일반적으로 프로세서의 유연성이 높을수록 비용 및 에너지 사용량 측면에서 효율성이 떨어집니다.
* 개발 도구 품질. 프로세서에 신호 처리 응용 프로그램(또는 더 나아가 비디오 응용 프로그램)의 개발을 지원하는 도구가 있는지 여부는 개발 시간과 결과적으로 출시 기간에 큰 영향을 미칠 수 있습니다.
* 이전 프로세서 모델과의 호환성. 이전 제품에서 사용된 소프트웨어를 재사용하려는 경우 이는 종종 중요합니다.
* 공급업체 로드맵. 공급업체의 제품 로드맵이 귀사의 후속 제품 개발 계획과 일치합니까? 제품 수명 기간 동안 프로세서가 지원되거나 업그레이드됩니까?
* 칩 또는 라이센스 가능한 코어로 판매됩니다. 일부 프로세서는 패키지형 기성 칩으로 판매되고 일부는 맞춤형 칩을 만드는 데 사용되는 라이센스 가능한 지적 재산(종종 라이센스 가능 코어라고도 함)으로 판매됩니다. 이 기사에서 논의된 대부분의 프로세서 범주에는 패키지 칩과 라이센스 가능한 코어가 모두 포함됩니다.
다양한 유형의 프로세서의 장점과 단점
디지털 비디오에 일반적으로 사용되는 6가지 유형의 프로세서(고정 기능 엔진, 애플리케이션 특정 표준 제품(ASSP), 미디어 프로세서)에 중점을 둡니다. , DSP, 임베디드 RISC 프로세서 및 FPGA. 이는 가장 전문적인 제품부터 가장 유연한 제품까지 다양하며 각 프로세서 유형의 장단점을 논의하고 각 범주 내의 특정 제품을 분석합니다.
먼저 고정 기능 엔진에 대해 이야기해 보겠습니다. 효율성을 극대화하기 위해 유선 프로세서 아키텍처를 사용하며 명령 스트림을 사용하지 않으며 프로그래밍할 수 없습니다. 하드와이어드 로직은 탁월한 처리 속도, 에너지 효율성 및 종종 비용 효율성을 제공하는 대가로 유연성을 희생합니다.
고정 기능 엔진을 사용하면 시스템 설계 및 테스트가 단순화될 수 있습니다. 고정 기능 엔진은 프로그래밍이 불가능하므로 제품 개발자는 프로그래밍 도구를 배우거나 여러 소프트웨어 모듈을 통합할 필요가 없습니다. 그리고 프로세서가 수행하는 여러 작업이 바람직하지 않은 방식으로 서로 상호 작용하거나 시스템의 실시간 특성을 방해할 수 있는지 여부를 고려할 필요가 없습니다.
고정 기능 엔진은 일반적으로 맞춤형 칩에 쉽게 통합할 수 있도록 라이센스 가능한 지적 재산(IP)으로 제공됩니다.
이 형태에서 고정 기능 엔진은 휴대폰과 같은 대용량 애플리케이션에 가장 적합합니다. 고정 기능 엔진은 때때로 칩 형태로도 제공됩니다. MPEG-2 디코더 칩과 같은 고정 기능 비디오 칩은 특히 제품에 수요 제어 및 사용자 인터페이스 기능을 처리할 수 있는 호스트 프로세서가 있는 경우 저렴한 비용으로 기존 제품에 기능을 추가할 수 있습니다.
예를 들어 Hantro의 5150 MPEG-4 비디오 디코더는 IP로 판매되는 고정 기능 엔진의 예입니다. 엔진은 MPEG-4 디코딩에 필요한 덜 까다로운 하위 작업 중 일부를 처리하는 범용 프로세서에 연결된 보조 프로세서로 사용되도록 고안되었습니다.
고정 기능 하드웨어의 주요 단점은 유연성이 부족하다는 것입니다. 프로그래밍이 가능하지 않기 때문에 제품 개발자는 새로운 표준이나 다른 기능을 지원하기 위해 고정 기능 하드웨어를 쉽게 수정할 수 없습니다. 이는 많은 비디오 애플리케이션이 아직 미성숙하고 표준과 기능이 빠르게 변화하고 있기 때문에 우려되는 일입니다.
따라서 고정 기능 엔진은 전용 표준 제품의 일부로 사용되는 경우가 많습니다. 아래에서는 ASSP에 대해 이야기하겠습니다.
ASSP(Application-Specific Standard Product)는 고도로 통합된 특수 칩입니다. 이는 ASIC(주문형 집적 회로)과 비교할 수 있습니다. ASIC은 시스템 회사에서 설계하고 자체 제품에 사용됩니다. ASSP는 칩 회사에 의해 설계되었으며 여러 시스템 개발자에게 기성 칩으로 제공됩니다. 복잡한 칩을 개발하는 것은 비용과 시간이 많이 걸리기 때문에 ASSP는 일반적으로 대량 생산에 도달했거나 더 많은 양이 예상되는 기존 제품에 사용됩니다.
예를 들어 Zoran의 Vaddis 5R은 DVD 레코더의 오디오 및 비디오 처리를 위한 고도로 특수화된 칩입니다. 필요한 핵심 알고리즘이 확인되었습니다. 가장 두드러진 알고리즘은 MPEG-2 비디오 압축 및 압축 해제입니다.
Vaddis 5R에는 2개의 RISC 프로세서가 포함되어 있지만 MPEG-2 비디오 디코딩 및 색 공간 변환과 같이 가장 계산 집약적인 작업을 수행할 때 고정 기능 하드웨어 가속기를 사용합니다. 위에서 언급한 이유로 인해 Vaddis 5R(및 기타 유사한 ASSP)은 고정 기능 엔진의 장점과 단점을 공유합니다. 즉, 우수한 성능과 에너지 효율성이 있지만 유연성은 제한됩니다.
제한된 유연성은 시스템 설계자가 제품을 설계할 때 동일한 ASSP를 사용하는 다른 제품과 유사한 경향이 있음을 의미합니다. 이는 또한 상당히 다른 기능을 지원하려면 최신 칩이 필요하기 때문에 시스템 설계자가 칩 공급업체의 로드맵에 크게 의존한다는 것을 의미합니다.
또한 프로그래밍 가능한 프로세서에 주로 의존하여 무거운 비디오 작업을 수행하고 유연성을 위해 에너지 효율성과 비용 효율성을 희생하는 ASSP도 있습니다. 이러한 유형의 ASSP는 일반적으로 비디오 디코더 및 하드웨어 드라이버와 같은 주요 소프트웨어와 함께 번들로 제공되므로 시스템 개발자가 많은 저수준 소프트웨어를 개발할 필요가 없습니다. 그러나 고정 기능 하드웨어 기반 ASSP를 채택하는 것과 비교하면 여전히 소프트웨어 개발 및 통합에 많은 노력이 필요할 수 있습니다.
미디어 프로세서는 전문화/유연성 측면에서 ASSP와 디지털 신호 프로세서(DSP) 사이에 위치합니다. 미디어 프로세서는 광범위한 신호 처리 작업에 최적화된 DSP와 달리 오디오 및 비디오 처리와 관련된 작업에 최적화되어 있습니다. 미디어 프로세서는 일반적으로 DSP와 유사한 기본 처리 엔진, 2~3개의 전용 보조 프로세서, 오디오 및 비디오 관련 주변 장치를 포함한 여러 프로세서를 사용합니다.
필립스의 PNX1500은 미디어 프로세서입니다. 일반적인 미디어 프로세서와 마찬가지로 PNX1500은 비디오 처리 작업 수행에 매우 효율적인 강력한 병렬 프로세서 코어를 기반으로 합니다. PNX1500에는 미디어 프로세서에 일반적으로 사용되는 여러 가지 고정 기능 하드웨어 가속기와 특수 주변 장치도 포함되어 있습니다. 메인 프로세서 코어는 압축과 같은 복잡한 비디오 작업을 처리하며 시스템 설계자가 프로그래밍할 수 있습니다.
Zoran의 Vaddis 5R과 유사하게 PNX1500은 MPEG-2 디코딩에 매우 적합합니다. 그러나 Zoran의 ASSP와 달리 PNX1500은 H.264와 같은 다른 비디오 압축 표준과 함께 사용할 수 있을 만큼 유연합니다. 물론 이러한 유연성에는 대가가 따르게 됩니다. 소프트웨어 비디오 디코더는 일반적으로 고정 기능 하드웨어보다 에너지와 비용 효율성이 낮습니다.
미디어 프로세서는 여러 개의 서로 다른 프로세서를 사용하기 때문에 다른 프로그래머블 프로세서에 비해 소프트웨어 개발에 큰 어려움을 겪는다. 예를 들어 특정 비디오 작업을 수행하려면 일반적으로 두 개 이상의 처리 장치를 프로그래밍하고 조정해야 합니다. 이러한 단점을 보완하기 위해 미디어 프로세서 공급업체에서는 최적화된 소프트웨어 구성 요소 라이브러리를 제공하는 경우가 많습니다.
미디어 프로세서 공급업체는 일반적으로 소프트웨어 개발 시 C 또는 C++ 사용을 강조하고 어셈블리 언어를 권장하거나 지원하지 않습니다. 고급 언어로 소프트웨어를 개발하는 데 중점을 두는 것은 프로그래머가 프로세서 아키텍처의 많은 복잡성에서 벗어날 수 있도록 하는 것입니다. 단점은 프로그래머가 유효한 코드를 생성하기 위해 컴파일러에 의존해야 한다는 점인데, 이는 항상 현실적이지는 않습니다. 개발자는 최적의 성능을 위해 고급 언어 코드를 수동으로 조정하는 데 상당한 노력을 투자해야 할 수도 있습니다.
디지털 신호 프로세서(DSP)는 다양한 신호 처리 애플리케이션용으로 설계되었습니다. 미디어 프로세서에 비해 DSP에서 사용하는 사양은 비디오 처리에 덜 중점을 두고 있으며 병렬성이 낮습니다. 낮은 병렬성의 약점을 보완하기 위해 DSP는 일반적으로 주어진 애플리케이션에서 미디어 프로세서보다 더 빠르게 명령을 실행해야 합니다. 명령 속도가 높을수록 시스템 설계가 복잡해지고 에너지 소비가 증가할 수 있습니다. 반면에 DSP는 비디오 작업을 처리할 때 임베디드 RISC 프로세서보다 더 낮은 클럭 속도를 요구합니다(아래에서 설명). DSP의 주요 장점은 유연성과 강력한 애플리케이션 개발 도구입니다.