KR101777487B1 - 코딩 단위 비트 수 제한 - Google Patents

코딩 단위 비트 수 제한 Download PDF

Info

Publication number
KR101777487B1
KR101777487B1 KR1020157014957A KR20157014957A KR101777487B1 KR 101777487 B1 KR101777487 B1 KR 101777487B1 KR 1020157014957 A KR1020157014957 A KR 1020157014957A KR 20157014957 A KR20157014957 A KR 20157014957A KR 101777487 B1 KR101777487 B1 KR 101777487B1
Authority
KR
South Korea
Prior art keywords
scaling factor
video data
coding
bit
bit number
Prior art date
Application number
KR1020157014957A
Other languages
English (en)
Other versions
KR20150082527A (ko
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 KR20150082527A publication Critical patent/KR20150082527A/ko
Application granted granted Critical
Publication of KR101777487B1 publication Critical patent/KR101777487B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

코딩 단위 비트 수 제한을 포함하는 비디오 코딩에 관련된 시스템, 디바이스 및 방법이 설명된다.

Description

코딩 단위 비트 수 제한{CODING UNIT BIT NUMBER LIMITATION}
관련 출원
본 출원은 2013년 1월 4일 출원되고 발명의 명칭이 "모드 제약된 코딩된 비트 수 제한(MODE CONSTRAINED CODED BIT NUMBER LIMITATION)"인 미국 가출원 제 61/748,907호, 및 2013년 2월 28일 출원되고 발명의 명칭이 "모드 제약된 코딩된 비트 수 제한(MODE CONSTRAINED CODED BIT NUMBER LIMITATION)"인 미국 가출원 제 61/770,699호의 우선권을 청구한다.
ISO/IEC 동화상 전문가 그룹(Moving Picture Expert Group: MPEG) 및 ITU-T 비디오 코딩 전문가 그룹(Video Coding Experts Group: VCEG)에 의해 형성된 비디오 부호화 연합팀(Joint Collaborative Team on Video Coding: JCT-VC)에 의해 현재 개발 중에 있는 고효율 비디오 코딩(High Efficiency Video Coding: HEVC)은 2013년에 최종 승인될 것으로 예상되는 계획된 비디오 압축 표준이다. 이전의 비디오 코딩 표준에 유사하게, HEVC는 인트라/인터 예측(intra/inter prediction), 변환(transform), 양자화(quantization), 인루프 필터링(in-loop filtering), 및 엔트로피 코딩(entropy coding)과 같은 기본적인 기능 모듈을 포함한다. HEVC는 가변 크기를 갖는 직사각형 블록의 형태를 취하는 코딩 단위(Coding Units: CUs)로 이후에 파티션되는(partitioned) 화상을 위한 최대 코딩 단위(Largest Coding Unit: LCU)를 정의한다. CU는 루마 화소(Luma pixel)의 정사각형 블록 및 크로마 화소(Chroma pixel)의 2개의 대응 블록을 포함한다. CU의 크기는 루마 성분에서 8×8, 16×16, 32×32 또는 64×64가 되도록 구성될 수 있다. LCU는 HEVC 코덱을 구현할 때 기본 단위가 되도록 고려된다.
디코더 복잡성을 감소시키기 위해, HEVC는 임의의 코딩된 LCU의 비트 수(bit number)를 제한값(limit value)으로 제약한다(constrained). LCU 비트 수 제한에 기인하여, 디코더는 코딩된 LCU의 최악의 비트 크기를 인지하고, 비트 수 제한을 초과하지 않는 한, 임의의 크기의 LCU의 디코딩을 수용하기 위해 충분한 크기의 버퍼를 할당할 수 있다. 그러나, 더 큰 제한값은 코딩된 LCU가 제약을 위배하는(violate) 가능성을 상당히 감소시킬 수 있지만, 또한 디코더 메모리 리소스 요구를 증가시키기 때문에, 제한 비트 수값을 선택하는데 있어서 주의가 기울어져야 한다. HEVC 사양의 최근의 드래프트에서(ISO/IEC JTC/SC29/WG11 및 ITU-T SG16 WP3, "High efficiency video coding (HEVC) text specification draft 9" (JCTVC-J1003_d9), 2012년 10월 참조), 비트 수 제한값(LCUBitNumLimit)은 식 (1) 및 식 (2)에서 이하와 같이 LCU의 비압축된 원시 데이터(raw data) 비트 수(LCURawDataNum)의 단일의 특정비로 설정되었고:
Figure 112015054196498-pct00001
여기서, sizeY 및 bitdepthY는 LCU의 루마 성분의 각각의 블록 크기 및 비트 깊이이고, sizeC 및 bitdepthC는 LCU의 크로마 성분의 각각의 블록 크기 및 비트 깊이이다.
본 명세서에 설명된 제재는 한정이 아니라 예로서 첨부 도면에 도시되어 있다. 도시의 간단화 및 명료화를 위해, 도면들에 도시된 요소는 반드시 실제 축적대로 도시되어 있지는 않다. 예를 들어, 몇몇 요소의 치수는 명료화를 위해 다른 요소에 대해 과장되어 있을 수도 있다. 또한, 적절한 것으로 고려되는 경우, 도면 부호는 대응 또는 유사한 요소를 지시하기 위해 도면들 사이에서 반복되어 있다. 도면에서:
도 1은 예시적인 비디오 코딩 시스템의 예시적인 다이어그램이다.
도 2는 예시적인 비디오 코딩 방안의 예시적인 다이어그램이다.
도 3은 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 예시적인 비디오 코딩 시스템의 예시적인 다이어그램이다.
도 5는 예시적인 시스템의 예시적인 다이어그램이다.
도 6은 예시적인 디바이스를 도시한다.
도 7은 예시적인 프로세스를 도시하는 흐름도이다.
도 8은 예시적인 비디오 코딩 프로세스를 도시하는 흐름도이다.
도 9는 동작시에 예시적인 비디오 코딩 프로세스의 예시적인 다이어그램이다.
도 10은 본 발명의 적어도 몇몇 구현예에 따라 모두 배열된 예시적인 비디오 코딩 시스템의 예시적인 다이어그램이다.
하 나 이상의 실시예 또는 구현예가 이제 첨부 도면을 참조하여 설명된다. 특정 구성 및 배열이 설명되어 있지만, 이는 단지 예시적인 목적으로 이루어진 것이라는 것이 이해되어야 한다. 당 기술 분야의 숙련자들은 다른 구성 및 배열이 설명의 사상 및 범주로부터 벗어나지 않고 이용될 수 있다는 것을 인식할 수 있을 것이다. 본 명세서에 설명된 기술 및/또는 배열은 또한 본 명세서에 설명된 것 이외의 다양한 다른 시스템 및 용례에 이용될 수도 있다는 것이 당 기술 분야의 숙련자들에게 명백할 것이다.
이하의 설명은 예를 들어 시스템-온-칩(system-on-a-chip: SoC) 아키텍처와 같은 아키텍처에서 명시될 수도 있는 다양한 구현예를 설명하지만, 본 명세서에 설명된 기술 및/또는 배열의 구현예는 특정 아키텍처 및/또는 컴퓨팅 시스템에 한정되지 않고, 유사한 목적으로 임의의 아키텍처 및/또는 컴퓨팅 시스템에 의해 구현될 수도 있다. 예를 들어, 다수의 집적 회로(integrated circuit: IC) 칩 및/또는 패키지를 이용하는 다양한 아키텍처, 및/또는 셋탑 박스, 스마트폰 등과 같은 다양한 컴퓨팅 디바이스 및/또는 가전 제품(consumer electronic: CE) 디바이스가 본 명세서에 설명된 기술 및/또는 배열을 구현할 수 있다. 또한, 이하의 설명은 로직 구현, 시스템 구성요소의 유형 및 상관성, 로직 파티셔닝/통합 선택 등과 같은 수많은 특정 상세를 설명할 수 있지만, 청구된 요지는 이러한 특정 상세 없이 실시될 수도 있다. 다른 예에서, 예를 들어, 제어 구조 및 풀 소프트웨어 인스트럭션 시퀀스와 같은 몇몇 제재는 본 명세서에 개시된 제재를 불명료하게 하지 않기 위해 상세히 개시되어 있지는 않을 수도 있다.
본 명세서에 개시된 제재는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 본 명세서에 개시된 제재는 또한 하나 이상의 프로세서에 의해 판독되어 실행될 수 있는 머신-판독가능 매체 상에 저장된 인스트럭션으로서 구현될 수 있다. 머신-판독가능 매체는 머신(예를 들어, 컴퓨팅 디바이스)에 의해 판독가능한 형태의 정보를 저장하거나 전송하기 위한 임의의 매체 및/또는 메커니즘을 포함할 수 있다. 예를 들어, 머신-판독가능 매체는 판독 전용 메모리(read only memory: ROM); 랜덤 액세스 메모리(random access memory: RAM); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스; 전기, 광학, 음향 또는 다른 형태의 전파된 신호(예를 들어, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함할 수 있다.
본 명세서에서 "일 구현예", "구현예", "예시적인 구현예" 등의 참조는 설명된 구현예가 특정 특징, 구조 또는 특성을 포함할 수도 있지만, 모든 실시예가 특정 특징, 구조 또는 특성을 반드시 포함하지는 않을 수 있다는 것을 지시한다. 더욱이, 이러한 구문은 반드시 동일한 구현예를 칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 설명될 때, 이는 본 명세서에 명시적으로 설명되건 설명되지 않건간에, 다른 구현예와 관련하여 이러한 특징, 구조, 또는 특성을 실행하기 위해 당 기술 분야의 숙련자의 지식 내에 있다는 것이 제기된다.
코딩 단위 비트 수 제한을 포함하는 비디오 코딩에 관련된 시스템, 장치, 물품, 및 방법이 설명된다.
전술된 바와 같이, 비디오 코딩에 있어서, 임의의 코딩된 최대 코딩 단위(LCU)의 비트 수는 제한값(예를 들어, LCU 비트 수 제한)으로 제약될 수 있다. LCU 비트 수 제한에 기초하여, 디코더는 예를 들어 비트 수 제한을 수용하기 위해 충분한 크기의 버퍼를 할당하도록 구성될 수 있다. 일반적으로, 더 큰 비트 수 제한은 코딩된 LCU가 제약을 위배하는 가능성을 감소시킬 수 있다. 인코더에서 제약을 위배하는 것은 인코더가 인트라 블록 펄스 코드 변조(intra block pulse code modulation: I_PCM) 모드에 진입할 수 있게 하는데, 이 모드는 압축을 적용하지 않고(예를 들어, 원시 데이터가 직접 송신됨) 일반적으로 표준 인코더 파이프라인으로부터 배제된다. 따라서, 위배는 인코더가 인코더 파이프라인을 일시정지시키고 I_PCM 분기를 개시하게 할 수 있다. 이러한 동작은 인코더 성능을 상당히 훼손하고, 일반적으로 더 큰 비트 수가 인코더에서 바람직할 수 있다. 그러나, 설명된 바와 같이, 더 큰 제한값은 코딩된 LCU가 제약을 위배하는 가능성을 상당히 감소시킬 수 있고, 더 큰 비트 수 제한은 설명된 바와 같이 디코더 메모리 리소스 요구(예를 들어, 할당된 버퍼 크기)를 증가시킬 수 있기 때문에, 제한 비트 수값을 선택하는데 있어서 주의가 기울어져야 한다. 따라서, LCU 비트 수 제한을 선택하는 것은 비디오 코딩에 있어서 중요한 팩터일 수 있고, 인코더, 디코더, 또는 양자 모두에서 성능에 영향을 미칠 수도 있다.
이하에 더 상세히 설명되는 바와 같이, LCU 비트 수 제한을 선택하고 구현하기 위한 기술이 설명된다. 몇몇 예에서, LCU 비트 수 제한(예를 들어, 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한)은 비디오 코더의 코딩 모드에 기초하여 결정될 수 있다. 예를 들어, 액티브 비디오 코딩 모드(active video coding mode)에 기초하여, 비트 수 제한 스케일링 팩터(scaling factor)는 다중 비트 수 제한 스케일링 팩터로부터 결정될 수 있고, 비트 수 제한 스케일링 팩터는 비트 수 제한을 결정하기 위해 비디오 데이터 블록의 원시 비디오 데이터 크기로 곱해질 수도 있다. 일반적으로, 더 적은 비트를 생성하는 경향이 있는 코딩 모드는 더 작은 비트 수 제한 스케일링 팩터를 가질 수 있고, 반면에 더 많은 비트를 생성하는 경향이 있는 코딩 모드는 더 큰 비트 수 제한 스케일링 팩터를 가질 수 있다. 일반적으로, 비트 스케일링 제한 팩터는 본 명세서에 더 설명되는 바와 같이, 약 1 내지 2의 범위에 있을 수도 있다. 인코더에서, 이러한 기술의 구현은 비디오 데이터 블록 코딩 제약의 위배의 빈도를 감소시킬 수 있고, 디코더에서, 이러한 기술은 비디오 데이터 블록에 전용된 메모리의 양(예를 들어, 버퍼 크기)을 제한하거나 감소시킬 수 있다.
다른 예에서, 비트 수 제한 스케일링 팩터는 모든 코딩 모드에 대해 적용될 수 있는 5/3의 값을 갖도록 사전 결정될 수 있다. 이러한 예에서, 비디오 데이터의 최대 코딩 단위(LCU)를 위한 또는 그와 연계된 비트 수 제한은 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 결정될 수 있다. 비디오 데이터는 결정된 비트 수 제한에 기초하여 코딩될 수 있다. 이러한 구현예는 인코더에서 감소된 위배 및 디코더에서 제한된 전용 메모리를 재차 제공하면서, 구현의 간단화의 추가의 장점을 제공할 수 있다.
본 명세서에 사용될 때, 용어 "코더"는 인코더 및/또는 디코더를 칭할 수 있다. 유사하게, 본 명세서에 사용될 때, 용어 "코딩"은 인코더를 거쳐 비디오 인코딩을 수행하는 것 및/또는 디코더를 거쳐 비디오 디코딩을 수행하는 것을 칭할 수도 있다. 예를 들어, 비디오 인코더 및 비디오 디코더는 모두 비디오 데이터를 코딩하는 것이 가능한 코더의 예일 수 있다. 게다가, 본 명세서에 사용될 때, 용어 "코덱"은 예를 들어, 인코더 및/또는 디코더를 구현할 수 있는 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합과 같은, 임의의 프로세스, 프로그램 또는 동작의 세트를 칭할 수도 있다.
도 1은 본 발명의 적어도 몇몇 구현예에 따라 배열된, 예시적인 비디오 코딩 시스템(100)의 예시적인 다이어그램이다. 다양한 구현예에서, 시스템(100)은 예를 들어, 고효율 비디오 코딩(HEVC) 표준(ISO/IEC JTC/SC29/WG11 및 ITU-T SG16 WP3, "High efficiency video coding (HEVC) text specification draft 8" (JCTVC-J1003_d7), 2012년 7월 참조)과 같은 하나 이상의 표준 또는 사양에 따라 비디오 압축 및 압축해제를 착수하고 그리고/또는 비디오 코덱을 구현할 수 있다. 시스템(100) 및/또는 다른 시스템, 방안 또는 프로세스는 HEVC 표준의 맥락(context)에서 본 명세서에 설명될 수 있지만, 본 발명은 임의의 특정 비디오 인코딩 표준 또는 사양 또는 그 확장에 한정되지 않는다.
HEVC 표준은 화상이 비중첩 최대 코딩 단위(LCU)로 파티션될 수 있고 각각의 LCU는 이후에 가변 크기를 갖는 직사각형 블록의 형태를 취하는 코딩 단위(CU)로 파티션될 수 있다는 것을 지정한다. 각각의 LCU 내에는, 쿼드-트리 기반 분할 방안(quad-tree based splitting scheme)이 CU 파티션 패턴을 지정할 수 있다. HECV는 또한 어떻게 소정의 CU가 예측 및 변환 목적 각각을 위해 파티션되는지를 지정하는 예측 단위(PU) 및 변환 단위(TU)를 정의한다. CU는 일반적으로 연계된 신택스와 함께 하나의 루마 코딩 블록(CB) 및 2개의 크로마 CB를 포함할 수 있고, PU는 64×64 샘플로부터 4×4 샘플로 축소된 크기의 범위의 예측 블록(PBs)으로 더 나누어질 수 있다. 본 명세서에 사용될 때, 용어 "블록"은 비디오 화상의 임의의 파티션 또는 서브파티션을 칭할 수 있다. 예를 들어, 블록은 LCU, PU, PB, TU 또는, CU에 대응하는 비디오 데이터를 칭할 수도 있다.
도시된 바와 같이, 시스템(100)은 인코더(102) 및 디코더(120)를 포함할 수 있다. 코딩 단위 파티션 모듈(104)로 입력 화상을 프로세싱한 후에, 인코더(102)는 변환 및 양자화 모듈(106), 역양자화 및 역변환 모듈(108), 및 모드 판정 모듈(117)을 거쳐 인코더(102)에 의해 구현된 모드 판정에 따라, 인트라 예측 모듈(110)을 포함하는 제 1 경로, 또는 디블로킹 필터링 모듈(112)을 포함하는 제 2 경로, 샘플 적응성 오프셋 필터링 모듈(114) 및 인터 예측 모듈(116)을 포함할 수 있는 코딩 루프를 사용하여 입력 화상(101)을 인코딩할 수 있다. 입력 화상(101)을 변환한 후에, 인코더(102)는 엔트로피 인코딩 모듈(118)을 사용하여 압축된 화상을 엔트로피 인코딩할 수 있다. 마지막으로, 인코더(102)는 코딩된 비디오 데이터를 합체하는 비트스트림(119)을 생성할 수 있다. 모듈(104, 106, 108, 110, 112, 114, 116, 117, 118)의 기능성은 당 기술 분야에 잘 인식되어 있고, 본 명세서에서 더 상세히 설명되지 않을 것이다.
디코더(120)는 비트스트림(119)의 형태의 코딩된 비디오 데이터를 수신할 수 있고, 엔트로피 디코딩 모듈(122) 및 역양자화 및 역변환 모듈(124)로 데이터를 프로세싱한 후에, 비트스트림(119)의 신택스에 지시되고 신택스 제어 모듈(127)을 거쳐 구현된 코딩 모드에 따라, 인트라 예측 모듈(126)을 포함하는 제 1 경로 또는 디블로킹 필터링 모듈(128)을 포함하는 제 2 경로, 샘플 적응성 오프셋 필터링 모듈(130), 및 인터 예측 모듈(132)을 이용하는 디코딩 루프를 사용하여 최종 데이터를 디코딩할 수 있다. 디코더(120)는 이어서 예를 들어 디스플레이를 거쳐 사용자에게 제시될 수 있는 디코딩된 출력 화상(135)을 생성하기 위해 코딩 유닛 어셈블링 모듈(assembling module)(134)을 이용할 수 있다. 모듈(122, 124, 126, 127, 128, 130, 132, 134)의 기능성은 당 기술 분야에 잘 인식되어 있고, 본 명세서에 더 상세히 설명되지 않을 것이다.
도 1은 특정 인코딩 및 디코딩 모듈을 이용하는 것으로서 시스템(100)을 도시하고 있지만, 명료화를 위해 도 1에는 도시되어 있지 않은 다양한 다른 코딩 모듈 또는 구성요소가 또한 본 발명에 따라 이용될 수 있다. 또한, 본 발명은 도 1에 도시된 특정 구성요소 및/또는 시스템(100)의 다양한 구성요소가 배열되는 방식에 한정되는 것은 아니다. 본 명세서에 설명된 시스템의 다양한 구성요소는 소프트웨어, 펌웨어, 및/또는 하드웨어 및/또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 시스템(100)의 다양한 구성요소는 적어도 부분적으로, 예를 들어 휴대 전화와 같은 컴퓨팅 시스템에서 발견될 수 있는 것과 같은 컴퓨팅 시스템-온-칩(SoC)의 하드웨어에 의해 제공될 수 있다.
또한, 시스템(100)의 인코더(102)는 예를 들어 비디오 콘텐츠 서버 시스템을 포함하는 콘텐츠 공급자 시스템과 연계되고 그리고/또는 그에 의해 제공될 수 있고, 비트스트림(119)은 도 1에는 도시되지 않은 송수신기, 안테나, 네트워크 시스템 등과 같은 다양한 통신 구성요소 및/또는 시스템에 의해 디코더(120)에 전송되거나 전달될 수도 있다는 것이 인식될 수도 있다. 디코더(120)는 인코더(102)에 원격이고 도 1에는 도시되지 않은 송수신기, 안테나, 네트워크 시스템 등과 같은 다양한 통신 구성요소 및/또는 시스템을 거쳐 비트스트림(119)을 수신하는 컴퓨팅 디바이스(예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 컨버터블 랩탑, 휴대 전화 등)와 같은 클라이언트 시스템과 연계될 수 있다는 것이 또한 인식될 수도 있다. 따라서, 다양한 구현예에서, 인코더 서브시스템(101) 및 디코더 서브시스템(103)은 함께 또는 서로 독립적으로 구현될 수 있다. 또한, 본 명세서에 설명된 시스템, 장치 및 방법은 화상 및 비디오 데이터 블록 등을 입력하고 출력하는 것을 나타낼 수도 있지만, 본 발명은 이와 관련하여 한정되지 않고, 설명된 기술은 예를 들어 시퀀스, 계층, 화상, 슬라이스, 또는 블록과 같은 비디오 데이터의 프레임 또는 임의의 적합한 구성요소 상에서 수행될 수도 있다.
본 발명에 따르면, 이하에 더 상세히 설명되는 바와 같이, 코딩의 프로세스에서, 몇몇 구현예에서, 비디오 데이터 인코더(102)는 다양한 비트 수 제한값으로부터 선택할 수 있고, 비디오 데이터의 블록과 선택된 값을 연계할 수 있다. 다양한 구현예에서, 블록은 LCU일 수 있다. 몇몇 예에서, 인코더(102)는 인코더(102)가 비디오 데이터를 인코딩하는데 사용한 코딩 모드에 따라 코딩된 LCU와 다양한 비트 수 제한값의 상이한 것을 연계할 수 있다. 이와 같이 함으로써, 인코더는 이용된 특정 코딩 모드의 세트가 더 많은 비트를 발생할 가능성이 높을 때 더 상위의 비트 수 제한값을 LCU에 할당할 수 있다. 예를 들어, 인코더(102)는 변환 스킵핑 모드를 제외하고는 HEVC 메인 프로파일 내에 모든 코딩 모드를 이용하면 더 상위의 비트 수 제한을 LCU에 할당할 수 있고, 반면에 인코더(102)는 변환 스킵핑 모드를 포함하는 HEVC 메인 프로파일 내에 모든 코딩 모드를 사용하면 더 하위의 비트 수 제한을 할당할 수 있다.
몇몇 구현예에서, 비디오 데이터 인코더(102) 및/또는 비디오 데이터 디코더(120)는 다중 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터를 결정함으로써 비트 수 제한을 결정할 수 있다. 다중 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터의 결정은 비디오 데이터 인코더(102)의 액티브 비디오 코딩 모드에 기초할 수 있고, 비트 수 제한은 비트 수 제한 스케일링 팩터에 기초하여 결정될 수 있다. 예를 들어, 비트 수 제한은 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱함으로써 결정될 수 있다. 이러한 기술은 예를 들어 표준을 거쳐 양 디코더(102) 및 디코더(120)에서 인가된 프로파일 또는 표을 거쳐 양 비디오 데이터 인코더(102) 및 비디오 데이터 디코더(120)에 인가될 수 있다.
다른 예에서, 비디오 데이터 인코더(102)는 비트스트림(119)을 거쳐, 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 인코딩할 수 있다. 이하에 더 설명되는 바와 같이, 비트 수 제한 스케일링 팩터 및 대응 코딩 모드는 비트스트림(119)의 보충 향상 정보(Supplemental Enhancement Information: SEI) 패키지의 부분에 포함될 수 있다. 이러한 예에서, 비디오 데이터 인코더(102)는 코딩 모드와 대응 비트 수 제한 스케일링 팩터값의 조합을 맞춤화하고, 이에 의해 코딩 프로세스에서 제한들의 제약 및 상세를 관리할 수 있다. 비디오 데이터 디코더(120)는 이어서 본 명세서에 설명된 바와 같이 수신된 코딩 모드 및 대응 비트 수 제한 스케일링 팩터값을 구현할 수 있다. 몇몇 예에서, 달리 지시되지 않으면, 디폴트 비트 수 제한 스케일링 팩터가 사용될 수 있다. 다양한 예에서, 디폴트 비트 수 제한 스케일링 팩터는 3/2 또는 5/3 등일 수 있다.
몇몇 구현예에서, 비디오 데이터 인코더(102) 및/또는 비디오 데이터 디코더(120)는 모든 코딩 모드에 대해 적용될 수 있는 5/3의 사전 결정된 값을 갖는 비트 수 제한 스케일링 팩터를 구현할 수 있다. 이러한 예에서, 비디오 데이터의 최대 코딩 단위(LCU)를 위한 또는 그와 연계된 비트 수 제한(예를 들어, LCUBitNumLimit)은 식 (3)에 나타낸 바와 같이, 최대 코딩 단위 원시 데이터 수(예를 들어, LCURawDataNum로서 상기에 식 (1)을 거쳐 결정된 바와 같이)와 5/3의 비트 수 제한 스케일링 팩터를 곱셈함으로써 결정될 수 있다.
Figure 112015054196498-pct00002
비디오 데이터는 비디오 데이터 인코더(102) 및/또는 비디오 데이터 디코더(120)에서 본 명세서에 설명된 바와 같이 결정된 비트 수 제한에 기초하여 코딩될 수 있다.
본 명세서에 사용될 때, 구문 "코딩 모드"는, 인코더가 이들에 한정되는 것은 아니지만, 인트라 모드, 인터 모드, 변환 스킵핑 모드 등을 포함하는 비디오 데이터를 압축하는데 이용될 수 있는 다양한 압축 모드들 중 하나를 칭한다. 당 기술 분야의 숙련자들이 인식할 수 있는 바와 같이, 변환 스킵핑 모드를 이용함으로써, 인코더는 몇몇 비디오 데이터를 코딩하기 위해 더 적은 비트를 사용할 수 있고, 대응적으로 디코더는 코딩된 비디오 데이터를 저장하기 위해 더 작은 버퍼 크기를 이용할 수 있다. 다양한 예에서, 이하에 더 설명되는 바와 같이, 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드, 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드, 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드, 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드, 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드, 또는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드 등을 포함할 수 있다.
일반적으로, HEVC 메인 프로파일은 I(인트라-코딩된), P(예측된), 또는 B(양방향 예측된) 화상을 코딩하기 위한 프로파일을 포함할 수 있고, 반면에 HEVC 메인 정지 화상 프로파일은 HEVC 메인 정지 화상 프로파일이 HEVC 메인 프로파일의 서브세트일 수 있도록 단지 I 화상만을 코딩하기 위한 프로파일을 포함할 수 있다. 또한, HEVC 메인 프로파일은 8 비트의 비트 깊이로 코딩을 위한 프로파일을 포함할 수 있고, 반면에 HEVC 메인 10 프로파일은 예를 들어 10 비트의 비트 깊이로 코딩을 위한 프로파일을 포함할 수 있다.
일반적으로, 본 발명에 따르면, 다양한 스케일링 팩터는 설명된 바와 같이, 인코더 또는 디코더에 의해 사용된 코딩 모드에 기초하여 선택될 수 있다. 선택된 스케일링 팩터(들)는 이어서 식 (4)에 기초하여 비트 수 제한을 할당하는데 사용될 수 있다.
Figure 112015054196498-pct00003
여기서, scale_factor(·)은 [1.0, 2.0] 또는 (1.0, 2.0] 등의 범위의 유리수로 코딩 모드 세트를 맵핑하는 함수를 표현한다. scale_factor(·)의 사용은 맵핑-표 기반 방식으로 설명될 수도 있다. 예를 들어, 비트 수 제한 스케일링 팩터는 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 갖는 표에 액세스하는 것을 포함할 수 있다. 첫째로, 모든 가능한 코딩 모드는 다수의 세트로 관리될 수 있고, 여기서 각각의 세트는 맵핑 표 내의 엔트리 인덱스에 할당된다. 다음에, 특정 수들이 모든 엔트리에 할당될 수 있다.
예를 들어, 이하의 표는 예시적인 스케일링 팩터 맵핑을 예시하고 있다.
Figure 112015054196498-pct00004
따라서, 화상(또는 일반적으로 비디오 데이터)을 압축하기 위해 이용된 코딩 모드 조합에 따라, 인코더(102) 또는 디코더(120)는 상이한 스케일링 팩터를 할당하고, 지정하거나 선택할 수 있다. 일 비한정적인 예로서 이하의 표는 특정 예시적인 스케일링 팩터 맵핑을 예시하고 있다.
Figure 112015054196498-pct00005
표 2의 비한정적인 예에 나타낸 바와 같이, 인코더(102) 또는 디코더(120)는 모든 HEVC 메인 프로파일 코딩 모드를 이용할 때 제 1 인덱스를 할당하고, 지정하거나 선택할 수 있고, 여기서 제 1 인덱스값은 4/3의 스케일링 팩터값에 대응한다. 대조적으로, 인코더(102)는 변환 스킵핑 모드를 제외하고는 모든 HEVC 메인 프로파일 코딩 모드를 이용할 때 제 2 인덱스값을 할당하고, 지정하거나 선택할 수 있고, 여기서 제 2 인덱스값은 3/2(또는 1.5)의 스케일링 팩터값에 대응한다. 게다가, HEVC 메인 프로파일에서의 코딩 모드에 있어서, 이들 코딩 모드가 변환 스킵핑 모드를 포함하는지 여부에 무관하게, 인코더(102)는 5/3의 스케일링 팩터값에 대응하는 제 2 인덱스값을 할당하고, 지정하거나 선택할 수 있다. 다양한 구현예에서, 이용된 스케일링 팩터는 1 이상이며 2 이하의 임의의 수일 수 있다. 달리 말하면, 다양한 제한에서, 스케일링 팩터는 범위 [1.0, 2.0] 또는 (1.0, 2.0] 등에 걸치는 값을 가질 수도 있다.
설명된 바와 같이, 비트 수 제한 스케일링 팩터는 코딩 모드에 기초하여 다중 비트 수 제한 스케일링 팩터로부터 결정될 수 있다. 일반적으로, 임의의 수 및 조합의 코딩 모드와 대응 비트 수 스케일링 팩터가 구현될 수 있다. 몇몇 예에서, 코딩되는 비디오 데이터 블록은 고효율 비디오 코딩(HEVC) 비디오 데이터를 포함할 수 있다. 이러한 예에서, 제 1 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 1 비트 수 제한 스케일링 팩터는 4/3을 포함할 수 있고, 제 2 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 2 비트 수 제한 스케일링 팩터는 3/2를 포함할 수 있고, 제 3 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 3 비트 수 제한 스케일링 팩터는 4/3을 포함할 수 있고, 제 4 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 4 비트 수 제한 스케일링 팩터는 3/2를 포함할 수 있고, 제 5 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 5 비트 수 제한 스케일링 팩터는 5/3을 포함할 수 있고, 제 6 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 6 비트 수 제한 스케일링 팩터는 5/3을 포함할 수 있다.
설명된 바와 같이, 다양한 구현예에서, 스케일링 팩터는 다양한 비디오 사양 프로파일 및/또는 레벨 섹션에 사전 결정된 방식으로 할당될 수 있다. 예를 들어, HEVC 메인 프로파일은 LCU 비트 수 제한을 결정하기 위한 하나의 스케일링 팩터가 할당될 수 있고, 반면에 HEVC 메인 10 프로파일은 LCU 비트 수 제한을 결정하기 위한 상이한 스케일링 팩터가 할당될 수 있다. 따라서, 수신된 비디오 데이터에 인가된 코딩의 유형(예를 들어, 메인 프로파일 또는 메인 10 프로파일)에 따라, 디코더는 이어서 식 (3)을 사용하여 대응 LCU 비트 수 및 따라서 버퍼링 요구를 결정하기 위해 사전 결정된 스케일링 팩터를 인가할 수 있다.
다른 구현예에서, 스케일링 팩터는 이용된 코딩 모드에 무관하게 인가될 수 있는 5/3의 값을 갖도록 사전 결정될 수 있다. 따라서, 수신된 코딩된 비디오 데이터의 유형(예를 들어, 메인 프로파일, 메인 정지 화상 프로파일, 또는 메인 10 프로파일 등)에 무관하게, 디코더는 식 (3)을 사용하여 대응 LCU 비트 수 제한을 결정하고 따라서 버퍼링 요구를 결정하기 위해 5/3의 사전 결정된 스케일링 팩터를 인가할 수 있다.
설명된 바와 같이, 다양한 구현예에서, 스케일링 팩터는 코딩 모드와 연계될 수 있고, 결정된 또는 선택된 스케일링 팩터는 비트 수 제한을 결정하는데 사용될 수 있다. 다른 예에서, 비트 수 제한은 대응 코딩 모드와 연계되고, 코딩 모드 및 비디오 데이터 블록(예를 들어, LCU와 같은)을 위한 또는 그와 연계된 비트 수 제한을 결정하는데 직접 사용될 수 있다. 이러한 예에서, 비디오 데이터 블록을 위한 원시 데이터 수의 크기는 일정하거나 일정한 것으로 가정되는 등일 수 있다.
도 7은 본 발명의 적어도 몇몇 구현예에 따라 배열된 예시적인 프로세스를 도시하는 흐름도이다. 도시된 바와 같이, 프로세스(700)는 인코더(702) 및/또는 디코더(720)를 거쳐 구현될 수 있다. 프로세스(700)는 인코더(702)를 거쳐 입력 화상(701)을 수신하는 것 및 블록 704, "화상을 LCU로 파티션"에서 입력 화상(701)을 최대 코딩 단위(LCU)(705)로 파티션하는 것을 포함할 수 있다. 입력 화상(701) 및 LCU(705)와 관련하여 설명되었지만, 기술은 본 명세서에 설명된 바와 같이 임의의 입력 비디오 및 비디오 데이터 블록에 적용될 수 있다. LCU(705)는 본 명세서에 설명된 바와 같은 표준 또는 전형적인 코딩 모드를 사용하여 블록 706, "표준 코딩 모드를 사용하여 LCU 인코딩"에서 인코더(702)를 거쳐 인코딩될 수 있다. 또한, LCU(705)를 위한 비트 수 제한은 설명된 바와 같이 적용될 수 있다. 몇몇 예에서, LCU(705)를 위한 비트 수 제한은 코딩 모드에 기초하여 다중 비트 수 제한 스케일링 팩터로부터 결정되었던 비트 수 제한 스케일링 팩터에 기초하여 결정될 수 있다. 다른 예에서, LCU(705)를 위한 비트 수 제한은 5/3의 스케일링 팩터와 LCU 원시 데이터 수를 곱하는 것에 기초하여 결정될 수 있다.
어느 경우든, 블록 708, "LCU 비트 크기가 제한을 위배하는지 점검"에서, 코딩된 LCU(705)를 위한 LCU 비트 크기가 비트 수 제한에 비교될 수 있다. 코딩된 LCU가 비트 수 제한보다 적은 비트를 가지면(예를 들어, 위배가 발생하지 않음), 코딩된 LCU 또는 LCU들은 블록 710, "비트스트림 내로 패키징"에서 비트스트림 내로 인코딩되거나 패키징될 수 있다. 코딩된 LCU가 비트 수 제한보다 많은 비트를 가지면(예를 들어, 위배가 발생함), 위배 LCU는 블록 712, "I_PCM 모드를 사용하여 LCU를 재인코딩"에서 인트라 블록 펄스 코드 변조(I_PCM)를 사용하여 재인코딩될 수 있다. 재인코딩된 LCU는 블록 710에서 비트스트림(719) 내로 패키징될 수 있다. 설명된 바와 같이, I_PCM 모듈은 압축을 인가하지 않고(예를 들어, 원시 데이터가 직접 송신됨), 표준 인코더 파이프라인으로부터 일반적으로 배제된다. 따라서, 블록 708에서의 위배는 인코더(702)가 표준 인코더 파이프라인을 일시정지시키고 I_PCM 분기를 개시하게 할 수 있다. 이러한 동작은 인코더(702)의 성능을 상당히 훼손할 수도 있다.
프로세스(700)는 블록 722, "비트스트림으로부터 LCU 데이터 페치 및 버퍼"에서 계속될 수 있어, 수신된 비트스트림(719)이 수신될 수 있고 LCU 데이터가 비트스트림(719)으로부터 페치되고 버퍼링될 수 있게 된다. 또한, 본 명세서에 설명된 바와 같이, 몇몇 예에서, 비트스트림(719)은 비트 수 스케일링 팩터 및 대응 코딩 모드를 포함할 수 있고, 다른 예에서, 비트 수 스케일링 팩터 및 대응 코딩 모드는 디코더(720)를 거쳐 직접 구현될 수 있다. 또한, 몇몇 예에서, 5/3의 스케일링 팩터와 같은 일정한 스케일링 팩터가 인가될 수 있다. 어느 경우든, 디코더(720)에서, 비트 수 스케일링 팩터 및 LCU 비트 수 제한은 설명된 바와 같이 전용 또는 할당된 버퍼 크기를 결정할 수 있다. LCU 비트 수 제한이 너무 크면, 디코더(720)의 성능은 부정적인 영향을 받을 수 있고, 또는 일반적으로 디코더(720)는 불필요한 고비용의 메모리 리소스를 구현할 수 있다. 도시된 바와 같이, 블록 724, "LCU 디코딩"에서, LCU 데이터는 LCU(725)를 생성하도록 디코딩될 수 있고, 이 LCU는 블록 726, "화상 어셈블링"에서 어셈블링되어 출력 화상(735)을 생성할 수 있다. 출력 화상(735)은 예를 들어 디스플레이 디바이스를 거쳐 사용자에 제시될 수 있다.
설명된 바와 같이, 도 7은 예시적인 프로세스(700)를 도시한다. 도 7은 비디오 코딩 블록을 위한 비트 수 제한을 선택하는 중요성을 또한 도시하고 있다. 설명된 바와 같이, 너무 작은 비트 수 제한은 인코더(702)에서 열악한 성능을 유발할 수 있고, 반면에 너무 큰 비트 수 제한은 예를 들어 디코더(720)에서 열악한 성능을 유발할 수 있다.
설명된 바와 같이, 몇몇 구현예에서, 스케일링 팩터 및 비디오 데이트 블록 비트 수 제한의 결정은 양 인코더 및 디코더에서 동일한 또는 유사한 기술을 사용하여 결정될 수 있다. 몇몇 예에서, 일정한 스케일링 팩터(예를 들어, 5/3의 스케일링 팩터)가 사용될 수 있고, 반면에 다른 예에서, 스케일링 팩터는 다수의 스케일링 팩터로부터 코딩 모드에 기초하여 결정될 수 있다. 다른 구현예에서, 인코더는 본 명세서에 특히 이하에 도 9와 관련하여 설명되는 바와 같이, 디코더가 스케일링 팩터 및 비트 수 제한을 구현하기 위해 제공된 정보를 사용할 수 있도록 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드로 비트스트림을 인코딩할 수 있다. 또 다른 구현예에서, 인코더는 인코더가 임의의 특정 코딩된 비디오 데이터를 위해 할당되고, 지정되거나 선택하는 스케일링 팩터를 디코더에 통지하는 정보를 디코더에 제공할 수 있다.
다른 구현예에서, 인코더는 인코더가 디코더에 제공하는 비트스트림 또는 그 부분에 지시자, 메시지 또는 그 부분을 배치할 수도 있다. 디코더는 이어서 선택된 스케일링 팩터를 식별하기 위해 그 정보를 사용할 수 있고, 이어서 코딩된 비디오 데이터를 저장하기 위해 LCU 비트 수 제한 및 대응 버퍼 크기를 결정하기 위해 식 (4)를 사용할 수 있다.
따라서, 도 1을 재차 참조하면, 인코더(102)는 비트스트림(119)에 의해 전달된 코딩된 비디오 데이터의 다양한 부분과 연계된 선택된 스케일링 팩터(들)의 디코더(120)에 통지하기 위해 비트스트림(119) 또는 그 부분 내에 지시자, 메시지 또는 그 부분을 포함할 수 있다. 도 2는 본 발명의 적어도 몇몇 구현예에 따라 배열된, 예시적인 비디오 코딩 방안의 예시적인 다이어그램이다. 예를 들어, 도 2는 본 발명에 따른 비트스트림(119)과 같은 예시적인 비트스트림(200)을 도시한다. 도 2에 도시된 바와 같이, 비트스트림(200)은 헤더부(202) 및 데이터부(204)를 포함할 수 있다. 헤더부(202)는 하나 이상의 지시자(206)를 포함할 수 있다. 예를 들어, 지시자(206)는 LCU와 같은 코딩된 비디오 데이터의 하나 이상의 블록에 대해, 본 명세서에 설명된 바와 같이 그 값이 인덱스값(상기 표와 관련하여 설명됨) 및 따라서 특정 스케일링 팩터에 대응하는 지시자(208)를 포함할 수 있다. 다양한 구현예에서, 헤더부(202) 및/또는 데이터부(204)는 선택된 스케일링 팩터를 지정하는 지시자를 포함할 수 있는 보충 향상 정보(SEI)와 같은 데이터 패키지(210)를 포함할 수 있다.
설명된 바와 같이, 몇몇 예에서, 인코더는 설명된 바와 같이 디코더가 스케일링 팩터(예를 들어, 활성인 대응 코딩 모드에 기초하여) 및 비트 수 제한(예를 들어, 스케일링 팩터와 원시 비디오 데이터 크기를 곱함으로써)을 구현하기 위해 제공된 정보를 사용할 수 있도록 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드로 비트스트림을 인코딩할 수 있다. 도 1을 참조하면, 인코더(102)는 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드로 비트스트림(119)을 인코딩할 수 있다. 예를 들어, 비트스트림(200)은 도 2에 도시된 바와 같이, 다중 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 포함할 수 있는 데이터 패키지(210)를 포함할 수 있다. 예를 들어, 비트 수 제한 스케일링 팩터 및 대응 코딩 모드는 비트스트림(200) 내에 보충 향상 정보(SEI) 패키지 또는 보충 향상 정보(SEI) 패키지의 부분으로서 제공될 수 있다.
도 3은 본 발명의 다양한 구현예에 따른 예시적인 프로세스(300)의 흐름도를 도시한다. 프로세스(300)는 도 3의 블록 302, 304, 306, 308, 310, 312 중 하나 이상에 의해 도시된 바와 같이 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 비한정적인 예로서, 프로세스(300)는 도 1의 디코더 시스템(120)에 의해 착수된 바와 같이 비디오 디코딩 프로세스의 적어도 일부를 형성할 수 있다.
또한, 프로세스(300)는 또한 시스템(400)이 프로세서(402), 비디오 코덱 모듈(406), 및 메모리(408)를 포함하는 도 4의 비디오 코딩 시스템(400)을 참조하여 본 명세서에 설명될 것이다. 프로세서(402)는 본 발명에 따른 비디오 코딩 프로세스를 제공하기 위해 코덱 모듈(406)을 인스턴스화(instantiate)할 수 있다. 시스템(400)의 예에서, 메모리(408)는 LCU와 같은 코딩된 비디오 데이터를 포함하는 비디오 콘텐츠를 저장할 수 있다. 코덱 모듈(406)은 소프트웨어, 펌웨어, 및/또는 하드웨어의 임의의 조합에 의해 제공된 HEVC 코덱을 구현할 수 있다. 메모리(408)는 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory: SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM) 등) 또는 비휘발성 메모리(예를 들어, 플래시 메모리 등) 등과 같은 임의의 유형의 메모리일 수 있다. 비한정적인 예에서, 메모리(408)는 캐시 메모리에 의해 구현될 수 있다.
도 3의 설명으로 복귀하면, 프로세스(300)는 블록 302, "지시자를 포함하는 비트스트림 수신"에서 시작할 수 있고, 여기서 비트스트림이 수신될 수 있고, 여기서 그 비트스트림은 스케일링 팩터를 지정하는 지시자를 포함한다(예를 들어, 지시자는 비트스트림의 부분임). 예를 들어, 지시자는 비트스트림 플래그 또는 보충 향상 정보(SEI) 패키지 등의 부분일 수 있다. 지시자는 이어서 블록 304, "지시자에 액세스"에서 액세스될 수 있어, 지시자의 값을 결정한다. 예를 들어, 디코더(120)는 블록 302에서 비트스트림(119)을 수신할 수 있고, 여기서 비트스트림(119)은 도 2의 지시자(208)와 같은 지시자를 포함한다. 예를 들어, 지시자는 지시자(및 대응 코딩 모드)의 각각의 값이 복수의 비트 수 제한들 중 상이한 하나에 대응할 수 있도록 전술된 바와 같이 맵핑 표의 인덱스값에 대응하는 상이한 값을 가질 수 있다. 지시자는 예를 들어, 최대 코딩 단위(LCU)와 같은 비디오 데이터 블록과 연계될 수 있다.
프로세스(300)는 블록 306, "지시자의 결정된 값에 기초하여 복수의 비트 수 제한으로부터 비트 수 제한 선택"에서 계속될 수 있고, 여기서 비트 수 제한은 지시자의 결정된 값에 기초하여 복수의 비트 수 제한으로부터 선택될 수 있다. 전술된 바와 같이, 디코더(120)는 결정된 지시자값에 기초하여 스케일링 팩터를 결정하고(블록 308, "결정된 지시자값에 기초하여 스케일링 팩터 결정") 이어서 식 (4)를 사용하여 비디오 데이터 블록의 원시 데이터 크기에 스케일링 팩터를 곱함으로써(블록 310, "스케일링 팩터를 비디오 데이터 블록의 원시 데이터 크기에 곱함") 블록 306에서 착수할 수 있다. 예를 들어, 표 2의 비한정적인 예를 참조하면, 지시자값이 1의 인덱스값을 지정하면, 대응 스케일링 팩터는 4/3일 것이고, 지시자값이 2의 인덱스값을 지정하면, 대응 스케일링 팩터는 3/2일 것이고, 지시자값이 5의 인덱스값을 지정하면, 대응 스케일링 팩터는 5/3일 것인 등이다. 일반적으로, 스케일링 팩터는 예를 들어 1 이상이며, 2 이하인 수, 3/2, 4/3 또는 5/3 등과 같은 임의의 적합한 값을 가질 수 있다.
프로세스(300)는 이어서 블록 312, "비트 수 제한에 기초하여 버퍼 크기 결정"에서 종료될 수 있고, 디코더는 비트 수 제한(예를 들어, 선택된 비트 수 제한)에 기초하여 버퍼 크기를 결정한다. 예를 들어, 소정의 원시 비디오 데이터 크기에 대해, 더 큰 스케일링 팩터는 블록 306에서 더 상위의 비트 수 제한을, 그리고 블록 312에서 대응적으로 더 큰 버퍼 크기를 결정하게 할 것이고, 반면에 더 작은 스케일링 팩터는 블록 312에서 대응적으로 더 작은 버퍼 크기를 야기할 것이다.
도 8은 본 발명의 적어도 몇몇 구현예에 따라 배열된, 예시적인 비디오 코딩 프로세스(800)를 도시하는 흐름도이다. 예시된 구현예에서, 프로세스(800)는 블록 802 및/또는 804 중 하나 이상에 의해 도시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 비한정적인 예로서, 프로세스(800)는 예시적인 비디오 코딩 시스템(100)을 참조하여 본 명세서에 설명될 것이다. 프로세스(800)는 일반적으로 설명된 개념 및/또는 동작이 인코딩 및/또는 디코딩에 동일한 또는 유사한 방식으로 적용될 수 있도록 하는 코딩에 관련될 수도 있다.
프로세스(800)는 비디오 코딩을 수행하기 위한 컴퓨터로 구현된 방법으로서 이용될 수 있다. 프로세스(800)는 동작 802, "액티브 비디오 코딩에 기초하여 다중 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터 결정"에서 시작할 수 있고, 여기서 비트 수 제한 스케일링 팩터는 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 결정될 수 있다. 예를 들어, 인코더(102) 또는 디코더(120)는 비트 수 제한 스케일링 팩터를 결정할 수 있다. 몇몇 예에서, 비트 수 제한 스케일링 팩터를 결정하는 것은 다수의 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 갖는 표(예를 들어, 표 1 또는 표 2)에 액세스하는 것을 포함할 수 있다. 몇몇 예에서, 5/3의 비트 수 제한 스케일링 팩터가 모든 코딩 모드를 위해 사용될 수 있다. 또한, 몇몇 예에서, 액티브 코딩 모드가 표를 거쳐 이용 가능하지 않다고 판정될 수도 있고, 이러한 예에서, 비트 수 제한 스케일링 팩터는 디폴트 비트 수 제한 스케일링 팩터로 설정될 수 있다. 일반적으로, 비트 수 스케일링 팩터는 예를 들어 1 이상이며, 2 이하인 수, 3/2, 4/3 또는 5/3 등과 같은 임의의 적합한 값일 수 있다.
프로세싱은 동작 802로부터 동작 804, "비트 수 제한 스케일링 팩터에 기초하여 비디오 데이터 블록과 연계된 비트 수 제한 결정"으로 계속될 수 있고, 여기서 비디오 데이터 블록에 대한 비트 수 제한이 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 결정될 수 있다. 예를 들어, 인코더(102) 또는 디코더(120)는 비트 수 제한을 결정할 수 있다. 몇몇 예에서, 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한을 결정하는 것은 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱하는 것(예를 들어, 식 (4)에 나타낸 바와 같이)을 포함할 수 있다. 설명된 바와 같이, 몇몇 예에서, 비트 수 제한 스케일링 팩터는 모든 코딩 모드에 대해 5/3일 수 있고, 이러한 예에서, 비디오 데이터의 최대 코딩 단위를 위한 비트 수 제한이 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 결정될 수 있다.
일반적으로, 인코더(102) 및/또는 디코더(120)는 결정된 비트 수 제한에 기초하여 비디오 데이터를 코딩할 수 있다. 인코더(102)에서, 코딩된 비디오 데이터는 비트스트림(119) 내에 인코딩될 수 있다. 디코더(120)에서, 코딩된 비디오 데이터는 예를 들어 디스플레이 디바이스를 거쳐 사용자에 제시될 수 있는 출력 화상을 생성하는데 사용될 수 있다.
일반적으로, 프로세스(800)는 임의의 수의 비디오 데이터 블록에 대해 임의의 횟수 반복될 수 있다. 또한, 프로세스(800)는 코딩 모드의 변화시에 또는 주기적으로 등으로 개시될 수 있다. 최종적인 비트 수는 설명된 바와 같이 비트스트림을 인코딩하거나 출력 화상을 생성하는데 사용될 수 있다. 프로세스(800)와 관련된 몇몇 부가의 및/또는 대안적인 상세가 본 명세서에서 특히 이하에 도 9와 관련하여 설명된 하나 이상의 구현예에서 예시될 수 있다.
도 9는 본 발명의 적어도 몇몇 구현예에 따라 배열된, 동작시에 예시적인 비디오 코딩 시스템(900) 및 비디오 코딩 프로세스(900)의 예시적인 다이어그램이다. 예시된 구현예에서, 프로세스(900)는 작용 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913 및/또는 914 중 하나 이상에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 비한정적인 예로서, 프로세스(900)는 도 1의 예시적인 비디오 코딩 시스템(100)을 참조하여 본 명세서에 설명될 것이다.
예시된 구현예에서, 비디오 코딩 시스템(100)은 로직 모듈(920) 등 및/또는 이들의 조합을 포함할 수 있다. 예를 들어, 로직 모듈(920)은 비트 수 제한 모듈(950)을 포함할 수 있는 인코더(930)(예를 들어, 인코더(102) 또는 인코더(702)에 대응할 수 있음) 및 비트 수 제한 모듈(960)일 수 있는 디코더(940)를 포함할 수 있다. 비디오 코딩 시스템(100)은 도 9에 도시된 바와 같이, 특정 모듈과 연계된 블록 또는 작용의 일 특정 세트를 포함할 수 있지만, 이들 블록 또는 작용은 여기에 예시된 특정 모듈과는 상이한 모듈과 연계될 수도 있다. 프로세스(900)는 도시된 바와 같이, 인코딩 및 디코딩에 관한 것이지만, 설명된 개념 및/또는 동작은 인코딩 및/또는 디코딩에 개별적으로, 더 일반적으로 비디오 코딩에 적용될 수 있다.
프로세스(900)는 블록 901, "비트 수 스케일링 팩터 결정"에서 시작할 수 있고, 여기서 비트 수 제한 스케일링 팩터가 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 결정될 수 있다. 예를 들어, 인코더(930)는 비트 수 제한 모듈(950)을 거쳐 비트 수 제한 스케일링 팩터를 결정할 수 있다. 몇몇 예에서, 비트 수 제한 스케일링 팩터를 결정하는 것은 다수의 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 갖는 표(예를 들어, 표 1 또는 표 2)에 액세스하는 것을 포함할 수 있다. 다른 예에서, 5/3의 비트 수 제한 스케일링 팩터가 모든 코딩 모드에 대해 사용될 수 있다.
프로세스(900)는 블록 901로부터 블록 902, "비디오 데이터 블록과 연계된 비트 수 제한 결정"으로 계속될 수 있고, 여기서 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한이 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 결정될 수 있다. 예를 들어, 인코더(930)는 비트 수 제한 모듈(950)을 거쳐 비트 수 제한을 결정할 수 있다. 몇몇 예에서, 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한을 결정하는 것은 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱하는 것(예를 들어, 식 (4)에 나타낸 바와 같이)을 포함할 수 있다. 설명된 바와 같이, 몇몇 예에서, 비트 수 제한 스케일링 팩터는 모든 코딩 모드에 대해 5/3일 수 있고, 이러한 예에서 비디오 데이터의 최대 코딩 단위에 대한 비트 수 제한은 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써(예를 들어, 식 (3)에 나타낸 바와 같이) 결정될 수 있다.
프로세스(900)는 블록 902로부터 블록 903, "비트 수 제한에 기초하여 비디오 데이터 코딩"으로 계속될 수 있고, 여기서 비디오 데이터는 적어도 부분적으로 비트 수 제한에 기초하여 코딩될 수 있다. 예를 들어, 인코더(930)는 비트 수 제한에 기초하여 비디오 데이터를 인코딩할 수 있다.
프로세스(900)는 블록 903으로부터 블록 904, "코딩된 데이터에 기초하여 비트스트림 인코딩"으로 계속될 수 있고, 여기서 비트스트림은 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 인코딩될 수 있다. 예를 들어, 인코더(930)는 블록 903에서 인코딩된 데이터를 포함하는 비트스트림을 인코딩할 수 있다. 인코딩된 비트스트림은 예를 들어 비트스트림(119) 또는 비트스트림(719)에 대응할 수 있다.
프로세스(900)는 블록 904로부터 블록 905, "비트 수 스케일링 팩터 및 대응 코딩 모드로 비트스트림 인코딩"으로 계속될 수 있고, 여기서 다중 비트 수 비트 스케일링 팩터 및 대응 복수의 코딩 모드가 비트스트림 내에서 인코딩될 수 있다. 몇몇 예에서, 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드는 비트스트림의 보충 향상 정보(SEI) 패키지의 부분으로서 제공될 수 있다. 설명된 바와 같이, 몇몇 예에서, 디코더는 비트스트림을 거쳐 수신된 정보를 사용하여 설명된 기술을 구현할 수 있다. 다른 예에서, 디코더는 디코더에 프리로딩되거나 사전 결정된 스케일링 팩터 및 대응 코딩 모드를 사용하여 설명된 기술을 구현할 수 있다. 또 다른 예에서, 5/3의 일정한 스케일링 팩터가 사용될 수 있다. 이러한 예에서, 블록 905는 스킵될 수도 있다.
프로세스(900)는 906, "비트스트림 전달"에서 계속될 수 있고, 여기서 인코딩된 비트스트림이 전달될 수 있다. 도시된 바와 같이, 인코딩된 비트스트림이 디코더(940)에 전달될 수 있다. 설명된 바와 같이, 인코더(930)는 콘텐츠 공급자 시스템과 연계되고 그리고/또는 그에 의해 제공될 수 있고, 디코더(940)는 클라이언트 시스템과 연계될 수 있다. 따라서, 다양한 구현예에서, 인코더(930) 및 디코더(940)는 실질적으로 서로 독립적으로 구현될 수도 있다. 다양한 예에서, 비트스트림은 인터넷을 거쳐, 메모리 디바이스를 거쳐 등에 의해 전달될 수 있다. 이해될 수 있는 바와 같이, 몇몇 구현예에서, 비트스트림은 직렬로 또는 병렬로 다수의 디바이스에 전달될 수 있다.
프로세스(900)는 블록 906으로부터 계속되거나 또는 블록 907, "비트스트림 수신"에서 시작할 수 있고, 여기서 비디오 데이터와 연계된 비트스트림이 디코더(940)에서 수신될 수 있다.
프로세스(900)는 블록 907로부터 블록 908, "비트 수 스케일링 팩터 및 대응 코딩 모드를 결정하기 위해 비트스트림에 액세스"로 계속될 수 있고, 여기서 수신된 비트스트림은 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 결정하도록 액세스될 수 있다. 설명된 바와 같이, 몇몇 예에서, 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드는 비트스트림 내에 인코딩되지 않고 디코더(940)를 거쳐 구현될 수 있다. 이러한 예에서, 블록 908은 스킵될 수 있다.
프로세스(900)는 909, "비트 수 스케일링 팩터 결정"으로 계속될 수 있고, 여기서 비트 수 제한 스케일링 팩터는 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 결정될 수 있다. 예를 들어, 디코더(940)는 비트 수 제한 모듈(960)을 거쳐 비트 수 제한 스케일링 팩터를 결정할 수 있다. 몇몇 예에서, 비트 수 제한 스케일링 팩터를 결정하는 것은 다수의 비트 수 제한 스케일링 팩터 및 대응 코딩 모드를 갖는 표(예를 들어, 표 1 또는 표 2)에 액세스하는 것을 포함할 수 있다. 다른 예에서, 5/3의 비트 수 제한 스케일링 팩터가 모든 코딩 모드에 대해 사용될 수 있다.
프로세스(900)는 블록 909로부터 블록 910, "비디오 데이터 블록과 연계된 비트 수 제한 결정"으로 계속될 수 있고, 여기서 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한은 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 결정될 수 있다. 예를 들어, 디코더(940)는 비트 수 제한 모듈(950)을 거쳐 비트 수 제한을 결정할 수 있다. 몇몇 예에서, 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한은 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱셈하는 것(예를 들어, 식 (4)에 나타낸 바와 같이)을 포함할 수 있다. 설명된 바와 같이, 몇몇 예에서, 비트 수 제한 스케일링 팩터는 모든 코딩 모드에 대해 5/3일 수 있고, 이러한 예에서, 비디오 데이터의 최대 코딩 유닛에 대한 비트 수 제한은 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써(예를 들어, 식 (3)에 나타낸 바와 같이) 결정될 수 있다.
프로세스(900)는 블록 910으로부터 블록 911, "비트 수 제한에 기초하여 버퍼 크기 결정"으로 계속될 수 있고, 여기서 버퍼 크기는 결정된 비트 수 제한에 기초하여 결정될 수 있다. 예를 들어, 디코더(940)는 결정된 비트 수 제한에 동일하거나 유사한 할당된 또는 전용된 메모리 버퍼 크기를 결정할 수 있다. 몇몇 예에서, 버퍼 크기는 비트 수 제한에 기초하여 변경되지 않을 수도 있고, 이러한 예에서 블록 911은 스킵될 수 있다.
프로세스는 블록 912, "비트 수 제한에 기초하여 비디오 데이터 코딩"에서 계속될 수 있고, 여기서 비디오 데이터가 적어도 부분적으로 비트 수 제한에 기초하여 코딩될 수 있다. 예를 들어, 비디오 디코더(940)는 비트 수 제한에 기초하여 비디오 데이터를 디코딩할 수 있다.
프로세스(900)는 블록 912로부터 블록 913, "비트 수 제한에 기초하여 버퍼 크기 결정"으로 계속될 수 있고, 여기서 출력 화상 또는 화상들이 적어도 부분적으로 비디오 데이터의 코딩에 기초하여 생성될 수 있다. 예를 들어, 디코더(940)는 블록 912에서 디코딩된 비디오 데이터에 기초하여 출력 화상을 생성할 수 있다.
프로세스(900)는 블록 913으로부터 블록 914, "제시를 위해 출력 화상 전달"로 계속될 수 있고, 여기서 출력 화상이 제시를 위해 전달될 수도 있다. 예를 들어, 출력 화상은 디스플레이 디바이스를 거쳐 사용자에 제시될 수 있다. 예시적인 프로세스(300, 700, 800, 또는 900)는 예시된 순서로 도시된 모든 블록의 착수를 포함할 수도 있지만, 본 발명은 이와 관련하여 한정되지 않고, 다양한 예에서, 프로세스(300, 700, 800, 또는 900)의 구현은 예시된 것과 상이한 순서로 그리고/또는 단지 도시된 블록의 서브세트의 착수를 포함할 수 있다.
게다가, 본 명세서에 설명된 블록들 중 임의의 하나 이상은 하나 이상의 컴퓨터 프로그램 제품에 의해 제공된 인스트럭션에 응답하여 착수될 수 있다. 이러한 프로그램 제품은 예를 들어, 프로세서에 의해 실행될 때, 본 명세서에 설명된 기능성을 제공할 수도 있는 인스트럭션을 제공하는 신호 보유 매체(signal bearing media)를 포함할 수 있다. 컴퓨터 프로그램 제품은 임의의 형태의 하나 이상의 머신-판독가능 매체에 제공될 수 있다. 따라서, 예를 들어, 하나 이상의 프로세서 코어(들)를 포함하는 프로세서가 하나 이상의 머신-판독가능 매체에 의해 프로세서에 전달된 프로그램 코드 및/또는 인스트럭션 또는 인스트럭션 세트에 응답하여 예시적인 프로세스의 블록들 중 하나 이상을 착수할 수 있다. 일반적으로, 머신-판독가능 매체는 본 명세서에 설명된 임의의 디바이스 및/또는 시스템이 시스템(100) 및/또는 비디오 코덱 모듈(406) 또는 본 명세서에 설명된 다른 시스템 또는 모듈 적어도 일부를 구현하게 할 수 있는 프로그램 코드 및/또는 인스트럭션 또는 인스트럭션 세트의 형태의 소프트웨어를 전달할 수 있다.
본 명세서에 설명된 임의의 구현예에 사용될 때, 용어 "모듈"은 본 명세서에 설명된 기능성을 제공하도록 구성된 소프트웨어 로직, 펌웨어 로직 및/또는 하드웨어 로직의 임의의 조합을 칭한다. 소프트웨어는 소프트웨어 패키지, 코드 및/또는 인스트럭션 세트 또는 인스트럭션으로서 구체화될 수 있고, "하드웨어"는 본 명세서에 설명된 임의의 구현예에 사용될 때, 예를 들어 단독으로 또는 임의의 조합으로, 유선 회로, 프로그램가능 회로, 상태 머신 회로, 및/또는 프로그램가능 회로에 의해 실행된 인스트럭션을 저장하는 펌웨어를 포함할 수 있다. 모듈은 집합적으로 또는 개별적으로, 예를 들어 집적 회로(IC), 시스템 온 칩(SoC) 등과 같은 더 대형의 시스템의 부분을 형성하는 회로로서 구체화될 수 있다.
도 10은 본 발명의 적어도 몇몇 구현예에 따라 배열된, 예시적인 비디오 코딩 시스템(1000)의 예시적인 다이어그램이다. 예시된 구현예에서, 비디오 코딩 시스템(1000)은 촬상 디바이스(들)(1001), 비디오 인코더(1002), 안테나(1003), 비디오 디코더(1004), 하나 이상의 프로세서(1006), 하나 이상의 메모리 저장부(1008), 디스플레이(1010), 및/또는 로직 모듈(1040)을 포함할 수 있다. 로직 모듈(1040)은 비트 수 제한 모듈(906) 등, 및/또는 이들의 조합을 포함할 수 있다. 몇몇 예에서, 비디오 인코더(1002)는 예를 들어 비트 수 제한 모듈(940)과 같은 비트 수 제한 모듈을 포함하는 하나 이상의 로직 모듈을 구현할 수도 있다.
도시된 바와 같이, 안테나(1003), 비디오 디코더(1004), 프로세서(1006), 메모리 저장부(1008), 및/또는 디스플레이(1010)는 서로 통신하고 그리고/또는 로직 모듈(1040)의 부분과 통신하는 것이 가능할 수 있다. 유사하게, 촬상 디바이스(들)(1001) 및 비디오 인코더(1002)는 서로 통신하고 그리고/또는 로직 모듈(1040)의 부분과 통신하는 것이 가능할 수 있다. 이에 따라, 비디오 디코더(1004)는 로직 모듈(1040)의 모두 또는 부분을 포함할 수 있고, 반면에 비디오 인코더(1002)는 유사한 로직 모듈을 포함할 수 있다. 비디오 코딩 시스템(1000)은 도 10에 도시된 바와 같이, 특정 모듈과 연계된 블록 또는 작용의 일 특정 세트를 포함할 수 있지만, 이들 블록 또는 작용은 여기에 예시된 특정 모듈과는 상이한 모듈과 연계될 수 있다.
몇몇 예에서, 비디오 코딩 시스템(1000)은 안테나(1003), 비디오 디코더(1004) 등, 및/또는 이들의 조합을 포함할 수 있다. 안테나(1003)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 비디오 디코더(1004)는 안테나(1003)에 통신가능하게 결합될 수 있고, 인코딩된 비트스트림을 디코딩하도록 구성될 수 있다. 비디오 디코더(1004)는 본 명세서에 설명된 바와 같이, 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터를 결정하고 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한을 결정하거나 또는 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 비디오 데이터의 최대 코딩 단위를 위한 또는 그와 연계된 비트 수 제한을 결정하고 적어도 부분적으로 비트 수 제한에 기초하여 비디오 데이터를 코딩하도록 구성될 수 있다.
다른 예에서, 비디오 코딩 시스템(1000)은 디스플레이 디바이스(1010), 하나 이상의 프로세서(1006), 하나 이상의 메모리 저장부(1008), 비트 수 제한 모듈(960) 등, 및/또는 이들의 조합을 포함할 수 있다. 디스플레이 디바이스(1010)는 출력 화상과 같은 비디오 데이터를 제시하도록 구성될 수 있다. 프로세서(1006)는 디스플레이(1010)에 통신가능하게 결합될 수 있다. 메모리 저장부(1008)는 하나 이상의 프로세서(1006)에 통신가능하게 결합될 수 있다. 비디오 디코더(1004)(또는 다른 예에서 비디오 인코더(1002))는 하나 이상의 프로세서(1006)에 통신가능하게 결합될 수 있고, 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터를 결정하고, 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 비디오 데이터 블록을 위한 또는 그와 연계된 비트 수 제한을 결정하고, 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 비디오 데이터의 최대 코딩 단위를 위한 또는 그와 연계된 비트 수 제한을 결정하거나 또는 적어도 부분적으로 비트 수 제한에 기초하여 비디오 데이터를 코딩하고, 적어도 부분적으로 비트 수 제한에 기초하여 비디오 데이터를 코딩하도록 구성될 수 있어, 디스플레이 디바이스(1010)를 거쳐 화상 데이터의 제시가 적어도 부분적으로 코딩된 비디오 데이터에 기초할 수 있게 된다.
다양한 실시예에서, 비트 수 제한 모듈(960)(및 존재한다면, 인코더(1002)를 거쳐 구현된 비트 수 제한 모듈)은 하드웨어로 구현될 수 있고, 소프트웨어는 다른 로직 모듈을 구현할 수 있다. 예를 들어, 몇몇 실시예에서, 비트 수 제한 모듈(960)은 응용 주문형 집적 회로(application-specific integrated circuit: ASIC)에 의해 구현될 수 있고, 반면에 다른 로직 모듈은 프로세서(1006)와 같은 로직에 의해 실행된 소프트웨어 인스트럭션에 의해 제공될 수 있다. 그러나, 본 발명은 이와 관련하여 한정되지 않고, 비트 수 제한 모듈(960)(및 존재한다면, 인코더(1002)를 거쳐 구현된 비트 수 제한 모듈) 및/또는 다른 로직 모듈은 하드웨어, 펌웨어 및/또는 소프트웨어의 임의의 조합에 의해 구현될 수 있다. 게다가, 메모리 저장부(1008)는 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM) 등) 또는 비휘발성 메모리(예를 들어, 플래시 메모리 등) 등과 같은 임의의 유형의 메모리일 수 있다. 비한정적인 예에서, 메모리 저장부(1008)는 캐시 메모리에 의해 구현될 수 있다. 도 5는 본 발명에 따른 예시적인 시스템(500)을 도시한다. 다양한 구현예에서, 시스템(500)은 미디어 시스템일 수 있지만, 시스템(500)은 이 맥락에 한정되는 것은 아니다. 예를 들어, 시스템(500)은 퍼스널 컴퓨터(personal computer: PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 퍼스널 디지털 어시스턴트(personal digital assistant: PDA), 휴대폰, 조합형 휴대폰/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(mobile internet device: MID), 메시징 디바이스, 데이터 통신 디바이스, 카메라(예를 들어, 포인트-앤드-슛 카메라(point-and-shoot cameras), 수퍼줌 카메라(super-zoom cameras), 디지털 단렌즈 리플렉스(digital single-lens reflex: DSLR) 카메라) 등에 합체될 수도 있다.
다양한 구현예에서, 시스템(500)은 디스플레이(520)에 결합된 플랫폼(502)을 포함한다. 플랫폼(502)은 콘텐츠 서비스 디바이스(들)(530) 또는 콘텐츠 전달 디바이스(들)(540) 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징부를 포함하는 네비게이션 콘트롤러(550)가 예를 들어 플랫폼(502) 및/또는 디스플레이(520)와 상호 작용하는데 사용될 수 있다. 이들 구성요소의 각각이 이하에 더 상세히 설명된다.
다양한 구현예에서, 플랫폼(502)은 칩셋(505), 프로세서(510), 메모리(512), 안테나(513), 저장 장치(514), 그래픽 서브시스템(515), 애플리케이션(516) 및/또는 무선 장치(518)의 임의의 조합을 포함할 수 있다. 칩셋(505)은 프로세서(510), 메모리(512), 저장 장치(514), 그래픽 서브시스템(515), 애플리케이션(516) 및/또는 무선 장치(518) 사이에 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(505)은 저장 장치(514)와의 상호 통신을 제공하는 것이 가능한 저장 장치 어댑터(도시 생략)를 포함할 수 있다.
프로세서(510)는 복잡 명령 세트 컴퓨터(Complex Instruction Set Computer: CISC) 또는 축소 명령 세트 컴퓨터(Reduced Instruction Set Computer: RISC) 프로세서, x86 명령 세트 호환 프로세서, 멀티-코어, 또는 임의의 다른 마이크로프로세서 또는 중앙 처리 유닛(central processing unit: CPU)으로서 구현될 수 있다. 다양한 구현예에서, 프로세서(510)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등일 수 있다.
메모리(512)는 이들에 한정되는 것은 아니지만, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 또는 정적 RAM(SRAM)과 같은 휘발성 메모리 디바이스로서 구현될 수 있다.
저장 장치(514)는 이들에 한정되는 것은 아니지만, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 연결 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(동기화 DRAM), 및/또는 네트워크 액세스가능 저장 디바이스와 같은 비휘발성 저장 디바이스로서 구현될 수 있다. 다양한 구현예에서, 저장 장치(514)는 예를 들어 다수의 하드 드라이브가 포함될 때 가치있는 디지털 매체를 위한 저장 장치 성능 향상된 보호를 증가시키기 위한 기술을 포함할 수 있다.
그래픽 서브시스템(515)은 디스플레이를 위한 정지화상 또는 비디오와 같은 화상의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(515)은 예를 들어, 그래픽 프로세싱 유닛(graphics processing unit: GPU) 또는 시각적 프로세싱 유닛(visual processing unit: VPU)일 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(515) 및 디스플레이(520)를 통신가능하게 결합하는데 사용될 수 있다. 예를 들어, 인터페이스는 고선명 멀티미디어 인터페이스, 디스플레이 포트, 무선 HDMI, 및/또는 무선 HD 순응성 기술 중 임의의 하나일 수 있다. 그래픽 서브시스템(515)은 프로세서(510) 또는 칩셋(505) 내에 일체화될 수 있다. 몇몇 구현예에서, 그래픽 서브시스템(515)은 칩셋(505)에 통신가능하게 결합된 자립형 디바이스일 수 있다.
본 명세서에 설명된 그래픽 및/또는 비디오 프로세싱 기술은 다양한 하드웨어 아키텍처에서 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능성은 칩셋 내에 일체화될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 구현예로서, 그래픽 및/또는 비디오 기능은 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 제공될 수 있다. 다른 실시예에서, 기능은 가전 디바이스에서 구현될 수도 있다.
무선 장치(518)는 다양한 적합한 무선 통신 기술을 사용하여 신호를 전송하고 수신하는 것이 가능한 하나 이상의 무선 장치를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 가로지르는 통신을 수반할 수 있다. 예시적인 무선 네트워크는 (이들에 한정되는 것은 아니지만) 무선 근거리 통신망(wireless local area networks: WLANs), 무선 개인 영역 통신망(wireless personal area networks: WPANs), 무선 도시권 통신망(wireless metropolitan area network: WMANs), 셀룰러 네트워크, 및 위성 네트워크를 포함한다. 이러한 네트워크를 가로지르는 통신에 있어서, 무선 장치(518)는 임의의 버전의 하나 이상의 적용 가능한 표준에 따라 동작할 수도 있다.
다양한 구현예에서, 디스플레이(520)는 임의의 텔레비전형 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(520)는 예를 들어, 컴퓨터 디스플레이 스크린, 터치스크린 디스플레이, 비디오 모니터, 텔레비전형 디바이스, 및/또는 텔레비전을 포함할 수 있다. 디스플레이(520)는 디지털 및/또는 아날로그일 수 있다. 다양한 구현예에서, 디스플레이(520)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(520)는 시각적 프로젝션(visual projection)을 수신할 수 있는 투명 표면일 수 있다. 이러한 프로젝션은 다양한 형태의 정보, 화상, 및/또는 물체를 전달할 수 있다. 예를 들어, 이러한 프로젝션은 모바일 증강 현실(mobile augmented reality: MAR) 애플리케이션을 위한 시각적 오버레이(overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션(516)의 제어 하에서, 플랫폼(502)은 디스플레이(520) 상에 사용자 인터페이스(522)를 표시할 수도 있다.
다양한 구현예에서, 콘텐츠 서비스 디바이스(들)(530)는 임의의 국가, 국제 및/또는 독립 서비스에 의해 호스팅될 수 있고, 따라서 예를 들어 인터넷을 거쳐 플랫폼(502)에 액세스 가능할 수 있다. 콘텐츠 서비스 디바이스(들)(530)는 플랫폼(502) 및/또는 디스플레이(520)에 결합될 수 있다. 플랫폼(502) 및/또는 콘텐츠 서비스 디바이스(들)(530)는 매체 정보를 네트워크(560)와 통신하기 위해(예를 들어, 송신 및/또는 수신) 네트워크(560)에 결합될 수 있다. 콘텐츠 전달 디바이스(들)(540)는 또한 플랫폼(502)에 그리고/또는 디스플레이(520)에 결합될 수도 있다.
다양한 구현예에서, 콘텐츠 서비스 디바이스(들)(530)는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 전화, 인터넷 가능 디바이스 또는 디지털 정보 및/또는 콘텐츠를 전달하는 것이 가능한 기기, 및 네트워크(560)를 거쳐 또는 직접적으로 콘텐츠 공급자와 플랫폼(502) 및/또는 디스플레이(520) 사이에 콘텐츠를 단방향으로 또는 양방향으로 통신하는 것이 가능한 임의의 다른 유사한 디바이스를 포함할 수 있다. 콘텐츠는 네트워크(560)를 거쳐 시스템(500) 및 콘텐츠 공급자의 구성요소들 중 임의의 하나와 단방향으로 및/또는 양방향으로 통신될 수도 있다는 것이 이해될 수 있을 것이다. 콘텐츠의 예는 예를 들어 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 매체 정보를 포함할 수도 있다.
콘텐츠 서비스 디바이스(들)(530)는 매체 정보, 디지털 정보, 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 공급자의 예는 임의의 케이블 또는 위성 텔레비전 또는 무선 장치 또는 인터넷 콘텐츠 공급자를 포함할 수 있다. 제공된 예들은 본 발명에 따른 구현예를 임의의 방식으로 한정하도록 의도된 것은 아니다.
다양한 구현예에서, 플랫폼(502)은 하나 이상의 네비게이션 특징부들을 갖는 네비게이션 콘트롤러(550)로부터 제어 신호를 수신할 수 있다. 콘트롤러(550)의 네비게이션 특징부는 예를 들어 사용자 인터페이스(522)와 상호 작용하는데 사용될 수 있다. 다양한 실시예에서, 네비게이션 콘트롤러(550)는 사용자가 공간(예를 들어, 연속적 및 다차원) 데이터를 컴퓨터 내에 입력하게 하는 컴퓨터 하드웨어 구성요소(구체적으로, 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수도 있다. 그래픽 사용자 인터페이스(graphical user interfaces: GUI), 및 텔레비전 및 모니터와 같은 다수의 시스템은 사용자가 물리적 제스처를 사용하여 데이터를 제어하여 컴퓨터 또는 텔레비전에 데이터를 제공하게 한다.
콘트롤러(550)의 네비게이션 특징부의 이동은 디스플레이 상에 표시된 포인터, 커서, 포커스링, 또는 다른 시각적 지시자의 이동에 의해 디스플레이(예를 들어, 디스플레이(520)) 상에 복제될 수 있다. 예를 들어, 소프트웨어 애플리케이션(516)의 제어 하에서, 네비게이션 콘트롤러(550) 상에 위치된 네비게이션 특징부는 예를 들어 사용자 인터페이스(522) 상에 표시된 가상 네비게이션 특징부에 맵핑될 수 있다. 다양한 실시예에서, 콘트롤러(550)는 개별 구성요소가 아닐 수도 있고, 플랫폼(502) 및/또는 디스플레이(520) 내에 일체화될 수 있다. 그러나, 본 발명은 본 명세서에 도시되거나 설명된 요소 또는 맥락에 한정되는 것은 아니다.
다양한 구현예에서, 드라이버(도시 생략)는 사용자가, 예를 들어 가능화될 때 초기 부트업 후에 버튼의 터치에 의해 텔레비전과 같은 플랫폼(502)을 순간적으로 턴온 및 오프하는 것을 가능하게 하기 위한 기술을 포함할 수 있다. 프로그램 로직은 플랫폼이 턴"오프"될 때에도, 플랫폼(502)이 매체 어댑터 또는 다른 콘텐츠 서비스 디바이스(들)(530) 또는 콘텐츠 전달 디바이스(들)(540)에 콘텐츠를 스트리밍하게 할 수도 있다. 게다가, 칩셋(505)은 예를 들어 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 일체형 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 다양한 실시예에서, 그래픽 드라이버는 주변 장치 상호접속(peripheral component interconnect: PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 구현예에서, 시스템(500)에 도시된 구성요소의 하나 이상은 일체화될 수 있다. 예를 들어, 플랫폼(502) 및 콘텐츠 서비스 디바이스(들)(530)는 일체화될 수 있고, 또는 플랫폼(502) 및 콘텐츠 전달 디바이스(들)(540)는 일체화될 수 있고, 또는 플랫폼(502), 콘텐츠 서비스 디바이스(들)(530), 및 콘텐츠 전달 디바이스(들)(540)는 예를 들어 일체화될 수 있다. 다양한 실시예에서, 플랫폼(502) 및 디스플레이(520)는 일체형 유닛일 수도 있다. 디스플레이(520) 및 콘텐츠 서비스 디바이스(들)(530)는 일체화될 수 있고, 또는 디스플레이(520) 및 콘텐츠 전달 디바이스(들)(540)는 예를 들어 일체화될 수 있다. 이들 예는 본 발명을 한정하도록 의도된 것은 아니다.
다양한 실시예에서, 시스템(500)은 무선 시스템, 유선 시스템, 또는 양자의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(500)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직 등과 같은 무선 공유 매체를 통한 통신에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(500)은 대응 유선 통신 매체, 네트워크 인터페이스 카드(network interface card: NIC), 디스크 콘트롤러, 비디오 콘트롤러, 오디오 콘트롤러 등과 I/O 어댑터를 접속하기 위해 입출력(I/O) 어댑터, 물리적 커넥터와 같은 유선 통신 매체를 통해 통신하기에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 와이어, 케이블, 금속 리드, 인쇄 회로 기판(printed circuit board: PCB), 백플레인(backplane), 스위치 패브릭(switch fabric), 반도체 재료, 트위스티드쌍 와이어(twisted-pair wire), 동축 케이블, 광 파이버 등을 포함할 수 있다.
플랫폼(502)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널을 설정할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자를 위해 의도된 콘텐츠를 표현하는 임의의 데이터를 칭할 수 있다. 콘텐츠의 예는 예를 들어, 음성 대화로부터의 데이터, 비디오회의, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 문자숫자식 기호, 그래픽, 화상, 비디오, 텍스트 등을 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어, 음성 정보, 묵음 기간, 배경 잡음, 안정 소음, 톤 등일 수 있다. 제어 정보는 자동화 시스템을 위해 의도된 명령, 인스트럭션 또는 제어 워드를 표현하는 임의의 데이터를 나타낼 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 라우팅하거나, 또는 사전 결정된 방식으로 매체 정보를 프로세싱하도록 노드에 명령하는데 사용될 수 있다. 그러나, 실시예는 도 5에 도시되거나 설명된 요소 또는 맥락에 한정되지 않는다.
전술된 바와 같이, 시스템(500)은 다양한 물리적 스타일 또는 폼팩터(form factor)로 구체화될 수 있다. 도 6은 시스템(600)이 구체화될 수 있는 작은 폼팩터 디바이스(600)의 구현예를 도시한다. 다양한 실시예에서, 예를 들어, 디바이스(600)는 무선 능력을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 예를 들어 하나 이상의 배터리와 같은 모바일 전력 소스 또는 전원 및 프로세싱 시스템을 갖는 임의의 디바이스를 나타낼 수 있다.
전술된 바와 같이, 모바일 컴퓨팅 디바이스의 예는 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 퍼스널 디지털 어시스턴트(PDA), 휴대폰, 조합형 휴대폰/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스, 카메라(예를 들어, 포인트-앤드-슛 카메라, 수퍼줌 카메라, 디지털 단렌즈 리플렉스(DSLR) 카메라) 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 손목 컴퓨터(wrist computer), 손가락 컴퓨터(finger computer), 반지 컴퓨터(ring computer), 안경 컴퓨터(eyeglass computer), 벨트-클립 컴퓨터(belt-clip computer), 아암-밴드 컴퓨터(arm-band computer), 신발 컴퓨터(shoe computers), 의류 컴퓨터(clothing computers), 및 다른 착용 가능 컴퓨터와 같은, 사람에 의해 착용되도록 배열된 컴퓨터를 또한 포함할 수 있다. 다양한 실시예에서, 예를 들어, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션, 뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행하는 것이 가능한 스마트폰으로서 구현될 수 있다. 몇몇 실시예는 예로서 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스로 설명될 수도 있지만, 다른 실시예가 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 마찬가지로 구현될 수도 있다는 것이 이해될 수 있다. 실시예는 이 맥락에 한정되지 않는다.
도 6에 도시된 바와 같이, 디바이스(600)는 하우징(602), 디스플레이(604), 입출력(I/O) 디바이스(606), 및 안테나(608)를 포함할 수 있다. 디바이스(600)는 네비게이션 특징부(612)를 또한 포함할 수 있다. 디스플레이(604)는 모바일 컴퓨팅 디바이스에 적절한 정보를 표시하기 위한 임의의 적합한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(606)는 모바일 컴퓨팅 디바이스 내로 정보를 입력하기 위한 임의의 적합한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(606)의 예는 문자숫자식 키보드, 숫자 키패드, 터치패드, 입력키, 버튼, 스위치, 록커 스위치, 마이크로폰, 스피커, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰(도시 생략)을 경유하여 디바이스(600)에 입력될 수 있다. 이러한 정보는 음성 인식 디바이스(도시 생략)에 의해 디지털화될 수 있다. 실시예는 이 맥락에 한정되지 않는다.
다양한 실시예는 하드웨어 요소, 소프트웨어 요소, 또는 양자의 조합을 사용하여 구현될 수 있다. 하드웨어 요소의 예는 프로세서, 마이크로프로세서, 회로, 회로 소자(예를 들어, 트랜지스터, 레지스터, 캐패시터, 인덕터 등), 집적 회로, 응용 주문형 집적 회로(ASIC), 프로그램가능 논리 디바이스(programmable logic devices: PLD), 디지털 신호 프로세서(digital signal processors: DSP), 필드 프로그램가능 게이트 어레이(field programmable gate array: FPGA), 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 구성요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 펑션, 방법, 프로시저, 소프트웨어 인터페이스, 응용 프로그램 인터페이스(application program interfaces: API), 인스트럭션 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 기호, 또는 이들의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지를 판정하는 것은, 원하는 연산 속도, 파워 레벨, 내열성, 프로세싱 사이클 버짓, 입력 데이터 전송율, 출력 데이터 전송율, 메모리 리소스, 데이터 버스 속도 및 다른 디자인 또는 성능 제약과 같은 임의의 수의 팩터에 따라 다양할 수도 있다.
적어도 하나의 실시예의 하나 이상의 양태는 머신에 의해 판독될 때, 머신가 본 명세서에 설명된 기술을 수행하도록 로직을 구성하게 하는 프로세서 내의 다양한 로직을 표현하는 머신-판독가능 매체 상에 저장된 대표적인 인스트럭션에 의해 구현될 수 있다. "IP 코어"로서 공지된 이러한 표현은 탠저블(tangible) 머신 판독가능 매체 상에 저장되고, 실제로 로직 또는 프로세스를 구성하는 제조 머신 내로 로딩하도록 다양한 고객 또는 제조 설비에 공급될 수 있다.
본 명세서에 설명된 특정 특징이 다양한 구현예를 참조하여 설명되었지만, 이 설명은 한정의 개념으로 해석되도록 의도된 것은 아니다. 따라서, 본 명세서에 설명된 구현예의 다양한 변형예, 뿐만 아니라 본 발명이 속하는 기술 분야의 숙련자들에 명백한 다른 구현예가 본 발명의 사상 및 범주 내에 있는 것으로 간주된다.
이하의 예는 추가의 실시예에 속한다.
일 예에서, 비디오 코딩을 수행하기 위한 컴퓨터로 구현된 방법은 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터를 결정하는 단계를 포함할 수 있다. 비트 수 제한은 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 비디오 데이터 블록에 대해 결정될 수 있다.
다른 예에서, 비디오 코딩을 수행하기 위한 컴퓨터로 구현된 방법은 적어도 부분적으로 비트 수 제한에 기초하여 비디오 데이터를 코딩하는 단계를 더 포함할 수 있다. 비트스트림은 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 인코딩될 수 있다. 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드가 비트스트림 내에 인코딩될 수 있다. 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드는 비트스트림의 보충 향상 정보(SEI) 패키지의 부분으로서 인코딩될 수 있다. 비트스트림이 수신될 수 있다. 비트스트림은 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 결정하기 위해 액세스될 수 있다. 버퍼 크기가 결정된 비트 수 제한에 기초하여 결정될 수 있다. 출력 화상이 적어도 부분적으로 비디오 데이터의 코딩에 기초하여 생성될 수 있다. 비트 수 제한 스케일링 팩터를 결정하는 단계는 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 포함하는 표에 액세스하는 것을 포함할 수 있다. 비트 수 제한 스케일링 팩터를 결정하는 단계는 액티브 코딩 모드가 표를 거쳐 이용 가능하지 않다고 판정하는 것을 포함할 수 있고, 비트 수 제한 스케일링 팩터는 디폴트 비트 수 제한 스케일링 팩터로 설정될 수 있다. 비디오 데이터 블록을 위한 비트 수 제한을 결정하는 단계는 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱하는 것을 포함할 수 있다. 스케일링 팩터는 1 이상이며, 2 이하인 수, 3/2, 4/3 또는 5/3 중 적어도 하나를 포함할 수 있다. 복수의 코딩 모드는 하위 비트 생성 코딩 모드 및 하위 비트 생성 코딩 모드보다 많은 비트를 생성하는 상위 비트 생성 코딩 모드를 포함하여, 하위 비트 생성 코딩 모드와 연계된 비트 수 제한 스케일링 팩터가 상위 비트 생성 코딩 모드와 연계된 비트 수 제한 스케일링 팩터보다 작을 수 있게 된다. 비디오 데이터 블록은 최대 코딩 단위(LCU)일 수 있다. 비디오 데이터 블록은 고효율 비디오 코딩(HEVC) 비디오 데이터를 포함할 수 있다. 제 1 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 1 비트 수 제한 스케일링 팩터는 4/3일 수 있다. 제 2 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 2 비트 수 제한 스케일링 팩터는 3/2일 수 있다. 제 3 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 3 비트 수 제한 스케일링 팩터는 4/3일 수 있다. 제 4 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 4 비트 수 제한 스케일링 팩터는 3/2일 수 있다. 제 5 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 5 비트 수 제한 스케일링 팩터는 5/3일 수 있다. 제 6 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 6 비트 수 제한 스케일링 팩터는 5/3일 수 있다. 비트 수 제한을 결정하는 단계는 비디오 디코더에서 비트 수 제한을 결정하는 것을 포함할 수 있다. 비디오 디코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다. 비트 수 제한을 결정하는 단계는 비디오 인코더에서 비트 수 제한을 결정하는 것을 포함할 수 있다. 비디오 인코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다.
또 다른 예에서, 비디오 코딩을 수행하기 위한 컴퓨터로 구현된 방법은 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 비디오 데이터의 최대 코딩 단위와 연계된 비트 수 제한을 결정하는 단계를 포함할 수 있다. 비디오 데이터는 적어도 부분적으로 비트 수 제한에 기초하여 코딩될 수 있다.
다른 추가의 예에서, 비디오 코딩을 수행하기 위한 컴퓨터로 구현된 방법은 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 비트스트림을 인코딩하는 단계를 더 포함할 수 있다. 비트스트림이 수신될 수 있다. 버퍼 크기가 결정된 비트 수 제한에 기초하여 결정될 수 있다. 출력 화상이 적어도 부분적으로 비디오 데이터의 코딩에 기초하여 생성될 수 있다. 비디오 데이터 블록은 고효율 비디오 코딩(HEVC) 비디오 데이터를 포함할 수 있다. 비트 수 제한을 결정하는 단계는 비디오 디코더에서 비트 수 제한을 결정하는 것을 포함할 수 있다. 비디오 디코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다. 비트 수 제한을 결정하는 단계는 비디오 인코더에서 비트 수 제한을 결정하는 것을 포함할 수 있다. 비디오 인코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다.
다른 예에서, 컴퓨터 상에서 비디오 코딩을 위한 시스템은 디스플레이 디바이스, 하나 이상의 프로세서, 하나 이상의 메모리 저장부, 비디오 코더 등, 및/또는 이들의 조합을 포함할 수 있다. 디스플레이 디바이스는 비디오 데이터를 제시하도록 구성될 수 있다. 하나 이상의 프로세서는 디스플레이 디바이스에 통신가능하게 결합될 수 있다. 하나 이상의 메모리 저장부는 하나 이상의 프로세서에 통신가능하게 결합될 수 있다. 비디오 인코더는 하나 이상의 프로세서에 통신가능하게 결합되고, 적어도 부분적으로 액티브 비디오 코딩 모드에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 비트 수 제한 스케일링 팩터를 결정하고 적어도 부분적으로 비트 수 제한 스케일링 팩터에 기초하여 비디오 데이터 블록과 연계된 비트 수 제한을 결정하도록 구성될 수 있다. 디스플레이 디바이스를 거친 화상 데이터의 제시는 적어도 부분적으로 코딩된 비디오 데이터에 기초할 수 있다.
다른 예시적인 시스템에서, 비디오 코더는 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 비트스트림을 인코딩하고, 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 비트스트림 내에서 인코딩하고 - 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드는 비트스트림의 보충 향상 정보(SEI) 패키지의 부분을 포함함 -, 비트스트림을 수신하고, 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 결정하기 위해 비트스트림에 액세스하고, 결정된 비트 수 제한에 기초하여 버퍼 크기를 결정하고, 및/또는 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 출력 화상을 생성하도록 구성될 수도 있다. 비디오 코더는 복수의 비트 수 제한 스케일링 팩터 및 대응 복수의 코딩 모드를 포함하는 표에 액세스함으로써 비트 수 제한 스케일링 팩터를 결정하도록 구성될 수 있다. 비디오 코더는 액티브 코딩 모드가 표를 거쳐 이용 가능하지 않다고 판정함으로써 비트 수 제한 스케일링 팩터를 결정하도록 구성될 수 있고, 비트 수 제한 스케일링 팩터는 디폴트 비트 수 제한 스케일링 팩터로 설정된다. 비디오 코더는 비트 수 제한 스케일링 팩터와 비디오 데이터 블록의 원시 비디오 데이터 크기를 곱함으로써 비디오 데이터 블록과 연계된 비트 수 제한을 결정하도록 구성될 수 있다. 스케일링 팩터는 1 이상이며, 2 이하인 수, 3/2, 4/3 또는 5/3를 포함할 수 있다. 복수의 코딩 모드는 하위 비트 생성 코딩 모드 및 하위 비트 생성 코딩 모드보다 많은 비트를 생성하는 상위 비트 생성 코딩 모드를 포함하여, 하위 비트 생성 코딩 모드와 연계된 비트 수 제한 스케일링 팩터가 상위 비트 생성 코딩 모드와 연계된 비트 수 제한 스케일링 팩터보다 작을 수 있게 된다. 비디오 데이터 블록은 최대 코딩 단위(LCU)일 수 있다. 비디오 데이터 블록은 고효율 비디오 코딩(HEVC) 비디오 데이터를 포함할 수 있다. 제 1 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 1 비트 수 제한 스케일링 팩터는 4/3일 수 있다. 제 2 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 2 비트 수 제한 스케일링 팩터는 3/2일 수 있다. 제 3 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 3 비트 수 제한 스케일링 팩터는 4/3일 수 있다. 제 4 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 정지 화상 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 4 비트 수 제한 스케일링 팩터는 3/2일 수 있다. 제 5 코딩 모드는 변환 스킵핑이 인에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 5 비트 수 제한 스케일링 팩터는 5/3일 수 있다. 제 6 코딩 모드는 변환 스킵핑이 디스에이블링된 상태의 HEVC 메인 10 프로파일 내의 모든 코딩 모드를 포함할 수 있고 대응 제 6 비트 수 제한 스케일링 팩터는 5/3일 수 있다. 비디오 코더는 비디오 디코더를 포함할 수 있다. 비디오 디코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다. 비디오 코더는 비디오 인코더를 포함할 수 있다. 비디오 인코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다.
또 다른 예에서, 컴퓨터 상에서 비디오 코딩을 위한 시스템은 디스플레이 디바이스, 하나 이상의 프로세서, 하나 이상의 메모리 저장부, 비디오 코더 등, 및/또는 이들의 조합을 포함할 수 있다. 디스플레이 디바이스는 비디오 데이터를 제시하도록 구성될 수 있다. 하나 이상의 프로세서는 디스플레이 디바이스에 통신가능하게 결합될 수 있다. 하나 이상의 메모리 저장부는 하나 이상의 프로세서에 통신가능하게 결합될 수 있다. 비디오 코더는 하나 이상의 프로세서에 통신가능하게 결합되고, 최대 코딩 단위 원시 데이터 수와 5/3의 비트 수 제한 스케일링 팩터를 곱함으로써 비디오 데이터의 최대 코딩 단위와 연계된 비트 수 제한을 결정하고, 적어도 부분적으로 비트 수 제한에 기초하여 비디오 데이터를 코딩하도록 구성될 수 있다. 디스플레이 디바이스를 거친 화상 데이터의 제시는 적어도 부분적으로 코딩된 비디오 데이터에 기초할 수 있다.
다른 추가의 예시적인 시스템에서, 비디오 코더는 적어도 부분적으로 코딩된 비디오 데이터에 기초하여 비트스트림을 인코딩하고, 비트스트림을 수신하고, 결정된 비트 수 제한에 기초하여 버퍼 크기를 결정하고, 그리고/또는 적어도 부분적으로 비디오 데이터의 코딩에 기초하여 출력 화상을 생성하도록 구성될 수 있다. 비디오 데이터 블록은 고효율 비디오 코딩(HEVC) 비디오 데이터를 포함할 수 있다. 비디오 코더는 비디오 디코더를 포함할 수 있다. 비디오 디코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다. 비디오 코더는 비디오 인코더를 포함할 수 있다. 비디오 인코더는 적어도 부분적으로 하드웨어에서 구현될 수 있다.
다른 예에서, 적어도 하나의 머신 판독가능 매체는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 컴퓨팅 디바이스가 상기 예들 중 임의의 하나에 따른 방법을 수행하게 하는 복수의 인스트럭션을 포함할 수 있다.
또 다른 예에서, 장치는 상기 예들 중 임의의 하나에 따른 방법을 수행하기 위한 수단을 포함할 수 있다.
상기 예들은 특징의 특정 조합을 포함할 수 있다. 그러나, 이러한 상기 예들은 이와 관련하여 한정되지 않고, 다양한 구현예에서, 상기 예들은 이러한 특징의 단지 서브세트만을 착수하는 것, 이러한 특징의 상이한 순서를 착수하는 것, 이러한 특징의 상이한 조합을 착수하는 것, 및/또는 명시적으로 열거된 이들 특징 이외의 부가의 특징을 착수하는 것을 포함할 수 있다. 예를 들어, 예시적인 방법과 관련하여 설명된 모든 특징은 예시적인 장치, 예시적인 시스템, 및/또는 예시적인 물품과 관련하여 구현될 수 있고, 그 반대도 마찬가지이다.
100: 시스템 101: 입력 화상
102: 인코더 104: 코딩 단위 파티션 모듈
106: 양자화 및 변환 모듈 108: 역양자화 및 역변환 모듈
119: 비트스트림 120: 디코더
202: 헤더부 204: 데이터부

Claims (25)

  1. 압축된 비디오 데이터를 디코딩하는 장치에 있어서,
    압축된 비디오 데이터의 비트스트림에 액세스하는 비디오 디코더를 포함하되, 상기 압축된 비디오 데이터는 코딩된 비디오 데이터의 적어도 하나의 코딩 단위를 포함하고,
    상기 비디오 디코더는 상기 코딩된 비디오 데이터의 코딩 단위에 대응하는 액티브 코딩 모드 및 코딩 프로파일에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 상기 코딩된 비디오 데이터의 코딩 단위에 대응하는 비트 수 제한 스케일링 팩터를 결정하고 - 상기 코딩 프로파일이 HEVC (High Efficiency Video Coding) 메인 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 포함하면, 상기 비트 수 제한 스케일링 팩터는 제1 스케일링 팩터이고, 상기 코딩 프로파일이 HEVC 메인 정지 화상 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 배제하면, 상기 비트 수 제한 스케일링 팩터는 제2 스케일링 팩터이며, 상기 코딩 프로파일이 HEVC 메인 10 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 포함하면, 상기 비트 수 제한 스케일링 팩터는 제3 스케일링 팩터이고, 상기 제3 스케일링 팩터는 상기 제2 스케일링 팩터보다 크며, 상기 제2 스케일링 팩터는 상기 제1 스케일링 팩터보다 큼 -,
    상기 비디오 디코더는 상기 비트 수 제한 스케일링 팩터에 기초하여 상기 코딩 단위와 연계된 비트 수 제한(a bit number limit)을 결정하고, 상기 비트 수 제한을 결정하기 위해 상기 비디오 디코더는 상기 코딩 단위의 원시 데이터 크기와 상기 비트 수 제한 스케일링 팩터를 곱하는 것인
    압축된 비디오 데이터 디코딩 장치.
  2. 제 1 항에 있어서,
    저장부를 더 포함하되,
    상기 비디오 디코더는 상기 결정된 비트 수 제한에 적어도 부분적으로 기초하여 상기 저장부에서 버퍼의 크기를 결정하는
    압축된 비디오 데이터 디코딩 장치.
  3. 제 2 항에 있어서,
    상기 비디오 디코더는 상기 코딩된 비디오 데이터를 상기 버퍼에 저장하는
    압축된 비디오 데이터 디코딩 장치.
  4. 제 1 항 내지 제 3 항 중 어느 한 항의 압축된 비디오 데이터 디코딩 장치를 포함하는 시스템에 있어서,
    디스플레이―상기 비디오 디코더는 상기 적어도 하나의 코딩 단위를 디코딩하여 디코딩된 비디오 데이터를 생성함―와,
    상기 디스플레이 상에서 상기 디코딩된 비디오 데이터를 디스플레이하는 프로세서를 포함하는
    시스템.
  5. 제 4 항에 있어서,
    상기 비트스트림을 수신하는 하나 이상의 무선 장치를 더 포함하는
    시스템.
  6. 압축된 비디오 데이터를 디코딩하는 컴퓨터로 구현된 방법에 있어서,
    압축된 비디오 데이터의 비트스트림에 액세스하는 단계―상기 압축된 비디오 데이터는 코딩된 비디오 데이터의 적어도 하나의 코딩 단위를 포함함―와,
    상기 코딩된 비디오 데이터의 코딩 단위에 대응하는 액티브 코딩 모드 및 코딩 프로파일에 기초하여 복수의 비트 수 제한 스케일링 팩터로부터 상기 코딩된 비디오 데이터의 코딩 단위에 대응하는 비트 수 제한 스케일링 팩터를 결정하는 단계 - 상기 코딩 프로파일이 HEVC (High Efficiency Video Coding) 메인 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 포함하면, 상기 비트 수 제한 스케일링 팩터는 제1 스케일링 팩터이고, 상기 코딩 프로파일이 HEVC 메인 정지 화상 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 배제하면, 상기 비트 수 제한 스케일링 팩터는 제2 스케일링 팩터이며, 상기 코딩 프로파일이 HEVC 메인 10 프로파일이고 상기 액티브 코딩 모드가 변환 스키핑 모드를 포함하면, 상기 비트 수 제한 스케일링 팩터는 제3 스케일링 팩터이고, 상기 제3 스케일링 팩터는 상기 제2 스케일링 팩터보다 크며, 상기 제2 스케일링 팩터는 상기 제1 스케일링 팩터보다 큼 - 와,
    상기 코딩 단위와 연계된 비트 수 제한을 결정하는 단계를 포함하되, 상기 비트 수 제한을 결정하는 단계는 상기 코딩 단위의 원시 데이터 크기를 상기 비트 수 제한 스케일링 팩터와 곱하는 단계를 포함하는
    압축된 비디오 데이터를 디코딩하는 컴퓨터로 구현된 방법.
  7. 제 6 항에 있어서,
    상기 결정된 비트 수 제한에 적어도 부분적으로 기초하여 버퍼 크기를 결정하는 단계를 더 포함하는
    압축된 비디오 데이터를 디코딩하는 컴퓨터로 구현된 방법.
  8. 제 6 항에 있어서,
    디코딩된 비디오 데이터를 생성하기 위하여 적어도 하나의 코딩 단위를 디코딩하는 단계와
    상기 디코딩된 비디오 데이터를 디스플레이하는 단계를 더 포함하는
    압축된 비디오 데이터를 디코딩하는 컴퓨터로 구현된 방법.
  9. 제 6 항 내지 제 8 항 중 어느 한 항의 방법을 수행하는 수단을 포함하는 장치.
  10. 실행될 때 제 6 항 내지 제 8 항 중 어느 한 항의 방법을 구현하거나 제 1 항 내지 제 3 항 중 어느 한 항의 장치를 실현하는 머신 판독가능 명령어를 포함하는 머신 판독가능 저장 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020157014957A 2013-01-04 2013-03-28 코딩 단위 비트 수 제한 KR101777487B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361748907P 2013-01-04 2013-01-04
US61/748,907 2013-01-04
US201361770699P 2013-02-28 2013-02-28
US61/770,699 2013-02-28
PCT/US2013/034264 WO2014107183A1 (en) 2013-01-04 2013-03-28 Coding unit bit number limitation

Publications (2)

Publication Number Publication Date
KR20150082527A KR20150082527A (ko) 2015-07-15
KR101777487B1 true KR101777487B1 (ko) 2017-09-11

Family

ID=51062404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157014957A KR101777487B1 (ko) 2013-01-04 2013-03-28 코딩 단위 비트 수 제한

Country Status (6)

Country Link
EP (1) EP2941866A4 (ko)
JP (1) JP6156808B2 (ko)
KR (1) KR101777487B1 (ko)
CN (1) CN104854865B (ko)
SG (1) SG11201503954YA (ko)
WO (1) WO2014107183A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022222990A1 (en) * 2021-04-21 2022-10-27 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
GB2337621B (en) * 1998-05-20 2002-09-18 Mitel Corp Method of determining a scaling factor
US6516027B1 (en) * 1999-02-18 2003-02-04 Nec Usa, Inc. Method and apparatus for discrete multitone communication bit allocation
US7418037B1 (en) * 2002-07-15 2008-08-26 Apple Inc. Method of performing rate control for a compression system
US7567722B2 (en) * 2005-03-22 2009-07-28 Qualcomm Incorporated Dynamically scaled file encoding
US8213498B2 (en) * 2007-05-31 2012-07-03 Qualcomm Incorporated Bitrate reduction techniques for image transcoding
US7983496B2 (en) * 2007-06-26 2011-07-19 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding adapted to variable block sizes
US8477847B2 (en) * 2007-12-17 2013-07-02 Vixs Systems, Inc. Motion compensation module with fast intra pulse code modulation mode decisions and methods for use therewith
US9516379B2 (en) * 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
B. Bross, et al. High Efficiency Video Coding (HEVC) text specification draft 9. JCT-VC of ITU-T and ISO/IEC. JCTVC-K1003 Ver.13, Dec. 18, 2012, pp.1-292*
K. Chono. AHG4: Suggested constraint on number of bits/bins per LCU. JCT-VC of ITU-T and ISO/IEC. JCTVC-J0059 Ver.4, Jul. 20, 2012, pp.1-7
K. Chono. AHG9: On LCU bit size limit. JCT-VC of ITU-T and ISO/IEC. JCTVC-K0176 Ver.5, Oct. 18, 2012, pp.1-6*
W. Zhang, et al. AHG9: On LCU bit size limit. JCT-VC of ITU-T and ISO/IEC. JCTVC-L0292 Ver.1, Jan. 8, 2013, pp.1-6

Also Published As

Publication number Publication date
EP2941866A1 (en) 2015-11-11
WO2014107183A1 (en) 2014-07-10
JP6156808B2 (ja) 2017-07-05
JP2016508318A (ja) 2016-03-17
SG11201503954YA (en) 2015-06-29
CN104854865B (zh) 2018-11-20
EP2941866A4 (en) 2016-06-01
CN104854865A (zh) 2015-08-19
KR20150082527A (ko) 2015-07-15

Similar Documents

Publication Publication Date Title
US11432011B2 (en) Size based transform unit context derivation
KR101653511B1 (ko) 인터-레이어 잔차 예측
US20140286408A1 (en) Inter-layer pixel sample prediction
US20170264904A1 (en) Intra-prediction complexity reduction using limited angular modes and refinement
CN106664409B (zh) 视频编码中黄金帧选择的方法、系统、设备和介质
CN107079192B (zh) 使用压缩视频流的动态屏幕上显示
JP2016502332A (ja) 次世代動画用コンテンツに適応的な特性補償済み予測
WO2014047881A1 (en) Inter-layer intra mode prediction
US10536710B2 (en) Cross-layer cross-channel residual prediction
KR20150082512A (ko) 계층간 모션 데이터 상속
WO2014093175A2 (en) Video coding including shared motion estimation between multiple independent coding streams
EP2865185A1 (en) Cross-layer cross-channel sample prediction
KR101777487B1 (ko) 코딩 단위 비트 수 제한
US20140192898A1 (en) Coding unit bit number limitation
TWI578763B (zh) 編碼單元位元數限制
JP2015146599A (ja) レイヤ間画素サンプル予測
EP2885914A1 (en) Size based transform unit context derivation

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
X701 Decision to grant (after re-examination)
GRNT Written decision to grant