KR20130036768A - 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치 - Google Patents

복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20130036768A
KR20130036768A KR1020137005051A KR20137005051A KR20130036768A KR 20130036768 A KR20130036768 A KR 20130036768A KR 1020137005051 A KR1020137005051 A KR 1020137005051A KR 20137005051 A KR20137005051 A KR 20137005051A KR 20130036768 A KR20130036768 A KR 20130036768A
Authority
KR
South Korea
Prior art keywords
category
program code
entropy coding
syntax elements
syntax element
Prior art date
Application number
KR1020137005051A
Other languages
English (en)
Inventor
자니 라이네마
케말 우구르
안티 올리 할라푸로
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20130036768A publication Critical patent/KR20130036768A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비용 효율적인 방식으로 비디오 코딩 및 디코딩에 대하여 높은 레벨의 능력을 제공하기 위해 복잡도 균형 엔트로피 코딩을 이용함으로써 비디오 코딩 및 디코딩의 영역에서 효율적인 처리의 제공을 가능하게 하는 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 방법은 비디오 콘텐츠의 복수의 신택스 요소들을 비디오 콘텐츠에서의 신택스 요소들의 발생 빈도에 기초하여 제1 및 제2 카테고리들로 카테고리화하는 것을 포함한다. 또한, 방법은 신택스 요소들의 제1 카테고리에 대응하고, 문맥 업데이트된 심볼들을 엔트로피 코딩하는 것을 포함한다. 더욱이, 방법은 신택스 요소들의 제2 카테고리에 대응하고, 문맥 업데이트를 생략한 심볼들을 엔트로피 코딩하는 것을 포함한다. 대응하는 장치 및 컴퓨터 프로그램 제품이 또한 제공된다.

Description

복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING COMPLEXITY BALANCED ENTROPY CODING}
일반적으로, 다양한 구현들은 전자 디바이스 비디오 코딩 및 디코딩 기법에 관한 것으로서, 특히, 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치에 관한 것이다.
현대의 통신 시대는 유선 및 무선 네트워크들의 거대한 확장을 초래하였다. 컴퓨터 네트워크들, 텔레비젼 네트워크들 및 전화 네트워크들은 소비자의 요구에 의해 초래된 전례없는 기술적인 확장을 겪고 있다. 무선 및 모바일 네트워킹 기술들은, 정보 전달의 보다 많은 융통성 및 신속성을 제공하면서도, 관련된 소비자 요구를 해결하였다.
현재 및 미래의 네트워킹 기술들은 모바일 전자 디바이스들의 비용 및 크기를 비교적 낮게 유지하면서도, 모바일 전자 디바이스들의 능력을 확장시킴으로써, 정보 전달의 용이성 및 사용자들에 대한 편의성을 계속해서 가능하게 한다. 모바일 전자 디바이스의 유비쿼터스(ubiquitous) 속성으로 인해, 모든 연령 및 교육 레벨의 사람들이 이제 모바일 단말기들을 이용하여 다른 개인들 또는 컨택(contact)들과 통신하고, 서비스를 수신하고/하거나, 정보, 매체 및 다른 콘텐츠를 공유한다. 따라서, 모바일 전자 디바이스들은 또한, 사용자들이 서로 통신하고, 콘텐츠를 소비하도록 하는 대중적인 메카니즘이 되고 있다.
콘텐츠를 획득 및 렌더링하고, 통신을 가능하게 하고, 서비스를 제공하는 것에 대한 모바일 전자 디바이스들의 능력은 계속해서 개선되지만, 그러한 디바이스들은 이동식이고, 그러한 디바이스들을 비교적 작게 유지하기 위한 시장 주도적(market driven) 바램은, 배터리 수명 및 처리 자원에서의 제한에 대하여 필연적으로 도전과제를 도입한다. 배터리 수명이 계속 개선되지만, 복잡도 및 처리 부하의 확장 속도가 계속해서 빠르게 진행되고 있다. 따라서, 전술한 서비스 및 기능에 대한 모바일 전자 디바이스의 많은 이용은 배터리 전력을 빠르게 소모시키고, 사용자가 배터리를 빈번하게 재충전하거나 또는 그 이용을 제한하도록 하여, 사용자 경험이 무시되도록 한다. 따라서, 사용자 만족도를 증가시키기 위해, 가능한 가장 효율적인 방식으로 높은 레벨의 능력을 유지하는 것이 바람직하다.
따라서, 비디오 코딩 및 디코딩의 영역에서의 효율적인 처리를 가능하게 하는 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 예시적인 실시예에 있어서, 복잡도 관점에서 비용을 비교적 낮게 유지하면서 비디오 코딩 및 디코딩에 대하여 높은 레벨의 능력을 제공하기 위해 복잡도 균형 엔트로피 코딩이 제공될 수 있다.
다양한 실시예들이 일반적인 관점에서 기술되며, 실제 축척으로 도시되지 않은 첨부 도면을 참조할 것이다.
도 1은 예시적인 실시예를 이용할 수 있는 모바일 단말기의 개략 블록도이다.
도 2는 예시적인 실시예에 따른 무선 통신 시스템의 개략 블록도이다.
도 3은 예시적인 실시예에 따른 복잡도 균형 엔트로피 코딩을 제공하기 위한 장치의 블록도를 도시한다.
도 4는 예시적인 실시예에 의해 제공된 복잡도 대 비트레이트를 보여주는 그래프를 도시한다.
도 5는 예시적인 실시예에 따른 복잡도 균형 엔트로피 코딩을 제공하기 위한 다른 예시적인 방법에 따른 흐름도이다.
도 6은 예시적인 인코딩 프로세스와 관련된 구조를 도시한다.
도 7은 예시적인 디코딩 프로세스와 관련된 구조를 도시한다.
도 8은 종래의 인코더에 대한 복잡도 대 비트레이트를 보여주는 그래프를 도시한다.
이하, 전체가 아닌 일부 실시예들이 도시되는 첨부 도면을 참조하여, 일부 실시예들이 보다 완전하게 기술될 것이다. 실제로, 다양한 실시예들이 많은 상이한 형태로 구현될 수 있으며, 본 명세서에 개시된 실시예들로 제한되는 것으로 해석되지 않아야 하며, 그보다는, 이들 실시예들은 이러한 개시내용이 적용가능한 법적인 요건들을 만족하도록 제공된다. 유사한 참조번호들은 전체를 통해 유사한 요소들을 나타낸다. 본 명세서에서 이용된 바와 같이, "데이터", "콘텐츠", "정보" 및 유사한 용어들은, 실시예들에 따라 송신, 수신 및/또는 저장될 수 있는 데이터를 교환적으로 지칭하는데 이용될 수 있다. 따라서, 그러한 용어들을 이용하는 것은 다양한 실시예들의 사상 및 영역을 제한하는 것으로 고려되지 않아야 한다.
또한, 본 명세서에서 이용된 바와 같이, '회로' 라는 용어는, (a) 하드웨어 전용 회로 구현들(예를 들면, 아날로그 회로 및/또는 디지털 회로에서의 구현들), (b) 장치가 본 명세서에서 기술된 하나 이상의 기능들을 수행하게 하도록 함께 동작하는, 하나 이상의 컴퓨터 판독가능 메모리 상에 저장된 소프트웨어 및/또는 펌웨어 인스트럭션들을 포함하는 컴퓨터 프로그램 제품(들) 및 회로의 조합들, 및 (c) 소프트웨어 또는 펌웨어가 물리적으로 존재하지 않는 경우에도 동작을 위한 소프트웨어 또는 펌웨어를 필요로 하는, 예를 들면, 마이크로프로세서(들) 또는 마이크로프로세서(들)의 일부분과 같은 회로들을 지칭한다. '회로'의 이러한 정의는, 임의의 청구항들을 포함하는 본 명세서에서의 이러한 용어의 모든 이용에 적용된다. 다른 예로서, 본 명세서에서 이용된 바와 같이, '회로' 라는 용어는 하나 이상의 프로세서 및/또는 그것의 부분(들) 및 수반되는 소프트웨어 및/또는 펌웨어를 포함하는 구현을 또한 포함한다. 다른 예로서, 본 명세서에서 이용된 바와 같은 '회로' 라는 용어는, 예를 들면, 기저대역 집적 회로 또는 모바일 전화용 애플리케이션 프로세서 집적 회로 또는 서버, 셀룰러 네트워크 디바이스, 다른 네트워크 디바이스, 및/또는 다른 컴퓨팅 디바이스에서의 유사한 집적 회로를 포함한다.
본 명세서에서 정의된 바와 같이, 비일시적인 물리적 저장 매체(예를 들면, 휘발성 또는 비휘발성 메모리 디바이스)를 지칭하는 "컴퓨터 판독가능 저장 매체"는, 전자기 신호를 지칭하는 "컴퓨터 판독가능 송신 매체"와는 구별될 수 있다.
일부 실시예들은 비디오 코딩 및 디코딩을 보다 효율적으로 수행하기 위해 모바일 단말기들 상에서 이용될 수 있다. 그러나, 예시적인 실시예들은 대안적으로, 고정 단말기들을 포함하는 다른 전자 디바이스들 상에서 실시될 수 있다. 그와 같이, 감소된 복잡도 비디오 코딩 및 디코딩이 자원 제한 환경들(예를 들면, 모바일 단말기들)에서의 동작과 관련하여 특히 유용할 수 있지만, 그러한 복잡도 감소들은 자원들이 제한되지 않는 다른 환경들에서도 유용할 수 있음을 이해해야 한다.
전형적으로, 비디오 코덱은 인코더 및 디코더를 포함한다. 인코더는 비디오 입력을 저장 및/또는 송신에 적합한 압축된 표현으로 변환하는데 이용될 수 있다. 디코더는 압축된 비디오 표현을 볼 수 있는 형태로 다시 압축해제하는데 이용될 수 있다. 많은 상황들에서, 인코더는 (예를 들면, 보다 낮은 비트레이트에서의) 보다 컴팩터한 형태로 비디오를 나타내기 위해 원래의 비디오 시퀀스로부터 일부 정보를 버리게 된다.
전형적인 하이브리드 비디오 코덱(예를 들면, ITU-T H.263 및 H.264)은 비디오 정보를 2개의 단계로 인코딩할 수 있다. 제1 단계에서, 특정 픽쳐 영역(또는 "블록")에서의 픽셀 값들은, 예를 들면, 움직임 보상(motion compensation)(예를 들면, 코딩되는 블록에 밀접하게 대응하는 이전에 코딩된 비디오 프레임들 중 하나에서의 영역을 찾아 내어 표시함)에 의해, 또는 공간적인 수단(예를 들면, 지정된 방식으로 코딩될 블록 주위의 픽셀 값들을 이용)에 의해 예측될 수 있다. 제2 단계에서, 예측 에러(prediction error)(예를 들면, 픽셀들의 예측된 블록과 픽셀의 원래의 블록 사이의 차이)가 코딩된다. 전형적으로, 제2 단계는 지정된 변환(예를 들면, DCT(Discrete Cosine Transform) 또는 그 변형)을 이용하여 픽셀 값들에서의 차이를 변환하고, 계수들을 양자화하고, 양자화된 계수들을 엔트로피 코딩하는 것을 포함한다. 양자화 프로세스의 정확도(fidelity)를 변화시킴으로써, 인코더는 픽셀 표현의 정확성(픽쳐 품질)과 결과적인 코딩된 비디오 표현의 크기(파일 크기 또는 송신 비트레이트) 사이의 균형을 제어할 수 있다. 위에서 기술된 인코딩 프로세스와 관련된 구조가, 예를 들면, 도 6에 도시된다.
전형적인 디코더는 (예를 들면, 인코더에 의해 생성되고 압축된 표현으로 저장된 움직임 또는 공간 정보를 이용하여) 픽셀 블록들의 예측된 표현을 형성하기 위해 인코더와 유사한 예측 수단 및 예측 에러 디코딩을 적용함으로써 출력된 비디오를 재구성한다. 예측 에러 디코딩은 공간 픽셀 영역에서의 양자화된 예측 에러 신호를 복원하는, 예측 에러 코딩의 역 동작일 수 있다. 예측 및 예측 에러 디코딩을 적용한 후에, 디코더는 예측 및 예측 에러 신호들(예를 들면, 픽셀 값들)을 합산하여 출력 비디오 프레임을 형성할 수 있다. 디코더(그리고, 인코더)는 출력된 비디오를, 디스플레이하기 위해 전달 및/또는 비디오 시퀀스에서의 다가오는 프레임들에 대한 예측 참조(reference)로서 그것을 저장하기 전에, 출력된 비디오의 품질을 개선하도록 추가적인 필터링을 또한 적용할 수 있다. 위에서 기술된 디코딩 프로세스와 관련된 구조가 도 7에 도시된다.
전형적인 비디오 코덱에서, 움직임 정보는 각각의 움직임 보상된 이미지 블록과 관련된 움직임 벡터들로 표시된다. 움직임 벡터들 각각은 (인코더 측에서) 코딩되거나 또는 (디코더 측에서) 디코딩될 픽쳐에서의 이미지 블록과, 이전에 코딩되거나 또는 디코딩된 픽쳐들 중 하나에서의 예측 소스 블록의 변위를 나타낸다. 움직임 벡터들을 효율적으로 나타내기 위해, 전형적으로 움직임 벡터들은 블록 특정 예측된 움직임 벡터들에 대하여 별도로 코딩된다. 전형적인 비디오 코덱에서, 예측된 움직임 벡터들은, 예를 들면, 인접 블록들의 인코딩되거나 또는 디코딩된 움직임 벡터들의 메디안(median)을 계산하는 것과 같은 미리 정의된 방식으로 생성된다.
전형적인 비디오 코덱에서, 움직임 보상 이후의 예측 잔여분(residual)은, 잔여분 사이에 일부 상관이 존재할 수 있기 때문에, 먼저 (DCT와 같은) 변환 커널(transform kernel)을 이용하여 변환된 후에 코딩된다. 따라서, 변환은 일부 경우들에 있어서 이러한 상관을 감소시키고, 보다 효율적인 코딩을 제공할 수 있다.
전형적인 비디오 인코더들은 최적의 코딩 모드들(예를 들면, 원하는 매크로블록 모드 및 관련된 움직임 벡터들)을 찾기 위해 라그랑지안(Lagrangian) 비용 함수들을 이용한다. 이러한 종류의 비용 함수는 손실이 있는 코딩 방법들로 인한 (정확하거나 또는 추정된) 이미지 왜곡과, 이미지 영역에서의 픽셀 값들을 나타내는데 필요한 (정확하거나 또는 추정된) 정보의 양을 함께 결부시키기 위해 가중치 계수 λ를 이용한다.
Figure pct00001
여기서, C는 최소화될 라그랑지안 비용이고, D는 고려되는 모드 및 움직임 벡터들을 갖는 이미지 왜곡(예를 들면, 평균 제곱 에러(Mean Squared Error))이고, R은 (후보 움직임 벡터들을 나타내기 위한 데이터의 양을 포함하는) 디코더에서 이미지 블록을 재구성하기 위해 요구되는 데이터를 나타내기 위해 필요한 비트의 수이다.
많은 비디오 코덱은 상이한 이용의 경우들에서 이용될 코딩 도구(coding tool)들("프로파일들")의 서브세트를 정의한다. 이러한 방안은 상이한 디바이스들이, 의도하는 이용 및 구현 플랫폼 상의 이용가능한 자원들에 대해 가장 적절한 코딩 도구들을 구현하도록 허용한다는 이점을 갖는다. 이러한 방안의 단점은, 코덱의 상이한 프로파일들 사이에 잃어버린 상호 동작성(interoperability)이 존재할 수 있다는 것이다.
H.264/AVC와 같은 일반적인 목적의 비디오 코덱은 표준의 상이한 프로파일들에서 상이한 계산 요건들을 갖는 코딩 도구들을 정의한다. 이러한 정의는 동일한 표준의 구현들이 표준의 상이한 프로파일을 지원하는 경우, 동일 표준의 구현들이 반드시 서로 통합될 수는 없다는 상황들을 초래할 수 있다. H.264/AVC에서 다수의 프로파일을 갖는 한 가지 중요한 이유는 표준의 엔트로피 코딩 부분이며, 여기서 일부 프로파일들은 낮은 복잡도 CAVLC(Context Adaptive Variable Length Coding) 기반의 방안만을 지원하는 반면, 일부의 다른 프로파일들은 CABAC(Context Adaptive Binary Arithmetic Coding) 방안도 지원한다. CABAC는 그 방법의 계산 요건들이 이용된 비트레이트의 함수로서 실질적으로 증가하기 때문에, 낮은 복잡도 프로파일들의 구현들에 대해서는 요구되지 않는다. CABAC 방안에서의 DCT 변환 계수들의 코딩 및 디코딩은, 그 동작의 계산 요건들이 도 8에 도시된 바와 같이 비디오 비트레이트의 함수로서 실질적으로 증가하기 때문에, 현실의 구현들에 있어서 문제점들을 초래할 수 있다.
본 발명의 일부 실시예들은 통합된 엔트로피 코딩 설계에서 가변 길이 코딩(variable length coding) 및 산술 코딩(arithmetic coding)을 이용하는 코딩 전략의 구현을 제공할 수 있다. 가변 길이 코딩 양상은 복잡도를 비교적 낮게 유지하도록 동작할 수 있고, 산술 코딩 양상은 비교적 높은 코딩 효율성을 유지하는 것을 도울 수 있다. 일부 예시적인 실시예들의 통합된 엔트로피 코딩 설계는 상이한 신택스 요소(syntax element)들에 대해 정의되는 2개의 정의된 카테고리에 대하여 동작하는 단일 엔트로피 코딩 메카니즘을 이용할 수 있다. 그와 같이, 신택스 요소들을 상이하게 카테고리화함으로써, 보다 낮은 복잡도 구현에서 비교적 더 높은 효율성을 달성하도록, 상이한 카테고리의 심볼들이 상이하게 동작할 수 있다.
도 1은, 하나의 예시적인 실시예로서, 다양한 실시예들로부터 이점을 얻을 수 있는 모바일 단말기(10)의 블록도를 도시한다. 그러나, 도시되고 이하에 기술되는 모바일 단말기(10)는 다양한 실시예들로부터 이점을 얻을 수 있는 단지 예시적인 한 가지 유형의 디바이스임을 이해해야 하며, 따라서, 실시예들의 영역을 제한하는 것으로 고려되지 않아야 한다. 그와 같이, PDA(portable digital assistant), 모바일 전화, 페이저, 모바일 텔레비젼, 게임 디바이스, 랩탑 컴퓨터, 카메라, 비디오 레코더, 오디오/비디오 플레이어, 라디오, 포지셔닝 디바이스(예를 들면, GPS(global positioning system) 디바이스), 또는 전술한 것들의 임의의 조합, 및 다른 유형의 음성 및 텍스트 통신 시스템들과 같은 많은 유형의 모바일 단말기들이 다양한 실시예들을 쉽게 이용할 수 있다.
모바일 단말기(10)는 송신기(14) 및 수신기(16)와 동작가능하게 통신하는 안테나(12)(또는 다수의 안테나)를 포함할 수 있다. 모바일 단말기(10)는 송신기(14)로 신호들을 제공하고, 수신기(16)로부터 신호들을 수신하는 제어기(20) 또는 다른 처리 디바이스와 같은 장치를 더 포함할 수 있다. 신호들은 적용가능한 셀룰라 시스템의 에어 인터페이스 표준에 따른 시그널링 정보, 및 사용자 스피치, 수신된 데이터 및/또는 사용자 생성 데이터를 포함한다. 이와 관련하여, 모바일 단말기(10)는 하나 이상의 에어 인터페이스 표준들, 통신 프로토콜들, 변조 유형들 및 액세스 유형들과 함께 동작할 수 있다. 예시로써, 모바일 단말기(10)는 다수의 제1, 제2, 제3 및/또는 제4 세대 통신 프로토콜 등 중 임의의 것에 따라 동작할 수 있다. 예를 들어, 모바일 단말기(10)는 제2 세대(2G) 무선 통신 프로토콜들 IS-136(TDMA(time division multiple access)), GSM(global system for mobile communication), 및 IS-95(CDMA(code division multiple access))에 따라서, 또는 UMTS(Universal Mobile Telecommunications System), CDMA2000, WCDMA(wideband CDMA) 및 TD-SCDMA(time division-synchronous CDMA)와 같은 제3 세대(3G) 무선 통신 프로토콜들에 따라서, E-UTRAN과 같은 3.9G 무선 통신 프로토콜에 따라서, 제4 세대(4G) 무선 통신 프로토콜 등에 따라서 동작할 수 있다. 대안으로서(또는 추가적으로), 모바일 단말기(10)는 논-셀룰라 통신 메카니즘들에 따라 동작할 수 있다. 예를 들어, 모바일 단말기(10)는 WLAN(wireless local area network) 또는 도 2와 관련하여 이하에 기술된 다른 통신 네트워크들과 통신할 수 있다.
일부 실시예에서, 제어기(20)는 모바일 단말기(10)의 오디오 및 로직 기능들을 구현하기에 바람직한 회로를 포함할 수 있다. 예를 들어, 제어기(20)는 디지털 신호 프로세서 디바이스, 마이크로프로세서 디바이스, 및 다양한 아날로그-디지털 변환기들, 디지털-아날로그 변환기들, 및 다른 지원 회로들로 구성될 수 있다. 모바일 단말기(10)의 제어 및 신호 처리 기능들은 디바이스들 각각의 능력에 따라 그 디바이스들 사이에서 할당된다. 따라서, 제어기(20)는 메시지 및 데이터를, 변조 및 송신 이전에, 컨볼루션 인코딩 및 인터리빙하는 기능을 포함할 수도 있다. 제어기(20)는 내부 음성 코더를 추가적으로 포함할 수 있으며, 내부 데이터 모뎀을 포함할 수 있다. 더욱이, 제어기(20)는 메모리에 저장될 수 있는 하나 이상의 소프트웨어 프로그램들을 동작하는 기능을 포함할 수 있다. 예를 들어, 제어기(20)는 통상적인 웹 브라우저(Web browser)와 같은 접속 프로그램을 동작시킬 수 있다. 그 다음, 접속 프로그램은 모바일 단말기(10)가, 예를 들면, WAP(Wireless Application Protocol), HTTP(Hypertext Transfer Protocol) 등에 따라, 위치 기반 콘텐츠 및/또는 다른 웹 페이지 콘텐츠와 같은 웹 콘텐츠를 송신 및 수신하도록 할 수 있다.
또한, 모바일 단말기(10)는 통상적인 이어폰 또는 스피커(24), 링어(ringer)(22), 마이크로폰(26), 디스플레이(28)와 같은 출력 디바이스 및 사용자 입력 인터페이스를 포함하는 사용자 인터페이스를 포함할 수 있으며, 이들 모두는 제어기(20)에 연결된다. 모바일 단말기(10)가 데이터를 수신할 수 있도록 하는 사용자 입력 인터페이스는, 키패드(30), 터치 디스플레이(도시되지 않음) 또는 다른 입력 디바이스와 같은, 모바일 단말기(10)가 데이터를 수신할 수 있도록 허용하는 다수의 디바이스들 중 임의의 것을 포함할 수 있다. 키패드(30)를 포함하는 실시예들에서, 키패드(30)는 통상적인 숫자(0-9) 및 관련 키들(#, *) 및 모바일 단말기(10)를 동작하는데 이용되는 다른 하드 및 소프트 키들을 포함할 수 있다. 대안적으로, 키패드(30)는 통상적인 쿼티(QWERTY) 키패드 배열을 포함할 수 있다. 또한, 키패드(30)는 기능들과 관련된 다양한 소프트 키들을 포함할 수 있다. 추가적으로, 또는 대안적으로, 모바일 단말기(10)는 조이스틱 또는 다른 사용자 입력 인터페이스와 같은 인터페이스 디바이스를 포함할 수 있다. 모바일 단말기(10)는 모바일 단말기(10)를 동작하는데 필요한 다양한 회로들에 전력을 공급할 뿐만 아니라, 선택적으로는 기계적인 진동을 검출가능한 출력으로서 제공하기 위한 진동 배터리 팩과 같은 배터리(34)를 더 포함한다.
모바일 단말기(10)는 UIM(user identity module)(38)을 더 포함할 수 있다. 전형적으로, UIM(38)은 내장된 프로세서를 갖는 메모리 디바이스이다. UIM(38)은, 예를 들면, SIM(subscriber identity module), UICC(universal integrated circuit card), USIM(unversal subscriber identity module), R-UIM(removable user identity module) 등을 포함할 수 있다. 전형적으로, UIM(38)은 모바일 가입자와 관련된 정보 요소들을 저장한다. UIM(38) 이외에, 모바일 단말기(10)는 메모리를 구비할 수 있다. 예를 들어, 모바일 단말기(10)는 데이터의 일시적인 저장을 위한 캐시 영역을 포함하는 휘발성 RAM(Random Access Memory)과 같은 휘발성 메모리(40)를 포함할 수 있다. 또한, 모바일 단말기(10)는 내장되고/되거나 제거가능할 수 있는 다른 비휘발성 메모리(42)를 포함할 수 있다. 메모리들은 모바일 단말기(10)의 기능들을 구현하기 위해 모바일 단말기(10)에 의해 이용된 다수의 정보 조각 및 데이터 중 임의의 것을 저장할 수 있다. 예를 들어, 메모리들은 IMEI(international mobile equipment identification) 코드와 같은, 모바일 단말기(10)를 고유하게 식별할 수 있는 식별자를 포함할 수 있다.
일부 실시예에서, 모바일 단말기(10)는 비디오 코딩 및 디코딩 동작들을 수행하기 위한 비디오 인코더/디코더(48)를 더 포함할 수 있다. 비디오 인코더/디코더(48)는 비디오 입력을 압축된 비디오 데이터로 변환함으로써 데이터를 인코딩하고, 압축된 비디오 데이터를 볼 수 있는 형태로 다시 변환함으로써 데이터를 디코딩하도록 구성될 수 있다.
도 2는 예시적인 실시예에 따른 무선 통신 시스템의 개략 블록도이다. 이제 도 2를 참조하면, 다양한 실시예들로부터 이점을 얻을 수 있는 한 가지 유형의 시스템의 일례가 제공된다. 도 2에 도시된 바와 같이, 예시적인 실시예에 따른 시스템은 통신 디바이스(예를 들면, 모바일 단말기(10))와, 일부 경우에 있어서, 각각 네트워크(50)와 통신할 수 있는 추가적인 통신 디바이스들을 포함한다. 시스템의 통신 디바이스들은 네트워크(50)를 통해 네트워크 디바이스들과 또는 서로간에 통신할 수 있다.
예시적인 실시예에서, 네트워크(50)는 대응하는 유선 및/또는 무선 인터페이스들을 통해 서로 통신할 수 있는 여러 가지의 상이한 노드들, 디바이스들 또는 기능들의 모음을 포함한다. 그와 같이, 도 2의 예시는 시스템의 소정의 요소들의 브로드 뷰의 일례이며, 시스템 또는 네트워크(50)의 모든 포괄적이거나 상세한 뷰는 아님을 이해해야 한다. 반드시 필요한 것은 아니지만, 일부 실시예들에서, 네트워크(50)는 다수의 제1 세대(1G), 제2 세대(2G), 2.5G, 제3 세대(3G), 3.5G, 3.9G, 제4 세대(4G) 모바일 통신 프로토콜들, LTE(Long Term Evolution) 등 중 임의의 하나 이상에 따른 통신을 지원할 수 있을 것이다.
모바일 단말기(10)와 같은 하나 이상의 통신 단말기들 및 다른 통신 디바이스들은 네트워크(50)를 통해 서로 통신할 수 있고, 각각 신호들을 베이스 사이트(base site)로 송신 및 베이스 사이트로부터 수신하기 위한 안테나 또는 안테나들을 포함할 수 있으며, 베이스 사이트는, 예를 들면, LAN(local area network), MAN(metropolitan area network) 및/또는 인터넷과 같은 WAN(wide area network)과 같은 데이터 네트워크에 연결될 수 있는 하나 이상의 셀룰라 또는 모바일 네트워크들 또는 액세스 포인트의 일부인 베이스 스테이션일 수 있다. 이번에는, 처리 디바이스들 또는 요소들(예를 들면, 개인용 컴퓨터, 서버 컴퓨터 등)과 같은 다른 디바이스들이 네트워크(50)를 통해 모바일 단말기(10)에 연결될 수 있다. 모바일 단말기(10) 및 다른 디바이스들을 네트워크(50)에 직접적으로 또는 간접적으로 접속함으로써, 모바일 단말기(10) 및 다른 디바이스들은, 예를 들면, HTTP 등을 포함하는 많은 통신 프로토콜들에 따라, 서로간에 및/또는 네트워크와 통신할 수 있게 되어, 모바일 단말기(10) 및 다른 통신 디바이스들 각각의 다양한 통신 또는 다른 기능들을 수행할 수 있게 된다.
더욱이, 도 2에는 도시되지 않았지만, 모바일 단말기(10)는, 예를 들면, 무선 주파수(radio frequency; RF), 블루투스(BT), 적외선(IR), 또는 LAN, WLAN(wireless LAN), WiMAX(Worldwide Interoperability for Microwave Access), WiFi, UWB(ultra-wide band), 와이브리(Wibree) 기술 등을 포함하는 다수의 상이한 유선 또는 무선 통신 기법들 중 임의의 것에 따라 통신할 수 있다. 그와 같이, 모바일 단말기(10)는 많은 상이한 액세스 메카니즘들 중 임의의 것에 의해 네트워크(50) 및 다른 통신 디바이스들과 통신가능하게 될 수 있다. 예를 들어, W-CDMA(wideband code division multiple access), CDMA2000, GSM(global system for mobile communications), GPRS(general packet radio service) 등과 같은 모바일 액세스 메카니즘들이 지원될 뿐만 아니라, WLAN, WiMAX 등과 같은 무선 액세스 메카니즘들 및 DSL(digital subscriber line), 케이블 모뎀들, 이더넷 등과 같은 고정 액세스 메카니즘들도 지원될 수 있다.
도 3은 예시적인 실시예의 동작을 호스팅하거나 또는 그렇지 않은 경우 가능하게 하도록 모바일 단말기(10)에서 이용될 수 있는 장치의 블록도를 도시한다. 이제, 예시적인 실시예가 도 3을 참조하여 기술될 것이며, 복잡도 균형 엔트로피 코딩을 제공하기 위한 장치의 특정 요소들이 디스플레이된다. 도 3의 장치는, 예를 들면, 모바일 단말기(10) 상에서 이용될 수 있다. 그러나, 장치는 (예를 들면, 위에서 열거된 디바이스들 중 임의의 것과 같은) 모바일 및 고정 둘다의 다양한 다른 디바이스들에서 대안적으로 구현될 수 있다. 더욱이, 이하에 기술된 디바이스들 또는 요소들은 의무적인 것이 아닐 수 있으며, 따라서, 일부는 소정의 실시예에서 생략될 수 있음을 주지해야 한다.
이제 도 3을 참조하면, 복잡도 균형 엔트로피 코딩을 제공하기 위한 장치가 제공된다. 장치는 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 디바이스(76)를 포함하거나, 그렇지 않은 경우 그것들과 통신할 수 있다. 일부 실시예에서, 프로세서(70)(및/또는 코프로세서(co-processor) 또는 프로세서(70)를 돕거나 또는 그렇지 않은 경우 관련되는 임의의 다른 처리 회로)는 장치의 구성요소들 사이에서 정보를 전달하기 위한 버스를 통해 메모리 디바이스(76)와 통신할 수 있다. 메모리 디바이스(76)는, 예를 들면, 하나 이상의 휘발성 및/또는 비휘발성 메모리들을 포함할 수 있다. 다시 말해서, 예를 들어, 메모리 디바이스(76)는 머신(예를 들면, 프로세서(70)와 같은 컴퓨팅 디바이스)에 의해 검색가능(retrievable)할 수 있는 데이터(예를 들면, 비트들)를 저장하도록 구성된 게이트들을 포함하는 전자 저장 디바이스(예를 들면, 컴퓨터 판독가능 저장 매체)일 수 있다. 메모리 디바이스(76)는 장치로 하여금 본 발명의 예시적인 실시예에 따른 다양한 기능들을 수행할 수 있도록 하기 위해, 정보, 데이터, 애플리케이션, 인스트럭션 등을 저장하도록 구성될 수 있다. 예를 들어, 메모리 디바이스(76)는 프로세서(70)에 의한 처리를 위해 입력 데이터를 버퍼링하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 메모리 디바이스(76)는 프로세서(70)에 의한 실행을 위한 인스트럭션들을 저장하도록 구성될 수 있다.
장치는, 일부 실시예에서, 모바일 단말기(예를 들면, 모바일 단말기(10)) 또는 고정 통신 디바이스 또는 본 발명의 예시적인 실시예를 이용하도록 구성된 컴퓨팅 디바이스일 수 있다. 그러나, 일부 실시예에서, 장치는 칩 또는 칩 셋으로서 구현될 수 있다. 즉, 장치는 구조적인 어셈블리(예를 들면, 베이스보드) 상에 물질들, 구성요소들 및/또는 배선들을 포함하는 하나 이상의 물리적 패키지들(예를 들면, 칩들)을 포함할 수 있다. 구조적인 어셈블리는 물리적 세기(physical strength), 크기의 보존(conservation of size) 및/또는 포함된 구성요소 회로에 대한 전기적 상호작용의 제한을 제공할 수 있다. 따라서, 장치는, 일부 경우에 있어서, 단일의 칩 상에서 또는 단일의 "시스템 온 칩(system on a chip)"으로서 본 발명의 실시예를 구현하도록 구성될 수 있다. 그와 같이, 일부 경우에 있어서, 칩 또는 칩 셋은 본 명세서에서 기술된 기능들을 제공하기 위한 하나 이상의 동작들을 수행하는 수단을 구성할 수 있다.
프로세서(70)는 다수의 상이한 방식들로 구현될 수 있다. 예를 들어, 프로세서(70)는 코프로세서, 마이크로프로세서, 제어기, DSP(digital signal processor), 수반되는 DSP를 갖거나 또는 갖지 않는 처리 요소, 또는 예를 들어, ASIC(application specific integrated circuit), FPGA(field programmable gate array), MCU(microcontroller unit), 하드웨어 액셀레이터, 특수 용도 컴퓨터 칩 등과 같은 집적 회로들을 포함하는 다양한 다른 처리 회로와 같은 다양한 처리 수단 중 하나 이상으로서 구현될 수 있다. 그와 같이, 일부 실시예에서, 프로세서(70)는 독립적으로 수행하도록 구성된 하나 이상의 처리 코어들을 포함할 수 있다. 멀티-코어 프로세서는 단일의 물리적 패키지 내에서 다중처리를 가능하게 할 수 있다. 추가적으로 또는 대안적으로, 프로세서(70)는 인스트럭션들의 독립적인 실행, 파이프라이닝 및/또는 멀티스레딩(multithreading)을 가능하게 하도록 버스를 통해 나란히 구성된 하나 이상의 프로세서들을 포함할 수 있다.
예시적인 실시예에서, 프로세서(70)는 메모리 디바이스(76)에 저장되거나 또는 그렇지 않은 경우 프로세서(70)에 액세스가능한 인스트럭션들을 실행하도록 구성될 수 있다. 대안적으로 또는 추가적으로, 프로세서(70)는 하드 코딩된 기능을 실행하도록 구성될 수 있다. 그와 같이, 하드웨어 또는 소프트웨어 방법들에 의해 구성되던지, 또는 그들의 조합에 의해 구성되던지 간에, 프로세서(70)는 본 발명의 실시예에 따른 동작들을 수행할 수 있으며, 그에 따라 구성되는 (예를 들면, 회로에서 물리적으로 구현된) 엔티티를 나타낼 수 있다. 따라서, 예를 들어, 프로세서(70)가 ASIC, FPGA 등으로 구현될 때, 프로세서(70)는 본 명세서에서 기술된 동작들을 수행하기 위해 구체적으로 구성된 하드웨어일 수 있다. 대안적으로, 다른 예로서, 프로세서(70)가 소프트웨어 인스트럭션들의 실행자로서 구현될 때, 인스트럭션들은 그것이 실행될 때, 프로세서(70)가 본 명세서에서 기술된 알고리즘들 및/또는 동작들을 수행하도록 구체적으로 구성할 수 있다. 그러나, 일부의 경우에 있어서, 프로세서(70)는 본 명세서에서 기술된 알고리즘들 및/또는 동작들을 수행하기 위한 인스트럭션들에 의한 프로세서(70)의 추가의 구성에 의해 본 발명의 실시예를 구현하도록 적응된 특정 디바이스(예를 들면, 모바일 단말기 또는 네트워크 디바이스)의 프로세서일 수 있다. 프로세서(70)는, 다른 것들 중에서, 클럭(clock), ALU(arithmetic logic unit) 및 프로세서(70)의 동작을 지원하도록 구성된 로직 게이트들을 포함할 수 있다.
한편, 통신 인터페이스(74)는 네트워크 및/또는 장치와 통신하는 임의의 다른 디바이스 또는 모듈로/로부터 데이터를 송신 및/또는 수신하도록 구성되는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 인터페이스(74)는, 예를 들면, 무선 통신 네트워크와 통신할 수 있도록 하는 안테나(또는 다수의 안테나들) 및 지원 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 일부 환경들에 있어서, 통신 인터페이스(74)는 대안적으로 또는 추가적으로 유선 통신을 지원할 수 있다. 그와 같이, 예를 들어, 통신 인터페이스(74)는 케이블, DSL(digital subscriber line), USB(universal serial bus) 또는 다른 메카니즘들을 통한 통신을 지원하기 위한 통신 모뎀 및/또는 다른 하드웨어/소프트웨어를 포함할 수 있다.
사용자 인터페이스(72)는 사용자 인터페이스(72)에서 입력된 사용자의 지시(indication)를 수신 및/또는 가청의(audible), 시각의(visual), 기계적인 또는 다른 출력을 사용자에게 제공하기 위해 프로세서(70)와 통신할 수 있다. 그와 같이, 사용자 인터페이스(72)는, 예를 들면, 키보드, 마우스, 조이스틱, 디스플레이, 터치 스크린, 소프트 키, 마이크로폰, 스피커, 또는 다른 입/출력 메카니즘들을 포함할 수 있다. 이와 관련하여, 예를 들어, 프로세서(70)는, 예컨대, 스피커, 링어, 마이크로폰, 디스플레이 등과 같은 사용자 인터페이스의 하나 이상의 요소들의 적어도 일부 기능들을 제어하도록 구성된 사용자 인터페이스 회로를 포함할 수 있다. 프로세서(70) 및/또는 프로세서(70)를 포함하는 사용자 인터페이스 회로는 프로세서(70)에 액세스가능한 메모리(예를 들면, 메모리 디바이스(76) 등)에 저장된 컴퓨터 프로그램 인스트럭션들(예를 들면, 소프트웨어 및/또는 펌웨어)을 통해 사용자 인터페이스의 하나 이상의 요소들의 하나 이상의 기능들을 제어하도록 구성될 수 있다.
예시적인 실시예에서, 프로세서(70)는 엔트로피 코딩 엔진(80) 및 카테고리화기(82)로서 구현되거나, 그것들을 포함하거나, 또는 그렇지 않은 경우 그것들을 제어할 수 있다. 그와 같이, 일부 실시예들에 있어서, 프로세서(70)는 본 명세서에서 기술된 바와 같이, 엔트로피 코딩 엔진(80) 및 카테고리화기(82) 각각에 의한 다양한 기능들의 실행 또는 발생을 초래하거나, 지시하거나 또는 제어한다고 말할 수 있다. 엔트로피 코딩 엔진(80) 및 카테고리화기(82) 각각은 소프트웨어에 따라 동작하거나, 또는 그렇지 않은 경우, 하드웨어 또는 하드웨어와 소프트웨어의 조합으로 구현되는 디바이스 또는 회로와 같은 임의의 수단일 수 있으므로(예를 들면, 소프트웨어 제어하에 동작하는 프로세서(70), 본 명세서에서 기술된 동작들을 수행하도록 구체적으로 구성된 ASIC 또는 FPGA로서 구현된 프로세서(70), 또는 그들의 조합), 본 명세서에서 기술된 바와 같이, 엔트로피 코딩 엔진(80) 및 카테고리화기(82) 각각의 대응하는 기능들을 수행하도록 디바이스 또는 회로를 구성하게 된다. 따라서, 소프트웨어가 이용되는 예들에 있어서, 소프트웨어를 실행하는 디바이스 또는 회로(예를 들면, 일례에서 프로세서(70))는 그러한 수단과 관련된 구조를 형성한다.
카테고리화기(82)는 주어진 비트스트림(예를 들면, 처리되는 비디오 콘텐츠와 관련된 비트스트림)에서 발생될 수 있는 신택스 요소들을 카테고리들로 분할하도록 구성될 수 있다. 예시적인 실시예에서, 제1 카테고리는 비교적 드물게 발생되는 심볼들을 포함하고, 제2 카테고리는 비교적 빈번하게 발생되는 심볼들을 포함한다. 따라서, 예를 들어, 임계 발생 빈도(threshold frequency of occurrence)가 심볼들에 대해 정의될 수 있고, 임계 빈도보다 빈번하게 발생될 것으로 예상되는 심볼들은 제2 카테고리에 있는 것으로 결정될 수 있고, 임계 빈도보다 덜 빈번하게 발생될 것으로 예상되는 심볼들은 제1 카테고리에 있는 것으로 결정될 수 있다. 일부 경우들에 있어서, 빈도 임계값은 특정 시스템에서 허용되는 최고 비트레이트들에서의 심볼 발생의 빈도에 기초하여 결정될 수 있다. 그와 같이, 제1 카테고리에서의 심볼들은 허용된 최고 비트레이트들에서는 비교적 드물게 발생되는 것이 아닐 수도 있다. 한편, 제2 카테고리는 비디오 스트림의 전체 비트레이트가 증가함에 따라 그 발생이 크게 증가하는 심볼들을 포함할 수 있다.
카테고리화기(82)에 의해 카테고리화가 달성된 후, 엔트로피 코딩 엔진(80)은 카테고리화기(82)에 의해 정의된 카테고리들에 기초하여 상이한 처리를 이용해서 이진화(binarization) 및/또는 엔트로피 코딩 동작들을 수행할 수 있다. 예를 들어, 제1 카테고리의 경우, 이진화는 선택된 이진화 기법들(예를 들면, CABAC 또는 Pipe/V2V(variable length to variable length) 방안들)을 이용하여 달성될 수 있으며, 그 후에, 가변 빈 확률(variable bin probability)들을 갖는 문맥 업데이트(context update) 및 엔트로피 코딩이 뒤따른다. 제2 카테고리에서의 심볼들에 대한 신택스는 전통적인 가변 길이 코딩을 모방할 수 있으며, 0과 1 빈(bin)들 둘다에 대해 50% 확률을 목표로 하는 심볼들을 이진화함으로써 수행될 수 있다. 잔여 계수들의 경우, 이진화된 심볼들은 런-렝스 코딩(run-length coding) 이후의 허프만 코딩(Huffman coding)과 유사하게 생성되거나, 또는 일부의 다른 보다 진보된 방법들을 이용하여 생성될 수 있다. 0 및 1 빈들에 대해 목표로 하는 확률로 심볼들을 이진화한 후에, 문맥 업데이트 단계가 결과적인 빈들에 대해 생략될 수 있다. 그 다음, 엔트로피 코딩이 50% 확률로 수행될 수 있다. 일부의 예들에서, 엔트로피 코딩을 달성하기 위해 바이패스 코딩 모드가 CABAC 엔진에 대해 구현될 수 있다.
디코딩을 위해, 일부 예시적인 실시예들은 이용된 인코딩 메카니즘에 대응하는 절차들을 이용하여 제1 카테고리 심볼들을 처리할 수 있다. 예를 들어, 인코딩이 CABAC 또는 Pipe/V2V 관련 방안들을 이용하여 수행된다면, 각각에 대한 대응하는 디코딩 방안들이 제1 카테고리 심볼들에 대해 구현될 수 있다. 한편, 제2 카테고리에 속하는 신택스 요소들은, (예를 들면, CABAC 엔진의 바이패스 코딩 모드를 이용함으로써) 정적인 50% 빈 확률들이 이들 심볼들의 디코딩과 관련하여 이용될 수 있다는 것을 제외하고는, 제1 카테고리 심볼들과 동일한 코딩 엔진(예를 들면, 엔트로피 코딩 엔진(80))을 이용할 수 있다.
문맥 업데이트 동작들은 제2 카테고리에 속하는 신택스 요소들에 대해 수행되지 않기 때문에, 코덱(예를 들면, 비디오 인코더/디코더(48))에 의해 착수된 코딩/디코딩 동작들에 대한 전체 계산 요건들이 감소될 수 있다. 이와 관련하여, 예를 들어, 전체 계산 요건들은 주어진 복잡도 제한에 대해 비교적 높은 압축 성능을 가능하게 하면서, 복잡도를 비교적 낮게 유지할 수 있는 소정의 한도 내에 있을 수 있다. 그와 같이, 일부 경우들에 있어서, (예를 들면, 문맥 업데이트를 생략함으로써) 제2 카테고리 인코딩이 보다 낮은 복잡도를 제공하도록 구성되고, 제1 카테고리 인코딩이 비교적 높은 효율성을 제공하도록 구성될 수 있다. 제1 카테고리의 구성을 위해, 코딩, 변환 및 예측 유닛들의 쿼드 트리(quad-tree) 구조와 관련된 정보가, 예측 모드, 움직임 벡터 데이터 및 인트라 예측 데이터와 같은 예측과 관련된 정보와 더불어 고려될 수 있다. 제2 카테고리 구성은 잔여 변환 계수 데이터를 고려할 수 있다.
주어진 비트스트림의 신택스 요소들 각각이, 전술한 바와 같은 복잡도 균형 엔트로피 코딩에 따라 인코딩 및 디코딩될 수 있지만, 예시적인 실시예의 방법 및 장치는, 신택스 요소들 중 일부는 복잡도 균형 엔트로피 코딩에 따라 인코딩하고, 신택스 요소들 중 다른 것은 산술 코딩 방안들에 따른 것과 같은 다른 코딩 방안들에 따라 인코딩할 수 있다. 따라서, 본 발명의 예시적인 실시예의 복잡도 균형 엔트로피 코딩은, 원하는 경우, 산술 또는 다른 코딩 방안들과 결합되어 또는 조합으로 이용될 수 있다.
카테고리화기(82) 및 엔트로피 코딩 엔진(80)의 경우가 비디오 인코더/디코더(48)에서 제공될 수 있다. 대안적으로, 카테고리화기(82) 및 엔트로피 코딩 엔진(80)의 경우가 개별적으로 제공될 수 있지만, 비디오 인코더/디코더(48)에 의해 수행된 비디오 인코딩 및 디코딩 동작들을 돕도록 이용가능할 수 있다.
일부 동작 모드들에서, 양자화된 DCT 계수들이 이진화되고, 결과적인 빈들이 나머지 데이터에 대해 이용된 것과 동일한 엔트로피 코딩 메카니즘(예를 들면, 엔트로피 코딩 엔진(80))을 이용하여 동일한 확률들(예를 들면, 0 빈들에 대해 50% 및 1 빈들에 대해 50%)로 코딩될 수 있다. 데이터는 임의의 선택된 메카니즘(예를 들면, H.264/AVC에서의 CABAC)에 의해 인코딩될 수 있다. 예를 들면, CABAC의 이진화와 비교할 때, DCT 계수들의 이진화는 결과적인 빈들이 동일한 확률들을 갖는 것을 목표를 하여 상이하게 수행될 수 있다. 따라서, DCT 계수들로부터 초래된 빈들에 대해 동일한 확률들을 할당함으로써, 문맥 적응적 산술 코딩(예를 들면, 상이한 빈 문맥들에 대한 확률들의 업데이트)의 가장 복잡한 부분이 완전히 생략될 수 있다. 이것은 비교적 높은 비트레이트들에서도, 대응하는 심볼들의 엔트로피 코딩과 관련된 계산 복잡도가, 비트레이트에 훨씬 덜 의존적으로 되도록 하고, 낮은 복잡도 동작이 실현될 수 있도록 한다.
도 4는 예시적인 실시예에 대한 복잡도 대 비트레이트의 예를 도시한다. 파선(90)은 동작의 낮은 복잡도 모드에 대한 원하는 최대 레벨을 나타낼 수 있다. 도 4에 나타낸 바와 같이, 신택스 요소들을 카테고리화한 후, 각각의 카테고리를 상이하게 인코딩하여 복잡도를 감소시키는 예시적인 실시예를 이용함으로써, DCT 계수들의 수에 의해 나타낸 바와 같은 계산 복잡도가, 일부 심볼들에 대해 DCT 계수 데이터에 대한 확률 추정을 생략하면서 문맥 적응적 산술 코딩을 이용하는 것에 의해, 원하는 최대 레벨 아래로 유지된다. 그와 같이, 도 4는 도 8에 도시된 바와 같은 문맥 적응적 산술 코딩만을 이용하는 종래의 시스템에 대한 비디오 비트레이트의 함수로서 계산 복잡도에 대해 나타낸다. 도 8에서, DCT 계수들의 수는 보다 높으며, 비트레이트가 증가함에 따라 (파선(90)에 의해 다시 도시된) 동작의 낮은 복잡도 모드에 대한 원하는 최대 복잡도 레벨이 초과되는 포인트까지 선형적으로 증가한다.
본 발명의 예시적인 실시예들은 여러 가지의 상이한 방식으로 구현될 수 있다. 예로서, 데이터 심볼들의 이진화는 DCT 계수 코딩에 대해 정의된 코드워드(codeword)들을 이용하거나 또는 다른 메카니즘들을 통해 달성될 수 있다. 상이한 문맥 적응적 엔트로피 코딩 메카니즘들(예를 들면, CABAC, Pipe/V2V 등)이 또한 이용될 수 있다. 상이한 데이터 유닛들이 일정한 확률들을 마찬가지로 갖는 낮은 복잡도 처리를 위해 카테고리화될 수 있다. 일부 경우들에 있어서, 낮은 복잡도 처리 카테고리들에서의 일정한 확률들은 (전술한 바와 같이) 동일한 확률들로서 정의될 수 있다. 그러나, 일부 대안적인 실시예들에서, 확률들은 하나 이상의 빈들이 동일하지 않은 확률들로 코딩되도록 정의될 수 있다. 낮은 복잡도 처리 및 높은 복잡도 처리를 위한 데이터의 카테고리화는, 비트레이트와 같은 상이한 변수들에 따라 변할 수 있다. 일부 실시예에서, 신택스 요소들의 카테고리화는 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨들에서 시그널링될 수 있다. 일부 경우들에 있어서, 대응하는 신택스 요소들이 높은 효율성 또는 낮은 복잡도 엔트로피 코딩으로 엔트로피 코딩될지의 여부에 관한 지시가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨들에서 마찬가지로 시그널링될 수 있다.
따라서, 본 발명의 일부 실시예들은 상이한 계산 복잡도 요건들하에서 비교적 높은 레벨의 압축 효율성을 여전히 가능하게 하면서, 비디오 코덱의 복잡도가 제어되도록 할 수 있다. 이와 관련하여, 그들의 상대적인 발생의 빈도들에 기초하여 신택스 요소들을 카테고리화함으로써, 덜 빈번하게 발생되는 심볼들에 대하여 보다 복잡한 동작들이 수행될 수 있고, 보다 빈번하게 발생되는 심볼들에 대하여 복잡한 동작들이 간략화되거나 또는 생략될 수 있다.
도 5는 본 발명의 예시적인 실시예에 따른 방법 및 프로그램 제품의 흐름도이다. 흐름도의 각각의 블록, 및 흐름도에서의 블록들의 조합은 하드웨어, 펌웨어, 프로세서, 회로 및/또는 하나 이상의 컴퓨터 프로그램 인스트럭션들을 포함하는 소프트웨어의 실행과 관련된 다른 디바이스와 같은 다양한 수단에 의해 구현될 수 있음을 이해할 것이다. 예를 들어, 전술한 하나 이상의 절차들은 컴퓨터 프로그램 인스트럭션들에 의해 구현될 수 있다. 이와 관련하여, 전술한 절차들을 구현하는 컴퓨터 프로그램 인스트럭션들이 사용자 단말기의 메모리 디바이스에 의해 저장되고, 사용자 단말기에서의 프로세서에 의해 실행될 수 있다. 이해할 수 있듯이, 임의의 그러한 컴퓨터 프로그램 인스트럭션들은 머신을 생성하기 위해 컴퓨터 또는 다른 프로그래밍가능 장치(예를 들면, 하드웨어) 상으로 로딩되어, 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 실행되는 인스트럭션들이 흐름도 블록(들)에서 지정된 기능들을 구현하기 위한 수단을 생성하도록 할 수 있다. 또한, 컴퓨터 또는 다른 프로그래밍가능 장치가 특정 방식으로 기능하도록 지시할 수 있는 이러한 컴퓨터 프로그램 인스트럭션들이 비일시적 컴퓨터 판독가능 메모리에 저장되고, 컴퓨터 판독가능 메모리에 저장된 인스트럭션들이 흐름도 블록(들)에서 지정된 기능들을 구현하는 제조의 물품을 생성하도록 할 수 있다. 또한, 컴퓨터 프로그램 인스트럭션들은 일련의 동작들이 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 수행되도록 컴퓨터 또는 다른 프로그래밍가능 장치 상으로 로딩되어, 컴퓨터 구현 프로세스를 생성하도록 함으로써, 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 실행되는 인스트럭션들이 흐름도 블록(들)에서 지정된 기능들을 구현하도록 할 수 있다.
따라서, 흐름도의 블록들은 지정된 기능들을 수행하기 위한 수단의 조합들 및 지정된 기능들을 수행하기 위한 동작들의 조합들을 지원한다. 또한, 흐름도의 하나 이상의 블록들, 및 흐름도에서의 블록들의 조합들은, 지정된 기능들, 또는 특수 목적 하드웨어 및 컴퓨터 인스트럭션들의 조합들을 수행하는 특수 목적 하드웨어 기반 컴퓨터 시스템들에 의해 구현될 수 있음을 이해할 것이다.
이와 관련하여, 도 5에 도시된 바와 같은, 본 발명의 일 실시예에 따른 방법은 동작(110)에서 비디오 콘텐츠에서의 신택스 요소들의 발생 빈도에 기초하여 비디오 콘텐츠의 신택스 요소들을 카테고리화하는 것을 포함할 수 있다. 카테고리화는 적어도 심볼들의 제1 카테고리 및 제2 카테고리를 정의하는 것을 포함할 수 있다. 본 방법은 동작(120)에서 문맥 업데이트에 응답하여 제1 카테고리에 대응하는 심볼들의 엔트로피 코딩을 수행하고, 동작(130)에서 제2 카테고리에 대응하는 심볼들의 엔트로피 코딩 이전에 문맥 업데이트를 생략하는 것을 더 포함할 수 있다.
일부 실시예에서, 상기 동작들 중 소정의 동작들은, 후술하는 바와 같이 수정 또는 더 확대될 수 있다. 더욱이, 일부 실시예에서, 추가의 선택적인 동작들이 포함될 수도 있다(그 예들이, 도 5에서 파선으로 도시된다). 이하에서의 수정들, 선택적인 추가들 또는 확대들 각각은, 단독으로 또는 본 명세서에서 기술된 특징들 중에서의 임의의 다른 것들과 조합하여, 위에서의 동작들과 함께 포함될 수 있음을 이해해야 한다. 이와 관련하여, 예를 들어, 본 방법은 동작(125)에서 문맥 업데이트를 생략하기 전에, 미리 결정된 확률을 목표로 하는 심볼들의 이진화를 수행하는 것을 더 포함할 수 있다. 예시적인 실시예에서, 미리 결정된 확률을 목표로 하는 심볼들의 이진화를 수행하는 것은, 각각의 빈에 대해 균등한 또는 균등하지 않은 확룔을 목료로 하는 이진화를 수행하는 것을 포함할 수 있다. 본 방법은 동작(140)에서 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서의 신택스 요소들에 대한 높은 효율성 또는 낮은 복잡도 엔트로피 인코딩을 시그널링하는 것을 더 포함할 수 있다. 일부 경우들에 있어서, 본 방법은 동작(100)에서 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서의 신택스 요소들의 카테고리화를 시그널링하는 것을 추가적으로 또는 대안적으로 포함할 수 있다. 예시적인 실시예에서, 신택스 요소들을 카테고리화하는 것은 임계값 아래의 발생 빈도를 갖는 심볼들을 제1 카테고리 심볼들로서 카테고리화하고, 임계값 위의 발생 빈도를 갖는 심볼들을 제2 카테고리 심볼들로서 카테고리화하는 것을 포함할 수 있다. 예시적인 실시예에서, 제1 카테고리에 대응하는 심볼들의 엔트로피 코딩을 수행하는 것은 데이터 심볼들의 이진화 이후의 엔트로피 코딩을 수행하는 것을 더 포함할 수 있다.
예시적인 실시예에서, 위에서의 도 5의 방법을 수행하는 장치는 전술한 동작들(100-140) 중 일부 또는 그 각각을 수행하도록 구성된 프로세서(예를 들면, 프로세서(70))를 포함할 수 있다. 프로세서는, 예를 들면, 하드웨어 구현 로직 기능들을 수행하고, 저장된 인스트럭션들을 실행하고, 또는 동작들 각각을 수행하기 위한 알고리즘들을 실행함으로써 동작들(100-140)을 수행하도록 구성될 수 있다. 대안적으로, 장치는 전술한 동작들 각각을 수행하기 위한 수단을 포함할 수 있다. 이와 관련하여, 예시적인 실시예에 따라, 동작들(100-140)을 수행하기 위한 수단의 예들은, 예를 들면, 카테고리화기(82) 및 엔트로피 코딩 엔진(80) 각각을 포함할 수 있다. 추가적으로 또는 대안적으로, 적어도 프로세서(70)는 카테고리화기(82) 및 엔트로피 코딩 엔진(80)을 제어하거나 또는 심지어 그것들로서 구현될 수 있다는 사실로 인해, 프로세서(70) 및/또는 인스트럭션들을 실행하거나 또는 전술한 바와 같이 정보를 처리하기 위한 알고리즘을 실행하기 위한 디바이스 또는 회로는, 동작들(100-140)을 수행하기 위한 예시적인 수단을 또한 형성할 수 있다.
예시적인 실시예에 따른 장치의 예는, 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함할 수 있다. 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서를 이용하여, 장치로 하여금 (임의의 조합에서 전술한 수정들 및 확대들을 갖거나 또는 갖지 않는) 동작들(100-140)을 수행하게 하도록 구성될 수 있다.
예시적인 실시예에 따른 컴퓨터 프로그램 제품의 예는, 그 안에 저장된 컴퓨터 실행가능 프로그램 코드 부분들을 갖는 적어도 하나의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 컴퓨터 실행가능 프로그램 코드 부분들은 (임의의 조합에서 전술한 수정들 및 확대들을 갖거나 또는 갖지 않는) 동작(100-140)을 수행하기 위한 프로그램 코드 인스트럭션들을 포함할 수 있다.
전술한 설명 및 관련 도면들에서 제시된 개시 내용의 이점을 갖는, 본 발명이 속하는 기술 분야의 당업자라면, 본 명세서에서 개시된 본 발명의 많은 수정들 및 다른 실시예들이 가능함을 이해할 것이다. 따라서, 본 발명은 개시된 특정 실시예들로 제한되지 않으며, 수정들 및 다른 실시예들이 첨부된 특허청구범위의 영역 내에 속하는 것으로 의도됨을 이해할 것이다. 더욱이, 전술한 설명 및 관련된 도면들은 요소들 및/또는 기능들의 소정의 예시적인 조합들의 문맥으로 일부 예시적인 실시예들을 기술하지만, 요소들 및/또는 기능들의 상이한 조합들이, 첨부된 특허청구범위의 영역을 벗어나지 않고서도, 대안적인 실시예들에 의해 제공될 수 있음을 이해해야 한다. 이와 관련하여, 예를 들어, 위에서 명시적으로 기술된 것과는 상이한 요소들 및/또는 기능들의 조합들이, 첨부된 특허청구범위의 일부에서 개시될 수 있는 것으로서 또한 고려된다. 본 명세서에서는 특정한 용어들이 이용되었지만, 그것은 일반적이고 서술적인 의미로만 이용된 것이며, 제한을 위한 것은 아니다.

Claims (28)

  1. 비디오 콘텐츠의 복수의 신택스 요소를 상기 비디오 콘텐츠에서의 상기 신택스 요소의 발생 빈도에 기초하여 제1 카테고리 및 제2 카테고리로 카테고리화하는 단계와,
    상기 신택스 요소의 제1 카테고리에 대응하고, 문맥 업데이트된 심볼을 엔트로피 코딩하는 단계와,
    상기 신택스 요소의 제2 카테고리에 대응하고, 문맥 업데이트를 생략한 심볼을 엔트로피 코딩하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 신택스 요소의 카테고리화가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되도록 하는 단계를 더 포함하는
    방법.
  3. 제1항 또는 제2항에 있어서,
    상기 문맥 업데이트를 생략하기 전에, 상기 신택스 요소의 제2 카테고리에 대응하는 심볼의 이진화를 수행하는 단계를 더 포함하는
    방법.
  4. 제3항에 있어서,
    상기 이진화를 수행하는 단계는 미리 결정된 확률을 목표로 하도록 이진화를 수행하는 단계를 포함하는
    방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 엔트로피 코딩의 표시가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되도록 하는 단계를 더 포함하는
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 복수의 신택스 요소를 카테고리화하는 단계는, 미리 정의된 임계값에 대한 상기 신택스 요소의 발생 빈도의 관계에 기초하여 상기 복수의 신택스 요소를 카테고리화하는 단계를 포함하는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 신택스 요소의 제1 카테고리에 대응하는 심볼을 엔트로피 코딩하기 전에, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼의 이진화를 수행하는 단계를 더 포함하는
    방법.
  8. 적어도 하나의 프로세서, 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금 적어도,
    비디오 콘텐츠의 복수의 신택스 요소를 상기 비디오 콘텐츠에서의 상기 신택스 요소의 발생 빈도에 기초하여 제1 카테고리 및 제2 카테고리로 카테고리화하고,
    상기 신택스 요소의 제1 카테고리에 대응하고, 문맥 업데이트된 심볼을 엔트로피 코딩하고,
    상기 신택스 요소의 제2 카테고리에 대응하고, 문맥 업데이트를 생략한 심볼을 엔트로피 코딩하게 하도록 구성되는
    장치.
  9. 제8항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 상기 신택스 요소의 카테고리화가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되게 하도록 더 구성되는
    장치.
  10. 제8항 또는 제9항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 상기 문맥 업데이트를 생략하기 전에, 상기 신택스 요소의 제2 카테고리에 대응하는 심볼의 이진화를 수행하게 하도록 더 구성되는
    장치.
  11. 제10항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 미리 결정된 확률을 목표로 하도록 이진화를 수행함으로써 이진화를 수행하게 하도록 구성되는
    장치.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 상기 엔트로피 코딩의 표시가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되게 하도록 더 구성되는
    장치.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 미리 정의된 임계값에 대한 상기 신택스 요소의 발생 빈도의 관계에 기초하여 상기 복수의 신택스 요소를 카테고리화함으로써 상기 복수의 신택스 요소를 카테고리화하게 하도록 구성되는
    장치.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서를 이용하여, 상기 장치로 하여금, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼을 엔트로피 코딩하기 전에, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼의 이진화를 수행하게 하도록 더 구성되는
    장치.
  15. 컴퓨터 실행가능 프로그램 코드 인스트럭션이 저장되어 있는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은,
    비디오 콘텐츠의 복수의 신택스 요소를 상기 비디오 콘텐츠에서의 상기 신택스 요소의 발생 빈도에 기초하여 제1 카테고리 및 제2 카테고리로 카테고리화하는 프로그램 코드 인스트럭션과,
    상기 신택스 요소의 제1 카테고리에 대응하고, 문맥 업데이트된 심볼을 엔트로피 코딩하는 프로그램 코드 인스트럭션과,
    상기 신택스 요소의 제2 카테고리에 대응하고, 문맥 업데이트를 생략한 심볼을 엔트로피 코딩하는 프로그램 코드 인스트럭션을 포함하는
    컴퓨터 프로그램 제품.
  16. 제15항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은, 상기 신택스 요소의 카테고리화가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되도록 하는 프로그램 코드 인스트럭션을 더 포함하는
    컴퓨터 프로그램 제품.
  17. 제15항 또는 제16항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은, 상기 문맥 업데이트를 생략하기 전에, 상기 신택스 요소의 제2 카테고리에 대응하는 심볼의 이진화를 수행하는 프로그램 코드 인스트럭션을 더 포함하는
    컴퓨터 프로그램 제품.
  18. 제17항에 있어서,
    상기 이진화를 수행하기 위한 프로그램 코드 인스트럭션은, 미리 결정된 확률을 목표로 하도록 이진화를 수행하는 프로그램 코드 인스트럭션을 포함하는
    컴퓨터 프로그램 제품.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은, 상기 엔트로피 코딩의 표시가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되도록 하는 프로그램 코드 인스트럭션을 더 포함하는
    컴퓨터 프로그램 제품.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 복수의 신택스 요소를 카테고리화하기 위한 프로그램 코드 인스트럭션은, 미리 정의된 임계값에 대한 상기 신택스 요소의 발생 빈도의 관계에 기초하여 상기 복수의 신택스 요소를 카테고리화하는 프로그램 코드 인스트럭션을 포함하는
    컴퓨터 프로그램 제품.
  21. 제15항 내지 제20항 중 어느 한 항에 있어서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼을 엔트로피 코딩하기 전에, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼의 이진화를 수행하는 프로그램 코드 인스트럭션을 더 포함하는
    컴퓨터 프로그램 제품.
  22. 비디오 콘텐츠의 복수의 신택스 요소를 상기 비디오 콘텐츠에서의 상기 신택스 요소의 발생 빈도에 기초하여 제1 카테고리 및 제2 카테고리로 카테고리화하는 수단과,
    상기 신택스 요소의 제1 카테고리에 대응하고, 문맥 업데이트된 심볼을 엔트로피 코딩하는 수단과,
    상기 신택스 요소의 제2 카테고리에 대응하고, 문맥 업데이트를 생략한 심볼을 엔트로피 코딩하는 수단을 포함하는
    장치.
  23. 제22항에 있어서,
    상기 신택스 요소의 카테고리화가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되게 하는 수단을 더 포함하는
    장치.
  24. 제22항 또는 제23항에 있어서,
    상기 문맥 업데이트를 생략하기 전에, 상기 신택스 요소의 제2 카테고리에 대응하는 심볼의 이진화를 수행하는 수단을 더 포함하는
    장치.
  25. 제24항에 있어서,
    상기 이진화를 수행하는 수단은 미리 결정된 확률을 목표로 하도록 이진화를 수행하는 수단을 포함하는
    장치.
  26. 제22항 내지 제25항 중 어느 한 항에 있어서,
    상기 엔트로피 코딩의 표시가 블록, 슬라이스, 픽쳐 또는 시퀀스 레벨에서 시그널링되도록 하는 수단을 더 포함하는
    장치.
  27. 제22항 내지 제26항 중 어느 한 항에 있어서,
    상기 복수의 신택스 요소를 카테고리화하는 수단은, 미리 정의된 임계값에 대한 상기 신택스 요소의 발생 빈도의 관계에 기초하여 상기 복수의 신택스 요소를 카테고리화하는 수단을 포함하는
    장치.
  28. 제22항 내지 제27항 중 어느 한 항에 있어서,
    상기 신택스 요소의 제1 카테고리에 대응하는 심볼을 엔트로피 코딩하기 전에, 상기 신택스 요소의 제1 카테고리에 대응하는 심볼의 이진화를 수행하는 수단을 더 포함하는
    장치.
KR1020137005051A 2010-07-28 2011-07-27 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치 KR20130036768A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36831610P 2010-07-28 2010-07-28
US61/368,316 2010-07-28
PCT/IB2011/053356 WO2012014170A1 (en) 2010-07-28 2011-07-27 Method and apparatus for providing complexity balanced entropy coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157018099A Division KR101638300B1 (ko) 2010-07-28 2011-07-27 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20130036768A true KR20130036768A (ko) 2013-04-12

Family

ID=45529482

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137005051A KR20130036768A (ko) 2010-07-28 2011-07-27 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
KR1020157018099A KR101638300B1 (ko) 2010-07-28 2011-07-27 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157018099A KR101638300B1 (ko) 2010-07-28 2011-07-27 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치

Country Status (7)

Country Link
US (1) US9036701B2 (ko)
EP (1) EP2599315B1 (ko)
KR (2) KR20130036768A (ko)
CN (1) CN103181167B (ko)
BR (1) BR112013002029B1 (ko)
CA (1) CA2806523C (ko)
WO (1) WO2012014170A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
EP2810440A1 (en) * 2012-02-04 2014-12-10 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
US9538172B2 (en) 2012-04-11 2017-01-03 Qualcomm Incorporated Grouping bypass coded syntax elements in video coding
EP3206399A4 (en) * 2014-11-04 2017-10-25 Samsung Electronics Co., Ltd. Probability updating method for binary arithmetic coding/decoding, and entropy coding/decoding apparatus using same
WO2019027074A1 (ko) * 2017-08-04 2019-02-07 엘지전자(주) 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치
US11449713B2 (en) 2018-11-16 2022-09-20 Uatc, Llc Attention based feature compression and localization for autonomous devices
US11461583B2 (en) * 2018-11-16 2022-10-04 Uatc, Llc Binary feature compression for autonomous devices
CN110046159B (zh) * 2019-03-13 2023-04-18 平安科技(深圳)有限公司 银行账号存储方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7469070B2 (en) * 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
JP4878262B2 (ja) * 2006-10-31 2012-02-15 キヤノン株式会社 エントロピー符号化装置
US8213499B2 (en) * 2007-04-04 2012-07-03 General Instrument Corporation Method and apparatus for context address generation for motion vectors and coefficients
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
JP4962400B2 (ja) * 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
JP4896944B2 (ja) 2008-11-13 2012-03-14 株式会社東芝 画像復号装置
WO2011002914A1 (en) * 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
EP2514210A4 (en) 2009-12-17 2014-03-19 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VIDEO CODING
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords

Also Published As

Publication number Publication date
EP2599315B1 (en) 2019-09-04
EP2599315A4 (en) 2014-01-22
CN103181167A (zh) 2013-06-26
BR112013002029B1 (pt) 2022-06-28
CA2806523C (en) 2016-07-05
BR112013002029A2 (pt) 2017-09-19
WO2012014170A1 (en) 2012-02-02
US9036701B2 (en) 2015-05-19
KR101638300B1 (ko) 2016-07-08
KR20150103044A (ko) 2015-09-09
CA2806523A1 (en) 2012-02-02
EP2599315A1 (en) 2013-06-05
US20120250763A1 (en) 2012-10-04
CN103181167B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
KR101638300B1 (ko) 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치
RU2668723C2 (ru) Способ и оборудование для кодирования и декодирования видеосигналов
JP6339099B2 (ja) 次世代ビデオのパーティションデータのコンテンツ適応的エントロピーコーディング
US7639883B2 (en) Method, device, mobile terminal and computer program product for providing variable compression of data files
RU2498523C2 (ru) Быстрое принятие решения о дельте параметра квантования макроблока
JP2020074638A (ja) 復元ブロック生成方法、予測情報符号化方法、ビットストリーム、コンピュータ可読媒体
US9407915B2 (en) Lossless video coding with sub-frame level optimal quantization values
KR20150024398A (ko) 크기 기반 변환 유닛 컨텍스트 도출
JP2006516177A (ja) デコーダにおいて導出可能なキューを用いたディジタルデータのエンコーディング及びデコーディング
JP2015508617A5 (ko)
US9866868B2 (en) Non-transform coding
JP5094960B2 (ja) 空間的に強化される変換符号化
US11917156B2 (en) Adaptation of scan order for entropy coding
KR20190139313A (ko) 콘텍스트 트리를 사용한 비디오 신택스 엘리먼트들의 코딩
KR102380579B1 (ko) 비디오 데이터에 관련된 신택스 엘리먼트를 나타내는 이진 심볼들의 시퀀스의 컨텍스트-적응적 이진 산술 코딩을 위한 방법 및 디바이스
KR101425286B1 (ko) 모션 추정을 위한 완전한 서브 매크로블록 형상 후보 저장 및 복구 프로토콜
Zhou et al. Distributed video coding using interval overlapped arithmetic coding
CN110692244B (zh) 基于最大概率符号的二进制位串编译
KR20130023444A (ko) 다단계 화면간 예측을 이용한 영상 부호화/복호화 장치 및 방법
CN104159106A (zh) 视频编码方法和视频解码方法及其装置
US20240089433A1 (en) Chroma Transform Type Determination
US20200142703A1 (en) Gain Control for Multiple Description Coding
JP2017123513A (ja) 映像符号化方法、映像符号化装置及び映像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E801 Decision on dismissal of amendment
A107 Divisional application of patent
J201 Request for trial against refusal decision
J801 Dismissal of trial

Free format text: REJECTION OF TRIAL FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150706

Effective date: 20150901