KR20160086978A - 비디오 코딩에서의 내부 비트 깊이 증가 - Google Patents

비디오 코딩에서의 내부 비트 깊이 증가 Download PDF

Info

Publication number
KR20160086978A
KR20160086978A KR1020167018503A KR20167018503A KR20160086978A KR 20160086978 A KR20160086978 A KR 20160086978A KR 1020167018503 A KR1020167018503 A KR 1020167018503A KR 20167018503 A KR20167018503 A KR 20167018503A KR 20160086978 A KR20160086978 A KR 20160086978A
Authority
KR
South Korea
Prior art keywords
video
bit depth
data
ibdi
video data
Prior art date
Application number
KR1020167018503A
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 KR20160086978A publication Critical patent/KR20160086978A/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/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/124Quantisation
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/164Feedback from the receiver or from the transmission channel
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output 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
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]

Landscapes

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

Abstract

일 예에서, 일반적으로 본 개시물의 양태들은 비디오 데이터를 출력하기 위한 제 1 비트 깊이 및 비디오 데이터를 코딩하기 위한 제 2 비트 깊이를 결정하는 단계를 포함하는 비디오 데이터를 코딩하는 방법에 관한 것이고, 여기서 제 1 비트 깊이는 제 2 비트 깊이보다 작다. 방법은 또한, 다른 비디오 데이터를 코딩하는 경우 비디오 데이터가 참조 데이터로서 사용될지 여부를 결정하는 단계를 포함한다. 방법은 또한, 결정에 기초하여 비디오 데이터가 참조 데이터로서 사용되지 않는 경우 비디오 데이터를 제 1 비트 깊이에서, 그리고 비디오 데이터가 참조 데이터로서 사용되는 경우 비디오 데이터를 제 2 비트 깊이에서 저장하는 단계를 포함한다.

Description

비디오 코딩에서의 내부 비트 깊이 증가{INTERNAL BIT DEPTH INCREASE IN VIDEO CODING}
본 출원은 2011년 6월 9일자로 출원된 미국 가특허출원 제 61/495,333 호, 2011년 10월 28일자로 출원된 미국 가특허출원 제 61/552,876 호, 및 2011 년 11월 4일자로 출원된 미국 가특허출원 제 61/556,002 호의 우선권을 주장하며, 이들 모두의 내용들은 그 전체가 참조로서 여기에 포함된다.
기술 분야
본 개시물은 비디오 코딩 기법들에 관한 것이다.
디지털 비디오 성능들은, 디지털 텔레비전, 디지털 다이렉트 브로드캐스트 시스템, 무선 브로드캐스트 시스템, PDA (personal digital assistant), 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 이-북 판독기, 디지털 카메라, 디지털 기록 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 라디오 전화들, 소위 "스마트 폰들", 비디오 화상회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은, MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, AVC (Advanced Video Coding) 또는 현재 개발 중인 HEVC (High Efficiency Video Coding) 표준 및 이러한 표준들의 확장들에 대해 정의된 표준들에 설명된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 공간적 (인트라-픽처) 예측 및/또는 시간적 (인터-픽처) 예측을 수행하여 비디오 시퀀스들에 내재하는 중복성 (redundancy) 을 감소 또는 제거할 수도 있다. 블록-기반 비디오 코딩을 위해, 비디오 프레임 또는 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부) 는 매크로블록들로 분할될 수도 있는데, 이 블록들은 또한 트리블록들, 코딩 유닛 (CU) 들 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처의 인트라 코딩된 (I) 슬라이스 내에서 비디오블록들은 동일한 픽처의 이웃하는 블록들에서의 공간 예측을 사용하여 인코딩된다. 픽처의 인터 코딩된 (P 또는 B) 슬라이스에서의 비디오블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대하여 공간 예측을 사용하고, 또는 다른 참조 픽처의 참조 샘플들에 대하여 시간 예측을 사용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔여 데이터는 코딩될 오리지널 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록, 및 코딩된 블록과 예측 블록 간의 차이를 나타내는 잔여 데이터를 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드와 잔여 데이터에 따라 인코딩된다. 추가의 압축을 위해, 잔여 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환될 수도 있어서, 잔여 변환 계수들을 초래하고 이 계수들은 그 후, 양자화될 수도 있다. 2 차원 어레이로 초기에 배열된 양자화된 변환 계수들은 변환 계수들의 1 차원 벡터를 생성하기 위해 스캐닝될 수도 있고, 엔트로피 코딩이 더욱 더 많은 압축을 달성하도록 적용될 수도 있다.
일반적으로, 본 개시물의 기법들은 비디오 코딩 및 비디오 코딩에서의 내부 비트 깊이 증가 (internal bit depth increase; IBDI) 에 관한 것이다. 예를 들어, 비디오 코더는 IBDI 를 사용하여 내부 계산들에서 라운딩 에러들을 감소시키도록 코딩되는 샘플의 비트 깊이를 증가시킬 수도 있다. 본 개시물의 기법들은, 일반적으로 IBDI 를 사용할 뿐만 아니라 출력 비트 깊이를 결정하는 경우 메모리 활용 (utilization) 을 관리하는 것에 관한 것이다. 즉, 예를 들어 본 개시물의 기법들은 일부 예들에서, 비디오 데이터가 참조 비디오 데이터로서 사용되지 않는 경우 비디오 데이터를 디코딩된 픽처 버퍼에 저장하기 전에, 더 높은 비트 깊이로부터 더 낮은 비트 깊이로 비디오 데이터를 라운딩하는 것을 포함한다. 다른 예에서, 본 개시물의 기법들은 IBDI (예를 들어, 증가된) 비트 깊이에서 비디오 데이터를 출력할지 여부를 결정하는 것에 관한 것이다.
일 예에서, 일반적으로 본 개시물의 양태들은 비디오 데이터를 출력하기 위한 제 1 비트 깊이 및 비디오 데이터를 코딩하기 위한 제 2 비트 깊이를 결정하는 단계을 포함하는 비디오 데이터를 코딩하는 방법에 관한 것이고, 여기서 제 1 비트 깊이는 제 2 비트 깊이보다 작다. 방법은 또한, 다른 비디오 데이터를 코딩하는 경우, 비디오 데이터가 참조 데이터로서 사용될지 여부를 결정하는 단계를 포함한다. 방법은 또한, 이 결정에 기초하여 비디오 데이터가 참조 데이터로서 사용되지 않는 경우, 비디오 데이터를 제 1 비트 깊이에, 그리고 비디오 데이터가 참조 데이터로서 사용되는 경우 비디오 데이터를 제 2 비트 깊이에서 저장하는 단계를 포함한다.
다른 예에서, 본 개시물의 양태들은 일반적으로, 비디오 데이터를 출력하기 위한 제 1 비트 깊이 및 비디오 데이터를 코딩하기 위한 제 2 비트 깊이를 결정하고; 다른 비디오 데이터를 코딩하는 경우 비디오 데이터가 참조 데이터로서 사용될지 여부를 결정하며; 이 결정에 기초하여, 비디오 데이터가 참조 데이터로서 사용되지 않는 경우 비디오 데이터를 제 1 비트 깊이에서, 그리고 비디오 데이터가 참조 데이터로서 사용되는 경우 비디오 데이터를 제 2 비트 깊이에서 저장하도록 구성되고, 제 1 비트 깊이는 제 2 비트 깊이보다 작은 하나 이상의 프로세서들을 포함하는 비디오 데이터를 코딩하기 위한 장치에 관한 것이다.
다른 예에서, 본 개시물의 양태들은 일반적으로, 비디오 데이터를 출력하기 위한 제 1 비트 깊이 및 비디오 데이터를 코딩하기 위한 제 2 비트 깊이를 결정하기 위한 수단으로서, 제 1 비트 깊이는 제 2 비트 깊이보다 작은, 상기 제 1 비트 깊이 및 제 2 비트 깊이를 결정하기 위한 수단; 다른 비디오 데이터를 코딩하는 경우 비디오 데이터가 참조 데이터로서 사용될지 여부를 결정하기 위한 수단; 및 이 결정에 기초하여, 비디오 데이터가 참조 데이터로서 사용되지 않는 경우 비디오 데이터를 제 1 비트 깊이에, 그리고 비디오 데이터가 참조 데이터로서 사용되는 경우 비디오 데이터를 제 2 비트 깊이에서 저장하기 위한 수단을 포함하는 비디오 데이터를 코딩하기 위한 장치에 관한 것이다.
다른 예에서, 본 개시물의 양태들은 일반적으로 명령들이 저장되어 있는 컴퓨터 판독가능 저장 매체에 관한 것이고, 이 명령들은 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터를 출력하기 위한 제 1 비트 깊이 및 비디오 데이터를 코딩하기 위한 제 2 비트 깊이를 결정하게 하고; 다른 비디오 데이터를 코딩하는 경우 비디오 데이터가 참조 데이터로서 사용될지 여부를 결정하게 하며; 이 결정에 기초하여, 비디오 데이터가 참조 데이터로서 사용되지 않는 경우 비디오 데이터를 제 1 비트 깊이에, 그리고 비디오 데이터가 참조 데이터로서 사용되는 경우 비디오 데이터를 제 2 비트 깊이에서 저장하게 하고, 제 1 비트 깊이는 제 2 비트 깊이보다 작다.
본 개시물의 하나 이상의 양태들의 상세들은 첨부된 도면들 및 이하의 상세한 설명에서 설명된다. 본 개시물에 설명된 기법들의 다른 피처들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1 은 본 개시물의 기법들을 이용할 수도 있는 예시의 비디오 인코딩 및 디코딩 시스템을 나타내는 블록도이다.
도 2 는 비디오 코딩에서 예시의 내부 비트 깊이 증가 (IBDI) 를 나타내는 블록도이다.
도 3 은 본 개시물의 기법들 중 어느 하나 또는 전부를 구현할 수도 있는 비디오 인코더의 일 예를 나타내는 블록도이다.
도 4 는 본 개시물의 기법들 중 어느 하나 또는 전부를 구현할 수도 있는 비디오 디코더의 일 예를 나타내는 블록도이다.
도 5 는 비디오 코딩에서 IBDI 관련 연산들을 수행하는 예시의 방법을 나타내는 플로우차트이다.
일반적으로, 본 개시물의 기법들은 비디오 코딩에 관한 것이다. 예를 들어, 비디오 코더는 내부 비트 깊이 증가 (IBDI) 동작을 사용하여 코딩되는 샘플의 비트 깊이를 증가시켜 내부 계산들에서 라운딩 에러들을 감소시킨다. 본 개시물의 기법들은 일반적으로, IBDI 를 사용하는 경우 메모리 활용을 관리하는 것뿐만 아니라 출력 비트 깊이를 결정하는 것에 관한 것이다. 즉, 예를 들어 본 개시물의 기법들은, 일부 예들에서 비디오 데이터가 참조 비디오 데이터로서 사용되지 않는 경우 비디오 데이터를 디코딩된 픽처 버퍼에 저장하기 전에, 보다 높은 비트 깊이로부터 보다 낮은 비트 깊이로 비디오 데이터를 라운딩하는 것을 포함한다. 다른 예에서, 본 개시물의 기법들은 증가된 비트 깊이에서 비디오 데이터를 출력할지 여부를 결정하는 것에 관한 것이다.
예를 들어, 비트 깊이는 일반적으로, 비디오 데이터의 소정 샘플에 대한 정보의 다수의 비트들 (예를 들어, 픽셀에 대한 루마 및/또는 크로마 값들) 을 지칭할 수도 있다. IBDI 를 수행하는 경우, 비디오 코더는 코딩되는 샘플의 비트 깊이를 제 1 수의 비트들 (예를 들어, "M" 개의 비트들) 로부터 제 2 의 증가된 수의 비트들 (예를 들어, "N" 개의 비트들) 로 확장할 수도 있다. 더 큰 비트 깊이는 내부 게산들에서 라운딩 에러들을 감소시키도록 의도된다. 예를 들어, 내부 계산들을 수행하는 경우 증가하는 산술 정밀도 (arithmetic precision) 는 이상적인 결과들을 달성하는데 도움을 줄 수도 있다. 증가된 비트 깊이로부터 이득을 볼 수도 있는 예시의 프로세스들은 다른 것들 중에서 모션 보상, 보간 필터링, 디블록킹 필터링, 및 가중화 예측을 포함할 수도 있다.
비디오 코더는 코딩 동안 (예를 들어, 예측 코딩 동안 참조 데이터로서 사용을 위해) 디코딩된 비디오 데이터를 디코딩된 픽처 버퍼에 저장할 수도 있다. 비디오 코더는 또한, 출력하기 (예를 들어, 디스플레이) 전에, 디코딩된 비디오 데이터를 디코딩된 픽처 버퍼에 저장할 수도 있다. (예를 들어, IBDI 를 사용하여) 증가된 비트 깊이에서 내부 계산들을 수행하는 경우, 비디오 코더는 증가된 비트 깊이에서 비디오 데이터를 저장할 수도 있다. 따라서, 비디오 코더는 디스플레이를 위해 디코딩된 픽처 버퍼로부터 비디오 데이터를 출력하기 전에 라운딩을 수행할 수도 있다.
증가된 비트 깊이에서 비디오 데이터를 저장하는 것은 상대적으로 많은 양의 메모리를 소비할 수도 있다. 그러나, 디코딩된 픽처 버퍼에 저장된 비디오 데이터 (예를 들어, 비디오 픽처들) 의 일부는 참조 데이터 (예를 들어, 참조 픽처들) 로서 사용되지 않을 수도 있다. 즉, 비디오 데이터의 소정 픽처들은 참조 데이터로서 사용되지 않을 수도 있으나, (예를 들어, 디스플레이를 위해) 출력되기 전에 디코딩된 픽처 버퍼에 여전히 저장될 수도 있다. 더욱이, 디코딩된 픽처 버퍼에 저장된 일부 비디오 픽처들은 코딩 프로세스 동안 "참조를 위해 사용되지 않은" 것으로서 비디오 코더에 의해 마킹될 수도 있다. 본 개시물은 일반적으로 "픽처들", "비디오 픽처들", 및 "참조 픽처들" 을 지칭하지만, 본 개시물의 기법들은 비디오 데이터의 다른 사이즈들/구성들의 비디오 데이터 (예를 들어, 비디오 블록들, 슬라이스들, 타일들, 등) 에 적용 가능한 것으로 이해되어야 한다.
본 개시물의 양태들은 일반적으로, 디스플레이를 위해 사용된 비트 깊이보다 더 높을 수도 있는 비디오 코더에서의 내부 비트 깊이를 사용하는 경우 메모리 활용을 관리하는 것에 관한 것이다. 예를 들어, 본 개시물의 기법들은 비디오 데이터가 참조 데이터로서 사용될 경우 비디오 데이터를 제 1 의 증가된 비트 깊이에서 저장하고, 디코딩된 비디오 픽처들이 참조 픽처들로서 사용되지 않을 경우 비디오 데이터를 감소된 비트 깊이에서 저장하는 것을 포함한다. 즉, 본 개시물의 기법들은 일반적으로, 비디오 데이터가 참조 비디오 데이터로서 사용되지 않는 경우 비디오 데이터를 디코딩된 픽처 버퍼에 저장하기 전에, 증가된 비트 깊이로부터 더 낮은 비트 깊이로 비디오 데이터를 라운딩하는 것에 관한 것이다. 예를 들어, 본 개시물의 기법들은 증가된 비트 깊이를 갖는 디코딩된 비디오 픽처를 증가된 비트 깊이에 대해, 더 낮은 비트 깊이를 갖는 디코딩된 비디오 픽처로 변환하는 것을 포함한다.
일반적으로, 더 낮은 비트 깊이는 비디오 데이터가 수신되었던 오리지널 비트 깊이와 동일할 수도 있다. 그러나, 더 낮은 비트 깊이는 또한, (예를 들어, 출력 비트 깊이가 증가된 비트 깊이보다 작은 예들에서) 비디오 데이터가 출력되는 비트 깊이 또는 증가된 비트 깊이보다 더 낮은 일부 다른 비트 깊이와 동일할 수도 있다. 또한, 본 개시물의 양태들은 비트 깊이를 낮추기 위해 비디오 데이터를 라운딩하는 것에 대하여 설명되었으나, 본 개시물의 기법들은 비트 깊이를 라운딩, (라운딩 없이) 끊음 (truncation), 또는 일부 다른 프로세스를 하는 것이든 또는 감소시키는 것이든 비디오 데이터의 샘플들의 비트 깊이를 감소시키는 것에 더 일반적으로 적용 가능하다.
본 개시물의 양태들은 또한, 증가된 비트 깊이 또는 감소된 비트 깊이 (예를 들어, 오리지널 비트 깊이) 에서 비디오 데이터를 출력할지 여부를 결정하는 것에 관한 것이다. 일부 예들에서, 이러한 결정은 비디오 데이터가 출력되는 (예를 들어, 비디오 디코더에 의해 출력되는) 비트 깊이와 연관된 시그널링에 따라 이루어질 수도 있다. 이러한 시그널링은 예를 들어, 비디오 디코더에 의해 디코딩될 수도 있는 인코딩된 비디오 데이터 비트스트림에 포함될 수도 있다. 즉, 본 개시물의 기법들은, 비디오 디코더가 예를 들어 비디오 데이터가 수신되었던 비트 깊이 ("오리지널" 비트 깊이로서 지칭됨) 와 동일한 감소된 비트 깊이에서 비디오 데이터를 출력할지 또는, 증가된 비트 비트 깊이 (예를 들어, IBDI 비트 깊이) 에서 비디오 데이터를 출력할지 여부를 비디오 디코더로 시그널링하는 것을 포함한다. 다른 예에서, 출력 비트 깊이는, 비디오 디코더로부터 디코딩된 비디오 데이터가 존재하는 디스플레이의 구성과 같은, 디코딩된 비디오 비트스트림의 일부로서 존재하지 않고 비디오 디코더 외부에 있는 소스로부터 도출된다.
비디오 코더는, 일부 예들에서 출력 비트 깊이를 결정하는 것에 관한 기법들로 본 개시물의 메모리 관리 기법들을 구현할 수도 있다. 비디오 코더가 오리지널 (더 낮은) 비트 깊이에서 비디오 데이터를 출력한다는 예들에서, 디코딩된 픽처가 참조 픽처로서 사용될 경우 디코딩된 픽처들이 단지 증가된 (IBDI) 비트 깊이에서 저장되도록, 비디오 코더는 전술된 메모리 관리 기법들을 구현할 수도 있다.
본 개시물의 양태들은 비디오 데이터를 인코딩 및/또는 디코딩하는 것과 연관된 메모리 요건들을 감소시킬 수도 있다. 예를 들어, 내부 코딩 연산들에 대한 비디오 데이터의 비트 깊이를 증가시키기 위해 IBDI 기법이 사용되지만, 비디오 데이터가 참조용으로는 사용되지 않는 예들에서, 본 개시물의 기법들은 데이터의 더 적은 비트들이 저장되게 한다. 또한, 기법들은 메모리 대역폭 소비를 감소시킬 수도 있다. 예를 들어, 다중 모듈들이 메모리 버스를 공유하여 코딩 동안 메모리에 액세스할 수도 있다. 이러한 예들에서, 본 개시물의 기법들에 따라 더 적은 비트들을 버퍼에 저장하는 것은 버퍼와 비디오 코딩 디바이스 간에 전송되는 데이터의 양을 감소시킬 수도 있다.
일부 예들에서, 메모리 대역폭을 감소시키는 것은 모바일 애플리케이션들 (예를 들어, 비디오 코더가 모바일 디바이스에 통합되는 애플리케이션들) 에서 유용할 수도 있다. 예를 들어, 전술된 바와 같이, 메모리에 대한 판독들 및 기입들은 메모리 버스 대역폭을 소비할 수도 있고, 이는 모바일 애플리케이션들에 상대적으로 제한될 수도 있다. 더욱이, 메모리에 대한 판독들 및 기입들은 모바일 디바이스에 의해 소비되는 전력량을 증가시킬 수도 있다 (예를 들어, 판독들 및 기입들 각각은 메모리 버스 및 메모리에 전력공급하는 것을 필요로 한다고 가정함). 따라서, 본 개시물의 기법들은 전력-제한된 디바이스들, 예컨대 모바일 디바이스들, 랩톱 컴퓨터들 및 일정한 전용 전력 공급기를 갖지 않는 다른 유형의 디바이스에서 전개될 수도 있다.
도 1 은 비디오 코더에서 IBDI 를 사용하는 경우 메모리 활용을 관리하기 위해 본 개시물에서 설명된 기법들을 이용하도록 구성될 수도 있는 예시의 비디오 인코딩 및 디코딩 시스템 (10) 을 나타내는 블록도이다. 도 1 의 예에서 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의한 디코딩을 위해 인코딩된 비디오를 생성하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 는 통신 채널 (16) 을 통해 목적지 디바이스 (14) 로 인코딩된 비디오를 송신할 수도 있고, 또는 인코딩된 비디오를 저장 매체 (34) 또는 파일 서버 (36) 상에 저장하여 원하는 경우 인코딩된 비디오는 목적지 디바이스 (14) 에 의해 액세스될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋-톱 박스들, 전화기 핸드셋들, 예컨대 소위 스마트폰들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들 등을 포함하는 광범위한 디바이스들 중 어느 하나를 포함할 수도 있다.
많은 경우들에서, 이러한 디바이스들은 무선 통신을 위해 구비될 수도 있다. 따라서, 통신 채널 (16) 은 무선 채널, 유선 채널, 또는 인코딩된 비디오 데이터의 송신에 적합한 무선 및 유선 채널들의 조합을 포함할 수도 있다. 예를 들어, 통신 채널 (16) 은 임의의 무선 또는 유선 통신 매체, 예컨대 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들, 또는 무선 및 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (16) 은 패킷 기반 네트워크, 예컨대 근거리 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수도 있다. 통신 채널 (16) 은 일반적으로, 유선 또는 무선 매체의 임의의 적합한 조합을 포함하는, 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 비디오 데이터를 송신하기 위한 임의의 적합한 통신 매체, 또는 상이한 통신 매체의 콜렉션을 나타낸다. 통신 채널 (16) 은 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 라우터들, 스위치들, 기지국들, 또는 임의의 다른 장비를 포함할 수도 있다.
본 개시물의 예들에 따라 비디오 코더에서 IBDI 를 사용하는 경우 메모리 활용을 관리하기 위해 본 개시물에 설명된 기법들은 다양한 멀티미디어 애플리케이션들, 예를 들어, 인터넷을 통해 예컨대 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 스트리밍 비디오 송신들 중 어느 하나의 지원으로 비디오 코딩에, 데이터 저장 매체 상에 저장을 위한 디지털 비디오의 인코딩에, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩에, 또는 다른 애플리케이션들에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 애플리케이션들, 예컨대 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니를 지원하기 위해 일 방향 또는 양 방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에 추가로 도시된 바와 같이, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (모뎀)(22) 및 송신기 (24) 를 포함한다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡처 디바이스와 같은 소스를 포함할 수도 있다. 비디오 캡처 디바이스는, 예로써 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 비디오 콘텐트 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스, 및/또는 소스 비디오와 같은 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 중 하나 이상을 포함할 수도 있다. 일 예로써, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 본 개시물의 기법들은 무선 애플리케이션들 또는 설정들에 반드시 제한되는 것은 아니고, 비디오 인코딩 및/또는 디코딩 성능들을 포함하는 비-무선 디바이스들에 적용될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 본원에 설명된 기법들을 지원할 수 있는 코딩 디바이스들의 단지 예들이다.
캡처된, 사전-캡처된, 또는 컴퓨터-생성된 비디오가 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 통신 표준, 예컨대 무선 통신 프로토콜에 따라 모뎀 (22) 에 의해 변조될 수도 있고, 송신기 (24) 를 통해 목적지 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 각종 믹서들, 필터들, 증폭기들 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하는, 데이터를 송신하기 위해 설계된 회로들을 포함할 수도 있다.
비디오 인코더 (20) 에 의해 인코딩되는 캡처된, 사전-캡처된, 또는 컴퓨터-생성된 비디오는 또한, 이후의 소비를 위해 저장 매체 (34) 또는 파일 서버 (36) 에 저장될 수도 있다. 저장 매체 (34) 는 블루-레이 디스크들, DVD 들, CD-ROM 들, 플래시 메모리, 또는 인코딩된 비디오를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체를 포함할 수도 있다. 저장 매체 (34) 상에 저장된 인코딩된 비디오는 그 후, 디코딩 및 플레이백을 위해 목적지 디바이스 (14) 에 의해 액세스될 수도 있다.
파일 서버 (36) 는 인코딩된 비디오를 저장하고 그 인코딩된 비디오를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예시의 파일 서버들은 (예를 들어, 웹사이트에 대한) 웹 서버, FTP 서버, NAS (network attached storage) 디바이스들, 로컬 디스크 드라이브, 또는 인코딩된 비디오 데이터를 저장하고 그것을 목적지 디바이스로 송신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 파일 서버 (36) 는 인터넷 접속을 포함하는, 임의의 표준 데이터 접속을 통해 목적지 디바이스 (14) 에 의해 액세스될 수도 있다. 이는, 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하기에 적합한 양자의 조합을 포함할 수도 있다. 파일 서버 (36) 로부터, 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양자의 조합일 수도 있다.
본 개시물은 일반적으로, 소정 정보를 다른 디바이스, 예컨대 비디오 디코더 (30) 로 "시그널링"하는 비디오 인코더 (20) 를 지칭할 수도 있다. 그러나, 비디오 인코더 (20) 는 비디오 데이터의 각종 인코딩된 부분들과 소정의 신택스 엘리먼트들을 연관시킴으로써 정보를 시그널링할 수도 있는 것으로 이해되어야 한다. 즉, 비디오 인코더 (20) 는 비디오 데이터의 각종 인코딩된 부분들의 헤더들에 소정의 신택스 엘리먼트들을 저장함으로써, 데이터, 예컨대 출력 비트 깊이를 "시그널링"할 수도 있다. 일부 경우들에서, 이러한 신택스 엘리먼트들은, 비디오 디코더 (30) 에 의해 수신 및 디코딩되기 전에 인코딩 및 저장 (예를 들어, 저장 매체 (34) 또는 파일 서버 (36) 에 저장) 될 수도 있다. 따라서, 용어 "시그널링"은 일반적으로, 인코딩 시에 신택스 엘리먼트들을 매체에 저장하는 경우 발생하고 그 후 이 매체에 저장된 후에 임의의 시간에 디코딩 디바이스에 의해 취출될 수도 있는 바와 같이, 이러한 통신이 실시간 또는 거의 실시간으로 발생하든 또는 어떤 기간 동안 발생하든 간에, 압축된 비디오 데이터를 디코딩하기 위한 신택스 또는 다른 데이터의 통신을 지칭할 수도 있다.
도 1 의 예에서 목적지 디바이스 (14) 는 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 목적지 디바이스 (14) 의 수신기 (26) 는 채널 (16) 을 통해 정보를 수신하고, 모뎀 (28) 은 이 정보를 복조하여 비디오 디코더 (30) 에 대한 복조된 비트스트림을 생성한다. 채널 (16) 을 통해 통신된 정보는 디코딩 비디오 데이터에서 비디오 디코더 (30) 에 의한 사용을 위해 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 정보를 포함할 수도 있다. 이러한 신택스는 또한, 저장 매체 (34) 또는 파일 서버 (36) 상에 저장된 인코딩된 비디오 데이터와 함께 포함될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 비디오 데이터를 인코딩 또는 디코딩할 수 있는 각각의 인코더-디코더 (CODEC) 의 일부를 형성할 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 목적지 디바이스 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하고, 또한 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 다양한 디스플레이 디바이스들, 예컨대 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스 중 어느 하나를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 압축 표준, 예컨대 현재 개발 중인 고효율성 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있고, HEVC 테스트 모델 (HM) 을 따를 수도 있다. 대안으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다른 특허 또는 산업 표준들, 예컨대 ITU-T H.264 표준, 다르게는 MPEG-4, Part 10, AVC (Advanced Video Coding), 또는 이러한 표준들의 확장들에 따라 동작할 수도 있다. 그러나, 본 개시물의 기법들은 임의의 특정 코딩 표준에 제한되지 않는다. 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다.
HEVC 표준은 코딩 유닛 (CU) 과 같은 비디오 데이터의 블록을 지칭한다. 일반적으로, CU 는, CU 가 사이즈 차이를 갖지 않는 것을 제외하고, H.264 에 따라 코딩된 매크로블록과 유사한 목적을 갖는다. 따라서, CU 는 서브-CU 들로 스플릿될 수도 있다. 일반적으로, 본 개시물에서 CU 에 대한 참조들은 픽처의 최대 코딩 유닛 (largest coding unit; LCU) 또는 LCU 의 서브-CU 를 지칭할 수도 있다. 예를 들어, 비트스트림 내의 신택스 데이터는 LCU 를 정의할 수도 있고, 이는 픽셀들의 수의 관점에서 최대 코딩 유닛이다. LCU 는 서브-CU 들로 분할될 수도 있고, 각각의 서브-CU 는 서브-CU 들로 분할될 수도 있다. 비트스트림에 대한 신택스 데이터는 최대 CU 깊이로서 지칭된, LCU 가 분할될 수도 있는 최대 횟수를 정의할 수도 있다. 따라서, 비트스트림은 또한, 최소 코딩 유닛 (smallest coding unit; SCU) 을 정의할 수도 있다.
LCU 는 계층적 쿼드트리 데이터 구조와 연관될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하는데, 여기서 루트 노드는 LCU 에 대응한다. CU 가 4 개의 서브-CU 들로 분할되면, CU 에 대응하는 노드는 4 개의 리프 노드들을 포함하고, 리프 노드들 각각은 서브-CU 들 중 하나에 대응한다. 쿼드트리 데이터 구조의 각 노드는 대응하는 CU 에 신택스 데이터를 제공할 수도 있다. 예를 들어, 쿼드트리에서의 노드는, 노드에 대응하는 CU 가 서브-CU 들로 분할되는지 여부를 나타내는, 스플릿 플래그를 포함할 수도 있다. CU 에 대한 신택스 엘리먼트들은 회귀적으로 정의될 수도 있고, CU 가 서브-CU 들로 분할되는지 여부에 의존할 수도 있다.
분할되지 않은 CU 는 하나 이상의 예측 유닛 (PU) 들을 포함할 수도 있다. 일반적으로, PU 는 대응하는 CU 의 전부 또는 일부를 나타내고, PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함한다. 예를 들어, PU 가 인트라-모드 인코딩되는 경우, PU 는 PU 에 대한 인트라-예측 모드를 설명하는 데이터를 포함할 수도 있다. 다른 예로써, PU 가 인터-모드 인코딩되는 경우, PU 는 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. 모션 벡터를 정의하는 데이터는, 예를 들어 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 레졸루션 (예를 들어, 1/4 픽셀 정확도 또는 1/8 픽셀 정확도), 모션 벡터가 가리키는 참조 픽처, 및/또는 모션 벡터에 대한 참조 리스트 (예를 들어, 리스트 0 또는 리스트 1) 를 설명할 수도 있다. PU(들)을 정의하는 CU 에 대한 데이터는 또한, 예를 들어 하나 이상의 PU 들로의 CU 의 파티셔닝을 설명할 수도 있다. 파티셔닝 모드들은 CU 가 코딩되지 않는지, 인트라-예측 모드 인코딩되는지, 또는 인터-예측 모드 인코딩되는지 여부 마다 다를 수도 있다.
하나 이상의 PU 들을 갖는 CU 는 또한, 하나 이상의 변환 유닛 (TU) 들을 포함할 수도 있다. PU 를 사용하는 예측 다음에, 비디오 인코더는 PU 에 대응하는 CU 의 부분에 대한 잔여 값을 계산할 수도 있다. 잔여 값은 변환, 양자화, 및 스캐닝될 수도 있다. TU 는 반드시 PU 의 크기에 제한되지 않는다. 따라서, TU 들은 동일한 CU 에 대해 대응하는 PU 들보다 더 크거나 더 작을 수도 있다. 일부 예들에서, TU 의 최대 크기는 대응하는 CU 의 크기일 수도 있다. 본 개시물은 또한, CU, PU, 또는 TU 중 어느 하나를 지칭하기 위해 용어 "블록" 을 사용한다.
일반적으로, 인코딩된 비디오 데이터는 예측 데이터 및 잔여 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 인트라-예측 모드 또는 인터-예측 모드 동안 예측 데이터를 생성할 수도 있다. 인트라-예측은 일반적으로, (프레임으로도 지칭될 수도 있는) 동일한 픽처의 이웃하는, 이전에 코딩된 블록들에서의 참조 샘플들에 대해 픽처의 블록에서의 픽셀 값들을 예측하는 것을 수반한다. 인터-예측은 일반적으로, 이전에 코딩된 픽처의 데이터에 대해 픽처의 블록에서의 픽셀 값들, 예를 들어 루마 및 크로마 값들을 예측하는 것을 수반한다.
인트라- 또는 인터-예측 다음에, 비디오 인코더 (20) 는 블록에 대한 잔여 픽셀 값들을 계산할 수도 있다. 잔여 값들은 일반적으로, 블록에 대한 예측된 픽셀 값 데이터와 블록의 참 (true) 픽셀 값 간의 차이들에 대응한다. 예를 들어, 잔여 값들은 코딩된 픽셀들과 예측 픽셀들 간의 차이들을 나타내는 픽셀 차이 값들을 포함할 수도 있다. 일부 예들에서, 코딩된 픽셀들은 코딩될 픽셀들의 블록과 연관될 수도 있고, 예측 픽셀들은 코딩된 블록을 예측하는데 사용된 픽셀들의 하나 이상의 블록들과 연관될 수도 있다.
블록의 잔여 값들을 더 압축하기 위해, 잔여 값들은 가능한 한 많은 데이터 (또한, "에너지" 로서 지칭됨) 를 가능한 한 적은 계수들로 압축하는 변환 계수들의 세트로 변환될 수도 있다. 변환 기법들은 이산 코사인 변환 (DCT) 프로세스 또는 개념적으로 유사한 프로세스, 정수 변환들, 웨이블릿 변환들, 또는 다른 유형들의 변환들을 포함할 수도 있다. 변환은 픽셀들의 잔여 값들을 공간 도메인에서 변환 도메인으로 컨버팅한다. 변환 계수들은 오리지널 블록과 보통 동일한 크기인 계수들의 2 차원 행렬에 대응한다. 다시 말하면, 잔여 데이터의 오리지널 블록에서의 픽셀들만큼 많은 변환 계수들이 존재한다. 그러나, 변환으로 인해, 많은 변환 계수들은 0 과 동일한 값들을 가질 수도 있다.
비디오 인코더 (20) 는 그 후, 변환 계수들의 레벨들을 양자화하여 비디오 데이터를 더 압축할 수도 있다. 일반적으로, 양자화는 상대적으로 큰 범위에서의 값들을 상대적으로 작은 범위에서의 값들로 맵핑하여, 양자화된 변환 계수들을 나타내는데 필요한 데이터의 양을 감소시키는 것을 수반한다. 보다 구체적으로, 양자화는 양자화 파라미터 (QP) 에 따라 적용될 수도 있는데, 양자화 파라미터는 양자화 동안 변환 계수에 적용되는 양자화기 스텝 사이즈로 인덱싱될 수도 있다. 비디오 인코더 (20) 는 QP 를 조정함으로써 양자화 정도 (예를 들어, 양자화기 스텝 사이즈) 를 수정할 수도 있다.
양자화 다음에, 비디오 인코더 (20) 는 변환 계수들을 스캐닝하여, 양자화된 변환 계수들을 포함하는 2 차원 행렬로부터 1 차원 벡터를 생성할 수도 있다. 비디오 인코더 (20) 는 그 후, 결과의 어레이를 엔트로핑 인코딩하여 데이터를 더욱 더 압축할 수도 있다. 일반적으로, 엔트로피 코딩은 양자화된 변환 계수들의 시퀀스 및/또는 다른 신택스 정보를 집합적으로 압축하는 하나 이상의 프로세스들을 포함한다. 예를 들어, 신택스 엘리먼트들, 예컨대 델타 QP 들, 예측 벡터들, 코딩 모드들, 필터들, 오프셋들, 또는 다른 정보는 또한, 엔트로피 코딩된 비트스트림에 포함될 수도 있다. 스캐닝된 계수들은 그 후, 예를 들어 CAVLC (content adaptive variable length coding), CABAC (context adaptive binary arithmetic coding), 또는 또 다른 엔트로피 코딩 프로세스를 통해 임의의 신택스 정보와 함께 엔트로피 코딩된다.
CABAC 를 수행하기 위해, 비디오 인코더 (20) 는 소정의 콘텍스트에 적용할 콘텍스트 모델을 선택하여 송신될 심볼들을 인코딩할 수도 있다. 콘텍스트는, 예를 들어 이웃하는 값들이 넌-제로인지 또는 제로인지 여부에 관련될 수도 있다. 비디오 인코더 (20) 는 또한, 신택스 엘리먼트들, 예컨대 적응적 스캔을 수행하는 경우 생성된 중요 계수 플래그 및 최종 계수 플래그를 엔트로피 인코딩할 수도 있다.
비디오 디코더 (30) 에 의해 수행된 비디오 디코딩 프로세스는 비디오 인코더 (20) 에 의해 수행된 인코딩 기법들에 대한 상호간의 (reciprocal) 기법들을 포함할 수도 있다. 일반적으로 상호적이지만, 비디오 디코더 (30) 는 일부 경우들에서 비디오 인코더 (20) 에 의해 수행된 것들과 유사한 기법들을 수행할 수도 있다. 다시 말하면, 비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 수행된 것들과 실질적으로 유사한 프로세스들을 수행할 수도 있다. 비디오 디코더 (30) 는 또한, 비디오 인코더 (20) 에 대하여 설명된 데이터를 포함하는 수신된 비트스트림에 포함된 다른 데이터 또는 신택스 엘리먼트들에 의존할 수도 있다.
일부 예들에서, 비디오 데이터를 디코딩하는 경우 사용될 수도 있는 소정의 파라미터 세트들을 비디오 인코더 (20) 는 생성할 수도 있고 비디오 디코더 (30) 는 이를 수신할 수도 있다. 예를 들어, H.264/AVC (Advanced Video Coding) 표준에서, 코딩된 비디오 세그먼트들은 NAL 유닛들로 조직되고, 이 유닛들은 비디오 텔레포니, 저장, 브로드캐스트, 또는 스트리밍과 같은 "네트워크-적합 (network-friendly)" 비디오 표현 어드레싱 애플리케이션들을 제공한다. NAL 유닛들은 비디오 코딩 계층 (Video Coding Layer; VCL) NAL 유닛들 및 넌-VCL NAL 유닛들로 분류될 수 있다. VCL 유닛들은 코어 압축 엔진을 포함할 수도 있고, 블록, 매크로블록, 및/또는 슬라이스 레벨 데이터를 포함할 수도 있다. 다른 NAL 유닛들은 넌-VCL NAL 유닛들일 수도 있다. 일부 예들에서, 통상적으로 주요 코딩된 픽처로서 표현된, 하나의 시간 인스턴스에서 코딩된 픽처는 하나 이상의 NAL 유닛들을 포함할 수도 있는 액세스 유닛에 포함될 수도 있다.
넌-VCL NAL 유닛들은 다른 것들 중에서 파라미터 세트 NAL 유닛들 및 SEI NAL 유닛들을 포함할 수도 있다. 파라미터 세트들은 (시퀀스 파라미터 세트들 (SPS) 에서의) 시퀀스-레벨 헤더 정보 및 (픽처 파라미터 세트들 (PPS) 에서의) 드물게 변하는 픽처-레벨 헤더 정보를 포함할 수도 있다. 파라미터 세트들 (예를 들어, PPS 및 SPS) 을 이용하면 드물게 변하는 정보는 각각의 시퀀스 또는 픽처에 대해 반복될 필요가 없고, 따라서 코딩 효율성이 개선될 수도 있다. 또한, 파라미터 세트들의 사용은 중요한 헤더 정보의 대역외 송신을 가능하게 하여, 오류 내성에 대한 불필요한 송신의 필요성을 회피할 수도 있다. 대역외 송신 예들에서, 파라미터 세트 NAL 유닛들은 SEI NAL 유닛들과 같은 다른 NAL 유닛들 외의 다른 채널들 상에서 송신될 수도 있다.
보충 강화 정보 (Supplemental Enhancement Information; SEI) 는 VCL NAL 유닛들로부터 코딩된 픽처들 샘픔들을 디코딩할 필요가 없는 정보를 포함할 수도 있지만, 디코딩, 디스플레이, 에러 내성, 및 다른 목적들에 관련된 프로세스들을 도울 수도 있다. SEI 메시지들은 넌-VCL NAL 유닛들에 포함될 수도 있다. SEI 메시지들은 일부 표준 사양들의 정규 부분이고, 따라서 표준 컴플라이언트 디코더 구현에 대해 항상 의무적인 것은 아니다. SEI 메시지들은 시퀀스 레벨 SEI 메시지들 또는 픽처 레벨 SEI 메시지들일 수도 있다. 일부 시퀀스 레벨 정보는 SEI 메시지들, 예컨대 SVC 의 예에서 확장성 정보 SEI 메시지들 및 MVC 에서 뷰 확장성 정보 SEI 메시지들에 포함될 수도 있다.
또한, 비디오 디코더 (30) 는, 일부 예들에서 소정 매체 포맷을 구현하는 표준을 따를 수도 있다. 예를 들어, ISO 기반 매체 파일 포맷은 매체의 상호교환, 관리, 편집 및 표현을 용이하게 하는 유연하고 확장 가능한 포맷에서의 표현을 위해 시한 (timed) 매체 정보를 포함하도록 설계된다. ISO 기반 매체 파일 포맷 (ISO/IEC 14496-12:2004) 은, 시간-기반 매체 파일들에 대한 일반적인 구조를 정의하는 MPEG-4 Part-12 에서 지정된다. 베이스 포맷은, H.264/MPEG-4 AVC 비디오 압축을 지원하도록 정의된 AVC (Advanced Video Coding) 파일 포맷 (ISO/IEC 14496-15), AVC 파일 포맷의 확장들인 3 GPP 파일 포맷, SVC 파일 포맷, 및 MVC 파일 포맷과 같은 군에서의 다른 파일 포맷들에 대한 기초로서 사용될 수도 있다.
일반적으로, ISO 기반 매체 파일 포맷은 시청각 표현들과 같은 매체 데이터의 시한 시퀀스들에 대한 타이밍, 구조, 및 매체 정보를 포함한다. 파일 구조는 객체-지향적일 수도 있다. 즉, 파일은 매우 단순히 기본 객체들로 분해될 수도 있고, 객체들의 구조는 그 유형으로부터 암시될 수도 있다. ISO 기반 매체 파일 포맷에 따르는 파일들은 "박스들" 로서 지칭된 일련의 객체들로서 형성될 수도 있다. 일반적으로, 데이터는 박스들 내에 포함되고, 통상적으로 파일 내에 다른 데이터는 존재하지 않는다. 따라서, "박스" 는 고유 유형 식별자 및 길이에 의해 정의된 객체 지향적 빌딩 블록이다.
다른 예에서, MPEG-4 파트-15 로도 알려진 AVC 파일 포맷은 ISO 기반 매체 파일 포맷의 확장이다. AVC 파일 포맷에서, 비디오 샘플은 "AVCSample" 에 포함되고, 이는 AVCDecoderConfigurationRecord, 뿐만 아니라 동일한 액세스 유닛의 NAL 유닛을 포함한다. AVCDecoderConfigurationRecord 는 또한, 단지 파라미터 세트들을 포함하는 "AVCParameterSample" 에 포함될 수 있다. AVCDecoderConfigurationRecord 의 신택스는 다음을 포함할 수도 있다:
Figure pat00001
상기 예에서, AVCDecoderConfigurationRecord 는 소정 프로파일 및 레벨 관련 엘리먼트들을 포함한다. 많은 비디오 코딩 표준들 중에서, H.264/AVC 는 신택스, 시맨틱, 및 에러 없는 비트스트림들의 디코딩 프로세스들을 정의하고, 이 중 어느 하나는 소정의 프로파일 또는 레벨을 따른다. H.264/AVC 는 인코더를 지정하지 않지만, 이 인코더는 생성된 비트스트림들이 디코더에 대한 표준-컴플라이언트인 것을 보장하는 것을 맡는다. 비디오 코딩 표준의 맥락에서, "프로파일" 은 그들에 적용하는 알고리즘들, 피처들, 또는 툴들 및 제약들의 서브세트에 대응한다. H.264 표준에 의해 정의된 바와 같이, 예를 들어 "프로파일" 은 H.264 표준에 의해 지정되는 전체 비트스트림 신택스의 서브세트이다. "레벨" 은 픽처들, 비트 레이트, 및 매크로블록 (MB) 프로세싱 레이트의 레졸루션에 관련되는, 예를 들어 디코더 메모리 및 컴퓨테이션과 같은 디코더 자원 소비의 제한들에 대응한다. 프로파일은 profile_idc (profile indicator) 값으로 시그널링될 수도 있는 한편, 레벨은 level_idc (level indicator) 값으로 시그널링될 수도 있다.
H.264/AVC 표준은, 예를 들어 소정 프로파일의 신택스에 의해 부과된 바운드들 내에서, 디코딩된 픽처들의 지정된 크기와 같은 비트스트림에서의 신택스 엘리먼트들에 의해 취해진 값들에 따라 인코더들 및 디코더들의 성능에서 큰 변화를 필요로하는 것이 여전히 가능하다는 것을 인식한다. H.264/AVC 표준은 또한, 많은 애플리케이션들에서, 특정 프로파일 내의 신택스의 모든 가설의 사용들을 다룰 수 있는 디코더를 구현하는 것이 현실적이지도 않고 경제적이지도 않다는 것을 인식한다. 따라서, H.264/AVC 표준은 비트스트림에서의 신택스 엘리먼트들의 값들에 부과된 제약들의 지정된 세트로서 "레벨" 을 정의한다. 이들 제약들은 값들에 대한 단순한 한계들일 수도 있다. 대안으로, 이들 제약들은 값들의 산술적 결합들에 대한 제약들의 형태를 취할 수도 있다 (예를 들어, 픽처 폭 곱하기 픽처 높이 곱하기 초당 디코딩된 픽처들의 수). H.264/AVC 표준은 또한, 개별의 구현들이 각각의 지원된 프로파일에 대해 상이한 레벨을 지원할 수도 있다는 것을 제공한다.
일부 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 또한, 다른 사설 표준 또는 산업 표준, 예컨대 MPEG-2 표준에 따라 동작할 수도 있다. MPEG-2 시스템 사양은, 압축된 멀티미디어 데이터 스트림들 (예를 들어, 비디오 및 오디오 스트림들) 이 다른 데이터와 함께 멀티플렉싱되어 디지털 송신 또는 저장에 적합한 단일의 데이터 스트림을 형성하는 방법을 설명한다. MPEG-2 시스템들의 최근 사양은 2006년 5월 "Information Technology-Generic Coding of Moving Pictures and Associated Audio: Systems, Recommendation H.222.0; International Organization for Standardization, ISO/IEC JTC1/SC29/WG11; Coding of Moving Pictures and Associated Audio" 에서 지정된다.
배경기술의 방식으로, MPEG-2 에 따르면, 기본 스트림은 프로그램의 단일의, 디지털적으로 코딩된 (가능하게는 MPEG-압축된) 컴포넌트이다. 예를 들어, 프로그램의 코딩된 비디오 또는 오디오 파트가 기본 스트림일 수 있다. 기본 스트림은, 프로그램 스트림 또는 전송 스트림으로 멀티플렉싱되기 전에 패킷화된 기본 스트림 (packetized elementary stream; PES) 으로 컨버팅될 수도 있다. 동일한 프로그램 내에서, stream_id 는 다른 것으로부터 하나의 기본 스트림에 속하는 PES-패킷들을 구별하는데 사용될 수도 있다.
프로그램 스트림은 일반적으로 하나 이상의 연관된 기본 스트림들을 포함하고, 통상적으로 가변 길이 패킷들을 갖는 패킷들을 포함한다. 또한, 프로그램 스트림은 일반적으로, 기여하는 기본 스트림들로부터 도출되고 소위 "팩 (pack)" 들로 조직되는 PES-패킷들을 포함한다. 팩은 임의의 순서로 기여하는 기본 스트림들 중 어느 하나로부터 취해진 팩-헤더, 선택적 시스템-헤더 및 임의의 수의 PES-패킷들을 포함한다. 시스템 헤더는, 포함되는 경우, 최대 데이터 레이트, 기여하는 비디오 및 오디오 기본 스트림들의 수, 및 타이밍 정보와 같은 프로그램 스트림의 특징들의 요약을 포함할 수도 있다. 비디오 디코더 (30) 와 같은 디코더는, 디코더가 프로그램 스트림을 디코딩할 수 있는지 여부를 결정하기 위해 시스템 헤더에 포함된 정보를 사용할 수도 있다.
전송 스트림은 잠재적으로 에러 발생이 쉬운 채널들을 통해 다수의 프로그램들의 동시적 전달에 의도된다. 전송 스트림은, 에러들에 대한 민감성을 감소시키는, 상대적으로 짧은 일련의 전송 패킷들을 포함한다. 전송 스트림은 에러 내성 및 많은 동시적 프로그램들을 운반하는 능력을 제공하는 한편, 이것은 또한 프로그램 스트림보다 더 정교한 멀티플렉스를 포함할 수도 있고, 생성하고 디-멀티플렉싱하기에 더 어려울 수도 있다.
13-비트 패킷 식별자 (PID) 필드가 사용되어 다른 기본 스트림들의 데이터를 운반하는 것들로부터 하나의 기본 스트림의 데이터를 포함하는 전송 패킷들을 구별하는데 사용될 수도 있다. 프로그램 특정 정보는 프로그램들과 컴포넌트 기본 스트림들 간의 관계를 지정할 수도 있다. 기본 프로그램 맵 테이블 (PMT) 은 MPEG-2 시스템 사양 내에서 지정된 많은 디스크립터들 중 일부로 꾸며질 수도 있다. 예시의 목적을 위해, PMT 는 PID 33 을 갖는 비디오, PID 57 을 갖는 영어 오디오, 및 PID 60 을 갖는 중국 오디오를 포함하는 넘버 3 을 갖는 프로그램을 포함한다고 가정한다. PMT 는 1 보다 많은 프로그램을 포함할 수도 있다.
통상적으로, PMT 와 연관된 디스크립터들은 프로그램에 관한 추가 정보 또는 그 컴포넌트 기본 스트림들을 전달한다. 디스크립터들은 비디오 인코딩 파라미터들, 오디오 인코딩 파라미터들, 언어 식별, 팬-앤-스캔 (pan-and-scan) 정보, 조건부 액세스 상세들, 저작권 정보 등을 포함한다. 브로드캐스터 또는 다른 사용자는 필요한 경우 추가의 사적인 디스크립터들을 정의할 수도 있다.
프로그램 스트림 맵 (program stream map; PSM) 은 프로그램 스트림에서의 기초 스트림들의 디스크립션 및 서로에 대한 그 관계를 제공한다. 전송 스트림으로 운반되는 경우, PSM 은 변형되지 않을 수도 있다. PSM 은, stream_id 가 OxBC 인 경우 PES 패킷으로서 나타난다. 프로그램 연관 테이블 (program association table; PAT) 은 그 프로그램 맵 테이블 (PMT) 을 포함하는 전송 패킷들의 PID 값과 함께, 이송 스트림에서 이용 가능한 모든 프로그램들의 완전한 리스트를 제공한다. 전술된 동일한 예를 사용하여, 프로그램 넘버 3 의 기본 스트림들을 지정하는 PMT 는 1001 의 PID 를 가질 수도 있고, 다른 PMT 는 1002 의 다른 PID 를 가질 수도 있다.
AVC (예를 들어, ITU-T Rec. H.264 | ISO/IEC 14496-10) 비디오 스트림들에 있어서, AVC 비디오 디스크립터는 예컨대, AVC 비디오 스트림의 SPS 에 포함된 프로파일 및 레벨 파라미터들 상에서, 연관된 AVC 비디오 스트림의 코딩 파라미터들을 식별하는 기본 정보를 제공한다.
예를 들어, AVC 비디오 디스크립터는 AVC 비디오 스트림에서의 AVC 24-시간 픽처들의 존재 및 AVC 스틸 픽처들의 존재를 시그널링할 수도 있다. 이러한 디스크립터가 PMT 또는 PSM (존재한다면) 에 포함되지 않으면, AVC 비디오 스트림은 AVC 스틸 픽처들 및 AVC 24-시간 픽처들을 포함하지 않을 수도 있다. 예시의 AVC 디스크립터는 아래의 예시의 표 1 에 포함된다:
Figure pat00002
비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 또한, MPEG 지정된 DASH (Dynamic Adaptive Streaming based on HTTP) 에 따를 수도 있다. DASH 에는, 매니페스트 파일, 즉 서비스의 표현을 설명하는 MPD (Media Presentation Descriptor) 가 존재한다. 예를 들어, MPD 는 일반적으로 코딩 및 렌더링 특징, 적응 세트들, MPD 가 대응하는 프로파일, 텍스트 유형 정보, 카메라 각도 정보, 레이팅 정보, 트릭 모드 정보 (예를 들어, 일시적 서브-시퀀스들을 포함하는 표현들을 나타내는 정보), 및/또는 (예를 들어, 플레이백 동안 매체 콘텐트로의 목표된 광고 삽입을 위한) 먼 주기들을 취출하는 정보와 같은 포함된 표현들의 특징들을 설명하는 데이터를 포함할 수도 있다.
*각각의 표현은 헤더 데이터 및 매체 데이터의 하나 이상의 세그먼트들을 포함할 수도 있다. 헤더 데이터는, 존재하는 경우 세그먼트들의 특징, 예를 들어 랜덤 액세스 포인트들의 일시적 로케이션들, 세그먼트들 내의 랜덤 액세스 포인트들에 대한 바이트 오프셋들, 세그먼트들의 URL (uniform resource locator) 들, 또는 세그먼트들의 다른 양태들을 설명할 수도 있다. 부가적으로 또는 대안으로, 이러한 특징은 MPD 내에 완전히 포함될 수도 있다. 각각의 세그먼트는 하나 이상의 코딩된 비디오 샘플들을 포함할 수도 있고, 샘플들 각각은 비디오 데이터의 슬라이스들 또는 픽처들을 포함할 수도 있다. 세그먼트들의 코딩된 비디오 샘플들 각각은 유사한 특징들, 예를 들어 높이, 폭, 및 대역폭 요건들을 가질 수도 있다. 세그먼트들 각각은 고유한 URI (uniform resource identifier), 예를 들어 URL (uniform resource locator) 과 연관될 수도 있다. 따라서, 세그먼트들 각각은 DASH 와 같은 스트리밍 네트워크 프로토콜을 사용하여 독립적으로 취출 가능할 수도 있다. 이 방식으로, 목적지 디바이스 (비디오 디코더, 예컨대 비디오 디코더 (30) 를 포함할 수 있음) 는 HTTP Get 요청을 사용하여 세그먼트들을 취출할 수도 있다.
도 1 에 도시되지는 않았으나, 일부 양태들에서 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함하여 공통 데이터 스트림 또는 별개의 데이터 스트림들에서 오디오 및 비디오 양자의 인코딩을 핸들링할 수도 있다. 적용 가능하다면, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 다양한 적합한 인코더 회로, 예컨대 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적 회로 (ASIC) 들, 필드 프로그래머블 게이트 어레이 (FPGA) 들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그 임의의 조합들 중 어느 하나로서 구현될 수도 있다. 소프트웨어에서 이 기법들은 부분적으로 구현되는 경우, 디바이스는 적합한, 비-일시적 컴퓨터 판독가능 매체에 소프트웨어 용 명령들을 저장하고, 하나 이상의 프로세서들을 사용하는 하드웨어에서 명령들을 실행하여 본 개시물의 기법들을 수행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있고, 이들 중 어느 하나는 각각의 디바이스에서 결합형 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
본 개시물의 양태들에 따르면, 이하의 도 3 및 도 4 에 대하여 더 상세히 설명되는 바와 같이, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 출력 비트 깊이보다 더 높은 내부 비트 깊이를 사용하는 경우 메모리 활용 관리를 수행할 수도 있다. 즉, 내부 비트 깊이는 일반적으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 내부에 있는 계산들을 위해 사용되는 비트 깊이를 지칭한다. 예시의 내부 계산들은 다른 것들 중에서 모션 보상, 보간 필터링, 디-블록킹 필터링, 및 가중화된 예측을 포함한다. 출력 비트 깊이는 일반적으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 로부터 송신되는 비트 깊이를 지칭한다. 예를 들어, 비디오 디코더 (30) 에 대하여, 출력 비트 깊이는 표현을 위해 디스플레이 디바이스 (32) 로 전송되는 샘플들의 비트 깊이 (예를 들어, 픽셀에 대한 루마 및/또는 크로마 값들) 이다.
예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 디코딩된 픽처들이 참조 픽처들로서 사용될 경우 제 1 의 증가된 비트 깊이에서 비디오 데이터를 저장할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 디코딩된 픽처들이 참조 픽처들로서 사용되지 않는 경우 감소된 비트 깊이 (예를 들어, 오리지널 비트 깊이) 에서 디코딩된 픽처들을 저장할 수도 있다. 즉, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는, 디코딩된 픽처가 참조 픽처로서 사용되지 않는 경우 디코딩된 픽처 버퍼에 비디오 데이터를 저장하기 전에 증가된 비트 깊이로부터 더 낮은 비트 깊이로 비디오 데이터를 라운딩할 수도 있다.
또한, 본 개시물의 양태들에 따르면, 비디오 인코더 (20) 는 비디오 디코더 (30) 에 대한 출력 포맷에 관한 소정의 인디케이션들 (예를 들어, 신택스 엘리먼트들) 을 제공할 수도 있고, 비디오 디코더 (30) 는 이를 디코딩할 수도 있다. 예를 들어, 본 개시물의 양태들은 또한, 비디오 데이터가 비디오 디코더 (30) 에 의해 출력될 비트 깊이에 연관된 시그널링에 관한 것이다. 예를 들어, 비디오 인코더 (20) 는, 비디오 데이터가 비디오 인코더 (20) 또는 비디오 디코더 (30) 에 의해 수신된 오리지널 비트 깊이에서 픽처들을 출력하거나, 또는 증가된 비트 깊이 (예를 들어, IBDI 비트 깊이) 에서 픽처들을 출력하는지 여부를 나타내는 신택스 엘리먼트들을 인코딩할 수도 있고, 비디오 디코더 (30) 는 이를 디코딩할 수도 있다.
이러한 시그널링은, 예를 들어 SPS, PPS, 또는 다른 파라미터 세트에, 또는 하나 이상의 SEI 메시지들에 제공될 수도 있다. 다른 예에서, 이러한 시그널링은 파일 포맷 (예를 들어, ISO 기반 매체 파일 포맷으로의 확장으로서), 또는 프로파일 및 레벨 정보를 포함하는 샘플로 제공될 수도 있다. 다른 예에서, MPEG-2 시스템에서 이러한 시그널링은 디스크립터에 제공될 수도 있다. 다른 예에서, DASH (Dynamic Adaptive Streaming over HTTP) 환경에서, 이러한 시그널링은 MPD (media presentation description) 파일에 제공될 수도 있다. 다른 예에서, 이러한 시그널링은 예를 들어 원격 제어를 통한 출력 비트 깊이를 결정하는 디스플레이 디바이스에 의해 사용될 수도 있다.
도 2 는 비디오 코딩에서 예시의 IBDI 동작들을 나타내는 블록도이다. 도 2 에 대하여 설명된 동작들은 일반적으로 비디오 코더 (38) 에 의해 수행되는 것으로서 설명되었으나, 이러한 동작들은 이하에서 상세히 설명되는 바와 같이 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 에 의해 수행될 수도 있다.
도 2 의 예에서, 비디오 코더 (38) 는 M-비트 소스 데이터 (33) 를 수신한다. 소스 데이터 (33) 는, 예를 들어 깊이에서의 "M" 비트들의 샘플들 (예를 들어, 픽셀 값들) 을 갖는 픽처들을 포함하고, 여기서 "M" 은 양의 값이다. 일 예에서, 소스 데이터 (33) 는 8 비트 깊이를 갖는 샘플들을 갖는 픽처들을 포함할 수도 있으나, 다른 비트 깊이들이 또한 사용될 수도 있다.
소스 데이터 (33) 를 수신 시에, 비디오 코더 (38) 는 소스 데이터 (33) 의 비트 깊이를 증가시킬 수도 있다. 예를 들어, 도 2 의 예에 도시된 바와 같이, 비디오 코더 (38) 는 소스 데이터 (22) 에 대하여 우향 시프트 연산들 (<<) 을 수행하여 소스 데이터 (33) 의 비트 깊이를 N-M 비트들 만큼 증가시킬 수도 있고, 여기서 "N" 은 "M" 보다 크다 (34). M 이 8 비트이고 N 이 10 비트인 예에서, 비디오 코더 (38) 는 우향 시프트 연산들을 수행하여 소스 데이터 (33) 를 2 비트들 만큼 확장할 수도 있다.
소스 데이터 (33) 의 비트 깊이를 증가시킨 후에, 비디오 코더 (38) 는 N-비트 코딩 연산들 (35) 을 수행할 수도 있다. 예를 들어, 비디오 코더 (38) 는 인트라-픽처 예측을 수행하고, 하나 이상의 보간 필터들을 적용하고, 하나 이상의 디-블록킹 필터들을 적용하고, 하나 이상의 공간 변환들을 적용하며, 또는 증가된 비트 깊이를 사용하여 다른 프로세스들을 수행할 수도 있다. 내부 (예를 들어, 비디오 코더 (38) 내부) 계산들에 대한 상대적으로 높은 (증가된) 비트 깊이를 사용하는 것은 또한, HAIP (High Accuracy Internal Process) 로서 지칭될 수도 있다. HAIP 를 적용함으로써, 내부 프로세스들의 정확도는 N-M 비트들 만큼 증가된다. 더 큰 비트 깊이는 내부 계산들에서 라운딩 에러들을 감소시키는 것을 도울 수도 있다. 예를 들어, 내부 계산들 (예를 들어, 디지털 필터 프로세싱) 을 수행하는 경우 연산 정밀도를 증가시켜 이상적인 결과들을 달성하는 것을 도울 수도 있다. 일부 예들에서, 비디오 코더 (38) 는 오리지널 M-비트 소스 데이터 (33) 를 사용하는 일부 연산들 및 N-비트, 비트-증가된 데이터를 사용하는 다른 연산들을 수행하도록 구성될 수도 있다.
비디오 코더 (38) 는 그 후, 데이터를 출력하기 전에 결과 데이터에 대한 라운딩 연산들 (잘라버림) 을 수행할 수도 있다. 예를 들어, 비디오 코더 (38) 는 비트-증가된 데이터를 오리지널 M-비트 깊이로 다시 라운딩 (36) 할 수도 있다. 따라서, 비디오 코더 (38) 는 M-비트 출력 데이터 (37) 를 출력할 수도 있다. 출력 데이터 (37) 는 (예를 들어, 출력 데이터 (37) 가 비디오 인코더로부터 인 경우) 인코딩된 비트스트림일 수도 있고, 또는 (예를 들어, 출력 데이터 (37) 가 비디오 디코더로부터인 경우) 디코딩된 픽처들일 수도 있다.
*도 3 은 비디오 코더에서 IBDI 를 사용하는 경우 메모리 활용을 관리하기 위한 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 일 예를 나타내는 블록도이다. 도 3 의 소정 컴포넌트들은 개념적인 목적들을 위해 단일 컴포넌트에 대하여 도시 및 설명될 수도 있으나, 하나 이상의 기능 유닛들을 포함할 수도 있다. 또한, 도 3 의 소정 컴포넌트들은 단일 컴포넌트에 대하여 도시 및 설명될 수도 있고, 이러한 컴포넌트들은 물리적으로, 하나 또는 하나 보다 많은 별개의 및/또는 통합된 유닛들로 이루어질 수도 있다.
도 3 에 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 픽처 내의 현재 비디오 블록을 수신한다. 도 3 의 예에서, 비디오 인코더 (20) 는 모드 선택 유닛 (40), IBDI 모듈 (41A, 41B, 및 41C)(총괄하여, IBDI 모듈들 (41)), 모션 추정 유닛 (42), 모션 보상 유닛 (44), 참조 픽처 메모리 (64), 합산기 (50), 변환 유닛 (52), 양자화 유닛 (54), 및 엔트로피 코딩 유닛 (56) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한, 역 양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62) 를 포함한다. (도 3 에는 도시되지 않은) 디블록킹 필터가 또한, 재구성된 비디오로부터 블록화 인공물 (blockiness artifact) 들을 제거하도록 블록 경계들을 필터링하기 위해 포함될 수도 있다. 원한다면, 디블록킹 필터는 통상적으로, 합산기 (62) 의 출력을 필터링한다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 픽처 또는 슬라이스를 수신한다. 픽처 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 일부 예들에서, IBDI 모듈 (41A) 은 코딩될 슬라이스 또는 수신된 비디오 픽처의 수신된 샘플들 (예를 들어, 픽셀들) 의 비트 깊이를 증가시킬 수도 있다. 예를 들어, 상기 도 2 에 대하여 설명된 바와 같이, IBDI 모듈 (41A) 은 수신된 샘플들의 비트 깊이를 증가시키도록 우향 시프트 연산을 수행할 수도 있다. 예시의 목적을 위해 일 예에서, 수신된 비디오 데이터는 8 의 비트 깊이를 갖는다고 가정한다 (예를 들어, 비디오 데이터의 각 샘플은 데이터의 8 비트들을 포함한다). 이 예에서, IBDI 모듈 (41A) 은 샘플들의 비트 깊이를 10 까지 증가시키도록 (예를 들어, 비디오 데이터의 각 샘플이 데이터의 10 비트를 포함하도록) 우향 시프트 연산들을 수행할 수도 있다. 다른 예에서, IBDI 모듈 (41A) 은 샘플들의 비트 깊이를 12 까지 증가시키도록 우향 시프트 연산들을 수행할 수도 있다. 다른 변형들이 또한 가능하다.
도 3 에 도시된 예에서, 비디오 인코더 (20) 의 모든 연산들이 증가된 비트 깊이이도록 IBDI 모듈 (41A) 은 비디오 인코더 (20) 의 상대적인 입력에 위치된다. 그러나, 일부 예들에서, IBDI 는 비디오 인코더 (20) 와 연관된 연산들의 서브 세트에만 적용될 수도 있는 것으로 이해되어야 한다. 예를 들어, IBDI 모듈 (41A) 은 비디오 인코더 (20) 내의 연산들 (예를 들어, 모션 추정 유닛 (42), 모션 보상 유닛 (44), 인트라 예측 유닛 (46), 변환 유닛 (52), 양자화 유닛 (54), 역양자화 유닛 (58), 역변환 유닛 (60), 디블록킹 또는 다른 필터들 (미도시), 또는 비디오 인코더 (20) 의 임의의 다른 유닛과 연관된 연산들) 의 전부 또는 임의의 서브-세트에 대해 IBDI 를 수행할 수도 있다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 참조 픽처들에서 하나 이상의 블록들에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 즉, 모션 추정 유닛 (42) 은, 동일한 뷰의 하나 이상의 참조 픽처들을 사용한 모션 추정과 같은 상이한 시간 인스턴스의 하나 이상의 참조 픽처들에서 하나 이상의 블록들에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행할 수도 있다. 또한, 모션 추정 유닛 (42) 은 상이한 뷰의 하나 이상의 참조 픽처들을 사용하는 모션 디스패리티와 같은, 동일한 시간 인스턴스의 하나 이상의 참조 픽처들에서의 하나 이상의 블록들에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행할 수도 있다.
인트라 예측 유닛 (46) 은 공간 압축을 제공하기 위해 코딩될 블록과 동일한 픽처 또는 슬라이스에서 하나 이상의 이웃하는 블록들에 대해 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 모드 선택 유닛 (40) 은, 예를 들어 에러 결과들에 기초하여 코딩 모드들, 인트라 또는 인터 중 하나를 선택하고, 결과의 인트라- 또는 인터-코딩된 블록을 합산기 (50) 에 제공하여 잔여 블록 데이터를 생성하고, 합산기 (62) 에 제공하여 참조 픽처에서의 사용을 위해 인코딩된 블록을 재구성할 수도 있다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 매우 통합될 수도 있으나, 개념적인 목적들을 위해 별개로 예시된다. 모션 추정은, 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어 현재 픽처 내에서 코딩되는 현재 블록 (또는 다른 코딩된 유닛) 에 대해 예측 참조 픽처 내의 예측 블록 (또는 다른 코딩된 유닛) 의 변위를 나타낼 수도 있다. 예측 블록은, SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이의 관점들에서, 코딩될 블록에 가깝게 매칭되는 것으로 발견되는 블록이다. 모션 벡터는 또한, 매크로블록의 파티션의 변위를 나타낼 수도 있다. 모션 보상은 모션 추정 유닛 (42) 에 의해 결정된 모션 벡터 (또는 변위 벡터) 에 기초하여 예측 블록을 페칭하거나 생성하는 것을 수반할 수도 있다. 다시, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예들에서, 기능적으로 통합될 수도 있다.
모션 추정 유닛 (42) 은 비디오 블록을 참조 픽처 메모리 (64) 에서의 참조 픽처의 비디오 블록들에 비교함으로써 인터-코딩된 픽처의 비디오 블록에 대한 모션 벡터를 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 참조 픽처의 서브-정수 픽셀들 예를 들어 I-프레임 또는 P-프레임을 보간할 수도 있다. ITU-T H.264 표준은 참조 픽처들의 "리스트들", 예를 들어 리스트 0 및 리스트 1 을 지칭한다. 리스트 0 은 현재 픽처보다 더 이른 디스플레이 순서를 갖는 참조 픽처들을 포함하는 한편, 리스트 1 은 현재 픽처보다 더 늦은 디스플레이 순서를 갖는 참조 픽처들을 포함한다. 다른 코딩 스킴들에서, 단일 리스트가 유지될 수도 있다.
모션 추정 유닛 (42) 은 참조 픽처 메모리 (64) 로부터의 하나 이상의 참조 픽처들의 블록들을 현재 픽처, 예를 들어 P-픽처 또는 B-픽처의 인코딩될 블록에 비교한다. 참조 픽처 메모리 (64) 에서의 참조 픽처들이 서브-정수 픽셀들에 대한 값들을 포함하는 경우, 모션 추정 유닛 (42) 에 의해 계산된 모션 벡터는 참조 픽처의 서브-정수 픽셀 로케이션에 대응하는 샘플을 지칭할 수도 있다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다. 모션 벡터에 의해 식별된 참조 픽처 블록은 예측 블록으로서 지칭될 수도 있다. 모션 보상 유닛 (44) 은 참조 픽처의 예측 블록에 대한 잔여 에러 값들을 계산한다.
변환 유닛 (52) 은 이산 코사인 변환 (DCT), 정수 변환, 또는 개념적으로 유사한 변환을 잔여 블록에 적용하여, 잔여 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 유닛 (52) 은 다른 변환들, DCT 와 개념적으로 유사한 H.264 표준에 의해 정의된 것들을 수행할 수도 있다. 웨이블릿 변환들, 정수 변환들, 서브-대역 변환들 또는 다른 유형들의 변환들이 또한 사용될 수 있다. 임의의 경우에서, 변환 유닛 (52) 은 잔여 블록에 변환을 적용하여, 잔여 변환 계수들의 블록을 생성한다. 변환 유닛 (52) 은 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 잔여 정보를 컨버팅할 수도 있다.
양자화 유닛 (54) 은 잔여 변환 계수들을 양자화하여, 비트 레이트를 또한 감소시킨다. 양자화 프로세스는 계수들 중 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변형될 수도 있다. 예를 들어, 양자화는 일반적으로 상대적으로 큰 범위 내의 값들을 상대적으로 작은 범위에서의 값들로 맵핑하고, 이에 따라 양자화된 변환 계수들을 나타내는데 필요한 데이터의 양을 감소시키는 것을 수반한다. 비디오 인코더는 미리정의된 알고리즘에 따라 양자화 파라미터 (QP) 를 적용함으로써 변환 계수들을 양자화할 수도 있다. 비디오 인코더는 QP 를 조정함으로써 변환 계수 값들에 적용된 양자화의 정도를 변형할 수도 있다.
양자화 다음에, 엔트로피 코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 CAVLC (content adaptive variable length coding), CABAC (context adaptive binary arithmetic coding), 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 엔트로피 코딩 유닛 (56) 에 의한 엔트로피 코딩 다음에, 인코딩된 비디오는 다른 디바이스로 송신되고 또는 이후의 송신 또는 취출을 위해 아카이빙될 수도 있다. CABAC (context adaptive binary arithmetic coding) 의 경우에서, 콘텍스트는 이웃하는 매크로블록들에 기초할 수도 있다.
일부 경우들에서, 엔트로피 코딩 유닛 (56) 또는 비디오 인코더 (20) 의 다른 유닛은 엔트로피 코딩에 추가하여, 다른 코딩 기능들을 수행하도록 구성될 수도 있다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 매크로블록들 및 파티션들에 대한 CBP 값들을 결정하도록 구성될 수도 있다. 또한, 일부 경우들에서, 엔트로피 코딩 유닛 (56) 은 매크로블록 또는 그 파티션에서의 계수들의 런 길이 코딩 (run length coding) 을 수행할 수도 있다. 특히, 엔트로피 코딩 유닛 (56) 은 지그 재그 스캔 또는 다른 스캔 패턴을 적용하여 매크로블록 또는 파티션에서의 변환 계수들을 스캔하고, 추가의 압축을 위해 제로들의 런들을 인코딩할 수도 있다. 엔트로피 코딩 유닛 (56) 은 또한, 인코딩된 비디오 비트스트림에서의 송신을 위해 적합한 신택스 엘리먼트들을 갖는 헤더 정보를 구성할 수도 있다.
엔트로피 코딩 전에, IBDI 모듈 (41B) 은 (예를 들어, IBDI 모듈 (41A) 에 의해 증가된 바와 같이) 증가된 비트 깊이로부터의 샘플 값들을 오리지널 비트 깊이로 라운딩할 수도 있다. 즉, 증가된 비트 깊이를 사용하여 내부 연산들을 수행한 후에, IBDI 모듈 (41B) 은 비디오 데이터를 오리지널 비트 깊이 (즉, 데이터가 비디오 인코더 (20) 에 의해 수신되었던 비트 깊이, 또는 비디오 데이터가 비디오 인코더 (20) 로부터 출력되기 전에 일부 다른 상대적으로 낮은 비트 깊이) 로 리턴할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 유닛 (60) 은 역양자화 및 역변환을 각각 적용하여 픽셀 도메인에서의 잔여 블록을, 예를 들어, 참조 블록으로서 이후의 사용을 위해 재구성한다. 모션 보상 유닛 (44) 은 참조 픽처 메모리 (64) 의 픽처들 중 하나의 예측 블록에 잔여 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 재구성된 잔여 블록에 하나 이상의 보간 필터들을 적용하여 모션 추정에서의 사용을 위해 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 재구성된 잔여 블록을 가산하여, 참조 픽처 메모리 (64) 에의 저장을 위한 재구성된 비디오 블록을 생성할 수도 있다. 재구성된 비디오 블록은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용되어, 후속의 비디오 픽처에서의 블록을 인터-코딩할 수도 있다.
일부 예들에서, 본 개시물의 양태들에 따라, IBDI 모듈 (41C) 은 IBDI 를 사용하는 경우 메모리 활용을 관리하는 것을 도울 수도 있다. 예를 들어, 재구성된 블록들을 참조 픽처 메모리 (64) 에 저장하기 전에, IBDI 모듈 (41C) 은 데이터가 참조 데이터로서 실제로 사용될지 여부를 결정할 수도 있다. 본 개시물의 양태들에 따르면, IBDI 모듈 (41C) 은 참조 데이터로서 사용될 비디오 데이터를 변경하지 않을 수도 있다. 차라리, 재구성된 픽처들은 IBDI (증가된) 비트 깊이에서 참조 픽처 메모리 (64) 에 저장될 수도 있다. 반대로, IBDI 모듈 (41C) 은 참조 픽처들로서 사용되지 않을 픽처들의 샘플들을 라운딩할 수도 있다. 즉, IBDI 모듈 (41C) 은 디코딩된 픽처들을 참조 픽처 메모리 (64) 에 저장하기 전에 디코딩된 픽처들의 비트 깊이를 감소시킬 수도 있다. 이 방식으로, 참조 픽처 메모리 (64) 에 저장된 데이터의 적어도 일부가 감소된 비트 깊이에서 저장될 수도 있기 때문에 비디오 인코더 (20) 는 IBDI 를 사용하는 경우 소정의 메모리 소비 절감을 달성할 수도 있다.
또한, 본 개시물의 일부 양태들에 따라, 비디오 인코더 (20) 는 후술되는 비디오 디코더 (30) 와 같은 비디오 디코더에 대한 출력 포맷에 관한 소정의 인디케이션들을 제공할 수도 있다. 예를 들어, 비디오 인코더 (20) 는, 비디오 디코더가 비디오 데이터가 수신되었던 비트 깊이에서 디코딩된 픽처들을 출력하는지 또는 증가된 비트 깊이 (예를 들어, IBDI 비트 깊이) 에서 디코딩된 픽처들을 출력하는지 여부를 나타내는 신택스 엘리먼트들을 인코딩할 수도 있다. 이러한 시그널링은, 예를 들어 SPS, PPS, 또는 다른 파라미터 세트에, 또는 SEI 메시지에 제공될 수도 있다. 다른 예에서, 이러한 시그널링은, 프로파일 및 레벨 정보를 포함하는 샘플에서 시그널링하는 파일 포맷 (예를 들어, ISO 기반 매체 파일 포맷으로의 확장으로서) 으로 제공될 수도 있다. 다른 예에서, MPEG-2 시스템에서, 이러한 시그널링은 디스크립터에 제공될 수도 있다. 다른 예에서, DASH (Dynamic Adaptive Streaming over HTTP) 환경에서, 이러한 시그널링은 매체 표현 디스크립터 (MPD) 파일에 제공될 수도 있다.
IBDI 모듈 (41) 이 별개의 모듈들, 비트 깊이를 증가시킬 책임이 있는 모듈 (41A), 출력하기 전에 비트 깊이를 절단 (truncating) 할 책임이 있는 모듈 (41B), 및 참조 픽처 메모리 (63) 에 저장하기 전에 비트 깊이를 절단할 책임이 있는 모듈 (41C) 로서 도시되었으나, 이러한 IBDI 모듈들 (41) 은 단일 모듈 안에 대단히 집적 및/또는 통합될 수도 있는 것으로 이해되어야 한다. 또한, 설명의 목적을 위해 별개의 모듈들로서 도시되었으나, IBDI 모듈들 (41) 은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있는 것으로 이해되어야 한다.
도 4 는 본 개시물의 기법들을 수행할 수도 있는 비디오 디코더 (30) 의 일 예를 나타내는 블록도이다. 도 4 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (130), IBDI 모듈 (131A 및 131B)(총괄하여, IBDI 모듈들 (131)), 모션 보상 유닛 (132), 인트라 예측 유닛 (134), 역양자화 유닛 (136), 역변환 유닛 (138), 참조 픽처 메모리 (142) 및 합산기 (140) 를 포함한다.
엔트로피 디코딩 유닛 (130) 은 수신된 비트스트림을 엔트로피 디코딩할 수도 있다. 예를 들어, 엔트로피 디코딩 유닛 (130) 은 일련화된 변환 계수들을 수신하고, 이 변환 계수들을 역 스캔하여 변환 계수들의 2 차원 어레이를 생성할 수도 있다.
IBDI 모듈 (131A) 은 엔트로피 디코딩된 샘플들의 비트 깊이를 증가시킬 수도 있다. 예를 들어, 상기 도 2 및 도 3 에 대하여 설명된 바와 같이, IBDI 모듈 (131A) 은 우향 시프트 연산을 수행하여 수신된 샘플들의 비트 깊이를 증가시킬 수도 있다. 예시의 목적을 위한 예에서, 수신된 비디오 데이터 (예를 들어, 인코딩된 비트스트림으로부터의 변환 계수들, 모션 벡터들 등) 는 8 의 비트 깊이를 갖는다 (예를 들어, 비디오 데이터의 각 샘플은 데이터의 8 비트들을 포함) 고 가정한다. 이 예에서, IBDI 모듈 (131A) 은 우향 시프트 연산들을 수행하여 샘플들의 비트 깊이를 10 까지 증가시킬 수도 있다. 다른 예에서, IBDI 모듈 (131A) 은 우향 시프트 연산들을 수행하여 샘플들의 비트 깊이를 12 까지 증가시킬 수도 있다. 다른 변형들이 또한, 가능하다.
모션 보상 유닛 (132) 은 엔트로피 디코딩 유닛 (130) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있다. 모션 보상 유닛 (132) 은 비트스트림에서 수신된 모션 벡터들을 사용하여, 참조 픽처 메모리 (142) 에서의 참조 픽처들에서 예측 블록을 식별할 수도 있다. 인트라 예측 유닛 (134) 은 비트스트림에서 수신된 인트라 예측 모드들을 사용하여 공간적으로 인접한 블록들로부터 예측 블록을 형성할 수도 있다. 역양자화 유닛 (136) 은 비트스트림으로 제공되고 엔트로피 디코딩 유닛 (130) 에 의해 디코딩된 양자화된 블록 계수들을 역양자화, 즉 탈양자화 (de-quantize) 할 수도 있다.
역변환 유닛 (158) 은 역변환, 예를 들어 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용하여, 픽셀 도메인에서 잔여 블록들을 생성한다. 모션 보상 유닛 (132) 은 모션 보상된 블록들을 생성, 가능하게는 보간 필터들에 기초하여 보간을 수행한다. 서브-픽셀 정확도를 갖고 모션 추정에 사용될 보간 필터들에 대한 식별자들은 신택스 엘리먼트들에 포함될 수도 있다. 모션 보상 유닛 (132) 은 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산하기 위해 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의해 사용된 바와 같은 보간 필터들을 사용할 수도 있다. 모션 보상 유닛 (132) 은 수신된 신택스 정보에 따라 비디오 인코더 (20) 에 의해 사용된 보간 필터들을 결정하고, 보간 필터들을 사용하여 예측 블록들을 생성할 수도 있다.
모션 보상 유닛 (132) 은 인코딩된 비디오 시퀀스의 픽처(들) 을 인코딩하는데 사용된 매크로블록들의 사이즈들을 결정하기 위한 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각각의 매크로블록이 파티셔닝되는 방법을 설명하는 파티션 정보, 각각의 파티션이 인코딩되는 방법을 나타내는 모드들, 각각의 인터-인코딩된 매크로블록 또는 파티션에 대한 하나 이상의 참조 픽처들 (또는 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보 중 일부를 사용한다.
합산기 (140) 는 모션 보상 유닛 (132) 또는 인트라-예측 유닛에 의해 생성된 대응하는 예측 블록들과 잔여 블록들을 합산하여, 디코딩된 블록들을 형성한다. 원하는 경우, 디블록킹 필터는 또한, 디코딩된 블록들을 필터링하도록 적용되어 블록화 인공물들을 제거할 수도 있다. 디코딩된 비디오 블록들은 그 후, 참조 픽처 메모리 (142) 에 저장되는데, 이는 후속의 모션 보상에 참조 블록들을 제공하고, 또한 디스플레이 디바이스 (예컨대, 도 1 의 디스플레이 디바이스 (32)) 상에 표현을 위해 디코딩된 비디오를 생성한다.
본 개시물의 양태들에 따르면, IBDI 모듈 (131B) 은 IBDI 를 사용하는 경우 메모리 활용을 관리하는 것을 도울 수도 있다. 예를 들어, 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 저장하기 전에, 비디오 디코더 (30) 는 예를 들어 다른 예측된 픽셀 값들을 디코딩하기 위해 픽처들이 참조 픽처들로서 사용될지 여부를 결정할 수도 있다. 본 개시물의 양태들에 따르면, IBDI 모듈 (131B) 은 참조 픽처들로서 사용될 픽처들을 변경하지 않을 수도 있다. 차라리, 비디오 디코더 (30) 는 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 IBDI (증가된) 비트 깊이에서 저장할 수도 있다. 즉, 도 2 에 도시되고 설명된 IBDI 예에 대하여, 비디오 디코더 (30) 는 디코딩된 픽처들을 "N" 비트 깊이를 갖고 참조 픽처 메모리 (142) 에 저장할 수도 있다.
반대로, IBDI 모듈 (131B) 은 참조 픽처들로서 사용되지 않을 디코딩된 픽처들의 샘플들을 라운딩할 수도 있다. 예를 들어, 소정 픽처들 (예컨대, 일부 B-프레임들 등) 은 참조 픽처들로서 사용되지 않을 수도 있다. 더욱이, 일부 경우들에서, 비디오 디코더 (30) 는 소정 픽처들을 "참조용으로 사용되지 않은" 으로서 마킹할 수도 있다. 예를 들어, 픽처는, 픽처가 디코딩되었으나 아직 디스플레이되지 않고 참조 픽처로서 사용되지 않은 경우 참조용으로 사용되지 않은 것으로서 마킹될 수도 있다. 따라서, 픽처가 참조 데이터로서 사용되지 않을 경우, IBDI 모듈 (131B) 은 디코딩된 픽처를 참조 픽처 메모리 (142) 에 저장하기 전에 디코딩된 픽처의 비트 깊이를 감소시킬 수도 있다. 즉, IBDI 모듈 (131B) 은 참조 픽처들로서 사용되지 않은 임의의 디코딩된 픽처들을 증가된 비트 깊이에서 오리지널, 더 낮은 비트 깊이로 컨버팅할 수도 있다. 예를 들어, IBDI 모듈 (131B) 은 초기에, 참조 픽처들로 사용되지 않은 디코딩된 픽처들을 더 낮은 비트 깊이에서 참조 픽처 메모리 (142) 에 저장할 수도 있다. IBDI 모듈은 또한, 원래 증가된 비트 깊이에서 저장되었으나 참조 픽처들로서 더 이상 사용되지 않는 디코딩된 픽처들을 더 낮은 비트 깊이로 컨버팅할 수도 있다. 이 방식에서, 참조 픽처 메모리 (142) 에 저장된 데이터의 적어도 일부가 증가된 비트 깊이에 대해 더 낮은 비트 깊이에서 저장될 수도 있기 때문에, 비디오 디코더 (30) 는 IBDI 를 사용하는 경우 소정의 메모리 소비 절감을 달성할 수도 있다.
본 개시물의 일부 양태들에 따르면, 비디오 디코더 (30) 는 픽처가 참조 픽처로서 사용되는지 여부에 관계없이 픽처들을 오리지널 비트 깊이 (예를 들어, 넌-IBDI 비트 깊이) 에서 유지할 수도 있다. 이 변형된 IBDI 프로세스에 따르면, 비디오 디코더 (30) 는, 픽처가 소정의 프로세스들, 예컨대 모션 보상에 사용되는 경우 비트 깊이를 증가시킬 수도 있다. 즉, 예를 들어 비디오 디코더 (30) 는 내부 디코딩 프로세스들, 예컨데 서브-픽셀 보간, 역양자화, 역변환, 및 최종 재구성에서 상대적으로 더 높은 정확도 계산들을 수행할 수도 있다. 그러나, IBDI 모듈 (131B) 은 그 후, 메모리 대역폭 소비를 감소시키기 위해 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 저장하기 전에 모든 디코딩된 픽처들 (참조 픽처들로서 사용된 픽처들을 포함) 의 비트 깊이를 감소시킬 수도 있다.
일부 예들에서, 비디오 디코더 (30) 는 데이터가 수신되었던 비트 깊이 (예를 들어, 수신된 인코딩된 비트스트림) 에 대해, 증가된 비트 깊이에서 디코딩된 픽처들을 출력할 수도 있다. 증가된 비트 깊이 데이터를 출력하는 것은 상대적으로 더 좋은 비디오 및/또는 오디오 품질을, 이러한 더 높은 비트 깊이 데이터를 핸들링할 수 있는 디코더들 및 디스플레이들에 제공할 수도 있다.
본 개시물의 양태들에 따르면, 비디오 디코더 (30) 는 수신된 출력 비트 깊이 인디케이터에 기초하여 증가된 비트 깊이 (예를 들어, IBDI 비트 깊이) 또는 오리지널 비트 깊이 (예를 들어, 인코딩된 비트스트림이 수신되었던 비트 깊이) 에서 디코딩된 픽처들을 출력할지 여부를 결정할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 출력 비트 깊이를 나타내는 소정의 신택스 엘리먼트들을 수신 및 디코딩하고, 디코딩된 신택스 엘리먼트에 따라 (예를 들어, 참조 픽처 메모리 (142) 로부터의) 디코딩된 픽처들을 출력할 수도 있다.
일 예에서, 출력 비트 깊이 인디케이터는 SPS, PPS 또는 다른 파라미터 세트, SEI 메시지, 및/또는 다른 메시지에 포함될 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 디코딩된 픽처들을 오리지널 비트 깊이 (예를 들어, 코딩된 비디오 데이터가 수신되었던 비트 깊이 또는 증가된 비트 깊이 (예를 들어, IBDI 비트 깊이)) 에서 출력할지 여부를 나타내는 SPS 또는 SEI 메시지로 플래그 (예를 들어, display_IBDI_depth_flag) 를 수신할 수도 있다. 디스플레이 비트 깊이 플래그가 제로 ("0") 로 설정되면, 비디오 디코더 (30) 는 디코딩된 픽처들을 오리지널 비트 깊이에서 출력할 수도 있는 반면에, 디스플레이 플래그가 일 ("1") 로 설정되면, 비디오 디코더 (30) 는 디코딩된 픽처들을 증가된 비트 깊이에서 출력할 수도 있다 (또는 그 반대일 수도 있음). 일부 예들에서, 디스플레이 비트 깊이 플래그는 단지, IBDI 프로세스가 인에이블되는 경우 (예를 들어, IBDI 가 인에이블되는 것을 나타내는, bitDepthIncreased 신택스 엘리먼트가 0 보다 큼) 에만 설정될 수도 있다.
본 개시물의 양태들에 따르면, 비디오 디코더 (30) 는 다양한 팩터들에 기초하여 디스플레이 비트 깊이 플래그를 변경하도록 경량의 트랜스코딩 (lightweight transcoding) 기법을 구현할 수도 있다. 예를 들어, 디스플레이 (예컨대, 도 1 에 도시된 디스플레이 디바이스 (32)) 가 단지 오리지널 비트 깊이 (예를 들어, 8-비트 깊이) 를 갖는 픽처들을 디스플레이할 수 있으면, 비디오 디코더 (30) 는 디스플레이 비트 깊이 플래그의 오리지널 값에 관계없이 디스플레이 비트 깊이 플래그를 0 으로 리셋할 수도 있다. 즉, 비디오 디코더 (30) 는, 디스플레이가 디코딩된 픽처들을 증가된 비트 깊이에서 나타낼 수 없다면 디스플레이 비트 깊이 플래그를 1 의 값에서 0 의 값으로 리셋할 수도 있다.
다른 예들에서, 플래그가 파라미터 세트 또는 다른 메시지에 포함되기 보다는, 플래그는 특정 코딩 표준과 연관된 구성 가능한 파라미터일 수도 있다. 예를 들어, 최근에 생겨난 HEVC 표준에 대하여, displayIBDIDepthFlag 파라미터는 디코딩 프로세스에서 사용될 수도 있다. 이 예에서, 파라미터는, 디스플레이 비트 깊이 플래그가 파라미터 세트 (예를 들어, SPS 또는 PPS) 또는 다른 메시지 (예를 들어, SEI 메시지) 에 포함되는지 여부에 관계없이 시스템 사양들에서 시그널링될 수도 있다.
다른 예들에서, 출력 비트 깊이 인디케이터는 파일 포맷에 (예를 들어, ISO 기반 매체 파일 포맷으로의 확장으로서) 포함될 수도 있다. 예를 들어, 출력 비트 깊이 인디케이터는 프로파일 및 레벨 정보를 포함하는 샘플에 포함될 수도 있다. 예시의 목적을 위한 예에서, 출력 비트 깊이 인디케이터는 도 1 에 대하여 전술된 AVC 파일 포맷과 동일한 AVCDecoderConfigurationRecord 를 공유할 수도 있다. 그러나, 본 개시물의 양태들에 따르면, 파일 포맷은 다음의 포맷에 따라 변경될 수도 있다:
Figure pat00003
이 예에서, 제로 ("0") 와 동일한 displayIBDIDepth 는 IBDI 가 비트스트림에서 사용되지 않는지 또는 출력 신호 (예를 들어, 비디오 디코더 (30) 로부터의 디코딩된 픽처들) 가 더 낮은 넌-IBDI 비트-깊이 (예를 들어, M-비트) 를 사용하는지를 나타낼 수도 있다. 대안으로, 일 ("1") 과 동일한 displayIBDIDepth 는, IBDI 가 사용되고 출력 신호가 증가된 비트 깊이를 갖고 디스플레이된다는 것을 나타낼 수도 있다. 본 개시물의 일부 양태들에 따르면, 디스플레이 비트 깊이 플래그 (예를 들어, display_IBDI_depth_flag) 가 SPS 에 (또는, 일부 예들에서 SEI 메시지에) 존재하는 경우, displayIBDIDepth 는 display_IBDI_depth_flag 와 동일하게 설정될 수도 있다. 상기 도시된 예에서, IBDI_bit_depth_luma_minus8 plus 8 은 디스플레이를 위해 사용되는 비트-깊이 (N) 를 나타낼 수도 있다. 즉, IBDI_bit_depth_luma_minus8+8 은 (N) 과 동일하고, 이 N 은 bitDepthIncreased 와 결합된 비트 깊이 (M) 과 동일할 수도 있다.
상기 예는 단지 예시의 목적을 위해 제공되고, 다른 예들이 또한 가능하다는 것으로 이해되어야 한다. 예를 들어, 전술된 AVCDecoderConfigurationRecord 는 HEVCDecoderConfigurationRecord 로 개명될 수도 있으나, AVC 파일 포맷으로 AVCDecoderConfigurationRecord 와 같은 최근에 생겨난 HEVC 파일 포맷으로 동일한 역할을 할 수도 있다.
다른 예에서, 출력 비트 깊이 인디케이터는 디스크립터, 예컨대 MPEG-2 디스크립터에 포함될 수도 있다. 예를 들어, HEVC MPEG-2 시스템 설계는 전술된 바와 같이 AVC 의 설계와 유사할 수도 있다. 즉, HEVC MPEG-2 는 AVC 비디오 디스크립터를 재사용하여 아래의 표 2 에 예시된 변화들로, HEVC 비트스트림을 설명할 수도 있다:
Figure pat00004
표 2 의 예에서, 제로 ("0") 와 동일한 display_IBDI_depth 는 IBDI 가 비트스트림에서 사용되지 않는지 또는 디스플레이될 출력 신호 (예를 들어, 비디오 디코더 (30) 로부터의 디코딩된 픽처들) 가 더 낮은 넌-IBDI 비트-깊이 (예를 들어, M-비트) 를 사용하는지를 나타낼 수도 있다. 대안으로, 일 ("1") 과 동일한 display_IBDI_depth 는, IBDI 가 사용되고 출력 신호가 증가된 비트 깊이 (예를 들어, N-비트, 여기서 N 은 M 보다 큼) 를 갖고 디스플레이되는지를 나타낼 수도 있다. display_IBDI_depth_flag 가 SPS 에 나타나는 경우, display_IBDI_depth 는 display_IBDI_depth_flag 와 동일하게 설정될 수도 있다. 또한, 상기 도시된 예에서, IBDI_bit_depth_minus8 plus 8 은 디스플레이를 위해 사용되는 비트-깊이 (N) 를 나타낼 수도 있다. 즉, IBDI_bit_depth_minus8+8 은 (N) 과 동일하고, 이 N 은 bitDepthIncreased 과 결합된 비트 깊이 (M) 와 동일할 수도 있다. 표 2 에 도시된 예는 단지 예시를 위해 제공되는 것으로 이해되어야 한다. 즉, 다른 예에서, 디스크립터는 또한, 유사한 신택스 엘리먼트들을 갖는 HEVC 디스크립터 (또는 다른 코딩 표준에 대응하는 디스크립터) 로 명명될 수도 있다.
또 다른 예에서, 출력 비트 깊이 인디케이터는 MPD 파일에 (예를 들어, DASH 환경에) 포함될 수도 있다. 예를 들어, 전술된 바와 같이, MPD 는 디코딩되는데 이용 가능한 비디오 데이터의 상이한 표현들을 설명할 수도 있다. 예를 들어, 전술된 바와 같이, MPD 는 포함된 표현들의 특징들, 예컨대, 코딩 및 렌더링 특징들, 적응 세트들, MPD 가 대응하는 프로파일, 및 다양한 다른 정보를 일반적으로 설명하는 데이터를 포함할 수도 있다.
본 개시물의 양태들에 따르면, 출력 비트 깊이는 인캡슐레이션 (예를 들어, 송신을 위해 비디오 디코더 (30) 에 패키징) 시에 콘텐트를 제공할 책임이 있는 서버에 의해 결정될 수도 있다. 즉, 예를 들어 서비스 제공자는, 추가의 비트 깊이가 소정 콘텐트의 디스플레이에 필요하지 않다는 것을 결정할 수도 있다. 이러한 경우들에서, 서비스 제공자는, 표현이 IBDI 비트-깊이에서 디스플레이되지 않는다는 것을 나타내는 IBDI 플래그 (예를 들어, MPD 에서) 를 설정할 수도 있다. 대안으로, 서비스 제공자는, 추가의 비트 깊이가 특정 표현의 데이터를 디스플레이하도록 사용될 수도 있다고 결정할 수도 있고, 따라서 디스플레이 비트-깊이 인디케이터를 설정할 수도 있다. MPD 의 예는 아래의 표 3 에 도시된다:
엘리먼트 또는 속성 명칭 사용 디스크립션
그룹,
표현,
서브표현
엘리먼트
@width O @parx 및 @pary 속성들에 의해 결정된 스퀘어 그리드 상의 대안의 표현에서 비디오 매체 유형의 수평 시각 표현 크기를 지정.
@height O @parx 및 @pary 속성들에 의해 결정된 스퀘어 그리드 상의 대안의 표현에서 비디오 매체 유형의 수직 시각 표현 크기를 지정. 이 값은 비디오의 수직 픽셀 레졸루션과 동일해야 함.
@parx O (임의의 유닛들로)인코딩된 비디오 픽셀들 (샘플들)의 수평 크기를 나타냄. 디폴트 값은 1 임.
@pary O (@parx 와 동일한 임의의 유닛들로)인코딩된 비디오 픽셀들의 수직 크기를 나타냄. 디폴트 값은 1 임.
@frameRate O 점진적 또는 인터레이싱된 비디오 각각에 대한 표현에서 비디오 매체 유형의 출력 프레임 레이트 또는 출력 필드 레이터를 지정. 프레임 또는 필드 레이트가 가변적이면, 값은 표현의 전체 지속기간 동안 평균 프레임 또는 필드 레이트임. 멀티뷰 보충 표현의 경우, 값은 단일 뷰의 프레임 또는 필드 레이트를 나타냄.
@IBDIDepth O 이 엘리먼트는, 존재하는 경우, HEVC 표현이 IBDIDepth (N-bit) 의 더 높은 비트 깊이로 디스플레이된다는 것을 나타냄. 이것이 시그널링되지 않는 경우, 이 표현은 보통의 비트-깊이 (M-비트) 로 디스플레이되는 것임. 이 값은, HEVC 비트스트림의 SPS 에서 나타낸 바와 같이, M+ bitDepthIncreased 와 동일함.
@lang O IETF RFC 5646 에 따라 이 표현에 대한 언어 코드(들)을 공표함.
다중 언어 코드들은 화이트-스페이스 분리된 리스트로서 공표될 수도 있고 이 표현은 표시된 언어들 중 어느 하나에 대한 선호에 적합할 수도 있음. 매체가 각각의 언어 하에서 제공되는 풀 인디케이션을 위해, 초기설정 세그먼트 또는 매체 세그먼트가 액세스되어야 할 수도 있음.
@numberOfChannels O 단일 값은 오디오 출력 채널들의 수 또는 이용 가능한 오디오 채널들의 리스트를 설명함. 예를 들어, MPEG 서라운드 표현에 대해 @numberOfChannels="5.1 2"
@SamplingRate O 단일 값은 오디오 스트림의 샘플 레이트 또는 오디오 스트림에서 이용 가능한 샘플 레이트들의 리스트를 설명함, 예를 들어 SBR 툴 인에이블되고 백워드 호환가능한 시그널링을 갖는 HE-AAC 스트림에 대해 @SamplingRate="44100 22050".
@mimeType M 존재하면, 초기설정 세그먼트의 MIME 유형을 제공; 초기설정 세그먼트가 존재하지 않으면 제 1 매체 세그먼트의 MIME 유형을 제공함. 적용 가능한 경우, 이 MIME 유형은 모든 매체 유형들에 대한 코덱 파라미터들을 포함할 것임. 코덱 파라미터들은 또한, 적용 가능한 경우 프로파일 및 레벨 정보를 포함할 것임.
@group O 그룹을 지정함.
@maximumRAPPeriod O RAP 들 간의 최대 시간 간격을 이 표현에서 초들로 제공함. 존재하지 않으면, 이것은 지정되지 않음. 임의의 RAP 의 인덱스 및 표현 시간은 세그먼트 인덱스에 의해 기록되거나 '참'으로 설정된 @startWithRAP 속성에 의해 암시적으로 정의됨.
@startWithRAP O '참'인 경우, 표현에서의 모든 세그먼트들이 RAP (데이터의 관점 및 표현 시간의 관점 양자) 으로 시작한다는 것을 나타냄. RAP 의 표현 시간은 세그먼트 인덱스에 의해 명시적으로 제공되거나, @segmentAlignmentFlag 가 참이면 이전의 세그먼트의 최종 샘플의 표현 시간으로부터 추론될 수도 있음.
ContentProtection 0
...N
이 표현 또는 표현의 그룹에 대한 콘텐트 보호의 사용에 관한 정보를 제공함.
존재하지 않는 경우 콘텐트는 암호화되지도 않고 DRM 보호되지도 않음.
다수의 엘리먼트들이 존재하는 경우, 엘리먼트들 중 하나의 성공적인 프로세싱은 설명된 표현들을 액세스하기에 충분함.
Accessibility 0
...N
접근성 정보 스킴에 대한 정보를 제공함
Rating 0
...N
정보 콘텐트 레이팅 스킴을 제공함
Viewpoint 0
...N
정보 콘텐트 뷰 포인트 통지 스킴을 제공함
MultipleViews 0
...1
다수의 뷰들을 포함하는 비디오에 대한 정보를 제공함
범례:
속성들에 대해: M=Mandatory, O=Optional, OD=Optional with Default Value, CM=Conditionally Mandatory.
엘리먼트들에 대해: <minOccurs>..<maxOccurs>(N=unbounded)
엘리먼트들은 볼드체; 속성들은 볼드체가 아니고 @이 앞에 있음.
전술된 바와 같이, @IBDIDepth 엘리먼트가 나타나는 경우, 이 엘리먼트는, HEVC 표현 (또는 다른 코딩 표준의 표현) 이 IBDIDepth (N-bit) 의 증가된 비트 깊이로 디스플레이되도록 사용될 수도 있다. 엘리먼트가 나타나지 않는 경우, 이 표현은 보통의 비트-깊이 (M-비트) 로 디스플레이되는 것이다. @IBDIDepth 의 값은, 비트스트림의 SPS (또는 SEI 메시지) 에서 나타낸 바와 같이, M 비트-깊이 + bitDepthIncreased 와 동일할 수도 있다.
일부 예들에서, 전술된 바와 같이, 디코딩된 픽처들이 참조 픽처들로서 사용되는지 여부에 관계없이 참조 픽처 메모리 (142) 에 저장되는 모든 디코딩된 픽처들의 라운딩을 포함하는 변경된 IBDI 프로세스가 사용될 수도 있다. 이러한 예들에서, 추가의 인디케이터 (예를 들어, 플래그) 는 제 1 IBDI 프로세스를 사용할지 또는 제 2 의 변경된 IBDI 프로세스를 사용할지 여부를 나타내도록 구현될 수도 있다. 이러한 인디케이터는 전술된 바와 같이 SPS, SEI 메시지 등으로 제공될 수도 있다. 예를 들어, 인디케이터가 참인 경우, 변경된 IBDI 프로세스가 픽처들의 시퀀스에 대해 사용될 수도 있다. 대안으로, 인디케이터가 거짓인 경우, 현재의 IBDI 프로세스가 픽처들의 시퀀스에 대해 사용될 수도 있다.
전술된 출력 비트 깊이 인디케이터들은 일반적으로 비디오 디코더 (30) 에 대하여 설명되었으나, 이러한 인디케이터들은 하나 이상의 디바이스들에 의해 생성 및/또는 송신될 수도 있는 것으로 이해되어야 한다. 예를 들어, 전술된 디스플레이 비트 깊이 인디케이터들은 비디오 인코더 (20)(도 1 및 도 2), (상기 DASH 예에 대하여 설명된 바와 같이) 콘텐트를 다른 프로세서들에 제공하기 위한 서버 또는 다른 컴포넌트, 프로세싱 유닛들, 하드웨어 기반 코딩 유닛들, 예컨대 인코더/디코더 (CODEC) 들 등을 포함하는 다양한 비디오 코더들에 의해 생성될 수도 있다.
본 개시물의 양태들에 따르면, 비디오 디코더 (30) 는 출력 비트 깊이 인디케이터를 수신하고, 수신된 출력 비트 깊이 인디케이터에 기초하여 증가된 비트 깊이 또는 오리지널 비트 깊이에서 디코딩된 픽처들을 출력할지 여부를 결정할 수도 있다. 비디오 디코더 (30) 가 증가된 비트 깊이에서 디코딩된 픽처들을 출력하는 예들에서, IBDI 모듈 (131B) 은 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 저장하기 전에 디코딩된 픽처들을 변경하지 않을 수도 있다. 즉, 전술된 바와 같이, IBDI 가 구현되는 경우, IBDI 모듈 (131A) 은 소정의 내부 코딩 연산들을 수행하기 전에 비디오 데이터의 비트 깊이를 증가시킬 수도 있다. 비디오 디코더 (30) 가 증가된 비트 깊이에서 디코딩된 픽처들을 출력하는 경우, IBDI 모듈 (131B) 은 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 저장하기 전에 비디오 데이터의 비트 깊이를 라운딩하지 않을 수도 있다. 따라서, 비디오 디코더 (30) 는 증가된 비트 깊이에서 (예를 들어, 디스플레이, 예컨대 디스플레이 디바이스 (32)(도 1) 에서의 표현을 위해) 참조 픽처 메모리 (142) 로부터 디코딩된 픽처들을 출력할 수도 있다.
대안으로, 비디오 디코더 (30) 가 넌-IBDI 비트-깊이에서 디코딩된 픽처들을 출력하는 예들에서, IBDI 모듈 (131B) 은 디코딩된 픽처들을 참조 픽처 메모리 (142) 에 저장하는 경우 본 개시물에 설명된 기법들을 구현할 수도 있다. 즉, 일부 예들에서, IBDI 모듈 (131B) 은 참조 픽처들로서 사용될 픽처들의 샘플들을 변경하지 않을 수도 있다. 차라리, 비디오 디코더 (30) 는 IBDI (증가된) 비트 깊이에서 참조 픽처 메모리 (142) 에 디코딩된 픽처들을 저장할 수도 있다. 반대로, 본 개시물의 양태들에 따르면, IBDI 모듈 (131B) 은 참조 픽처들로서 사용되지 않은 픽처들의 샘플들을 라운딩할 수도 있다.
IBDI 모듈들 (131) 은 별개의 모듈들로서 도시되었으나, 이러한 IBDI 모듈들 (131) 은 단일 모듈 안에 대단히 집적 및/또는 통합될 수도 있는 것으로 이해되어야 한다. 또한, 설명의 목적을 위해 별개의 모듈들로서 도시되었으나, IBDI 모듈들 (131) 은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있는 것으로 이해되어야 한다.
도 5 는 비디오 코딩과 연관된 동작들을 수행하는 경우 비트 깊이를 증가시키는 것을 나타내는 블록도이다. 도 5 에 도시된 예는 일반적으로, 비디오 코더에 의해 수행되는 것으로서 설명된다. 일부 예들에서, 도 5 의 기법은 전술된 비디오 인코더 (20)(도 1 및 도 2) 또는 비디오 디코더 (30)(도 1 및 도 3) 에 의해 수행될 수도 있다는 것으로 이해되어야 한다. 다른 예들에서, 도 5 의 기법은 다양한 다른 프로세서들, 프로세싱 유닛들, 하드웨어-기반 코딩 유닛들, 예컨대 인코더/디코더 (CODEC) 들 등에 의해 수행될 수도 있다.
도 5 에 도시된 예에서, 비디오 코더는 예컨대 전술된 바와 같은 IBDI 프로세스를 사용하여, 증가된 비트 깊이에서 비디오 데이터에 대해 하나 이상의 비디오 코딩 연산들을 수행할 수도 있다 (160). 예를 들어, 비디오 코더는 8 의 비트 깊이를 갖는 비디오 데이터의 하나 이상의 샘플들을 수신할 수도 있고, 8 내지 10, 12, 또는 다른 더 높은 비트 깊이까지 비트 깊이를 증가시킬 수도 있다. 비디오 코더는 증가된 비트 깊이를 사용하여 비디오 데이터에 대해 동작들, 예컨대, 인트라-프레임 예측을 수행하는 것, 하나 이상의 보간 필터들 (서브-픽셀 보간을 포함) 을 적용하는 것, 하나 이상의 디-블록킹 필터들을 적용하는 것, 하나 이상의 공간 변환들 (또는 역 변환들) 을 적용하는 것, 양자화를 수행하는 것, 또는 다른 프로세스들을 수행하는 것을 수행할 수도 있다.
비디오 코더는 또한, 증가된 비트 깊이에서 비디오 데이터를, 즉, 디코딩된 픽처들을 출력할지 여부를 결정할 수도 있다 (162). 본 개시물의 양태들에 따르면, 비디오 코더는 예를 들어 수신된 출력 비트 깊이 인디케이터에 기초하여 이러한 결정을 행할 수도 있다. 전술된 바와 같이, 인디케이터는 SPS, SEI 메시지 등에 포함된 출력 디스플레이 비트 깊이 플래그를 포함할 수도 있다. 다른 예들에서, 인디케이터는 (예를 들어, ISO 기반 매체 파일 포맷으로의 확장과 같은) 파일 포맷, 프로파일 및 레벨 정보를 포함하는 샘플에 제공되는 하나 이상의 신택스 엘리먼트들, 디스크립터 (예를 들어, MPEG-2 디스크립터), 또는 MPD 파일 (예를 들어, DASH 환경에서) 에 제공될 수도 있다. 또 다른 예들에서, 비디오 디코더 외부의 디바이스, 예컨대 디스플레이 디바이스 (예를 들어, 도 1 에 도시된 디스플레이 디바이스 (32)) 는 예를 들어, 원격 제어를 통해 출력 비트 깊이를 결정할 수도 있다.
도 5 에 도시된 예에서, 비디오 코더가 증가된 비트 깊이에서 비디오 데이터를 출력하는 경우 (예를 들어, 단계 162 의 예 브랜치), 비디오 코더는 비디오 데이터를 증가된 비트 깊이에서 (예를 들어, 디코딩된 픽처 버퍼에) 저장할 수도 있다 (164). 비디오 코더가 증가된 비트 깊이에서 비디오 데이터를 출력하지 않는 경우 (예를 들어, 단계 162 의 아니오 브랜치), 비디오 코더는, 비디오 데이터가 참조 데이터로서 사용되는지 여부를 결정할 수도 있다 (166). 본 개시물의 양태들에 따르면, 비디오 데이터가 참조 데이터로서 사용되는 경우 (예를 들어, 166 의 예 브랜치), 비디오 코더는 증가된 비트 깊이에서 비디오 데이터를 저장할 수도 있다 (164).
비디오 데이터가 참조 데이터로서 사용되지 않는 경우 (예를 들어, 166 의 아니오 브랜치), 비디오 코더는 비디오 데이터의 비트 깊이를 감소시킬 수도 있다 (168). 예를 들어, (예를 들어, 일부 B-프레임들 등과 같은) 소정 픽처들은 참조 픽처들로서 사용되지 않을 수도 있다. 더욱이, 일부 경우들에서, 비디오 코더는 "참조용으로 사용되지 않는" 으로서 소정 비디오 데이터를 마킹할 수도 있다. 이러한 예들에서, 비디오 코더는 비트 깊이를 IBDI 동작들에 사용된 증가된 비트 깊이로부터 오리지널 비트 깊이로 감소시킬 수도 있다. 비디오 코더는 그 후, 비디오 데이터를 감소된 비트 깊이에서 저장할 수도 있다 (170).
도 5 에 도시된 예는 비디오 데이터의 인코딩 및/또는 디코딩과 연관된 메모리 요건들을 감소시킬 수도 있다. 예를 들어, 도 5 의 예에 도시된 기법들은 데이터의 더 적은 비트들이 저장되는 것을 허용하고, 이는 메모리 요건들뿐만 아니라 메모리 대역폭 소비를 감소시킬 수도 있다.
도 5 에 도시된 단계들은 단지 일 예로서 제공되는 것으로 이해되어야 한다. 즉, 본 개시물의 일부 양태들에 따르면, 비디오 코더는, 비디오 데이터가 참조를 위해 사용되는지 여부에 관계없이 비디오 데이터를 오리지널 비트 깊이 (예를 들어, 넌-IBDI 비트 깊이) 에서 유지할 수도 있다. 이 변경된 IBDI 프로세스에 따르면, 비디오 코더는, 비디오 데이터가 소정 프로세스들 (예를 들어, 모션 보상, 서브-픽셀 보간, 양자화, 변환, 및 재구성과 연관된 내부 코딩 프로세스들) 에 대해 사용되는 경우 비트 깊이를 증가시킬 수도 있지만, 그 후 메모리 대역폭 소비를 감소시키기 위해 비디오 데이터를 저장하기 전에 모든 디코딩된 비디오 데이터의 비트 깊이를 감소시킬 수도 있다.
또한, 도 5 의 방법의 단계들은 반드시 도 5 에 도시된 순서로 수행될 필요는 없고, 더 적은, 추가의, 또는 대안의 단계들이 수행될 수도 있다. 예를 들어, 메모리 활용 관리 (예를 들어, 단계들 166-168) 에 관한 본 개시물의 양태들은 전술된 바와 같이, 출력 비트 깊이를 결정 (예를 들어, 단계 162) 하는 것에 관한 본 개시물의 양태들에 독립적으로 수행될 수도 있다.
더욱이, 이 예에 따라, 본원에 설명된 기법들 중 어느 하나의 소정 액트들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있고, 추가, 합병, 또는 모두 함께 남겨질 수도 있다 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 본 방법의 실시를 위해 반드시 필요하지는 않음) 는 것을 이해해야 한다. 더욱이, 소정 예들에서, 액트들 또는 이벤트들은 연속적으로 보다는, 동시에 예를 들어, 멀티-스레디드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들을 통해 수행될 수도 있다.
하나 이상의 실시예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드를 통해 컴퓨터 판독가능 매체 상에 저장되거나 송신될 수도 있고, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수도 있다.
이 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비-일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에 설명된 기술들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수도 있고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 또한, 어떤 관련된 것이라도 적절히 컴퓨터 판독가능 매체라고 지칭된다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터, 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 사용하여 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다.
그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속들, 반송파들, 신호들 또는 다른 일시적인 매체를 포함하는 것이 아니라, 그 대신 비-일시적인 유형의 저장 매체와 관련되는 것이 이해될 것이다. 디스크 (disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하는데, 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기한 것들의 조합들도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 예컨대 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 애플리케이션용 집적 회로들 (ASICs), 필드 프로그래머블 로직 어레이들 (FPGAs) 또는 다른 등가의 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 용어 "프로세서" 는 본원에서 사용되는 것과 같이, 전술된 구조 중 임의의 것 또는 본원에 설명된 기술들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 추가로, 일부 양태들에서, 본원에 설명된 기능은 인코딩 및 디코딩을 위해 구성되거나 결합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시물의 기술들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 세트 (예컨대, 칩 세트) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 본 개시물에서 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적인 양태들을 강조하기 위해 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 오히려, 전술된 것과 같이, 다양한 유닛들은 코덱 하드웨어 유닛에서 결합되거나 상호동작하는 하드웨어 유닛들의 집합에 의해 제공되며, 전술된 것과 같은 하나 이상의 프로세스들과 결합하여 적절한 소프트웨어 및/또는 펌웨어를 포함한다.
본 개시물의 각종 양태들이 설명되었다. 이들 및 다른 양태들은 다음의 청구 범위 내에 있다.

Claims (1)

  1. 본원 발명의 설명에 따른 발명
KR1020167018503A 2011-06-09 2012-06-08 비디오 코딩에서의 내부 비트 깊이 증가 KR20160086978A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161495333P 2011-06-09 2011-06-09
US61/495,333 2011-06-09
US201161552876P 2011-10-28 2011-10-28
US61/552,876 2011-10-28
US201161556002P 2011-11-04 2011-11-04
US61/556,002 2011-11-04
US13/491,227 2012-06-07
US13/491,227 US9521434B2 (en) 2011-06-09 2012-06-07 Internal bit depth increase in video coding
PCT/US2012/041575 WO2012170833A1 (en) 2011-06-09 2012-06-08 Internal bit depth increase in video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147000562A Division KR20140019474A (ko) 2011-06-09 2012-06-08 비디오 코딩에서의 내부 비트 깊이 증가

Publications (1)

Publication Number Publication Date
KR20160086978A true KR20160086978A (ko) 2016-07-20

Family

ID=47292842

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167018503A KR20160086978A (ko) 2011-06-09 2012-06-08 비디오 코딩에서의 내부 비트 깊이 증가
KR1020147000562A KR20140019474A (ko) 2011-06-09 2012-06-08 비디오 코딩에서의 내부 비트 깊이 증가

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147000562A KR20140019474A (ko) 2011-06-09 2012-06-08 비디오 코딩에서의 내부 비트 깊이 증가

Country Status (7)

Country Link
US (1) US9521434B2 (ko)
EP (1) EP2719177A1 (ko)
JP (1) JP5778339B2 (ko)
KR (2) KR20160086978A (ko)
CN (1) CN103609112B (ko)
IN (1) IN2014MN00016A (ko)
WO (1) WO2012170833A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018174591A1 (ko) * 2017-03-22 2018-09-27 김기백 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
US9762899B2 (en) * 2011-10-04 2017-09-12 Texas Instruments Incorporated Virtual memory access bandwidth verification (VMBV) in video coding
US8924582B2 (en) 2012-07-09 2014-12-30 Futurewei Technologies, Inc. Dynamic adaptive streaming over hypertext transfer protocol client behavior framework and implementation of session management
US9485506B2 (en) * 2012-09-11 2016-11-01 Texas Instruments Incorporated Method and system for constraining slice header processing overhead in video coding
US10785482B2 (en) * 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
WO2014084564A1 (ko) * 2012-11-27 2014-06-05 엘지전자 주식회사 신호 송수신 장치 및 신호 송수신 방법
EP2982118A4 (en) * 2013-04-05 2016-05-18 Sharp Kk VIDEO COMPRESSION WITH COLOR BITTIEEN SCALE
US9912943B2 (en) * 2013-07-15 2018-03-06 Qualcomm Incorporated Signaling of bit rate information and picture rate information in VPS
CN105379294A (zh) * 2013-07-15 2016-03-02 华为技术有限公司 基于超文本传输协议的动态自适应流媒体中的远程元素的即时性间接引用
US9554150B2 (en) * 2013-09-20 2017-01-24 Qualcomm Incorporated Combined bi-predictive merging candidates for 3D video coding
US9866608B2 (en) * 2014-03-24 2018-01-09 Qualcomm Incorporated Processing continuous multi-period content
CN106256125B (zh) * 2014-05-05 2019-11-19 联发科技(新加坡)私人有限公司 确定残余转换树表达的方法及装置
US9874995B2 (en) * 2014-06-25 2018-01-23 Oracle International Corporation Maintaining context for maximize interactions on grid-based visualizations
US9787751B2 (en) 2014-08-06 2017-10-10 At&T Intellectual Property I, L.P. Method and apparatus for delivering media content utilizing segment and packaging information
US10735755B2 (en) * 2015-04-21 2020-08-04 Arris Enterprises Llc Adaptive perceptual mapping and signaling for video coding
KR101770300B1 (ko) * 2015-06-09 2017-08-22 삼성전자주식회사 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US20180359468A1 (en) * 2015-10-01 2018-12-13 Lg Electronics Inc. Image processing method on basis of inter prediction mode and apparatus therefor
EP3185556A1 (en) * 2015-12-21 2017-06-28 Thomson Licensing Method and apparatus for combined adaptive resolution and internal bit-depth increase coding
US10657674B2 (en) 2016-06-17 2020-05-19 Immersive Robotics Pty Ltd. Image compression method and apparatus
US11150857B2 (en) 2017-02-08 2021-10-19 Immersive Robotics Pty Ltd Antenna control for mobile device communication
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10609372B2 (en) 2017-09-29 2020-03-31 Dolby Laboratories Licensing Corporation Up-conversion to content adaptive perceptual quantization video signals
TW201926992A (zh) 2017-11-21 2019-07-01 澳大利亞商伊門斯機器人控股有限公司 用於數位實境之影像壓縮
US11553187B2 (en) 2017-11-21 2023-01-10 Immersive Robotics Pty Ltd Frequency component selection for image compression
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
CN109963176B (zh) 2017-12-26 2021-12-07 中兴通讯股份有限公司 视频码流处理方法、装置、网络设备和可读存储介质
US11356701B2 (en) 2018-02-14 2022-06-07 Sony Corporation Image processing apparatus and image processing method
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US11044478B2 (en) * 2018-07-02 2021-06-22 Apple Inc. Compression with multi-level encoding
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11386524B2 (en) 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11218700B2 (en) * 2019-07-01 2022-01-04 Qualcomm Incorporated Minimum allowed quantization parameter for transform skip mode and palette mode in video coding
US11375219B2 (en) * 2019-09-24 2022-06-28 Tencent America LLC Coding method and system with improved dynamic internal bit depth
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097843A (en) 1997-01-27 2000-08-01 Sony Corporation Compression encoding apparatus, encoding method, decoding apparatus, and decoding method
JP3918263B2 (ja) 1997-01-27 2007-05-23 ソニー株式会社 圧縮符号化装置および符号化方法
US6470051B1 (en) 1999-01-25 2002-10-22 International Business Machines Corporation MPEG video decoder with integrated scaling and display functions
BR0015959A (pt) 1999-12-14 2002-08-06 Scientific Atlanta Sistema e método para o processamento de vìdeo adaptativo com alocação de recursos coordenados
WO2006017230A1 (en) 2004-07-13 2006-02-16 Dolby Laboratories Licensing Corporation Unbiased rounding for video compression
KR100668324B1 (ko) * 2005-01-21 2007-01-12 삼성전자주식회사 화상 데이터 부호화시의 비트율 제어방법 및 장치
JP4384130B2 (ja) * 2006-03-28 2009-12-16 株式会社東芝 動画像復号方法及び装置
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
WO2007114368A1 (ja) 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
US7898550B2 (en) * 2006-06-09 2011-03-01 Via Technologies, Inc. System and method for memory bandwidth compressor
KR101365597B1 (ko) 2007-10-24 2014-02-20 삼성전자주식회사 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법
HUE031487T2 (en) 2008-04-16 2017-07-28 Ge Video Compression Llc Bit depth scalability
CN102067609B (zh) * 2008-06-12 2015-05-13 汤姆森特许公司 利用降低的比特深度更新模式和降低的色度采样更新模式进行视频编码和解码的方法及装置
EP2222087A1 (en) 2009-02-19 2010-08-25 Thomson Licensing Bit depth upscaling in RGB colour space for reducing propagation of errors due to transformation to YUV colour space
KR101196920B1 (ko) 2009-04-08 2012-11-05 한국전자통신연구원 적응적 비트 심도 감소를 통한 부호화와 복호화 방법 및 그 장치
US9049450B2 (en) * 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018174591A1 (ko) * 2017-03-22 2018-09-27 김기백 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
US11509895B2 (en) 2017-03-22 2022-11-22 Industry-University Cooperation Foundation Hanyang University Image encoding/decoding method using pixel value range constituting image
US11949865B2 (en) 2017-03-22 2024-04-02 Industry-University Cooperation Foundation Hanyang University Image encoding/decoding method using pixel value range constituting image

Also Published As

Publication number Publication date
CN103609112A (zh) 2014-02-26
WO2012170833A1 (en) 2012-12-13
EP2719177A1 (en) 2014-04-16
US9521434B2 (en) 2016-12-13
JP5778339B2 (ja) 2015-09-16
JP2014517631A (ja) 2014-07-17
CN103609112B (zh) 2018-01-12
US20120314026A1 (en) 2012-12-13
KR20140019474A (ko) 2014-02-14
IN2014MN00016A (ko) 2015-06-12

Similar Documents

Publication Publication Date Title
US9521434B2 (en) Internal bit depth increase in video coding
KR101547743B1 (ko) 비디오 코딩에서의 프레임 분할
TWI556630B (zh) 用於處理視訊資料之方法及器件及電腦可讀取儲存媒體
KR101628582B1 (ko) 내부 뷰 모션 예측 (ivmp) 모드를 지원하는 mvc 기반 3dvc 코덱
JP5837217B2 (ja) 複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング
JP6538727B2 (ja) パラメータセットにおいてレイヤセットのための情報をシグナリングするためのシステムおよび方法
KR101719079B1 (ko) 비디오 코딩을 위한 파라미터 세트들의 표시 및 활성화
TWI520575B (zh) 用於視訊寫碼之訊框封裝立體三維(3d)視訊資料之指示
CN110506421B (zh) 用于以媒体应用程序格式发信号通知可伸缩视频的系统和方法
JP2015532551A (ja) 仮想参照デコーダパラメータシンタックス構造
JP2014513456A (ja) ランダムアクセスの後に従属ピクチャをコード化するためのビデオコード化技法
KR20220124168A (ko) 비디오 코딩을 위한 비디오 데이터의 저장 및 전달
TW201707447A (zh) 用於處理及編碼視訊資料之方法、器件及裝置以及電腦可讀儲存媒體

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Withdrawal due to no request for examination