이 부분은 청구범위에 언급되는 본 발명에 대한 배경 또는 상황을 제공하기 위한 것이다. 여기에서의 내용은 추구될 수는 있으나, 앞서 반드시 인지되었다거나 추구되었던 것들이라고는 할 수 없는 개념들을 포함할 수 있다. 따라서, 이 명세서에서 달리 지시되지 않는다면, 이 부분에 기술된 내용은 이 출원의 상세설명 및 청구항들에 대한 선행 기술이 아니며, 이 부분에 포함되어 있다고 선행 기술이라고 인정되는 것은 아니다.
ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual 및 ITU-T H.264 또는 ISO/IEC MPEG-4 AVC를 포함하는 많은 비디오 코딩 규격들이 존재한다. H.264/AVC는 ITU-T 비디오 코딩 전문가 그룹 (VCEG, Video Coding Experts Group) 및 ISO/IEC MPEG의 합동 비디오 팀 (JVT, Joint Video Team)의 작업 결과이다. 또한, 비디오 코딩에 대한 전 매 솔루션들 (가령, 마이크로소프트의 윈도즈 미디어 비디오 버전 9에 기초하는 것으로 SMPTE 규격 421M이라고도 알려진, VC-1) 및, 중국의 오디오 및 비디오 코딩 규격 워크그룹에 의한 AVS 코덱 등의 국가 주도의 규격들 역시 존재한다. 이들 규격들 중 몇몇은 이미 MPEG-2 visual 및 MPEG-4 visual 등과 같은 스케일러블 익스텐션 (scalable extension)을 특정하고 있다. H.264/AVC와 관련해, 때때로 SVC 규격이라고도 불리는 스케일러블 비디오 코딩 익스텐션 SVC가 현재 개발 중에 있다.
가장 최근의 SVC 초안이 http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T201.zip에서 입수가능한, 2006년 7월 오스트리아의 클라겐푸르트에서의 제20차 JVT 회의 JVT-T201, "Joint Draft 7 of SVC Amendment"에 설명되어 있다.
SVC는 스케일러블 비디오 비트스트림들을 제공할 수 있다. 스케일러블 비디오 비트스트림의 일부가 추출되어, 저하된 재생 비디오 품질로써 디코딩될 수 있다. 스케일러블 비디오 비트스트림은 비(non)-스케일러블 베이스 계층 (base layer) 및 하나 이상의 인핸스먼트 계층들 (enhancement layers)을 포함한다. 인핸스먼트 계층은 시간적 해상도 (즉, 프레임 레이트), 공간적 해상도, 또는 단순히 하위 계층이나 그 일부에 의해 재현되는 비디오 콘텐츠의 품질을 개선할 수 있다. 어떤 경우들에서는, 인핸스먼트 계층의 데이터가 소정 위치 다음에, 심지어 임의 위치들에서 잘릴 수 있고, 각각의 잘림 위치는 더욱더 개선된 시각적 품질을 나타내는 어떤 추가 데이터를 포함할 수 있다. 그러한 스케일러빌리티 (scalability)를 파인-그레인드 (fine-grained) (정교성, granularity) 스케일러빌리티 (FGS, fine-grained scalabilty)라고 한다. FGS와 달리, 파인-그레인드 스케일러빌리티를 지원하지 못하는 품질 인핸스먼트 계층에 의해 제공되는 스케일러빌리티를 코스-그레인드 스케일러빌리티 (CGS, coarse-grained scalability)라고 한다. 베이스 계층들은 FGS 스케일러블이 되게 디자인될 수도 있다.
최근의 SVC 사양에서 시간적 스케일러빌리티를 제공하기 위한 메커니즘을 "위계적 B 픽처 (hierarchical B pictures)" 코딩 구조라 부른다. 이 특성은 AVC (Advanced Video Coding)에 의해 온전히 지원되며, 시그날링 부분은 서브-시퀀스 관련 보충적 인핸스먼트 정보 (SEI, supplemental enhancement information) 메시지들을 이용해 이행될 수 있다.
최근의 SVC 사양에서 시간적 스케일러빌리티를 제공하기 위한 메커니즘을 "위계적 B 픽처" 코딩 구조라 부른다. 이 특성은 AVC에 의해 온전하게 지원되며, 시그날링 부분은 서브-시퀀스 관련 보충 인핸스먼트 정보 (SEI) 메시지들을 사용해 이행될 수 있다.
공간적 CGS 스케일러빌리티들을 지원하기 위한 메커니즘들에 있어서, 이전 규격들에서 사용된 것과 유사한 일반적인 계층 (layered) 코딩 테크닉이 어떤 새로운 계층간 (inter-layer) 예측 방식들과 함께 사용된다. 계층간 예측이 될 수 있는 데이터로는 인트라 텍스처 (intra texture), 모션 및 잔차 (motion and residual) 데이터가 포함된다. 강제된 인트라 텍스처 예측 모드에 의해 싱글-루프 (single-loop) 디코딩이 수행되는데, 그에 따라 계층간 인트라 텍스처 예측이, 베이스 계층의 해당 블록이 인트라 매크로블록들 (MB들) 안에 위치되고 있는 MB들에 대해 적용될 수 있다. 동시에, 베이스 계층 내 인트라 MB들은 강제된 인트라 예측을 이용한다. 싱글-루프 디코딩시, 디코더는 재생이 요망되는 스케일러블 계층 (요망 계층이라 부름)만을 위해 모션 보상 및 풀 (full) 픽처 재구성을 수행해야 한다. 이러한 이유로 인해, 디코딩 복잡도가 크게 감소된다. 요망 계층 이외의 모든 계층들이 다 디코딩될 필요는 없는데, 이는 계층간 예측 (계층간 인트라 텍스처 예측, 계층간 모션 예측 또는 계층간 잔차 예측)에 사용되지 않는 MB들의 데이터 전부나 그 일부는 요망 계층 재구성을 위해 필요로 되지 않기 때문이다.
공간적 스케일러빌리티는 베이스 계층이 인핸스먼트 계층의 크롭되고 (cropped) 줌 된 (zoomed) 버전이 될 수 있도록 일반화되어 왔다. 양자화 및 엔트로피 코딩 모듈들은 FGS 기능을 제공하도록 조정되었다. 코딩 모드를 점진적 세분기법 (progressive refinement)이라 부르는데, 여기서 변환 계수들의 연속적인 세분 사항들 (refinements)은, 반복적으로 양자화 스텝 사이즈를 줄이고 서브-비트평면 (sub-bitplane) 코딩에 가까운 "주기적" 엔트로피 코딩을 적용함으로써 인코딩 된다.
현재의 SVC 규격 초안에서 스케일러블 계층 구조는 temporal_level (시간_레벨), dependency_id (종속_id) 및 quality_level (품질_레벨)로 불리는 세 가지 변수들로 특징지어 지는데, 상기 변수들은 비트 스트림 안에서 시그날링되거나, 사양에 따라 도출될 수 있다. temporal_level은 시간적 계층 위계 (temporal layer hierarchy) 또는 프레임 레이트를 나타내는 데 사용된다. 보다 작은 temporal_layer 값의 픽처들을 포함하는 계층이 보다 큰 temporal_level의 픽처들 을 포함한 계층보다 작은 프레임 레이트를 가진다. dependency_id는 계층간 코딩 종속도 위계 (inter-layer coding dependency hierarchy)를 나타내는 데 사용된다. 어떤 시간의 위치에서, 보다 작은 dependency_id 값의 픽처가, 보다 큰 dependency_id 값을 가진 픽처의 코딩을 위한 계층간 예측에 사용될 수 있다. quality_level은 FGS 계층 위계를 나타내는 데 사용된다. 임의의 시간적 위치에서 동일한 dependency_id 값을 가지는 QL에 해당하는 quality_level 값을 가진 FGS 픽처는, 계층간 예측을 위해 QL-1에 해당하는 quality_level 값을 갖는 FGS 픽처 또는 기본 품질의 픽처 (즉, QL-1=0일 때의 비-FGS 픽처)를 사용한다.
적어도 두 CGS 또는 공간적 스케일러블 계층들을 포함하는 스케일러블 비디오의 싱글-루프 디코딩시, 하위 계층 내 코딩된 픽처의 오직 일부만이 상위 계층에서 해당되는 코딩된 픽처의 예측을 위해 (즉, 계층간 예측을 위해) 사용된다. 따라서, 전송자가 수신기들에서의 재생에 요망되는 스케일러블 계층을 알고 있다면, 계층간 예측에 사용되지 않거나 재생에 요망되는 스케일러블 계층들 중 어느 것에도 들어 있지 않은 부분들을 생략함으로써 전송에 사용되는 비트레이트가 감소될 수 있을 것이다. 서로 다른 클라이언트들이 재생을 위해 서로 다른 계층들을 요망할 수 있는 멀티캐스트나 브로드캐스트의 경우, 그러한 계층들을 요망 계층들 (desired layers)이라 부른다는 것을 알아야 한다.
공동 비디오 팀 (JVT, Joint Video Team)이 현재 SVC 규격 개발에 힘쓰고 있다. JVT-R050r1 (http:ftp3.itu.ch/av-arch/jvt-site/2006_01_Bangkok/JVT-R0505.zip에서 입수가능한 2006년 1월 14-20일 태국 방콕에서 열린 제18차 회의 "Discardable bits and Multi-layer RD estimation for Single loop decoding") 및 JVT-R064 (http://ftp3.itu.ch/av-arch/jvt-site/2006_01_Bangkok/JVT-R064.zip에서 입수가능한 2006년 1월 14-20일 태국 방콕에서 열린 제18차 회의 "Selective Inter-layer Prediction") 기고문들이 앞서, 소정 어플리케이션 시나리오들 상에서의 SVC 성능을 개선하기 위해 "불필요한 데이터"를 활용하는 것을 시도했었다. JVT-R050r1은 간략하게, 제외가능한 (discardable) 잔차들 (residuals)이, NAL discardable_flag가 세팅되어 discardable_flag가 한 NAL 유닛이 상위 계층들을 디코딩하는데 필요로 되지 않는다는 것을 나타내는 별도의 네트워크 추상화 계층 (NAL, Network Abstraction Layer) 유닛이나 슬라이스 안에서 코딩되어야 한다는 것을 제안하였다. 그러나, 잔차 데이터만이 언급되고 그 "제외가능한" 잔차들을 별도의 NAL 유닛이나 슬라이스로 어떻게 인코딩하는지에 대해서는 명시되지 않았다. 현재의 SVC 설계에 따르면, 계층간 예측에 필요로 되지 않는 잔차 데이터를 가진 MB들이 래스터 주사 (raster scan) 순서로 연속되지 않는다면 (그럴 가능성이 없음) 그것은 불가능하다. JVT-R064는 높은 시간 레벨상의 소정 계층들에 있는 픽처들의 집합 (즉, 각각이 하나의 슬라이스로서 코딩됨)에 대한 계층간 예측에 MB들 모두가 사용되지 않도록 하는 것을 제안하였다. 프레임 기반 선택적 계층간 예측 방법이 JVT-S051에서 제안되었는데 (http://ftp3.itu.ch/av-arch/jvt-site/2006_04_Geneva/JVT-S051.zip에서 입수가능한 2006년 3월 31일부터 4월 7일까지의 스위스 제네바에서 열린 제19차 회의 "Frame Based Selective Inter-layer Prediction"), 여기서는 소정의 픽처들 (각각이 하나의 슬라이스로서 코딩됨)에 대 해, 그 픽처들의 모든 MB들이 계층간 예측에 사용되지 않도록 강제된다. 소정 픽처들에 대한 선택은 배낭 문제 (knapsack problem)으로 모델링되고 다이내믹 프로그래밍을 사용해 해결된다. 이후 이 명세서에 그 전체가 포함되는, 현 출원인의 미국 가출원 번호 60/786,496 및 JVT-S039 (http://ftp3.itu.ch/av-arch/jvt-site/2006_04_Geneva/JVT-S039.zip에서 입수가능한 2006년 3월 31일부터 4월 7일까지의 스위스 제네바에서 열린 제19차 회의 "On discardable lower layer adaptations")는 슬라이스 그룹들 및/또는, 계층간 예측에 필요로 되는 별도의 데이터 (제외불가 데이터) 및 계층간 예측에 필요로 되지 않는 데이터 (제외가능 데이터)에 대한 데이터 분할 (data partitioning)을 이용해, 불필요한 전송 및/또는 디코딩을 피하기 위해 제외가능 데이터가 버려지도록 하는 것을 제안하였다.
SVC에서, 공간 스케일러빌리티가 지원되는 경우, 상위 계층 MB는 base_mode_flag이나 base_mode_refinement_flag이 1에 해당할 때 스케일링 된 베이스 계층 모션 데이터를 이용해 계층간 예측을 활용한다. 이 시나리오에서, 상위 계층 MB는 베이스 계층에서 추정된 디폴트 모션 데이터를 가지고 재건된다. 예를 들어, 베이스 계층이 QCIF 사이즈이고, 인핸스먼트 계층이 CIF 사이즈이면, 베이스 계층 내 한 블록의 모션 벡터는 2 배 스케일링되고 인핸스먼트 계층에서 네 개의 코로케이트 된 (co-located) 블록들을 위해 2x2 모션 벡터들로 업샘플링 된다 (upsampled).
계층간 텍스처 예측을 위해, 인핸스먼트 계층과 베이스 계층 간 공간 해상도가 다른 경우, 베이스 계층을 업샘플링하기 위해 보간 필터가 필요로 된다. 보간 필터를 적용하기 전에, 베이스 계층의 인트라 MB들이 경계 확장 (border extension) 프로세스를 이용해 각 방향의 4-샘플 경계만큼 확장된다. 경계 확장을 수행하기 전에, 디블로킹 (deblocking) 필터가 인트라 MB 안쪽이나 인트라 MB들간 모든 경계들에 적용된다.
SVC의 계층간 잔차 예측시, 이전 계층이 현재의 계층의 절반의 공간 해상도를 갖는 계층을 나타내면, 잔차 신호는 예측 신호로서 사용되기 전에 분리 가능한 바이-리니어 (separable bi-linear) 필터를 써서 업샘플링된다. 1 및 2와는 다른 계층간 공간 해상도 비율들에 대해, 보간 프로세스는 AVC에서 특정된 것처럼 쿼터-펠 (quarter-pel) 보간 프로세스에 기초한다.
두 계층들이 존재한다고 가정할 때, 즉, 현재의 SVC에서 한 하위 계층과 한 상위 계층이 존재한다고 가정할 때, 하위 계층 내 한 코딩된 슬라이스 NAL 유닛을 제외가능한 것으로 마크하고 상위 계층을 디코딩할 때 그 제외가능한 슬라이스는 존재할 필요가 없을 수 있다. 그에 따라, 상위 계층 디코딩은 제외가능한 슬라이스가 존재한다고 해도 그 제외가능한 슬라이스를 통해 전달된 어느 데이터에도 좌우되면 안된다. 이러한 요건은 각각의 픽처가 한 슬라이스로 코딩될 때 만족될 수 있으며, 여기서 제외가능한 하위 계층 슬라이스/픽처 위에 있는 상위 계층 슬라이스/픽처의 base_id_plus1은 0으로 세팅된다. 그러나, 하위 계층 픽처가 둘 이상의 슬라이스로 코딩되고, 슬라이스들 중 일부는 나머지 것들과는 달리 제외가능할 때, 상기 요건을 만족시킴에 있어 다음과 같은 문제가 발생한다:
첫 번째 문제는 하위 계층 내 제외가능한 슬라이스와 제외불가한 슬라이스들 둘 모두에 의해 커버되는 영역들을 상위 계층 픽처 내 한 슬라이스가 커버할 때 일어난다. 하위 계층 내 제외가능한 슬라이스들로 커버된 영역들을 커버하는 MB들 각각에 대해, 모든 경우의 신택스 엘리먼트들, base_mode_flag, base_mode_refinement_flag, intra_base_flag, motion_prediction_flag_10[], motion_prediction_flag_11[], 및 residual_prediction_flag가 0에 해당하도록 세팅되어야 한다. 그러나, 이 신택스 엘리먼트들은 여전히 비트스트림으로 전송되어, 그 신택스 엘리먼트들이 MB들로 전송될 경우에 비해 감소된 코딩 효율을 가지게 된다.
두 번째 문제는 상위 계층이 공간 스케일러블 계층일 때 발생한다. 디코딩 프로세스는 샘플들이나 잔차 값들이 계층간 예측에 사용되기 전에 그 값들의 하위 계층 픽처들로의 업샘플링 프로세스들을 수반한다. 그러나, 제외가능한 MB들의 초기화되지 않은 값들로 인해, 그 버릴 수 있는 MB들에 이웃하는 MB들에 대한 업샘플링 결과가 예측불가하게 될 수 있다. 결론적으로, 디코딩 결과가 올바로 되는 것이 어렵게 된다.
본 발명은 효과적인 방식으로, 둘 이상의 코딩된 슬라이스로 이뤄진 코딩된 픽처 내 한 코딩된 슬라이스를 상위 계층들에 대해 제외가능한 것 (즉, 상위 계층 들의 디코딩에 필요로 되지 않는 것)으로서 코딩될 수 있게 하는 시스템 및 방법을 제안한다. 우선, 고정 값들로 세팅되어야 하는 신택스 요소들의 전송을 피함으로써, 코딩 효율성을 높인다. 둘째로, 계층간 예측에 사용되는 샘플이나 잔차 데이터의 업샘플링 프로세스 시 버려질 가능성이 있는 데이터로부터의 간섭 역시 피하게 됨으로써, 상위 계층들의 올바른 디코딩을 가능하게 할 수 있다.
본 발명은 계층간 예측에 필요한 것과 계층간 예측에 필요하지 않은 데이터를 분리하기 위한 비디오 인코더 (및 인코딩 방법)을 포함한다. 또한 본 발명은 계층간 예측에 필요하지 않고 또 재생 요망 계층에도 없는 데이터를 식별하고, 그렇게 식별된 데이터의 디코딩을 생략하며, 제외가능한 데이터 없이 재생 요망 계층을 디코딩하는 비디오 디코더 (및 디코딩 방법) 또한 포함한다.
도 1은 본 발명과 함께 사용할 일반적인 멀티미디어 통신 시스템을 보인 것이다. 도 1에 도시된 것처럼, 데이터 소스(100)는 아날로그 포맷, 미압축 디지털 포맷, 또는 압축 디지털 포맷, 혹은 이들의 임의 조합 포맷의 소스 신호를 제공한다. 인코더(110)가 그 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 인코더(110)가 오디오 및 비디오 같은 둘 이상의 미디어 타입을 인코딩하거나, 둘 이상의 인코더(110)가 서로 다른 미디어 타입의 소스 신호를 코딩하는 데 필요로 될 수 있다. 인코더(110)는 또한 그래픽 및 텍스트처럼, 합성되어 생성된 입력을 얻을 수도 있고, 아니면 코딩된 합성 미디어의 비트스트림을 생성할 수 있다. 이하에서는, 설명을 단순화하기 위해, 한 미디어 타입의 하나의 코딩된 미디어 비트스트림에 대한 처리만이 고려된다. 그러나, 통상적으로 실시간 브로드캐스트 서비 스들은 여러 스트림들 (보통 적어도 한 오디오, 비디오 및 텍스트 자막 스트림)을 포함한다는 것을 주지해야 할 것이다. 또한, 시스템이 여러 인코더들을 포함할 수 있다는 것 역시 주지해야 하나, 이하에서는 일반성을 상실하지 않으면서 설명을 단순화하기 위해 단 한 개의 인코더(110) 만이 고려될 것이다.
코딩된 미디어 비트스트림이 스토리지(120)로 전송된다. 스토리지(120)는 코딩된 미디어 비트스트림을 저장히기 위한 임의 형식의 매스 메모리를 구비할 수 있다. 스토리지(120) 내에서, 코딩된 미디어 비트스트림의 포맷은 기본적인 독립식 (self-contained) 비트스트림 포맷일 수 있고, 아니면 하나 이상의 코딩된 미디어 비트스트림들이 한 컨테이너 파일 안에 캡슐화되어 있을 수 있다. 어떤 시스템들은 "라이브 (live)"로 작동한다, 즉 저장을 생략하고 인코더(110)에서 코딩된 미디어 비트스트림을 바로 센더 (sender)(130)로 전송한다. 그러면 코딩된 미디어 비트스트림이 필요에 따라, 서버라고도 불리는 센더(130)로 전송된다. 전송시 사용되는 포맷은 패킷 스트림 포맷인, 기본적인 독립식 비트스트림 포맷일 수 있고, 아니면 하나 이상의 코딩된 미디어 비트스트림들이 하나의 컨테이너 파일 안에 캡슐화될 수 있다. 인코더(110), 스토리지(120), 및 센더(130)는 동일한 물리적 기기 안에 위치될 수 있고, 아니면 별개의 기기들 안에 포함될 수도 있다. 인코더(110) 및 센더(130)는 라이브의 실시간 콘텐츠를 가지고 동작할 수 있는데, 이 경우 코딩된 미디어 비트스트림은 보통 영구적으로 저장되는 대신, 프로세싱 지연, 전송 지연, 및 코딩된 미디어 비트레이트의 변동을 완화시키기 위해 콘텐츠 인코더(110) 및/또는 센더(130) 내에서 짧은 시간 주기 동안 버퍼링된다.
센더(130)는 통신 프로토콜 스택을 이용해 코딩된 미디어 비트스트림을 전송한다. 상기 스택은 실시간 전송 프로토콜 (RTP, Real-Time Transport Protocol), 사용자 데이터그램 프로토콜 (UDP, User Datagram Protocol), 인터넷 프로토콜 (IP, Internet Protocol)을 포함할 수 있으나, 그것들에 국한되는 것은 아니다. 통신 프로토콜 스택이 패킷 지향적일 때, 센더(130)는 코딩된 미디어 비트스트림을 패킷들 안에 캡슐화한다. 예를 들어, RTP가 사용될 때, 센더(13)는 코딩된 미디어 비트스트림을 RTP 페이로드 (payload) 포맷에 따라 RTP 패킷들 안에 캡슐화한다. 일반적으로, 각각의 미디어 타입마다 전용 RTP 페이로드 포맷을 가진다. 다시 한번, 시스템이 둘 이상의 센더(130)를 포함할 수도 있다는 것을 알아야 하며, 단지 단순화를 위해 이하의 설명에서는 하나의 센더(130)만을 고려한다.
센더(130)는 통신 네트워크를 통해 게이트웨이(140)에 연결될 수도 연결되지 않을 수도 있다. 게이트웨이(140)는 한 통신 프로토콜 스택에에 따른 패킷 스트림의 다른 통신 프로토콜 스택으로의 변환, 데이터 스트림들의 머징 (merging) 및 포킹 (forking), 그리고 우세한 다운링크 네트워크 조건에 따라 포워딩 된 스트림의 비트 레이트를 제어하는 것 같은 다운링크 및/또는 수신기 사양에 따른 데이터 스트림 처리 등, 여러 종류의 기능들을 수행할 수 있다. 게이트웨이들(140)의 예들에, 멀티포인트 회의 제어 유닛 (MCUs, multipoint conference control units), 회로 교환형 및 패킷 교환형 화상 전화간 게이트웨이들, 푸시-투-토크 오버 셀룰라 (PoC, Push-to-talk over Cellular) 서버들, 디지털 비디오 브로드캐스팅-핸드헬드 (DVB-H, digital video broadcasting-handheld) 시스템들 내 IP 캡슐화기들, 또는 브로드캐스트된 전송사항들을 홈 무선 네트워크들로 국지적으로 포워드하는 세탑 박스들이 포함된다. RTP가 사용될 때, 게이트웨이(140)는 RTP 믹서로 불리며 RTP 접속의 엔드포인트 (endpoint)로서 동작한다.
시스템은, 통상적으로 전송된 신호를 수신하고, 복조하며, 코딩된 미디어 비트스트림으로 디캡슐화 (de-capsulating)할 수 있는 하나 이상의 수신기들(150)을 포함한다. 코덱 미디어 비트스트림은 보통 디코더(160)에 의해 추가 처리되고, 그 결과는 하나 이상의 미압축 미디어 스트림들이 된다. 마지막으로, 렌더러 (renderer)(170)가 확성기나 디스플레이 등을 통해 상기 미압축 미디어 스트림들을 재생할 수 있다. 수신기(150), 디코더(160), 및 렌더러(170)는 같은 물리적 기기 안에 존재할 수도 있고, 아니면 별개의 기기들 안에 포함될 수도 있다.
비트레이트, 디코딩 복잡도, 및 픽처 사이즈와 관련된 스케일러빌리티는, 이종의 (heterogeneous) 에러 발생이 쉬운 환경에 있어 바람직한 특성이 된다. 이 특성은, 수신하는 기기에서의 비트레이트, 디스플레이 해상도, 네트워크 처리율, 및 계산 능력에 대한 제약과 같은 한계를 거스르기 위해 바람직하다.
본 발명의 통신 기기들은 CDMA (Code Division Multiple Access), GSM (Global System for Mobile Communications), UMTS (Universal Mobile Telecommunications System), TDMA (Time Division Multiple Access), FDMA (Frequency Division Multiple Access), TCP/IP (Transmission Control Protocol/Internet Protocol), SMS (Short Messaging Service), MMS (Multimedia Messaging Service), 이메일, IMS (Instant Messaging Service), 블루투스, IEEE 802.11 등등을 포함하는 다양한 전송 기술들을 이용해 통신할 수 있으며, 상기 나열된 기술들에만 국한되는 것은 아니다. 통신 기기는 라디오, 적외선, 레이저, 유선 접속 등등을 포함하는 다양한 미디어를 이용해 통신할 수 있으며, 상기 나열된 미디어들에 국한되는 것은 아니다.
도 2 및 3은 본 발명이 구현될 수 있는 한 대표적 모바일 전화(12)를 도시한다. 그러나, 본 발명이 모바일 전화(12)나 다른 전자 기기의 한 특정 유형에만 국한되는 것으로 의도된것은 아님을 알아야 한다. 도 2 및 3에 도시된 구성들 중 일부나 전부는 도 1에 나타낸 장치들 중 어느 하나나 그 전부 안에 포함될 수 있을 것이다.
도 2 및 3의 모바일 전화(12)는 하우징(30), 액정 디스플레이 형식의 디스플레이(32), 키패드(34), 마이크로폰(36), 이어폰(38), 패터리(40), 적외선 포트(42), 안테나(44), 본 발명의 일 실시예에 따른 UICC 형식의 스마트 카드(46), 카드 리더(48), 라디오 인터페이스 회로(52), 코덱 회로(54), 컨트롤러(56) 및 메모리(58)를 포함한다. 개개의 회로들 및 구성요소들은 모두, 노키아 모바일 전화기들의 범위와 같이 이 기술 분야에서 잘 알려져 있는 종류의 것들이다.
다양한 실시예들에 따른 본 발명의 구성은, SVC 규격 및 점진적 코딩 (Progressive coding)에 기초한다. 그러나, 본 발명이 다른 스케일러블 코딩 방식들 및 인터레이스 (interlace) 코딩에도 역시 적용될 수 있다는 것을 알아야 한다.
예를 들어, 두 개의 계층들, 즉 한 하위 계층 및 한 상위 계층이 있다고 간주할 때, 하위 계층의 MB들은 아래와 같이 두 타입으로 분류될 수 있다:
1. MB로부터의 데이터가 계층간 예측에 필요로 됨 (타입 A).
2. MB로부터의 데이터가 계층간 예측에 필요로 되지 않음 (타입 B).
한 픽처 내에서 타입 B인 MB들은 신택스 엘리먼트 discardable_flag가 1로 세팅되어 있는 하나 이상의 슬라이스들 안에 코딩된다. 그러한 타입 B의 MB들은 원하면 버려질 수 있다.
인코딩과 관련해 상술한 첫 번째 문제에 착수할 때, base_discardable_flag_present_flag가 스케일러블 익스텐션시 슬라이스 헤더에 추가되어, base_discardable_flag가 MB 신택스 테이블 macroblock_layer_in_scalable_extension()에 존재하는지 여부를 가리킨다. base_discardable_flag가 MB 신택스 테이블인 macroblock_layer_in_scalable_extension()에 추가되어, base_discardable_flag가 1일 때 base_id_plus1으로 지시된 베이스 계층 픽처 내 동일 영역을 커버하는 베이스 슬라이스가 제외될 (버려질) 수 있는지 여부를 가리킨다. base_discardable_flag가 0일 때, 그 base_discardable_flag는 MB 신택스 테이블인 macroblock_layer_in_scalable_extension()에 추가되지 않는다. 따라서, 스케일러블 익스텐션시 아래와 같은 슬라이스 헤더의 신택스가 적용될 수 있다:
또, 스케일러블 익스텐션시 매크로블록 계층의 신택스 테이블은 다음과 같다:
스케일러블 익스텐션시 매크로블록 예측의 신택스는 다음과 같다:
스케일러블 익스텐션시 서브-매크로블록 예측의 신택스는 다음과 같다:
스케일러블 익스텐션시 잔차 (residual)의 신택스는 아래와 같다:
각각의 MB에서 base_discardable_flag를 갖는 것을 막기위한 선택방안은 다음과 같다. 스케일러블 익스텐션시 pps_discardable_info_flag가 슬라이스 헤더에 추가되어, base_id_plus1으로 표시된 그 베이스 계층 픽처에 의해 사용되는 픽처 파라미터 세트 (PPS, picture parameter set)가 슬라이스 그룹 맵 정보를 포함하는지 여부를 표시하며, 그 맵 정보에서 슬라이스 그룹들 각각은 제외가능 (discardable) 또는 제외불가 (non-discardable) 슬라이스들에 대응된다. 슬라이스 그룹 0는 제외불가 슬라이스들을 포함할 수 있고, 슬라이스 그룹 1은 제외가능 슬라이스들을 포함할 수 있다. 변수인 BaseDiscardableFlag가 슬라이스 그룹 정보에 따라 도출된다. 현재의 MB가 제외가능 슬라이스의 베이스 계층 MB를 커버하면, BaseDiscardableFlag는 1로 세팅된다. 그렇지 않으면, BaseDiscardableFlag가 0으로 세팅된다. 각각의 코딩된 픽처 마다 오직 하나의 슬라이스 그룹이 존재하는 경우, MB 레벨 또는 슬라이스 레벨 매핑 정보가, 둘 이상의 슬라이스 그룹이 사용될 때의 경우와 유사하게, PPS 등을 통해 시그날링 될 수 있다. 이때 변수 BaseDiscardableFlag는 비슷하게 특정될 수 있다. BaseDiscardableFlag 변수는 이제 상기 MB 신택스 테이블들에서의 base_discardable_fla를 대체하도록 사용될 수 있고, base_discardable_flag의 시그날링이 면제될 수 있다. JVT-T079 (http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T079.zip에서 입수 가능한 2006년 7월 오스트리아 클라겐푸르트에서의 제20차 JVT 회의에서의 "Updated resultes for independent parsing of spatial and CGS layers")의 독립적 파싱 (parsing)을 위한 신택스 변경이 고려될 때, 상기 첫 번째 문제를 해결하기 위해 변경된 신택스 테이블들은 아래와 같다. pps_discardable_info_flag 및 BaseDiscardableFlag를 사용하는 다른 프로세스 역시 사용된다는 것을 알아야 한다. 스케일러블 익스텐션시 슬라이스 헤더의 신택스는 아래와 같다:
스케일러블 익스텐션 시의 매크로블록 계층의 신택스는 아래와 같다:
스케일러블 익스텐션시 매크로블록 예측 신택스는 아래와 같다:
스케일러블 익스텐션시 서브-매크로블록 예측 신택스는 아래와 같다:
스케일러블 익스텐션시 잔차 신택스는 아래와 같다:
인코딩 및 디코딩 둘 모두와 관련해, 상술한 두 번째 문제에 착수하기 위해, 제외가능한 슬라이스들이 사용가능한지 여부와 무관하게, 제외가능한 슬라이스들의 샘플 또는 잔차 값들이 패딩된다. 본 발명의 다양한 실시예들과 함께 활용될 수 있는 패딩 알고리즘의 예는, MB가 제외가능한 슬라이스 안에 있는지 없는지 여부를 판단하도록 래스터 주사 순서로 각 MB를 체크하는 것을 포함한다. 그것이 제외가능한 슬라이스 안에 있는 경우, 제외가능한 슬라이스 안의 MB는 패딩 프로세스 중에 제외불가 슬라이스 안에 있다고 간주된다. 왼쪽에 이웃하는 MB를 사용할 수 있고, 그것이 제외불가 슬라이스 안에 있는 경우, 그 MB 안의 샘플들의 행 (row)의 값은 그 왼쪽에 이웃하는 MB의 같은 행의 최우측 샘플 값과 같게 세팅된다. 이 프로세스는 수평 패딩 프로세스라 불릴 수 있다. 왼쪽에 이웃하는 MB가 사용불가하고 (즉, 현재의 MB가 픽처의 좌측 경계에 있는 경우), 위에 이웃하는 MB가 사용될 수 있고 그것이 제외불가 슬라이스 안에 있는 경우, 수직 패딩 프로세스가 적용되는데, 여기서는 그 MB의 샘플들의 열 (column) 값이 그 위에 이웃하는 MB의 같은 열로부터의 최하위 샘플과 같도록 세팅된다. 수평 및 수직 패딩 프로세스들은 샘플과 잔차 신호들 둘 모두에 적용될 수 있다. 왼쪽이나 위에 이웃하는 MB를 샘플 신호로서 사용할 수 없는 경우, MB의 모든 샘플 값들이 128로 세팅되고, 반면 잔차 신호에 대해서는 MB의 모든 잔차 값들이 0으로 세팅된다. 다른 패딩 알고리즘들 역시 본 발명의 여러 실시예들과 연계하여 활용될 수 있다는 것을 알아야 한다. 예를 들어, 상술한 왼쪽 및 위쪽 이웃 패딩과는 반대로 아래쪽과 오른쪽에 이웃하는 MB들이 패딩에 사용될 수 있다.
그와 달리, 상술한 두 번째 문제에 착수함에 있어, 하위 계층 픽처들 내 제외가능한 슬라이스들의 샘플 또는 잔차 값들이 업샘플링 프로세스들 중에 사용되지 않도록 인코딩 절차에 제약을 가할 수도 있다. 이것은, 제외불가한 슬라이스들 안의 MB들과 제외가능한 슬라이스들 내 그 이웃 MB들이 샘플이나 잔차 값들의 계층간 예측을 사용하지 않을 것을 요한다. 즉, 제외불가 슬라이스들 내 MB들에 대해, 신택스 요소들인 intra_base_flag 및 residual_prediction_flag가 둘 다 0으로 세팅된다. 두 번째 문제에 대한 이러한 대안적 해법은, JVT-T079 (http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T079.zip에서 입수가능한, 오스트리아 클라겐푸르트에서 열린 제20차 JVT 회의의, "Updated results for independent parsing of spatial and CGS layers")에서 제안된 신택스가 SVC 초안에 포함되어 있을 때 유효하다.
본 발명은 컴퓨터 판독가능 매체 상에서 구현되고 네트워크 환경하의 컴퓨터들에 의해 실행되는 프로그램 코드 같은 컴퓨터 실행가능 명령들을 포함하는 프로그램 제품을 통해 일 실시예로서 구현될 수 있는 방법의 단계들이라는 일반적 맥락 내에서 개시되었다. 컴퓨터 판독가능 매체들의 예들에는 전자 기기 메모리 유닛들, RAM (random access memory), ROM (read only memory), CD (compact disc)들, DVD (digital versatile disc)들 및 기타 내외장 스토리지 장치들을 포함하나 이들에 국한되는 것은 아닌 다양한 타입의 저장 매체들이 포함될 수 있다. 일반적으로, 프로그램 모듈들에는 특정 작업들을 수행하거나 특정 추상화 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등이 포함된다. 컴퓨터 실행가능 명령들, 관련 데이터 구조들, 및 프로그램 모듈들은 여기 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드의 예들을 나타낸다. 그러한 실행가능 명령들이나 관련 데이터 구조들의 특정 시퀀스는 그러한 단계들에서 나타낸 기능들을 구현하기 위한 해당 동작들의 예들을 나타낸다.
본 발명의 소프트웨어 및 웹 구현방식은 다양한 데이터베이스 검색 단계들, 상관 단계들, 비교 단계들 및 결정 단계들을 이행하기 위한 규칙 기반 로직 및 기타 로직을 가진 표준 프로그래밍 기술들을 가지고 이행될 수 있다. 명세서와 청구항들에서 사용하는 "컴포넌트" 및 "모듈"이라는 말들은 한 줄 이상의 소프트웨어 코드, 및/또는 하드웨어 구현방식, 및/또는 수동 입력을 수취하기 위한 도구를 사용하는 구현방식을 포괄하도록 의도되었다는 것 역시 주지해야 할 것이다.
본 발명의 실시예들에 대한 상술한 내용은 예시와 설명의 목적으로 제시되었다. 상기 내용이 개시된 것과 정확히 일치하는 형식으로 본 발명을 제한하기 위해 의도되지는 않았으며, 상술한 내용에 비춰 그 변형 및 치환이 가능하거나 본 발명의 실시로부터 획득될 수도 있다. 본 발명의 원리 및 그 실질적 어플리케이션을 설명하여 이 분양의 당업자로 하여금 본 발명을 숙고된 특정 용도에 적합한 다양한 실시예들 및 다양한 변형예들과 함께 활용할 수 있도록 실시예들이 선택되고 개시 되었다.