KR102132047B1 - 고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법 - Google Patents

고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법 Download PDF

Info

Publication number
KR102132047B1
KR102132047B1 KR1020157008253A KR20157008253A KR102132047B1 KR 102132047 B1 KR102132047 B1 KR 102132047B1 KR 1020157008253 A KR1020157008253 A KR 1020157008253A KR 20157008253 A KR20157008253 A KR 20157008253A KR 102132047 B1 KR102132047 B1 KR 102132047B1
Authority
KR
South Korea
Prior art keywords
frames
sampling format
chroma sampling
chroma
format
Prior art date
Application number
KR1020157008253A
Other languages
English (en)
Other versions
KR20150067158A (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 KR20150067158A publication Critical patent/KR20150067158A/ko
Application granted granted Critical
Publication of KR102132047B1 publication Critical patent/KR102132047B1/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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/646Transmitting or storing colour television type signals, e.g. PAL, Lab; Their conversion into additive or subtractive colour signals or vice versa therefor
    • 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/103Selection of coding mode or of prediction mode
    • 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/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/186Methods 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 a colour or a chrominance component
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals

Landscapes

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

Abstract

YUV 4:4:4와 같은 고해상도 크로마 샘플링 포맷의 비디오 프레임들이 비디오 인코딩의 목적들을 위해 YUV 4:2:0과 같은 저해상도 크로마 샘플링 포맷의 비디오 프레임들로 팩킹된다. 예를 들어, YUV 4:4:4 포맷의 프레임에 대한 샘플 값들이 YUV 4:2:0 포맷 포맷의 2개의 프레임으로 팩킹된다. 디코딩 후에, 저해상도 크로마 샘플링 포맷의 비디오 프레임들을 언팩킹하여 고해상도 크로마 샘플링 포맷의 비디오 프레임들을 재구성할 수 있다. 이러한 방식으로, 저해상도 크로마 샘플링 포맷에서 동작하는 가용 인코더들 및 디코더들을 사용하면서도 고해상도 크로마 정보를 유지할 수 있다. 예시적인 구현들에서, YUV 4:2:0 포맷의 프레임들에 대한 Y, U 및 V 성분들 사이에 기하학적 대응이 유지되도록, YUV 4:4:4 포맷의 프레임들이 YUV 4:2:0 포맷의 프레임들로 팩킹된다.

Description

고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법{FRAME PACKING AND UNPACKING HIGHER-RESOLUTION CHROMA SAMPLING FORMATS}
엔지니어들은 (소스 코딩 또는 소스 인코딩이라고도 지칭되는) 압축을 이용하여 디지털 비디오의 비트 레이트를 줄인다. 압축은 비디오 정보를 더 낮은 비트 레이트의 형태로 변환함으로써 정보를 저장 및 송신하는 비용을 줄인다. (디코딩이라고도 하는) 압축 해제는 압축된 형태로부터 본래의 정보의 버전을 재구성한다. "코덱"은 인코더/디코더 시스템이다.
지난 20년에 걸쳐, ITU-T H.261, H.262 (MPEG-2 또는 ISO/IEC 13818-2), H.263 및 H.264(MPEG-4 AVC 또는 ISO/IEC 14496-10) 표준들 및 MPEG-1(ISO/IEC 11172-2), MPEG-4 Visual(ISO/IEC 14496-2) 및 SMPTE 421M 표준들을 포함하는 다양한 비디오 코덱 표준들이 채용되었다. 더 최근에는, HEVC 표준(ITU-T H.265 또는 ISO/IEC 23008-2) 개발되어 왔다. 예를 들어, HEVC 표준의 드래프트 버전 JCTVC-I1003 - "High efficiency video coding (HEVC) text specification draft 7," JCTVC-I1003_d5, 9th meeting, Geneva, April 2012를 참조한다. 통상적으로, 비디오 코덱 표준은 인코딩된 비디오 비트스트림의 신택스에 대한 옵션들을 정의하여, 인코딩 및 디코딩에서 특정 특징들이 사용될 때 비트스트림 내의 파라미터들을 상술한다. 많은 경우에, 비디오 코덱 표준은 디코더가 디코딩에서 적합한 결과들을 달성하기 위해 수행해야 하는 디코딩 동작들에 대한 상세들도 제공한다. 코덱 표준들 외에도, 다양한 독점 코덱 포맷들은 인코딩된 비디오 비트스트림의 신택스에 대한 다른 옵션들 및 대응하는 디코딩 동작들을 정의한다.
카메라, 애니메이션 출력, 스크린 캡처 모듈 등과 같은 비디오 소스는 통상적으로 YUV 4:4:4 크로마 샘플링 포맷과 같은 포맷으로 변환되는 비디오를 제공한다. YUV 포맷은 근사 휘도 값들을 나타내는 샘플 값들을 갖는 루마(또는 Y) 성분은 물론, 컬러 차이 값들을 나타내는 샘플 값들을 갖는 다수의 크로마(또는 U 및 V) 성분을 포함한다. YUV 4:4:4 포맷에서, 크로마 정보는 루마 정보와 동일한 공간 해상도로 표현된다.
많은 상용 비디오 인코더들 및 디코더들은 YUV 4:2:0 크로마 샘플링 포맷만을 지원한다. YUV 4:2:0 포맷은 YUV 4:4:4 포맷에 비해 크로마 정보를 서브샘플링하는 포맷이며, 따라서 크로마 해상도는 수평 및 수직 양자에서 루마 해상도의 절반이다. 설계 원리로서, 인코딩/디코딩을 위해 YUV 4:2:0 포맷을 사용하기 위한 결정은 자연적인 카메라 캡처 비디오 콘텐츠의 인코딩/디코딩과 같은 대부분의 사용 예들의 경우에 관찰자들이 통상적으로 YUV 4:2:0 포맷으로 인코딩/디코딩된 비디오와 YUV 4:4:4 포맷으로 인코딩/디코딩된 비디오 간의 많은 시각적 차이를 인식하지 못한다는 것을 전제 조건으로 한다. 따라서, 프레임당 더 적은 샘플들을 갖는 YUV 4:2:0 포맷에 대한 압축 장점들은 강력하다. 그러나, 비디오가 더 풍부한 컬러 정보를 갖고, 더 높은 컬러 충실도가 정당화(justify)될 수 있는 일부 사용 예들이 존재한다. 그러한 사용 예들에서는, YUV 4:4:4 및 YUV 4:2:0 크로마 샘플링 포맷들 간의 차이들이 관찰자들에 의해 더 쉽게 인식된다. 예를 들어, 컴퓨터 스크린 텍스트 콘텐츠, 인위적인 하드 에지를 갖는 경계들을 갖는 애니메이션 비디오 콘텐츠 또는 더 일반적으로는 (스크롤링 타이틀 및 하드 에지를 갖는 그래픽, 또는 크로마 채널들 내에 집중된 정보를 갖는 비디오와 같은) 비디오 콘텐츠의 소정 특징들의 인코딩/디코딩을 위해, 4:4:4 포맷이 4:2:0 포맷보다 바람직할 수 있다. 4:4:4 포맷에서의 인코딩 및 디코딩을 지원하는 스크린 캡처 코덱들이 이용 가능하지만, (특히, 하드웨어 코덱 구현들과 관련하여) 4:4:4 포맷들을 지원하는 코덱들에 대한 광범위한 지원의 부재가 이러한 사용 예들에 대한 장애물이다.
요컨대, 상세한 설명은 인코딩을 하기 위해 고해상도 크로마 샘플링 포맷의 비디오 프레임들을 저해상도 크로마 샘플링 포맷의 비디오 프레임들로 프레임 팩킹함에 있어서의 혁신들을 설명한다. 예를 들어, 고해상도 크로마 샘플링 포맷은 YUV 4:4:4 포맷이고, 저해상도 크로마 샘플링 포맷은 YUV 4:2:0 포맷이다. 디코딩 후에, 저해상도 크로마 샘플링 포맷의 비디오 프레임들을 언팩킹하여 고해상도 크로마 샘플링 포맷의 비디오 프레임들을 재구성할 수 있다. 이러한 방식으로, 저해상도 크로마 샘플링 포맷에서 동작하는 가용 인코더들 및 디코더들을 사용하면서도 고해상도 크로마 정보를 유지할 수 있다.
예를 들어, 컴퓨팅 장치가 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 팩킹한다. 이어서, 컴퓨팅 장치는 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 인코딩할 수 있다.
다른 예로서, 컴퓨팅 장치가 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 언팩킹한다. 그러한 언팩킹 전에, 컴퓨팅 장치는 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 디코딩할 수 있다.
팩킹 또는 언팩킹은 방법의 일부로서, 방법을 수행하도록 적응되는 컴퓨팅 장치의 일부로서 또는 컴퓨팅 장치로 하여금 방법을 수행하게 하기 위한 컴퓨터 실행 가능 명령어들을 저장하는 유형의 컴퓨터 판독 가능 매체의 일부로서 구현될 수 있다.
본 발명의 상기 및 다른 목적들, 특징들 및 장점들은 첨부 도면들을 참조하여 진행되는 아래의 상세한 설명으로부터 더 명확해질 것이다.
도 1은 일부 설명되는 실시예들을 구현할 수 있는 예시적인 컴퓨팅 시스템의 도면이다.
도 2(a) 및 2(b)는 일부 설명되는 실시예들을 구현할 수 있는 예시적인 네트워크 환경들의 도면들이다.
도 3은 일부 설명되는 실시예들을 구현할 수 있는 범용 프레임 팩킹/언팩킹 시스템의 도면이다.
도 4는 일부 설명되는 실시예들을 구현할 수 있는 예시적인 인코더 시스템의 도면이다.
도 5는 일부 설명되는 실시예들을 구현할 수 있는 예시적인 디코더 시스템의 도면이다.
도 6은 일부 설명되는 실시예들을 구현할 수 있는 예시적인 비디오 인코더의 도면이다.
도 7은 일부 설명되는 실시예들을 구현할 수 있는 예시적인 비디오 디코더의 도면이다.
도 8은 프레임들의 공간 파티셔닝을 이용하는 프레임 팩킹에 대한 예시적인 접근법을 나타내는 도면이다.
도 9는 고해상도 크로마 샘플링 포맷의 프레임들의 크로마 성분 평면들의 행들을 하나 걸러 복사하는 프레임 팩킹에 대한 예시적인 접근법을 나타내는 도면이다.
도 10은 도 9의 접근법에 따라 팩킹된 예시적인 프레임들을 나타내는 도면이다.
도 11은 고해상도 크로마 샘플링 포맷의 프레임들의 크로마 성분 평면들의 열들을 하나 걸러 복사하는 프레임 팩킹에 대한 예시적인 접근법을 나타내는 도면이다.
도 12는 고해상도 크로마 샘플링 포맷의 프레임들의 프레임 팩킹을 위한 범용 기술을 나타내는 흐름도이다.
도 13은 고해상도 크로마 샘플링 포맷의 프레임들의 프레임 언팩킹을 위한 범용 기술을 나타내는 흐름도이다.
통상적으로, 카메라, 애니메이션 출력, 스크린 캡처 모듈 등과 같은 비디오 소스는 YUV 4:4:4 크로마 샘플링 포맷(더 일반적으로는 4:4:4 포맷의 일례)과 같은 포맷으로 변환되는 비디오를 제공한다. YUV 포맷은 근사 휘도 값들을 나타내는 샘플 값들을 갖는 루마(또는 Y) 성분은 물론, 컬러 차이 값들을 나타내는 샘플 값들을 갖는 다수의 크로마(또는 U 및 V) 성분을 포함한다. 컬러 차이 값들(및 YUV 컬러 공간으로의 변환 동작/YUV 컬러 공간으로부터 RGB와 같은 다른 컬러 공간으로의 변환 동작)의 정확한 정의들은 구현에 의존한다. 일반적으로, 본 명세서에서 사용되는 바와 같이, 용어 YUV는 루마(또는 휘도) 성분 및 하나 이상의 크로마(또는 채도) 성분을 갖는 임의의 컬러 공간을 지시하며, Y'UV, YIQ, Y'IQ 및 YDbDr은 물론, YCbCr 및 YCoCg와 같은 변형들도 포함한다. 사용되는 성분 신호 척도들(measures)은 (일반적으로 "감마 사전 보상"으로 알려지고, 종종 프라임 심벌을 이용하여 표시되는(프라임 심벌은 종종 인쇄의 편의를 위해 생략됨)) 비선형 전달 특성 함수의 적용을 통해 조정될 수 있다. 또는, 성분 신호 척도들은 광 진폭과 선형 관계를 갖는 도메인 내에 존재할 수 있다. 루마 및 크로마 성분 신호들은 인간 시각 시스템의 휘도 및 컬러의 인식과 양호하게 정렬될 수 있거나, 루마 및 크로마 성분 신호들은 (예를 들어, 컬러 성분 값들의 계산을 간소화하는 공식들을 적용하는 YCoCg 변형에서와 같이) 그러한 척도들로부터 다소 벗어날 수 있다. 본 명세서에서 설명되는 바와 같은 YUV 포맷들의 예들은 ITU-R BT.601, ITU-R BT.709 및 ITU-R BT.2020으로 알려진 국제 표준들에서 설명된 것들을 포함한다. 크로마 샘플 타입들의 예들은 H.264/AVC 표준의 도 E-1에 도시된다. 4:4:4 포맷은 YUV 4:4:4 포맷, 또는 RGB 또는 GBR과 같은 다른 컬러 공간에 대한 포맷일 수 있다.
많은 상용 비디오 인코더들 및 디코더들은 YUV 4:2:0 크로마 샘플링 포맷(더 일반적으로는 4:2:0 포맷의 일례)만을 지원한다. YUV 4:2:0은 최대 해상도 크로마 정보를 유지하는 (즉, 크로마 정보를 루마 정보와 동일한 해상도로 표현하는) YUV 4:4:4 포맷에 비해 크로마 정보를 서브샘플링하는 포맷이다. 설계 원리로서, 인코딩/디코딩을 위해 YUV 4:2:0 포맷을 사용하기 위한 결정은 자연적인 카메라 캡처 비디오 콘텐츠의 인코딩/디코딩과 같은 대부분의 사용 예들의 경우에 관찰자들이 통상적으로 YUV 4:2:0 포맷으로 인코딩/디코딩된 비디오와 YUV 4:4:4 포맷으로 인코딩/디코딩된 비디오 간의 많은 시각적 차이를 인식하지 못한다는 것을 전제 조건으로 한다. 따라서, 프레임당 더 적은 샘플들을 갖는 YUV 4:2:0 포맷에 대한 압축 장점들은 강력하다.
그러나, 2개의 포맷 간의 차이들이 관찰자들에 의해 더 쉽게 인식되는 일부 사용 예들이 존재한다. 예를 들어, 컴퓨터 스크린 텍스트 콘텐츠(특히, ClearType 기술을 이용하여 렌더링된 텍스트), 인위적인 하드 에지를 갖는 경계들을 갖는 애니메이션 비디오 콘텐츠 또는 더 일반적으로는 (스크롤링 타이틀 및 하드 에지를 갖는 그래픽, 또는 크로마 채널들 내에 집중된 정보를 갖는 비디오와 같은) 비디오 콘텐츠의 소정 특징들의 인코딩/디코딩을 위해, 4:4:4 포맷이 4:2:0 포맷보다 바람직할 수 있다. (특히, 하드웨어 코덱 구현들과 관련하여) 4:4:4 포맷들을 지원하는 비디오 코덱들에 대한 광범위한 지원의 부재가 이러한 사용 예들에 대한 장애물이다.
상세한 설명은 고해상도 크로마 샘플링 포맷의 프레임들의 저해상도 크로마 샘플링 포맷의 프레임들로의 팩킹에 대한 다양한 접근법들을 설명한다. 이어서, 저해상도 크로마 샘플링 포맷의 프레임들은 저해상도 크로마 샘플링 포맷을 위해 설계된 인코더를 이용하여 인코딩될 수 있다. (저해상도 크로마 샘플링 포맷을 위해 설계된 디코더를 이용하는) 디코딩 후에, 저해상도 크로마 샘플링 포맷의 프레임들은 추가 처리 및 표시를 위해 출력될 수 있다. 또는, 그러한 디코딩 후에, 고해상도 크로마 샘플링 포맷의 프레임들이 출력 및 표시를 위해 프레임 언팩킹을 통해 복구될 수 있다. 많은 예에서, 이러한 접근법들은 저해상도 크로마 샘플링 포맷에 적합한 상용 코덱들을 이용하면서 고해상도 크로마 샘플링 포맷의 프레임들로부터의 크로마 정보를 유지함으로써 종래의 접근법들의 단점들을 줄인다. 특히, 특수화 및 전용화된 하드웨어를 갖는 광범위하게 이용 가능한 코덱들은 YUV 4:2:0 비디오 프레임들로 팩킹된 YUV 4:4:4 비디오 프레임들에 대해 더 낮은 전력 소비를 갖는 더 빠른 인코딩/디코딩을 제공할 수 있다.
설명되는 접근법들은 인코딩/디코딩이 하나의 크로마 샘플링 포맷을 사용할 때 다른 크로마 샘플링 포맷의 프레임들에 대한 크로마 정보를 유지하는 데 사용될 수 있다. 본 명세서에서 설명되는 일부 예들은 YUV 4:2:0 포맷에 적합한 코덱을 이용하는 인코딩/디코딩을 위한 YUV 4:4:4 포맷의 프레임들의 프레임 팩킹/언팩킹을 포함한다. 본 명세서에서 설명되는 다른 예들은 YUV 4:2:0 포맷에 적합한 코덱을 이용하는 인코딩/디코딩을 위한 YUV 4:2:2 포맷의 프레임들의 프레임 팩킹/언팩킹을 포함한다. 더 일반적으로, 설명되는 접근법들은 다른 크로마 샘플링 포맷들에 대해 사용될 수 있다. 예를 들어, 4:4:4, 4:2:2, 4:2:0, 4:1:1, 4:0:0 등과 같은 샘플링 비율들에서의 Y'UV, YIQ, Y'IQ, YDbDr, YCbCr, YCoCg 등과 같은 YUV 컬러 공간들의 변형들에 더하여, 설명되는 접근법들은 크로마 샘플링 포맷들로서의 4:4:4, 4:2:2, 4:2:0, 4:1:1, 4:0:0 등과 같은 샘플링 비율들에서의 RGB, GBR 등과 같은 컬러 공간들에 대해 사용될 수 있다.
예시적인 구현들에서, 본 명세서에서 설명되는 혁신들의 특정 양태들은 아래의 양태들을 포함하지만 이에 한정되지 않는다.
- 4:4:4 프레임을 2개의 4:2:0 프레임으로 팩킹하고, 4:2:0 포맷을 위해 설계된 비디오 인코더를 이용하여 2개의 4:2:0 프레임을 인코딩하는 양태.
- 4:2:0 포맷을 위해 설계된 비디오 디코더를 이용하여 인코딩된 프레임들을 디코딩하고, 2개의 디코딩된 4:2:0 프레임을 언팩킹하여, 디코딩된 4:4:4 프레임을 형성하는 양태.
- 2개의 4:2:0 프레임 각각에 대한 Y, U 및 V 성분들 사이에 기하학적 대응이 유지되도록 YUV 포맷에 대한 팩킹을 수행하는 양태.
- 2개의 4:2:0 프레임 중 하나(주요 뷰)가 저해상도의 크로마 성분들을 갖지만 4:4:4 프레임에 의해 표현되는 완전한 장면을 표현하는 반면에 나머지 4:2:0 프레임(보조 뷰)이 나머지 크로마 정보를 팩킹하도록 YUV 포맷에 대한 팩킹을 수행하는 양태.
- 일 타입의 보완 향상 정보("SEI") 메시지 또는 메타데이터를 이용하여 2개의 4:2:0 프레임의 사용의 지시를 시그널링하고, 따라서 이러한 SEI 메시지를 처리하는 디코더가 장면을 표현하는 4:4:4 프레임 또는 4:2:0 프레임을 출력할 수 있는 양태.
- (2개의 4:2:0 프레임 중에서) 하나의 4:2:0 프레임만이 최종 표시를 위해 사용될 때 YUV 포맷에 대한 최종 표시 프레임의 품질을 향상시킬 수 있는 전처리 및 후처리 동작들. 그러한 전처리 및 후처리 동작들과 관련하여, 4:2:0 프레임들은 전처리 및 후처리 동작들에서의 크로마 정보의 손실을 방지하기 위해 인코딩/디코딩을 위한 더 큰 비트 깊이를 가질 수 있다.
- 4:2:2 프레임을 (2개 이하의) 4:2:0 프레임으로 팩킹하고, 4:2:0 포맷을 위해 설계된 비디오 인코더를 이용하여 4:2:0 프레임들을 인코딩하는 양태.
- 4:2:0 포맷을 위해 설계된 비디오 디코더를 이용하여 인코딩된 프레임들을 디코딩하고, 디코딩된 4:2:0 프레임들을 언팩킹하여, 디코딩된 4:2:2 프레임을 형성하는 양태.
프레임 팩킹 배열 SEI 메시지들을 이용하는 특정한 예시적인 구현들에서, 프레임 팩킹 배열 SEI 메시지의 정의는 명목상 4:2:0 비트스트림 내에 4:4:4 콘텐츠를 표현하는 것을 지원하도록 확장된다. 일부 예들에서는, 하나의 구성 프레임이 (예를 들어, 상하 팩킹 또는 교대 프레임 코딩 스킴에서) 통상의 4:2:0 이미지로서 적절히 디코딩될 수 있거나, 다른 구성 프레임으로부터의 데이터로 보완되어 완전한 4:4:4 이미지 표현을 형성할 수 있다. YUV 4:2:0은 (특히, 하드웨어 코덱 구현들과 관련된) 제품들에서 가장 광범위하게 지원되는 포맷이므로, 그러한 디코더들을 통해 YUV 4:4:4 콘텐츠를 전달하는 효과적인 방법을 갖는 것은 (특히, 스크린 콘텐츠 코딩을 위한) YUV 4:4:4 능력들의 광범위한 단기 전개를 가능하게 하는 실질적인 이익을 제공할 수 있다. 예시적인 구현들에서, 4:4:4 프레임의 샘플들은 2개의 4:2:0 프레임으로 팩킹되며, 2개의 4:2:0 프레임은 프레임 팩킹 배열의 구성 프레임들로서 인코딩된다. 프레임 팩킹 배열 SEI 메시지를 사용하는 구현들에 대해, content_interpretation_type 신택스 요소의 시맨틱스는 이러한 사용을 시그널링하도록 확장된다. content_interpretation_type 신택스 요소는 팩킹 배열을 이용하여 팩킹되는 데이터를 어떻게 해석할지를 시그널링하며, 팩킹 배열을 위한 프레임 구성은 상이한 신택스 요소를 이용하여 시그널링된다. 본 명세서에서 설명되는 일부 접근법들은 스크린 콘텐츠를 포함하는 응용들에 대해 높은 실용 가치를 갖는다. 또한, 고유 4:4:4 인코딩에 비해, 본 명세서에서 설명되는 일부 접근법들은 디코딩 제품들에서 더 광범위하게 지원될 것으로 예상되는 통상의 4:2:0 디코딩 프로세스와의 호환성의 장점을 제공할 수 있다.
고해상도 크로마 샘플링 포맷들에 대한 프레임 팩킹 및 언팩킹의 추가적인 혁신 양태들도 설명된다. 설명되는 기술들은 비디오 코딩/디코딩이 아닌 다른 추가 응용들, 예를 들어 정지 이미지 코딩, 의료 스캔 콘텐츠 코딩, 다중 스펙트럼 이미지 콘텐츠 코딩 등에 적용될 수 있다. 본 명세서에서 설명되는 동작들은 곳곳에서 인코더(예로서, 비디오 인코더) 또는 디코더(예로서, 비디오 디코더)에 의해 수행되는 것으로 설명되지만, 많은 예에서 동작들은 대안으로서 다른 타입의 미디어 처리 도구에 의해 수행될 수 있다.
본 명세서에서 설명되는 혁신들 중 일부는 HEVC 표준에 고유한 신택스 요소들 및 동작들을 참조하여 설명된다. 예를 들어, HEVC 표준의 드래프트 버전 JCTVC-I1003 - "High efficiency video coding (HEVC) text specification draft 7," JCTVC-I1003_d5, 9th meeting, Geneva, April 30 2012 -을 참조한다. 본 명세서에서 설명되는 혁신들은 다른 표준들 또는 포맷들에 대해서도 구현될 수 있다. 예를 들어, 본 명세서에서 설명되는 혁신들은 프레임 팩킹 배열 SEI 메시지들을 이용하는 H.264/AVC 표준에 대해 구현될 수 있다.
더 일반적으로, 본 명세서에서 설명되는 예들에 대한 다양한 대안들이 가능하다. 예를 들어, 본 명세서에서 설명되는 방법들 중 임의의 방법은 설명되는 방법 단계들의 순서를 변경함으로써, 소정의 방법 단계들을 분할, 반복 또는 생략함으로써 또는 기타 등등에 의해 변경될 수 있다. 개시되는 기술의 다양한 양태들은 결합하여 또는 개별적으로 이용될 수 있다. 상이한 실시예들은 설명되는 혁신들 중 하나 이상을 이용한다. 본 명세서에서 설명되는 혁신들 중 일부는 배경기술에서 설명된 문제들 중 하나 이상을 해결한다. 통상적으로, 주어지는 기술/도구는 모든 그러한 문제들을 해결하지는 않는다.
Ⅰ. 예시적인 컴퓨팅 시스템들
도 1은 설명되는 여러 혁신을 구현할 수 있는 적절한 컴퓨팅 시스템(100)의 일반 예를 도시한다. 컴퓨팅 시스템(100)은 이용 또는 기능의 범위에 대한 임의의 한정을 암시하는 것을 의도하지 않는데, 그 이유는 혁신들이 다양한 범용 또는 특수 목적 컴퓨팅 시스템들에서 구현될 수 있기 때문이다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 하나 이상의 처리 유닛(110, 115) 및 메모리(120, 125)를 포함한다. 도 1에서, 이러한 가장 기본적인 구성(130)은 점선 내에 포함된다. 처리 유닛들(110, 115)은 컴퓨터 실행 가능 명령어들을 실행한다. 처리 유닛은 범용 중앙 처리 유닛("CPU"), 주문형 집적 회로 내의 프로세서 또는 임의의 다른 타입의 프로세서일 수 있다. 다중 처리 시스템에서는, 처리 능력을 향상시키기 위해 다수의 처리 유닛이 컴퓨터 실행 가능 명령어들을 실행한다. 예를 들어, 도 1은 중앙 처리 유닛(110)은 물론, 그래픽 처리 유닛 또는 공동 처리 유닛(115)도 도시한다. 유형의 메모리(120, 125)는 처리 유닛(들)에 의해 액세스될 수 있는 휘발성 메모리(예로서, 레지스터, 캐시, RAM), 비휘발성 메모리(예로서, ROM, EEPROM, 플래시 메모리 등) 또는 이들 양자의 소정 결합일 수 있다. 메모리(120, 125)는 고해상도 크로마 샘플링 포맷들에 대한 프레임 팩킹 및/또는 언팩킹을 위한 하나 이상의 혁신을 구현하는 소프트웨어(180)를 처리 유닛(들)에 의한 실행에 적합한 컴퓨터 실행 가능 명령어들의 형태로 저장한다.
컴퓨팅 시스템은 추가 특징들을 가질 수 있다. 예를 들어, 컴퓨팅 시스템(100)은 저장 장치(140), 하나 이상의 입력 장치(150), 하나 이상의 출력 장치(160) 및 하나 이상의 통신 접속(170)을 포함한다. 버스, 제어기 또는 네트워크와 같은 상호접속 메커니즘(도시되지 않음)이 컴퓨팅 시스템(100)의 컴포넌트들을 상호접속한다. 통상적으로, 운영 체제 소프트웨어(도시되지 않음)가 컴퓨팅 시스템(100)에서 실행되는 다른 소프트웨어에 대한 운영 환경을 제공하며, 컴퓨팅 시스템(100)의 컴포넌트들의 활동들을 조정한다.
유형의 저장 장치(140)는 이동식 또는 비이동식일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, DVD, 또는 비일시적인 방식으로 정보를 저장하는 데 사용될 수 있고 컴퓨팅 시스템(100) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(140)는 고해상도 크로마 샘플링 포맷들에 대한 프레임 팩킹 및/또는 언팩킹을 위한 하나 이상의 혁신을 구현하는 소프트웨어(180)를 위한 명령어들을 저장한다.
입력 장치(들)(150)는 키보드, 마우스, 펜 또는 트랙볼과 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 시스템(100)에 입력을 제공하는 다른 장치일 수 있다. 비디오 인코딩을 위해, 입력 장치(들)(150)는 카메라, 비디오 카드, TV 튜너 카드, 또는 아날로그 또는 디지털 형태의 비디오 입력을 수신하는 유사한 장치, 또는 비디오 샘플들을 컴퓨팅 시스템(100) 내로 판독하는 CD-ROM 또는 CD-RW일 수 있다. 출력 장치(들)(160)는 디스플레이, 프린터, 스피커, CD-기록 장치, 또는 컴퓨팅 시스템(100)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(170)은 통신 매체를 통한 다른 컴퓨팅 엔티티로의 통신을 가능하게 한다. 통신 매체는 피변조 데이터 신호 내의 컴퓨터 실행 가능 명령어들, 오디오 또는 비디오 입력 또는 출력, 또는 다른 데이터와 같은 정보를 전달한다. 피변조 데이터 신호는 신호 내에 정보를 인코딩하는 방식으로 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호이다. 한정이 아니라 예로서, 통신 매체는 전기, 광학, RF 또는 다른 캐리어를 사용할 수 있다.
혁신들은 일반적으로 컴퓨터 판독 가능 매체와 관련하여 설명될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용 가능한 유형의 매체이다. 한정이 아니라 예로서, 컴퓨팅 시스템(100)과 관련하여, 컴퓨터 판독 가능 매체는 메모리(120, 125), 저장 장치(140) 및 임의의 상기한 것들의 결합들을 포함한다.
혁신들은 일반적으로 컴퓨팅 시스템 내에서 타겟 실제 또는 가상 프로세서 상에서 실행되는, 프로그램 모듈들 내에 포함되는 것들과 같은 컴퓨터 실행 가능 명령어들과 관련하여 설명될 수 있다. 일반적으로, 프로그램 모듈들은 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈들의 기능은 다양한 실시예들에서 필요에 따라 결합되거나 프로그램 모듈들 사이에 분할될 수 있다. 프로그램 모듈들을 위한 컴퓨터 실행 가능 명령어들은 국지형 또는 분산형 컴퓨팅 시스템 내에서 실행될 수 있다.
본 명세서에서 용어 "시스템" 및 "장치"는 교환 가능하게 사용된다. 상황이 명확히 달리 지시하지 않는 한, 어느 용어도 컴퓨팅 시스템 또는 컴퓨팅 장치의 타입에 대한 어떠한 한정도 암시하지 않는다. 일반적으로, 컴퓨팅 시스템 또는 컴퓨팅 장치는 국지형 또는 분산형일 수 있으며, 특수 목적 하드웨어 및/또는 범용 하드웨어와 본 명세서에서 설명되는 기능을 구현하는 소프트웨어의 임의의 결합을 포함할 수 있다.
개시되는 방법들은 개시되는 방법들 중 임의의 방법을 수행하도록 구성되는 특수 컴퓨팅 하드웨어를 이용하여 구현될 수도 있다. 예를 들어, 개시되는 방법들은 개시되는 방법들 중 임의의 방법을 구현하도록 특별히 설계 또는 구성되는 집적 회로(예로서, 주문형 집적 회로("ASIC")(예로서, ASIC 디지털 신호 처리 유닛("DSP"), 그래픽 처리 유닛("GPU") 또는 프로그래밍 가능 논리 장치("PLD"), 예를 들어 필드 프로그래머블 게이트 어레이("FPGA") 등))에 의해 구현될 수 있다.
설명을 위해, 상세한 설명은 "결정" 및 "사용"과 같은 용어들을 이용하여 컴퓨팅 시스템에서의 컴퓨터 동작들을 설명한다. 이러한 용어들은 컴퓨터에 의해 수행되는 동작들에 대한 하이 레벨 추상화들이며, 사람에 의해 수행되는 행위들과 혼동되지 않아야 한다. 이러한 용어들에 대응하는 실제의 컴퓨터 동작들은 구현에 따라 달라진다.
Ⅱ. 예시적인 네트워크 환경들
도 2(a) 및 2(b)는 비디오 인코더들(220) 및 비디오 디코더들(270)을 포함하는 예시적인 네트워크 환경들(201, 202)을 나타낸다. 인코더들(220) 및 디코더들(270)은 적절한 통신 프로토콜을 이용하여 네트워크(250)를 통해 접속된다. 네트워크(250)는 인터넷 또는 다른 컴퓨터 네트워크를 포함할 수 있다.
도 2(a)에 도시된 네트워크 환경(201)에서, 각각의 실시간 통신("RTC") 도구(210)는 양방향 통신을 위해 인코더(220) 및 디코더(270) 양자를 포함한다. 주어진 인코더(220)는 SMPTE 421M 표준, (H.264/AVC로도 알려진) ISO/IEC 14496-10 표준, H.265/HEVC 표준, 다른 표준 또는 독점 포맷을 따르는 출력을 생성할 수 있으며, 대응하는 디코더(270)는 인코더(220)로부터 인코딩된 데이터를 수신할 수 있다. 양방향 통신은 비디오 회의, 비디오 전화 통화 또는 다른 양자 통신 시나리오의 일부일 수 있다. 도 2(a)의 네트워크 환경(201)은 2개의 실시간 통신 도구(210)를 포함하지만, 네트워크 환경(201)은 다자 통신에 관여하는 3개 이상의 실시간 통신 도구(210)를 대신 포함할 수 있다.
실시간 통신 도구(210)는 인코더(220)에 의한 인코딩을 관리한다. 도 4는 실시간 통신 도구(210) 내에 포함될 수 있는 예시적인 인코더 시스템(400)을 나타낸다. 대안으로서, 실시간 통신 도구(210)는 다른 인코더 시스템을 사용한다. 실시간 통신 도구(210)는 디코더(270)에 의한 디코딩도 관리한다. 도 5는 실시간 통신 도구(210) 내에 포함될 수 있는 예시적인 디코더 시스템(500)을 나타낸다. 대안으로서, 실시간 통신 도구(210)는 다른 디코더 시스템을 사용한다.
도 2(b)에 도시된 네트워크 환경(202)에서, 인코딩 도구(212)는 디코더들(270)을 포함하는 다수의 재생 도구(214)로 전달하기 위해 비디오를 인코딩하는 인코더(220)를 포함한다. 비디오 감시 시스템, 웹 카메라 모니터링 시스템, 원격 데스크탑 회의 발표 또는 비디오를 인코딩하여 하나의 위치로부터 하나 이상의 다른 위치로 전송하는 다른 시나리오를 위해 단방향 통신이 제공될 수 있다. 도 2(b)의 네트워크 환경(202)은 2개의 재생 도구(214)를 포함하지만, 네트워크 환경(202)은 더 많거나 적은 재생 도구(214)를 포함할 수 있다. 일반적으로, 재생 도구(214)는 인코딩 도구(212)와 통신하여, 재생 도구(214)가 수신할 비디오의 스트림을 결정한다. 재생 도구(214)는 스트림을 수신하고, 수신된 인코딩된 데이터를 적절한 기간 동안 버퍼링하고, 디코딩 및 재생을 시작한다.
도 4는 인코딩 도구(212) 내에 포함될 수 있는 예시적인 인코더 시스템(400)을 나타낸다. 대안으로서, 인코딩 도구(212)는 다른 인코더 시스템을 사용한다. 인코딩 도구(212)는 하나 이상의 재생 도구(214)와의 접속을 관리하기 위한 서버측 제어기 논리도 포함할 수 있다. 도 5는 재생 도구(214) 내에 포함될 수 있는 예시적인 디코더 시스템(500)을 나타낸다. 대안으로서, 재생 도구(214)는 다른 디코더 시스템을 사용한다. 재생 도구(214)는 인코딩 도구(212)와의 접속을 관리하기 위한 클라이언트측 제어기 논리도 포함할 수 있다.
Ⅲ. 예시적인 프레임 팩킹 / 언팩킹 시스템들
도 3은 일부 설명되는 실시예들을 구현할 수 있는 범용 프레임 팩킹/언팩킹 시스템(300)의 블록도이다.
시스템(300)은 4:4:4 포맷과 같은 고해상도 크로마 샘플링 포맷의 소스 프레임들(311)을 생성하는 비디오 소스(310)를 포함한다. 비디오 소스(310)는 카메라, 튜너 카드, 저장 매체 또는 다른 디지털 비디오 소스일 수 있다.
프레임 팩커(315)는 고해상도 크로마 샘플링 포맷의 프레임들(311)을 재배열하여, 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷의 소스 프레임들(316)을 생성한다. 프레임 팩킹에 대한 예시적인 접근법들이 아래에 설명된다. 프레임 팩커(315)는 디코딩 후에 프레임 언팩커(385)에 의한 사용을 위해 프레임 팩킹이 수행되었는지 그리고 어떻게 수행되었는지를 지시하는 메타데이터(317)를 시그널링할 수 있다. 프레임 팩킹 배열 메타데이터의 시그널링에 대한 예시적인 접근법들이 아래에 설명된다.
인코더(340)는 저해상도 크로마 샘플링 포맷의 프레임들(316)을 인코딩한다. 예시적인 인코더들이 도 4 및 6을 참조하여 아래에 설명된다. 인코더(340)는 저장 장치, 통신 접속, 또는 출력을 위한 다른 채널을 나타내는 채널(350)을 통해 코딩된 데이터(341)를 출력한다.
디코더(360)는 인코딩된 데이터(341)를 수신하고, 저해상도 크로마 샘플링 포맷의 프레임들(316)을 디코딩한다. 예시적인 디코더들이 도 5 및 7을 참조하여 아래에 설명된다. 디코더는 재구성된 저해상도 크로마 샘플링 포맷의 프레임들(381)을 출력한다.
옵션으로서 프레임 언팩커(385)는 재구성된 저해상도 크로마 샘플링 포맷의 프레임들(381)을 재배열하여, 고해상도 크로마 샘플링 포맷의 프레임들(386)을 재구성한다. 프레임 언팩킹에 대한 예시적인 접근법들이 아래에 설명된다. 프레임 언팩커(385)는 프레임 팩킹이 수행되었는지 그리고 어떻게 수행되었는지를 지시하는 메타데이터(317)를 수신하고, 그러한 메타데이터(317)를 이용하여 언팩킹 동작들을 안내할 수 있다. 프레임 언팩커(385)는 재구성된 고해상도 크로마 샘플링 포맷의 프레임들을 출력 목적지(390)로 출력한다.
Ⅳ. 예시적인 인코더 시스템들
도 4는 일부 설명되는 실시예들을 구현할 수 있는 예시적인 인코더 시스템(400)의 블록도이다. 인코더 시스템(400)은 실시간 통신을 위한 저지연 인코딩 모드, 트랜스코딩 모드, 및 파일 또는 스트림으로부터의 미디어 재생을 위한 정규 인코딩 모드와 같은 다수의 인코딩 모드 중 임의의 인코딩 모드로 동작할 수 있는 범용 인코딩 도구일 수 있거나, 하나의 그러한 인코딩 모드에 적합한 특수 목적 인코딩 도구일 수 있다. 인코더 시스템(400)은 운영 체제 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 독립 애플리케이션으로서 구현될 수 있다. 일반적으로, 인코더 시스템(400)은 비디오 소스(410)로부터 (4:4:4 포맷과 같은 고해상도 크로마 샘플링 포맷의) 소스 비디오 프레임들(411)의 시퀀스를 수신하고, 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷으로의 프레임 팩킹을 수행하고, 저해상도 크로마 샘플링 포맷의 프레임들을 인코딩하고, 인코딩된 데이터를 채널(490)로의 출력으로서 생성한다.
비디오 소스(410)는 카메라, 튜너 카드, 저장 매체 또는 다른 디지털 비디오 소스일 수 있다. 비디오 소스(410)는 예를 들어 초당 30 프레임의 프레임 레이트로 비디오 프레임들의 시퀀스를 생성한다. 본 명세서에서 사용되는 바와 같이, 용어 "프레임"은 일반적으로 소스, 코딩된 또는 재구성된 이미지 데이터를 지칭한다. 프로그레시브-스캔 비디오의 경우, 프레임은 프로그레시브-스캔 비디오 프레임이다. 인터레이싱된 비디오의 경우, 실시예들에서, 인터레이싱된 비디오 프레임은 인코딩 전에 디인터레이싱된다. 대안으로서, 2개의 상보적인 인터레이싱된 비디오 필드가 인터레이싱된 비디오 프레임으로서 또는 개별 필드들로서 인코딩된다. 프로그레시브-스캔 비디오 프레임을 지시하는 것에 더하여, 용어 "프레임"은 단일의 쌍을 이루지 않는 비디오 필드, 비디오 필드들의 상보적인 쌍, 주어진 시간에 비디오 객체를 표현하는 비디오 객체 평면, 또는 더 큰 이미지 내의 관심 영역을 지시할 수 있다. 비디오 객체 평면 또는 영역은 장면의 다수의 객체 또는 영역을 포함하는 더 큰 이미지의 일부일 수 있다. 캡처 포맷(예로서, RGB 포맷)으로부터의 컬러 공간 변환 후에, 소스 프레임들(411)은 4:4:4 포맷과 같은 고해상도 크로마 샘플링 포맷을 갖는다.
프레임 팩커(415)는 고해상도 크로마 샘플링 포맷의 프레임들(411)을 재배열하여, 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷의 소스 프레임들(416)을 생성한다. 프레임 팩킹에 대한 예시적인 접근법들이 아래에 설명된다. 프레임 팩커(415)는 디코딩 후에 프레임 언팩커에 의한 사용을 위해 프레임 팩킹이 수행되었는지 그리고 어떻게 수행되었는지를 지시하는 메타데이터(도시되지 않음)를 시그널링할 수 있다. 프레임 팩킹 배열 메타데이터의 시그널링에 대한 예시적인 접근법들이 아래에 설명된다. 프레임 팩커(415)는 예를 들어 후술하는 바와 같이 전처리 동작들을 수행할 수 있다.
다수의 프레임 버퍼 저장 영역(421, 422,..., 42n)을 포함하는 소스 프레임 임시 메모리 저장 영역(420) 내에 도달 소스 프레임(416)이 저장된다. 프레임 버퍼(421, 422 등)는 소스 프레임 저장 영역(420) 내에 하나의 소스 프레임을 유지한다. 소스 프레임들(416) 중 하나 이상이 프레임 버퍼들(421, 422 등) 내에 저장된 후, 프레임 선택기(430)는 소스 프레임 저장 영역(420)으로부터 개별 소스 프레임을 주기적으로 선택한다. 인코더(440)로의 입력을 위해 프레임 선택기(430)에 의해 프레임들이 선택되는 순서는 비디오 소스(410)에 의해 프레임들이 생성되는 순서와 다를 수 있는데, 예를 들어 선택되는 프레임은 시간상 후방 예측을 용이하게 하기 위해 순서에서 앞설 수 있다.
프레임 팩커(415)와 프레임 저장 영역(420)의 순서는 바뀔 수 있다. 인코더(440) 앞에, 인코더 시스템(400)은 인코딩 전에 선택된 프레임(431)의 전처리(예로서, 필터링)를 수행하는 다른 프리-프로세서(pre-processor)(도시되지 않음)를 포함할 수 있다.
인코더(440)는 (저해상도 크로마 샘플링 포맷의) 선택된 프레임(431)을 인코딩하여, 코딩된 프레임(441)을 생성하고, 또한 메모리 관리 제어 동작("MMCO") 신호들(442) 또는 기준 픽처 세트("RPS") 정보를 생성한다. 현재 프레임이 인코딩된 최초 프레임이 아닌 경우, 인코더(440)는 그의 인코딩 프로세스를 수행할 때, 디코딩된 프레임 임시 메모리 저장 영역(460)에 저장된 하나 이상의 이전에 인코딩/디코딩된 프레임(469)을 사용할 수 있다. 그러한 저장된 디코딩된 프레임들(469)은 현재 소스 프레임(431)의 콘텐츠의 인터 프레임 예측을 위한 기준 프레임들로서 사용된다. 일반적으로, 인코더(440)는 모션 추정 및 보상, 주파수 변환, 양자화 및 엔트로피 코딩과 같은 인코딩 작업들을 수행하는 다수의 인코딩 모듈을 포함한다. 인코더(440)에 의해 수행되는 정확한 동작들은 압축 포맷에 따라 다를 수 있다. 출력된 인코딩된 데이터의 포맷은 윈도 미디어 비디오 포맷, VC-1 포맷, MPEG-x 포맷(예로서, MPEG-1, MPEG-2 또는 MPEG-4), H.26x 포맷(예로서, H.261, H.262, H.263, H.264), HEVC 포맷 또는 다른 포맷일 수 있다. 일반적으로, 인코더(440)는 저해상도 크로마 샘플링 포맷의 프레임들의 인코딩에 적합하다.
예를 들어, 인코더(440) 내에서, 인터 코딩된 예측 프레임이 기준 프레임들로부터의 예측과 관련하여 표현된다. 모션 추정기가 하나 이상의 기준 프레임(469)과 관련된 소스 프레임(441)의 샘플들의 세트들의 모션을 추정한다. 샘플들의 세트는 (H.264 표준에서와 같이) 매크로블록, 서브매크로블록 또는 서브매크로블록 파티션일 수 있거나, (HEVC 표준에서와 같이) 코딩 트리 유닛 또는 예측 유닛일 수 있다. 일반적으로, 본 명세서에서 사용되는 바와 같이, 용어 "블록"은 단일 이차원("2D") 어레이 또는 다수의 2D 어레이(예로서, 루마 성분에 대한 하나의 어레이 및 크로마 성분들에 대한 2개의 어레이)일 수 있는 샘플들의 세트를 지시한다. 다수의 기준 프레임 사용될 때, 다수의 기준 프레임은 상이한 시간 방향들 또는 동일한 시간 방향을 가질 수 있다. 모션 추정기는 엔트로피 코딩되는 모션 벡터 정보와 같은 모션 정보를 출력한다. 모션 보상기는 모션 벡터들을 기준 프레임들에 적용하여, 모션 보상 예측 값들을 결정한다. 인코더는 (존재할 경우에) 블록의 모션 보상 예측 값들과 대응하는 본래의 값들 간의 차이들을 결정한다. 이러한 예측 오차 값들(즉, 오차들, 나머지 값들)은 주파수 변환, 양자화 및 엔트로피 인코딩을 이용하여 더 인코딩된다. 유사하게, 인트라 예측을 위해, 인코더(440)는 블록에 대한 인트라 예측 값들을 결정하고, 예측 오차 값들을 결정하고, 예측 오차 값들을 인코딩할 수 있다. 인코더(440)의 엔트로피 코더는 양자화된 변환 계수 값들은 물론, 소정의 보조 정보(예로서, 모션 벡터 정보, QP 값, 모드 결정, 파라미터 선택)도 압축한다. 대표적인 엔트로피 코딩 기술들은 Exp-Golomb 코딩, 산술 코딩, 미분 코딩, Huffman 코딩, 실행 길이 코딩, 가변 길이-가변 길이("V2V") 코딩, 가변 길이-고정 길이("V2F") 코딩, LZ 코딩, 사전 코딩(dictionary coding), 확률 간격 파티셔닝 엔트로피 코딩("PIPE") 및 위의 것들의 결합들을 포함한다. 엔트로피 코더는 상이한 정류의 정보에 대해 상이한 코딩 기술들을 이용할 수 있으며, 특정 코딩 기술 내의 다수의 코드 테이블로부터 선택할 수 있다.
코딩된 프레임들(441) 및 MMCO/RPS 정보(442)는 디코딩 프로세스 에뮬레이터(450)에 의해 처리된다. 디코딩 프로세스 에뮬레이터(450)는 디코더의 기능 중 일부, 예를 들어 모션 추정 및 보상에 있어서 인코더(440)에 의해 사용되는 기준 프레임들을 재구성하기 위한 디코딩 작업들을 구현한다. 디코딩 프로세스 에뮬레이터(450)는 MMCO/RPS 정보를 이용하여, 주어진 코딩된 프레임(441)이 인코딩될 후속 프레임들의 인터 프레임 예측에서 기준 프레임으로 사용하기 위해 저장되어야 하는지를 결정한다. MMCO/RPS 정보(442)가 코딩된 프레임(441)이 저장되어야 한다는 것을 지시하는 경우, 디코딩 프로세스 에뮬레이터(450)는 코딩된 프레임(441)을 수신하는 디코더에 의해 수행될 디코딩 프로세스를 모델링하고, 대응하는 디코딩된 프레임(451)을 생성한다. 이를 행함에 있어서, 인코더(440)가 디코딩된 프레임 저장 영역(460)에 저장된 디코딩된 프레임(들)(469)을 사용한 때, 디코딩 프로세스 에뮬레이터(450)는 또한 디코딩 프로세스의 일부로서 저장 영역(460)으로부터의 디코딩된 프레임(들)(469)을 사용한다.
디코딩된 프레임 임시 메모리 저장 영역(460)은 다수의 프레임 버퍼 저장 영역(461, 462,..., 46n)을 포함한다. 디코딩 프로세스 에뮬레이터(450)는 MMCO/RPS 정보(442)를 이용하여, 저장 영역(460)의 콘텐츠를 관리함으로써, 인코더(440)가 더 이상 기준 프레임으로 사용할 필요가 없는 프레임을 갖는 임의의 프레임 버퍼(461, 462 등)를 식별한다. 디코딩 프로세스를 모델링한 후, 디코딩 프로세스 에뮬레이터(450)는 이러한 방식으로 식별된 프레임 버퍼(461, 462 등) 내에 새로 디코딩된 프레임(451)을 저장한다.
코딩된 프레임들(441) 및 MMCO/RPS 정보(442)는 또한 임시적인 코딩된 데이터 영역(470) 내에 버퍼링된다. 코딩된 데이터 영역(470) 내에 수집된 코딩된 데이터는 또한 코딩된 비디오 데이터와 관련된 미디어 메타데이터를 (예로서, (프레임 팩킹 배열 SEI 메시지들과 같은) 하나 이상의 SEI 메시지 또는 비디오 이용성 정보("VUI") 메시지들 내의 하나 이상의 파라미터로서) 포함할 수 있다.
임시적인 코딩된 데이터 영역(470)으로부터의 수집된 데이터(471)는 채널 인코더(480)에 의해 처리된다. 채널 인코더(480)는 수집된 데이터를 (예를 들어, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 미디어 스트림으로 전송하기 위해 패킷화할 수 있으며, 이 경우에 채널 인코더(480)는 신택스 요소들을 미디어 전송 스트림의 신택스의 일부로서 추가할 수 있다. 또는, 채널 인코더(480)는 수집된 데이터를 (예로서, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 파일로서 저장하기 위해 체계화할 수 있으며, 이 경우에 채널 인코더(480)는 신택스 요소들을 미디어 저장 파일의 신택스의 일부로서 추가할 수 있다. 또는, 더 일반적으로, 채널 인코더(480)는 하나 이상의 미디어 시스템 다중화 프로토콜 또는 전송 프로토콜을 구현할 수 있으며, 이 경우에 채널 인코더(480)는 신택스 요소들을 프로토콜(들)의 신택스의 일부로서 추가할 수 있다. 미디어 전송 스트림, 미디어 저장 스트림, 다중화 프로토콜들 또는 전송 프로토콜들에 대한 그러한 신택스 요소들은 프레임 팩킹 배열 메타데이터를 포함할 수 있다. 채널 인코더(480)는 출력에 대한 저장, 통신 접속 또는 다른 채널을 나타내는 채널(490)에 출력을 제공한다.
Ⅴ. 예시적인 디코더 시스템들
도 5는 일부 설명되는 실시예들을 구현할 수 있는 예시적인 디코더 시스템(500)의 블록도이다. 디코더 시스템(500)은 실시간 통신을 위한 저지연 디코딩 모드 및 파일 또는 스트림으로부터의 미디어 재생을 위한 정규 디코딩 모드와 같은 다수의 디코딩 모드 중 임의의 디코딩 모드로 동작할 수 있는 범용 디코딩 도구일 수 있거나, 하나의 그러한 디코딩 모드에 적합한 특수 목적 디코딩 도구일 수 있다. 디코더 시스템(500)은 운영 체제 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 독립 애플리케이션으로서 구현될 수 있다. 일반적으로, 디코더 시스템(500)은 채널(510)로부터 코딩된 데이터를 수신하고, 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷의 프레임들을 디코딩하고, 옵션으로서 저해상도 크로마 샘플링 포맷으로부터 4:4:4 포맷과 같은 고해상도 크로마 샘플링 포맷으로의 프레임 언팩킹을 수행하고, (고해상도 크로마 샘플링 포맷의) 재구성된 프레임들을 출력 목적지(590)에 대한 출력으로서 생성한다.
디코더 시스템(500)은 입력으로서의 코딩된 데이터에 대한 저장, 통신 접속 또는 다른 채널을 나타낼 수 있는 채널(510)을 포함한다. 채널(510)은 채널 코딩된, 코딩된 데이터를 생성한다. 채널 디코더(520)가 코딩된 데이터를 처리할 수 있다. 예를 들어, 채널 디코더(520)는 수집된 데이터를 (예로서, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 미디어 스트림으로서 전송하기 위해 역패킷화하며, 이 경우에 채널 디코더(520)는 미디어 전송 스트림의 신택스의 일부로서 추가된 신택스 요소들을 파싱(parsing)할 수 있다. 또는, 채널 디코더(520)는 수집된 코딩된 비디오 데이터를 (예로서, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 파일로서 저장하기 위해 분할하며, 이 경우에 채널 디코더(520)는 미디어 저장 파일의 신택스의 일부로서 추가된 신택스 요소들을 파싱할 수 있다. 또는, 더 일반적으로, 채널 디코더(520)는 하나 이상의 미디어 스트림 역다중화 프로토콜 또는 전송 프로토콜을 구현할 수 있으며, 이 경우에 채널 디코더(520)는 프로토콜(들)의 신택스의 일부로서 추가된 신택스 요소들을 파싱할 수 있다. 미디어 전송 스트림, 미디어 저장 스트림, 다중화 프로토콜들 또는 전송 프로토콜들에 대한 그러한 신택스 요소들은 프레임 팩킹 배열 메타데이터를 포함할 수 있다.
채널 디코더(520)로부터 출력되는 코딩된 데이터(521)는 충분한 양의 그러한 데이터가 수신될 때까지 임시적인 코딩된 데이터 영역(530)에 저장된다. 코딩된 데이터(521)는 (저해상도 크로마 샘플링 포맷의) 코딩된 프레임들(531) 및 MMCO/RPS 정보(532)를 포함한다. 코딩된 데이터 영역(530) 내의 코딩된 데이터(521)는 또한 인코딩된 비디오 데이터와 관련된 미디어 메타데이터를 (예로서, 프레임 팩킹 배열 SEI 메시지들 또는 VUI 메시지들과 같은 하나 이상의 SEI 메시지 내의 하나 이상의 메타데이터로서) 포함할 수 있다. 일반적으로, 코딩된 데이터 영역(530)은 코딩된 데이터(521)가 디코더(550)에 의해 사용될 때까지 그러한 코딩된 데이터(521)를 임시 저장한다. 그 시점에서, 코딩된 프레임(531) 및 MMCO/RPS 정보(532)에 대한 코딩된 데이터가 코딩된 데이터 영역(530)으로부터 디코더(550)로 전송된다. 디코딩이 계속됨에 따라, 새로운 코딩된 데이터가 코딩된 데이터 영역(530)에 추가되며, 코딩된 데이터 영역(530) 내에 남은 가장 오래된 코딩된 데이터가 디코더(550)로 전송된다.
디코더(550)는 코딩된 프레임(531)을 주기적으로 디코딩하여, 저해상도 크로마 샘플링 포맷의 대응하는 디코딩된 프레임(551)을 생성한다. 적절한 경우에, 디코더(550)는 그의 디코딩 프로세스를 수행할 때, 하나 이상의 이전에 디코딩된 프레임(569)을 인터 프레임 예측을 위한 기준 프레임으로 사용할 수 있다. 디코더(550)는 디코딩된 프레임 임시 메모리 저장 영역(560)으로부터 그러한 이전에 디코딩된 프레임들(569)을 판독한다. 일반적으로, 디코더(550)는 엔트로피 디코딩, 역양자화, 주파수 역변환 및 모션 보상과 같은 디코딩 작업들을 수행하는 다수의 디코딩 모듈을 포함한다. 디코더(550)에 의해 수행되는 정확한 동작들은 압축 포맷에 따라 변할 수 있다. 일반적으로, 디코더(550)는 저해상도 크로마 샘플링 포맷의 프레임들의 디코딩에 적합하다.
예를 들어, 디코더(550)는 압축된 프레임 또는 프레임들의 시퀀스에 대한 인코딩된 데이터를 수신하고, 저해상도 크로마 샘플링 포맷의 디코딩된 프레임(551)을 포함하는 출력을 생성한다. 디코더(550)에서, 버퍼가 압축된 프레임에 대한 인코딩된 데이터를 수신하고, 수신된 인코딩된 데이터를 엔트로피 디코더에 의해 이용될 수 있게 한다. 엔트로피 디코더는 엔트로피 코딩된 양자화된 데이터는 물론, 엔트로피 코딩된 보조 정보를 엔트로피 디코딩하는데, 통상적으로는 인코더에서 수행된 엔트로피 인코딩의 역동작을 적용한다. 모션 보상기가 모션 정보를 하나 이상의 기준 프레임에 적용하여, 재구성되는 프레임의 블록들(예로서, 매크로블록들, 서브매크로블록들, 서브매크로블록 파티션들, 코딩 트리 유닛들, 예측 유닛들 또는 이들의 부분들)의 모션 보상 예측들을 형성한다. 인트라 예측 모듈이 이웃하는 이전에 재구성된 샘플 값들로부터 현재 블록의 샘플 값들을 공간적으로 예측할 수 있다. 디코더(550)는 또한 예측 오차들을 재구성한다. 역양자화기가 엔트로피 디코딩된 데이터를 역양자화한다. 주파수 역변환기가 양자화된 주파수 도메인 데이터를 공간 도메인 정보로 변환한다. 예측 프레임에 대해, 디코더(550)는 재구성된 예측 오차들과 모션 보상 예측들을 결합하여, 재구성된 프레임을 형성한다. 디코더(550)는 유사하게 예측 오차들과 인트라 예측으로부터의 공간 예측들을 결합할 수 있다. 비디오 디코더(550) 내의 모션 보상 루프는 디코딩된 프레임(551) 내의 블록 경계 행들 및/또는 열들에 걸치는 불연속들을 평활화하기 위한 적응성 디블록킹 필터를 포함한다.
디코딩된 프레임 임시 메모리 저장 영역(560)은 다수의 프레임 버퍼 저장 영역(561, 562,..., 56n)을 포함한다. 디코딩된 프레임 저장 영역(560)은 DPB의 일례이다. 디코더(550)는 MMCO/RPS 정보(532)를 이용하여, 저해상도 크로마 샘플링 포맷의 디코딩된 프레임(551)을 저장할 수 있는 프레임 버퍼(561, 562 등)를 식별한다. 디코더(550)는 디코딩된 프레임(551)을 그 프레임 버퍼 내에 저장한다.
출력 시퀀서(580)는 MMCO/RPS 정보(532)를 이용하여, 출력 순서상 생성될 다음 프레임이 디코딩된 프레임 저장 영역(560)에서 이용 가능한 시기를 식별한다. 출력 순서상 생성될 저해상도 크로마 샘플링 포맷의 다음 프레임(581)이 디코딩된 프레임 저장 영역(560)에서 이용 가능할 때, 출력 시퀀서(580)에 의해 판독되고, (a) 저해상도 크로마 샘플링 포맷의 프레임의 표시를 위한 출력 목적지(590)(예로서, 디스플레이) 또는 (b) 프레임 언팩커(585)로 출력된다. 일반적으로, 디코딩된 프레임 저장 영역(560)으로부터 출력 시퀀서(580)에 의해 프레임들이 출력되는 순서는 프레임들이 디코더(550)에 의해 디코딩되는 순서와 다를 수 있다.
프레임 언팩커(585)는 저해상도 크로마 샘플링 포맷의 프레임들(581)을 재배열하여, 4:4:4 포맷과 같은 고해상도 크로마 샘플링 포맷의 출력 프레임들(586)을 생성한다. 프레임 언팩킹에 대한 예시적인 접근법들이 아래에 설명된다. 프레임 팩커(585)는 프레임 팩킹이 수행되었는지 그리고 어떻게 수행되었는지를 지시하는 메타데이터(도시되지 않음)를 이용하여 프레임 언팩킹 동작들을 안내할 수 있다. 프레임 언팩커(585)는 예를 들어 후술하는 바와 같이 후처리 동작들을 수행할 수 있다.
Ⅵ. 예시적인 비디오 인코더들
도 6은 일부 설명되는 실시예들을 구현할 수 있는 범용 비디오 인코더(600)의 블록도이다. 인코더(600)는 현재 프레임(605)을 포함하는 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷의 비디오 프레임들의 시퀀스를 수신하고, 인코딩된 데이터(695)를 출력으로서 생성한다.
인코더(600)는 블록 기반이며, 구현에 의존하는 매크로블록 포맷을 사용한다. 블록들은 상이한 스테이지들에서, 예를 들어 주파수 변환 및 엔트로피 인코딩 스테이지들에서 더 세분될 수 있다. 예를 들어, 프레임이 16x16 매크로블록들로 분할될 수 있으며, 이어서 이들은 코딩 및 디코딩을 위해 픽셀 값들의 8x8 블록들 또는 더 작은 서브블록들로 분할될 수 있다.
인코더 시스템(600)은 예측된 프레임들 및 인트라 코딩된 프레임들을 압축한다. 설명을 위해, 도 6은 인트라 프레임 코딩을 위한 인코더(600)를 통하는 "인트라 경로" 및 인터 프레임 코딩을 위한 "인터 경로"를 도시한다. 인코더(600)의 컴포넌트들 중 다수는 인트라 프레임 코딩 및 인터 프레임 코딩 양자를 위해 사용된다. 그러한 컴포넌트들에 의해 수행되는 정확한 동작들은 압축되는 정보의 타입에 따라 변할 수 있다.
현재 프레임(605)이 예측 프레임인 경우, 모션 추정기(610)는 하나 이상의 기준 프레임과 관련된 현재 프레임(605)의 블록들(예로서, 매크로블록들, 서브매크로블록들, 서브매크로블록 파티션들, 코딩 트리 유닛들, 예측 유닛들 또는 이들의 부분들)의 모션을 추정한다. 프레임 저장소(620)는 기준 프레임으로 사용하기 위해 하나 이상의 재구성된 이전 프레임(625)을 버퍼링한다. 다수의 기준 프레임이 사용될 때, 다수의 기준 프레임은 상이한 시간 방향들 또는 동일한 시간 방향을 가질 수 있다. 모션 추정기(610)는 미분 모션 벡터 정보와 같은 모션 정보(615)를 보조 정보로서 출력한다.
모션 보상기(630)는 모션 보상된 현재 프레임(635)을 형성할 때, 재구성된 기준 프레임(들)(625)에 재구성된 모션 벡터들을 적용한다. (존재할 경우에) 모션 보상된 현재 프레임(635)의 블록과 본래의 현재 프레임(605)의 대응하는 부분 간의 차이는 블록에 대한 예측 오차이다. 현재 프레임의 후속 재구성 동안, 재구성된 예측 오차들을 모션 보상된 현재 프레임(635)에 추가하여, 본래의 현재 프레임(605)에 더 가까운 재구성된 프레임을 획득한다. 그러나, 다손실 압축에서는, 본래의 현재 프레임(605)으로부터 일부 정보가 여전히 손실된다. 인트라 경로는 이웃하는 이전에 재구성된 픽셀 값들로부터 현재 블록의 픽셀 값들을 공간적으로 예측하는 인트라 예측 모듈(도시되지 않음)을 포함할 수 있다.
주파수 변환기(660)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼 변환) 데이터로 변환한다. 블록 기반 비디오 프레임들에 대해, 주파수 변환기(660)는 픽셀 값 데이터 또는 예측 오차 데이터의 블록들에 이산 코사인 변환, 그의 정수 근사화, 또는 다른 타입의 순방향 블록 변환을 적용하여, 주파수 변환 계수들의 블록들을 생성한다. 이어서, 양자화기(670)는 변환 계수들을 양자화한다. 예를 들어, 양자화기(670)는 프레임별로, 매크로블록별로 또는 기타 등등으로 변하는 스텝 크기로 주파수 도메인 데이터에 불균일한 스칼라 양자화를 적용한다.
현재 프레임의 재구성된 버전이 후속 모션 추정/보상을 위해 필요할 때, 역양자화기(676)는 양자화된 주파수 계수 데이터에 대해 역양자화를 수행한다. 주파수 역변환기(666)는 주파수 역변환을 수행하여, 재구성된 예측 오차들 또는 픽셀 값들의 블록들을 생성한다. 예측 프레임에 대해, 인코더(600)는 재구성된 예측 오차들(645)과 모션 보상 예측들(635)을 결합하여, 재구성된 프레임(605)을 형성한다. (도 6에는 도시되지 않았지만, 인트라 경로에서, 인코더(600)는 예측 오차들과 인트라 예측으로부터의 공간 예측들을 결합할 수 있다.) 프레임 저장소(620)는 재구성된 현재 프레임을 후속 모션 보상 예측에 사용하기 위해 버퍼링한다.
인코더(600) 내의 모션 보상 루프는 프레임 저장소(620) 앞 또는 뒤에 적응성 인-루프 디블록 필터(610)를 포함한다. 디코더(600)는 재구성된 프레임들에 인-루프 필터링을 적용하여, 프레임들 내의 경계들에 걸치는 불연속들을 적응적으로 평활화한다. 적응성 인-루프 디블록 필터(610)는 일부 콘텐츠 타입들에 대해서는 불능화될 수 있다. 예를 들어, 주요 및 보조 뷰들을 이용하는 프레임 팩킹 접근법에서, 적응성 인-루프 디블록 필터(610)는 (주요 뷰의 일부가 아닌 잔여 크로마 정보를 포함하는) 보조 뷰를 인코딩할 때 불능화되어, 블러링과 같은 아티팩트들을 유발하지 않을 수 있다.
엔트로피 코더(680)는 양자화기(670)의 출력은 물론, 모션 정보(615) 및 소정의 보조 정보(예로서, QP 값들)도 압축한다. 엔트로피 코더(680)는 인코딩된 데이터(695)를 버퍼(690)에 제공하며, 이 버퍼는 인코딩된 데이터를 출력 비트스트림으로 다중화한다.
제어기(도시되지 않음)가 인코더의 다양한 모듈들로부터 입력들을 수신한다. 제어기는 인코딩 동안 중간 결과들을 평가하는데, 예를 들어 QP 값들을 설정하고, 레이트 왜곡 분석을 수행한다. 제어기는 다른 모듈들과 협력하여, 인코딩 동안 코딩 파라미터들을 설정 및 변경한다. 특히, 제어기는 QP 값들 및 다른 제어 파라미터들을 변경하여, 인코딩 동안 루마 성분들 및 크로마 성분들의 양자화를 제어할 수 있다. 예를 들어, 제어기는 주어진 프레임의 크로마 콘텐츠에 비해 (프레임 팩킹 접근법에서 주요 뷰 또는 보조 뷰일 수 있는) 그 프레임의 루마 콘텐츠에 더 많은 비트를 제공하도록 QP 값들을 변경할 수 있다. 또는, 주요 및 보조 뷰들을 이용하는 프레임 팩킹 접근법에서, 제어기는 (잔여 크로마 정보를 포함하는) 보조 뷰에 비해 (루마 및 서브샘플링된 크로마 성분들을 포함하는) 주요 뷰에 더 많은 비트를 제공하도록 QP 값들을 변경할 수 있다.
프레임 팩킹에 대한 일부 접근법에서는, 고해상도 크로마 샘플링 포맷의 프레임들로부터의 크로마 정보가 저해상도 크로마 샘플링 포맷의 인코딩될 프레임들로 팩킹된 후에도, 인코더는 크로마 성분들의 샘플 값들 간의 기하학적 대응을 다양한 방식으로 이용할 수 있다. 기하학적 대응이라는 용어는 (1) 저해상도 크로마 샘플링 포맷으로부터 구성된 프레임의 (명목상) 루마 성분의 위치들에서의 크로마 정보와 (2) 저해상도 크로마 샘플링 포맷의 프레임의 크로마 성분들의 대응하는 스케일링된 위치들에서의 크로마 정보 사이의 관계를 지시한다. 루마 및 크로마 성분들의 위치들 사이에 스케일링 팩터가 적용된다. 예를 들어, 4:2:0의 경우에 스케일링 팩터는 수평 및 수직 양자에서 2이며, 4:2:2의 경우에 스케일링 팩터는 수평에서는 2이고, 수직에서는 1이다.
인코더는 인코딩될 프레임의 현재 블록을 인코딩할 때 이웃 블록들의 최근 결과들을 먼저 평가함으로써 블록별로 모션 추정, QP 선택, 예측 모드 선택 또는 다른 결정 프로세스들을 안내하기 위해 기하학적 대응을 이용할 수 있다. 또는, 인코더는 인코딩될 프레임의 "루마" 성분으로 팩킹된 고해상도 크로마 정보의 인코딩으로부터의 결과들을 이용하여, 인코딩될 프레임의 크로마 성분들로 팩킹된 고해상도 크로마 정보에 대한 그러한 결정 프로세스들을 안내하기 위해 기하학적 대응을 이용할 수 있다. 또는, 더 직접적으로, 인코더는 압축 성능을 향상시키기 위해 기하학적 대응을 이용할 수 있으며, 이 경우에 인코딩될 프레임의 "루마" 성분으로 팩킹된 고해상도 크로마 정보에 대한 모션 벡터들, 예측 모드들 또는 다른 결정들은 인코딩될 프레임의 크로마 성분들로 팩킹된 고해상도 크로마 정보에 대해서도 사용된다. 특히, 본 명세서에서 설명되는 일부 접근법들(예로서, 아래의 접근법 2)에서는, 크로마 정보가 저해상도 크로마 샘플링 포맷의 보조 프레임으로 팩킹될 때, 보조 프레임의 명목상 루마 성분과 보조 프레임의 명목상 크로마 성분들 사이의 공간적 대응 및 모션 벡터 변위 관계들이 유지된다. 보조 프레임의 Y, U 및 V 성분들 내의 대응하는 공간 위치들에서의 샘플 값들은 일관되는 경향이 있으며, 이는 0이 아닌 계수 값들의 존재/부재를 지시하는 코딩된 블록 패턴 정보 또는 기타 정보의 공간 블록 크기 분할 및 조인트 코딩과 같은 목적들에 유용하다. 보조 프레임의 Y, U 및 V 성분들의 대응하는 부분들에 대한 모션 벡터들은 일관되는 경향이 있으며(예를 들어, Y 내의 2개의 샘플의 수직 또는 수평 변위가 U 및 V 내의 1개의 샘플의 변위에 대응하며), 이는 또한 코딩 효율에 도움이 된다.
구현 및 원하는 압축의 타입에 따라, 인코더의 모듈들이 추가되고, 생략되고, 다수의 모듈로 분할되고, 다른 모듈들과 결합되고/되거나, 유사한 모듈들로 대체될 수 있다. 대안 실시예들에서는, 상이한 모듈들 및/또는 상이한 모듈 구성들을 갖는 인코더들이 설명되는 기술들 중 하나 이상을 수행한다. 인코더들의 특정 실시예들은 통상적으로 인코더(600)의 변형 또는 보완된 버전을 사용한다. 인코더(600) 내의 모듈들 간의 도시된 관계들은 인코더 내의 정보의 일반 흐름들을 지시하며, 간소화를 위해 다른 관계들은 도시되지 않는다.
Ⅶ. 예시적인 비디오 디코더들
도 7은 여러 설명되는 실시예를 구현할 수 있는 범용 디코더(700)의 블록도이다. 디코더(700)는 압축된 프레임 또는 프레임들의 시퀀스에 대한 인코딩된 데이터(795)를 수신하고, 4:2:0 포맷과 같은 저해상도 크로마 샘플링 포맷의 재구성된 프레임(705)을 포함하는 출력을 생성한다. 설명을 위해, 도 7은 인트라 프레임 디코딩을 위한 디코더(700)를 통하는 "인트라 경로" 및 인터 프레임 디코딩을 위한 "인터 경로"를 도시한다. 디코더(700)의 컴포넌트들 중 다수는 인트라 프레임 디코딩 및 인터 프레임 디코딩 양자를 위해 사용된다. 그러한 컴포넌트들에 의해 수행되는 정확한 동작들은 압축 해제되는 정보의 타입에 따라 변할 수 있다.
버퍼(790)가 압축된 프레임에 대한 인코딩된 데이터(795)를 수신하고, 수신된 인코딩된 데이터를 파서/엔트로피 디코더(780)에 의해 이용될 수 있게 한다. 파서/엔트로피 디코더(780)는 엔트로피 코딩된 양자화된 데이터는 물론, 엔트로피 코딩된 보조 정보도 엔트로피 디코딩하는데, 통상적으로는 인코더에서 수행되는 엔트로피 인코딩의 역동작을 적용한다.
모션 보상기(730)가 하나 이상의 기준 프레임(725)에 모션 정보(715)를 적용하여, 재구성되는 프레임(705)의 블록들(예로서, 매크로블록들, 서브매크로블록들, 서브매크로블록 파티션들, 코딩 트리 유닛들, 예측 유닛들 또는 이들의 부분들)의 모션 보상 예측들(735)을 형성한다. 프레임 저장소(720)는 하나 이상의 이전에 재구성된 프레임을 기준 프레임으로 사용하기 위해 저장한다.
인트라 경로는 이웃하는 이전에 재구성된 픽셀 값들로부터 현재 블록의 픽셀 값들을 공간적으로 예측하는 인트라 예측 모듈(도시되지 않음)을 포함할 수 있다. 인터 경로에서, 디코더(700)는 예측 오차들을 재구성한다. 역양자화기(770)가 엔트로피 디코딩된 데이터를 역양자화한다. 주파수 역변환기(760)가 양자화된 주파수 도메인 데이터를 공간 도메인 정보로 변환한다. 예를 들어, 주파수 역변환기(760)는 블록 역변환을 주파수 변환 계수들에 적용하여, 픽셀 값 데이터 또는 예측 오차 데이터를 생성한다. 주파수 역변환은 이산 코사인 역변환, 그의 정수 근사화, 또는 다른 타입의 주파수 역변환일 수 있다.
예측 프레임에 대해, 디코더(700)는 재구성된 예측 오차들(745)과 모션 보상 예측들(735)을 결합하여, 재구성된 프레임(705)을 형성한다. (도 7에는 도시되지 않았지만, 인트라 경로에서, 디코더(700)는 예측 오차들과 인트라 예측으로부터의 공간 예측들을 결합할 수 있다.) 디코더(700) 내의 모션 보상 루프는 프레임 저장소(720) 앞 또는 뒤에 적응성 인-루프 디블록 필터(710)를 포함한다. 디코더(700)는 인-루프 필터링을 재구성된 프레임들에 적용하여, 프레임들 내의 경계들에 걸치는 불연속들을 적응적으로 평활화한다. 적응성 인-루프 디블록 필터(710)는 인코딩 동안 불능화되었을 때 일부 콘텐츠 타입들에 대해 불능화될 수 있다. 예를 들어, 주요 및 보조 뷰들을 이용하는 프레임 팩킹 접근법에서, 적응성 인-루프 디블록 필터(710)는 (주요 뷰의 일부가 아닌 잔여 크로마 정보를 포함하는) 보조 뷰를 디코딩할 때 불능화될 수 있다.
도 7에서, 디코더(700)는 후처리 디블록 필터(708)도 포함한다. 후처리 디블록 필터(708)는 옵션으로서, 재구성된 프레임들의 불연속들을 평활화한다. (디링(de-ring) 필터링과 같은) 다른 필터링도 후처리 필터링의 일부로서 적용될 수 있다. 통상적으로, 후속 프레임 언팩킹되는 재구성된 프레임들은 후처리 디블록 필터(708)를 우회한다.
구현 및 원하는 압축 해제의 타입에 따라, 디코더의 모듈들이 추가되고, 생략되고, 다수의 모듈로 분할되고, 다른 모듈들과 결합되고/되거나, 유사한 모듈들로 대체될 수 있다. 대안 실시예들에서는, 상이한 모듈들 및/또는 상이한 모듈 구성들을 갖는 디코더들이 설명되는 기술들 중 하나 이상을 수행한다. 디코더들의 특정 실시예들은 통상적으로 디코더(700)의 변형 또는 보완된 버전을 사용한다. 디코더(700) 내의 모듈들 간의 도시된 관계들은 디코더 내의 정보의 일반 흐름들을 지시하며, 간소화를 위해 다른 관계들은 도시되지 않는다.
Ⅷ. 고해상도 크로마 샘플링 포맷들에 대한 프레임 팩킹 / 언팩킹
이 섹션은 고해상도 크로마 샘플링 포맷의 프레임들의 저해상도 크로마 샘플링 포맷의 프레임들로의 팩킹에 대한 다양한 접근법들을 설명한다. 이어서, 저해상도 크로마 샘플링 포맷의 프레임들은 저해상도 크로마 샘플링 포맷을 위해 설계된 인코더를 이용하여 인코딩될 수 있다. (저해상도 크로마 샘플링 포맷을 위해 설계된 디코더를 이용하는) 디코딩 후에, 저해상도 크로마 샘플링 포맷의 프레임들이 추가 처리 및 표시를 위해 출력될 수 있다. 또는, 그러한 디코딩 후에, 고해상도 크로마 샘플링 포맷의 프레임들이 출력 및 표시를 위해 프레임 언팩킹을 통해 복구될 수 있다.
A. YUV 4:4:4 비디오의 프레임 팩킹/언팩킹에 대한 접근법들
본 명세서에서 설명되는 다양한 접근법들은 인코딩/디코딩이 하나의 특정 예로서 4:2:0 포맷을 사용할 때 4:4:4 포맷의 프레임들에 대한 크로마 정보를 유지하는 데 사용될 수 있다. 이러한 접근법들에서는, 예를 들어, YUV 4:4:4 프레임이 2개의 YUV 4:2:0 프레임으로 팩킹된다. 통상적인 4:4:4 프레임은 4개의 픽셀 위치마다 12개의 샘플 값을 포함하는 반면, 4:2:0 프레임은 4개의 픽셀 위치마다 6개의 샘플 값만을 포함한다. 따라서, 4:4:4 프레임 내에 포함된 모든 샘플 값들은 2개의 4:2:0 프레임으로 팩킹될 수 있다.
1. 접근법 1
접근법 1에서는, 공간 파티셔닝을 이용하여 YUV 4:4:4 프레임이 2개의 YUV 4:2:0 프레임으로 팩킹된다. 도 8은 YUV 4:4:4 프레임의 공간 파티셔닝을 이용하는 프레임 팩킹에 대한 이러한 접근법(800)을 도시한다.
Y444 평면, U444 평면 및 V444 평면이 YUV 4:4:4 프레임(801)에 대한 3개의 성분 평면이다. 각각의 평면은 폭(W) 및 높이(H)의 해상도를 갖는다. 본 명세서에서 사용되는 예들의 설명의 편의를 위해, W 및 H 양자는 4로 나눌 수 있으며, 이는 접근법의 한정을 암시하지 않는다. YUV 4:4:4 프레임의 2개의 YUV 4:2:0 프레임으로의 팩킹에 대한 접근법(800)은 도 8에 도시된 바와 같이 YUV 4:4:4 프레임을 분할한다. YUV 4:4:4 프레임(801)의 U444 평면은 공간 파티셔닝을 이용하여 하부 하프(H2-U444) 및 2개의 상부 쿼터(Q1-U444, Q2-U444)로 파티셔닝된다. YUV 4:4:4 프레임(801)의 V444 평면은 공간 파티셔닝을 이용하여 하부 하프(H2-V444) 및 2개의 상부 쿼터(Q1-V444, Q2-V444)로 파티셔닝된다.
이어서, YUV 4:4:4 프레임(801)의 파티셔닝된 평면들은 하나 이상의 YUV 4:2:0 프레임으로 인식된다. YUV 4:4:4 프레임들에 대한 Y444 평면은 YUV 4:2:0 포맷의 제1 프레임(802)의 루마 성분 평면이 된다. U444 평면 및 V444 평면의 하부 하프들은 YUV 4:2:0 포맷의 제2 프레임(803)의 루마 성분 평면이 된다. U444 평면 및 V444 평면의 상부 쿼터들은 도 8에 도시된 바와 같이 YUV 4:2:0 포맷의 제1 프레임(802) 및 제2 프레임(803)의 크로마 성분 평면들이 된다.
YUV 4:2:0 포맷의 제1 프레임(802) 및 제2 프레임(803)은 (도 8의 짙은 선에 의해 분리되는) 분리된 프레임들로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(802) 및 제2 프레임(803)은 (도 8의 짙은 선을 무시하는) 2 x H의 높이를 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(802) 및 제2 프레임(803)은 2 x W의 폭을 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(802) 및 제2 프레임(803)은 H.264/AVC 표준 또는 HEVC 표준에서 frame_packing_arrangement_type에 대해 정의되는 방법들 중 임의의 방법을 이용하여 단일 프레임 또는 다수의 프레임으로서 구성될 수 있다.
이러한 타입의 프레임 팩킹이 유효하지만, 이는 2개의 YUV 4:2:0 프레임 각각 내의 Y, U 및 V 성분들 간의 기하학적 대응을 생성하지 못한다. 특히, YUV 4:2:0 포맷의 제2 프레임(803)에 대해서는, 통상적으로 루마 성분과 크로마 성분들 간의 기하학적 대응이 존재하지 않는다. 본 명세서에서 설명되는 다른 팩킹 접근법들은 통상적으로 훨씬 더 양호한 기하학적 대응을 달성한다.
대안으로서, 접근법 1은 크로마 샘플링 포맷들로서의 4:4:4, 4:2:2, 4:2:0 등과 같은 샘플링 비율들에서의 RGB, GBR 등과 같은 컬러 공간들에 대해 사용될 수 있다.
2. 접근법 2
접근법 2에서는, YUV 4:4:4 프레임이 YUV 4:4:4 프레임의 크로마 정보에 대한 기하학적 대응을 유지하면서 2개의 4:2:0 프레임으로 팩킹된다. 자신들의 Y, U 및 V 성분들 간의 양호한 기하학적 대응을 갖는 YUV 4:2:0 프레임들은 더 양호하게 압축될 수 있는데, 그 이유는 그들이 YUV 4:2:0 프레임들을 인코딩하는 데 적합한 통상적인 인코더에 의해 예측되는 모델에 적합하기 때문이다.
팩킹은 또한 2개의 YUV 4:2:0 프레임 중 하나가 저해상도의 컬러 성분들을 갖지만 YUV 4:4:4 프레임에 의해 표현되는 완전한 장면을 표현하도록 수행될 수 있다. 이것은 디코딩에서의 옵션들을 제공한다. 프레임 언팩킹을 수행하지 못하거나 프레임 언팩킹을 수행하지 않기로 결정하는 디코더는 장면을 표현하는 YUV 4:2:0 프레임의 재구성 버전만을 취하고, 이를 디스플레이에 직접 제공할 수 있다.
도 9는 이러한 설계 제약들과 양립하는 프레임 팩킹에 대한 하나의 예시적인 접근법(900)을 나타낸다. 이러한 접근법(900)에서는, YUV 4:4:4 프레임(801)이 2개의 YUV 4:2:0 프레임(902, 903)으로 팩킹된다. 제1 프레임(902)은 YUV 4:2:0 포맷의 "주요 뷰" - YUV 4:4:4 프레임(801)에 의해 표현되는 완전한 장면의 더 낮은 크로마 해상도 버전 -를 제공한다. 제2 프레임(903)은 YUV 4:2:0 포맷의 "보조 뷰"를 제공하며, 잔여 크로마 정보를 포함한다.
도 9에서, 영역들(B1-B9)은 YUV 4:2:0 포맷의 각각의 프레임(902, 903) 내의 상이한 영역들이다. YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 홀수 행들의 샘플 값들은 영역들(B4, B5)에 할당되고, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 짝수 행들의 샘플 값들은 영역들(B2, B3, B6-B9) 사이에 분배된다. 특히, YUV 4:4:4 프레임(801)의 Y444 평면, U444 평면 및 V444 평면의 샘플 값들은 아래와 같이 영역들(B1-B9)에 맵핑된다.
- 영역 B1에 대해,
Figure 112015031475594-pct00001
여기서 (x,y)의 범위는 [0, W-1] x [0, H-1]이다.
- 영역 B2에 대해,
Figure 112015031475594-pct00002
여기서 (x,y)의 범위는
Figure 112015031475594-pct00003
Figure 112015031475594-pct00004
이다.
- 영역 B3에 대해,
Figure 112015031475594-pct00005
여기서 (x,y)의 범위는
Figure 112015031475594-pct00006
Figure 112015031475594-pct00007
이다.
- 영역 B4에 대해,
Figure 112015031475594-pct00008
여기서 (x,y)의 범위는 [0, W-1] x
Figure 112015031475594-pct00009
이다.
- 영역 B5에 대해,
Figure 112015031475594-pct00010
여기서 (x,y)의 범위는 [0, W-1] x
Figure 112015031475594-pct00011
이다.
- 영역 B6에 대해,
Figure 112015031475594-pct00012
여기서 (x,y)의 범위는
Figure 112015031475594-pct00013
Figure 112015031475594-pct00014
이다.
- 영역 B7에 대해,
Figure 112015031475594-pct00015
여기서 (x,y)의 범위는
Figure 112015031475594-pct00016
Figure 112015031475594-pct00017
이다.
- 영역 B8에 대해,
Figure 112015031475594-pct00018
여기서 (x,y)의 범위는
Figure 112015031475594-pct00019
Figure 112015031475594-pct00020
이다.
- 영역 B9에 대해,
Figure 112015031475594-pct00021
여기서 (x,y)의 범위는
Figure 112015031475594-pct00022
Figure 112015031475594-pct00023
이다.
대안으로서, YUV 4:4:4 프레임(801)의 Y444 평면, U444 평면 및 V444 평면의 샘플 값들은 영역들(B1-B9)에 상이한 방식으로 할당될 수 있다. 예를 들어, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 짝수 행들의 샘플 값들은 영역들(B4, B5)에 할당되며, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 홀수 행들의 샘플 값들은 영역들(B2, B3, B6-B9) 사이에 분배된다. 또는, 다른 예로서, YUV 4:4:4 프레임의 본래의 U 평면으로부터의 데이터가 보조 YUV 4:2:0 프레임의 U 평면 내에 배열될 수 있고, YUV 4:4:4 프레임의 본래의 V 평면으로부터의 데이터가 보조 YUV 4:2:0 프레임의 V 평면 내에 배열될 수 있다. 이 예에서는, 도 9에 비해, 위의 방정식들에서 영역(B7)에 할당되는 V444(2x+1, 4y)로부터의 샘플 값들은 영역(B8)에 대신 할당될 수 있으며, 위의 방정식들에서 영역(B8)에 할당되는 U444(2x+1, 4y+2)로부터의 샘플 값들은 영역(B7)에 대신 할당될 수 있다. 또는, U444로부터의 동일한 샘플 값들은 2개의 행마다 분할하지 않고서 B6 및 B7에 대한 단일 영역 내로 복사될 수 있으며, V444로부터의 동일한 샘플 값들은 2개의 행마다 분할하지 않고서 B8 및 B9에 대한 단일 영역 내로 복사될 수 있다. 여하튼, 보조 YUV 4:2:0 프레임의 U 평면(또는 V 평면)은 상이한 본래의 U 및 V 평면들로부터의 콘텐츠의 혼합 없이 YUV 4:4:4 프레임의 U 평면(또는 V 평면)으로부터 구성된다. (이와 달리, 도 9의 예에서, 보조 YUV 4:2:0 프레임의 U 평면(또는 V 평면)은 YUV 4:4:4 프레임의 U 및 V 성분들로부터의 데이터의 혼합물을 갖는다. 보조 YUV 4:2:0 프레임의 U 평면(또는 V 평면)의 상부 하프는 본래의 U 평면으로부터의 데이터를 포함하며, 하부 하프는 본래의 V 평면으로부터의 데이터를 포함한다.)
YUV 4:2:0 포맷의 제1 프레임(902) 및 제2 프레임(903)은 (도 9에서 짙은 선에 의해 분리되는) 분리된 프레임들로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(902) 및 제2 프레임(903)은 (도 9의 짙은 선을 무시하는) 2 x H의 높이를 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(902) 및 제2 프레임(903)은 2 x W의 폭을 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(902) 및 제2 프레임(903)은 H.264/AVC 표준 또는 HEVC 표준에서 frame_packing_arrangement_type에 대해 정의되는 방법들 중 임의의 방법을 이용하여 단일 프레임 또는 다수의 프레임으로서 구성될 수 있다.
도 10은 도 9의 접근법(900)에 따라 팩킹된 예시적인 프레임들을 나타낸다. 도 10은 Y444 평면, U444 평면 및 V444 평면을 포함하는 YUV 4:4:4 프레임(1001)을 나타낸다.
프레임 팩킹 후에, 주요 뷰(1002)(제1 YUV 4:2:0 프레임)는 본래의 YUV 4:4:4 프레임(1001)의 YUV 4:2:0 등가물이다. 디코딩 시스템은 YUV 4:4:4가 지원되지 않거나 필요 없는 것으로 간주되는 경우에는 단지 주요 뷰(1002)의 재구성 버전을 표시할 수 있다.
보조 뷰(1003)는 YUV 4:4:4 프레임(1001)에 대한 크로마 정보를 포함한다. 따라서, 보조 뷰(1003)는 YUV 4:2:0 프레임의 콘텐츠 모델에 적합하며, 통상적인 YUV 4:2:0 비디오 인코더를 이용하는 압축에 적합하다. 프레임 내에서, 보조 뷰(1003)는 그의 Y, U 및 V 성분들 사이에 기하학적 대응을 나타낸다. 프레임들 사이에서, 보조 뷰들은 Y, U 및 V 성분들에 걸쳐 고도로 상관되는 모션을 보일 것으로 예상된다.
도 11은 이러한 설계 제약들과 양립하는 프레임 팩킹에 대한 다른 예시적인 접근법(1100)을 나타낸다. 이 접근법(1100)에서는, YUV 4:4:4 프레임(801)이 2개의 YUV 4:2:0 프레임(1102, 1103)으로 팩킹된다. 도 9의 접근법(900)과 같이, 도 11의 접근법(1100)에서, 제1 프레임(1102)은 YUV 4:2:0 포맷의 "주요 뷰" - YUV 4:4:4 프레임(801)에 의해 표현되는 완전한 장면의 더 낮은 크로마 해상도 버전 -를 제공하며, 제2 프레임(1103)은 YUV 4:2:0 포맷의 "보조 뷰"를 제공하고, 잔여 크로마 정보를 포함한다.
도 11에서, 영역들(A1-A9)은 YUV 4:2:0 포맷의 각각의 프레임(1102, 1103) 내의 상이한 영역들이다. YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 홀수 열들의 샘플 값들은 영역들(A4, A5)에 할당되며, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 짝수 열들의 샘플 값들은 영역들(A2, A3, A6-A9) 사이에 분배된다. 특히, YUV 4:4:4 프레임(801)의 Y444 평면, U444 평면 및 V444 평면의 샘플 값들은 아래와 같이 영역들(A1-A9)에 맵핑된다.
- 영역 A1에 대해,
Figure 112015031475594-pct00024
여기서 (x,y)의 범위는 [0, W-1] x [0, H-1]이다.
- 영역 A2에 대해,
Figure 112015031475594-pct00025
여기서 (x,y)의 범위는
Figure 112015031475594-pct00026
Figure 112015031475594-pct00027
이다.
- 영역 A3에 대해,
Figure 112015031475594-pct00028
여기서 (x,y)의 범위는
Figure 112015031475594-pct00029
Figure 112015031475594-pct00030
이다.
- 영역 A4에 대해,
Figure 112015031475594-pct00031
여기서 (x,y)의 범위는
Figure 112015031475594-pct00032
[0, H-1]이다.
- 영역 A5에 대해,
Figure 112015031475594-pct00033
여기서 (x,y)의 범위는
Figure 112015031475594-pct00034
[0, H-1]이다.
- 영역 A6에 대해,
Figure 112015031475594-pct00035
여기서 (x,y)의 범위는
Figure 112015031475594-pct00036
Figure 112015031475594-pct00037
이다.
- 영역 A7에 대해,
Figure 112015031475594-pct00038
여기서 (x,y)의 범위는
Figure 112015031475594-pct00039
Figure 112015031475594-pct00040
이다.
- 영역 A8에 대해,
Figure 112015031475594-pct00041
여기서 (x,y)의 범위는
Figure 112015031475594-pct00042
Figure 112015031475594-pct00043
이다.
- 영역 A9에 대해,
Figure 112015031475594-pct00044
여기서 (x,y)의 범위는
Figure 112015031475594-pct00045
Figure 112015031475594-pct00046
이다.
대안으로서, YUV 4:4:4 프레임(801)의 Y444 평면, U444 평면 및 V444 평면의 샘플 값들은 영역들(A1-A9)에 상이한 방식으로 할당될 수 있다. 예를 들어, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 짝수 열들의 샘플 값들은 영역들(A4, A5)에 할당되며, YUV 4:4:4 프레임(801)의 U444 평면 및 V444 평면의 홀수 열들의 샘플 값들은 영역들(A2, A3, A6-A9) 사이에 분배된다. 또는, 다른 예로서, YUV 4:4:4 프레임의 본래의 U 평면으로부터의 데이터가 보조 YUV 4:2:0 프레임의 U 평면 내에 배열될 수 있고, YUV 4:4:4 프레임의 본래의 V 평면으로부터의 데이터가 보조 YUV 4:2:0 프레임의 V 평면 내에 배열될 수 있다. 이 예에서는, 도 11에 비해, 위의 방정식들에서 영역(A7)에 할당되는 V444(4x, 2y+1)로부터의 샘플 값들은 영역(A8)에 대신 할당되며, 위의 방정식들에서 영역(A8)에 할당되는 U444(4x+2, 2y+1)로부터의 샘플 값들은 영역(A7)에 대신 할당된다. 또는, U444로부터의 동일한 샘플 값들은 2개의 열마다 분할하지 않고서 A6 및 A7에 대한 단일 영역 내로 복사될 수 있으며, V444로부터의 동일한 샘플 값들은 2개의 열마다 분할하지 않고서 A8 및 A9에 대한 단일 영역 내로 복사될 수 있다. 여하튼, 보조 YUV 4:2:0 프레임의 U 평면(또는 V 평면)은 상이한 본래의 U 및 V 평면들로부터의 콘텐츠의 혼합 없이 YUV 4:4:4 프레임의 U 평면(또는 V 평면)으로부터 구성된다.
YUV 4:2:0 포맷의 제1 프레임(1102) 및 제2 프레임(1103)은 (도 11에서 짙은 선에 의해 분리되는) 분리된 프레임들로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(1102) 및 제2 프레임(1103)은 (도 11의 짙은 선을 무시하는) 2 x H의 높이를 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(1102) 및 제2 프레임(1103)은 2 x W의 폭을 갖는 단일 프레임으로서 구성될 수 있다. 또는, YUV 4:2:0 포맷의 제1 프레임(1102) 및 제2 프레임(1103)은 H.264/AVC 표준 또는 HEVC 표준에서 frame_packing_arrangement_type에 대해 정의되는 방법들 중 임의의 방법을 이용하여 단일 프레임 또는 다수의 프레임으로서 구성될 수 있다.
프레임 언팩킹은 프레임 팩킹을 단순히 미러링할 수 있다. YUV 4:2:0 포맷의 프레임들의 영역들에 할당되는 샘플들은 YUV 4:4:4 포맷의 프레임들의 크로마 성분들 내의 본래의 위치들에 다시 할당된다. 일 구현에서, 예를 들어, 프레임 언팩킹 동안, YUV 4:2:0 포맷의 프레임들의 영역들(B2-B9) 내의 샘플들은 아래의 의사 코드에 나타난 바와 같이 YUV 4:4:4 포맷의 프레임의 재구성된 크로마 성분들(U'444, V'444)에 할당된다.
Figure 112015031475594-pct00047
여기서, " 마크는 (아마도 다손실의) 코딩으로부터의 재구성을 지시한다.
B. 프레임 팩킹 정보를 시그널링하기 위한 값들의 신택스 및 시맨틱스
예시적인 구현들에서, 2개의 4:2:0 프레임이 팩킹된 4:4:4 프레임을 포함한다는 것을 시그널링하기 위해 프레임 팩킹 배열 SEI 메시지가 사용된다. 프레임 팩킹 배열 SEI 메시지들은 H.264/AVC 표준은 물론, HEVC 표준에서도 정의되지만, 그러한 프레임 팩킹 배열 SEI 메시지들은 이전에 상이한 목적을 위해 사용되었다.
프레임 팩킹 배열 SEI 메시지는 2D 비디오 코덱을 이용하여 입체 3D 비디오 프레임들을 전송하기 위해 설계되었다. 그러한 경우에, 2개의 4:2:0 프레임은 입체 3D 비디오 장면의 좌측 및 우측 뷰들을 표현한다. 본 명세서에서 설명되는 접근법들에 대해, 프레임 팩킹 배열 SEI 메시지의 범위는 단일 4:4:4 프레임으로부터 획득된 2개의 4:2:0 프레임의 인코딩/디코딩 및 이어지는 4:4:4 프레임을 복구하기 위한 프레임 언팩킹을 대신 지원하도록 확장될 수 있다. 2개의 4:2:0 프레임은 주요 뷰 및 보조 뷰를 표현한다. 주요 및 보조 뷰들(프레임들) 양자는 4:2:0 포맷의 등가인 포맷을 갖는다. 주요 뷰(프레임)는 독립적으로 유용할 수 있는 반면, 보조 뷰(프레임)는 주요 뷰와 함께 적절히 해석될 때 유용하다. 따라서, 이러한 접근법들은 프레임 팩킹 배열 SEI 메시지를 이용하여, 4:2:0 프레임들을 코딩/디코딩할 수 있는 비디오 코덱들을 이용하여 4:4:4 프레임들을 인코딩/디코딩하는 것을 효과적으로 지원할 수 있다.
이 때문에, SEI 메시지가 확장된다. 예를 들어, 신택스 요소 content_interpretation_type의 시맨틱스가 아래와 같이 확장된다. 관련 프레임 팩킹 접근법들에서, YUV 4:4:4 프레임에 대해, 2개의 구성 YUV 4:2:0 프레임 - 주요 뷰에 대한 제1 프레임 및 보조 뷰에 대한 제2 프레임 -이 존재한다. content_interpretation_type은 아래의 표에서 지정되는 바와 같이 구성 프레임들의 의도된 해석을 지시한다. 값 0, 1 및 2는 H.264/AVC 표준 및 HEVC 표준에서와 같이 해석된다. content_interpretation_type에 대한 새로운 값들은 구성 프레임들이 YUV 4:4:4 프레임들로부터의 데이터를 포함하는 것으로 해석되어야 한다는 것을 지시하도록 정의된다.
Figure 112015031475594-pct00048
대안으로서, 신택스 요소 content_interpretation_type에 대한 상이한 값들이 이전의 표에 나타난 해석들과 관련된다. 또는, content_interpretation_type에 대한 다른 그리고/또는 추가적인 해석들을 이용하여, 프레임 팩킹에 의해 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로부터 획득된 저해상도 크로마 샘플링 포맷의 프레임들의 인코딩/디코딩을 지원할 수 있다.
게다가, 간소화의 목적을 위해, 프레임 팩킹 배열 SEI 메시지의 다른 신택스 요소들에 대해 아래의 제약들 중 하나 이상이 또한 부과될 수 있다. content_interpretation_type이 3과 6 사이의 값을 가질 때(즉, YUV 4:4:4 프레임들의 YUV 4:2:0 프레임들로의 프레임 팩킹을 수반하는 예들의 경우), 신택스 요소 quincunx_sampling_flag, spatial_flipping_flag, frame0_grid_position_x, frame0_grid_position_y, frame1_grid_position_x 및 frame1_grid_position_y의 값들은 0이어야 한다. 더구나, content_interpretation_type이 (전처리에서의 필터링의 부재를 지시하는) 3 또는 5와 동일할 때, chroma_loc_info_present_flag는 1이어야 하며, chroma_sample_loc_type_top_field 및 chroma_sample_loc_type_bottom_field의 값들은 2이어야 한다.
H.264/AVC 표준에서(그리고 HEVC 표준에서), 신택스 요소 frame_packing_arrangment_type은 입체 뷰의 2개의 구성 프레임이 어떻게 배열되는지를 지시한다. 예를 들어, frame_packing_arrangment_type == 3은 2개의 구성 프레임의 병렬 팩킹을 지시하고, frame_packing_arrangment_type == 4는 2개의 구성 프레임의 상하 팩킹을 지시하며, frame_packing_arrangment_type == 5는 2개의 구성 프레임의 시간 인터리빙을 지시한다. 신택스 요소 frame_packing_arrangment_type 은 고해상도 크로마 샘플링 포맷의 프레임들의 팩킹을 지시하는 content_interpretation_type의 값들과 연계하여 유사하게 사용될 수 있다. 예를 들어, frame_packing_arrangment_type == 3은 주요 및 보조 프레임들의 병렬 팩킹을 지시할 수 있고, frame_packing_arrangment_type == 4는 주요 및 보조 프레임들의 상하 팩킹을 지시할 수 있으며, frame_packing_arrangment_type == 5는 주요 및 보조 프레임들의 시간 인터리빙을 지시할 수 있다. 또는, 프레임 팩킹 배열 메타데이터가 소정의 다른 방식으로 시그널링된다. 대안으로서, 고해상도 크로마 샘플링 포맷의 프레임들의 팩킹을 지시하도록 content_interpretation_type 신택스 요소의 시맨틱스를 확장하는 대신에, frame_packing_arrangment_type의 시맨틱스가 고해상도 크로마 샘플링 포맷의 프레임들의 팩킹을 지시하도록 확장될 수 있다. 예를 들어, (5 보다 큰 frame_packing_arrangment_type의 값들과 같은) 프레임 팩킹 배열 메타데이터는 주요 및 보조 뷰들이 어떻게 배열되는지를 지시하는 것에 더하여, 프레임 팩킹/언팩킹이 사용되는지의 여부, 필터링 또는 다른 전처리 동작들이 사용되었는지의 여부(따라서, 대응하는 후처리 필터링 또는 다른 후처리 동작들이 사용되어야 하는지의 여부), 수행할 후처리 동작들의 타입 또는 프레임 팩킹/언팩킹에 대한 다른 정보를 지시할 수 있다.
이러한 예들에서, 프레임 팩킹 배열 SEI 메시지는 디코딩된 픽처들이 4:4:4 프레임의 주요 및 보조 뷰들을 프레임 팩킹 배열의 구성 프레임들로서 포함한다는 것을 디코더에 알린다. 이러한 정보는 주요 및 보조 뷰들을 표시 또는 다른 목적들을 위해 적절히 처리하는 데 사용될 수 있다. 예를 들어, 시스템이 디코딩 측에서 4:4:4 포맷의 비디오를 원하고, 주요 및 보조 뷰들로부터 4:4:4 프레임들을 재구성할 수 있을 때, 시스템은 그렇게 할 수 있으며, 출력 포맷은 4:4:4일 것이다. 그렇지 않은 경우, 주요 뷰만이 출력으로서 주어지며, 게다가 출력 포맷은 4:2:0일 것이다.
C. 전처리 및 후처리 동작들
고해상도 크로마 샘플링 포맷의 프레임들의 크로마 샘플 값들의 단순한 서브샘플링은 다운샘플링된 크로마 샘플 값들 내에 앨리어싱 아티팩트들을 유발할 수 있다. 앨리어싱을 줄이기 위해, 프레임 팩킹은 크로마 샘플 값들을 필터링하기 위한 전처리 동작들을 포함할 수 있다. 그러한 필터링은 안티-앨리어싱 필터링으로 지칭될 수 있다. 게다가, 대응하는 프레임 언팩킹은 크로마 샘플 값들의 전처리 필터링을 보상하기 위한 후처리 동작들을 포함할 수 있다. 예를 들어, 이전의 표를 참조하면, content_interpretation_type이 4 또는 6일 때, 전처리 동작들을 이용하여 프레임 팩킹 동안 크로마 샘플 값들을 필터링할 수 있으며, 프레임 언팩킹은 대응하는 후처리 동작들을 포함할 수 있다.
프레임 팩킹/언팩킹에 적합한 전처리 및 후처리에 대한 다양한 이유들이 존재한다.
예를 들어, 전처리는 주요 뷰를 표현하는 YUV 4:2:0 프레임만이 표시를 위해 사용될 때 품질의 개선을 도울 수 있다. 이것은 디코더가 크로마 정보의 단순한 서브샘플링에 의해 유발되는 앨리어싱 아티팩트들의 위험을 겪지 않고서 보조 뷰를 표현하는 YUV 4:2:0 프레임을 무시하는 것을 가능하게 할 수 있다. (주요 뷰를 표현하는 YUV 4:2:0 프레임에 대한 크로마 신호가 YUV 4:4:4 프레임으로부터의 크로마 신호의 직접적인 서브샘플링에 의해 획득될 때) 전처리가 없을 경우, 주요 뷰만이 출력을 생성하는 데 사용될 때 소정의 콘텐츠, 예를 들어 ClearType 콘텐츠 상에서 앨리어싱 아티팩트들이 발견될 수 있다.
다른 예로서, 전처리 및 후처리는 YUV 4:4:4 도메인 내의 압축된 크로마 신호의 일관성 및 평활성의 유지/실시를 도울 수 있다. 프레임 팩킹이 YUV 4:4:4 프레임을 2개의 YUV 4:2:0 프레임으로 팩킹하는 데 사용될 때, 크로마 신호는 다수의 영역으로 분할되며, 각각의 영역은 그의 위치에 따라 상이하게(예를 들어, 상이한 양자화 레벨로) 압축될 수 있다. 이 때문에, 크로마 신호가 다수의 영역으로부터의 데이터의 인터리빙에 의해 다시 조립될 때, 인위적인 불연속들 및 고주파 잡음이 발생할 수 있다. 후처리 동작은 압축으로 인해 이러한 영역들에서 발생하는 차이들의 제거를 도울 수 있다.
다른 예로서, 전처리는 잔여 크로마 정보를 포함하는 보조 뷰를 표현하는 YUV 4:2:0 프레임의 압축의 향상을 도울 수 있다.
일부 예시적인 구현들에서, 전처리 동작들 및 후처리 동작들은 주요 뷰를 표현하는 YUV 4:2:0 프레임의 일부인 크로마 신호에만 영향을 주도록 제한된다. 즉, 필터링되는 샘플 값들은 주요 뷰의 크로마 성분들의 일부이다.
게다가, AVC 코딩/디코딩 또는 HEVC 코딩/디코딩과 관련된 프레임 팩킹/언팩킹의 경우, 전처리 동작들 및 후처리 동작들은 (크로마 샘플 그리드와 루마 샘플 그리드의 정렬을 지시하는) 크로마 샘플 위치 타입에 기초할 수 있다. 크로마 샘플 위치 타입은 압축된 비트스트림의 일부로서 시그널링되는 chroma_sample_loc_type_top_field 및 chroma_sample_loc_type_bottom_field 신택스 요소들로부터 결정된다. (이러한 2개의 요소는 통상적으로 프로그레시브-스캔 소스 콘텐츠에 대해 동일한 값들을 가질 것이다.) 주어진 크로마 샘플 위치 타입에 대해, 크로마 샘플이 특정 방향(수평 또는 수직)에 대해 루마 샘플들과 정렬되는 경우, (라운딩 동작과 함께, [1 2 1]/4 또는 [0.25 0.5 0.25]와 같은) 홀수-탭 대칭 필터가 그 방향에서 크로마를 필터링하는 데 사용된다. 반면, 크로마 샘플이 특정 방향(수평 또는 수직)에 대해 루마 샘플들과 정렬되지 않고, 크로마 샘플 그리드 위치들이 특정 방향(수평/수직)에 대해 루마 샘플 위치들 사이에 중심을 갖는 경우, (통상적으로, 라운딩 동작과 함께, [1 1]/2 또는 [0.5 0.5]와 같은) 짝수-탭 대칭 필터가 그 방향에서 크로마를 필터링하는 데 사용된다. 후자의 예에 대한 다른 가능한 필터 선택은 라운딩 동작과 함께 [1 3 3 1]/8 또는 [0.125 0.375 0.375 0.125]이다. 후처리 동작의 선택은 통상적으로 후처리 동작이 전처리 동작을 보상하도록 이루어진다. 일부 예들에서 후처리는 전처리를 직접 반전시키는 반면, 다른 예들에서 후처리는 후술하는 바와 같이 전처리를 단지 대략 반전시킨다.
AVC 코딩/디코딩 또는 HEVC 코딩/디코딩과 관련된 프레임 팩킹/언팩킹의 구현들에서, 크로마 샘플 위치 타입이 chroma_sample_loc_type_top_field 및 chroma_sample_loc_type_bottom_field 신택스 요소들에 대해 1인 경우, 크로마 샘플은 수평 또는 수직 방향에서 루마 샘플들과 정렬되지 않으며, 따라서 필터 [0.5 0.5]는 전처리 동작을 위해 수평 및 수직 방향들 양자에서 적용된다. 그러한 경우, 도 9를 참조하여 설명된 접근법(900)의 경우, 샘플 값 영역들(B2, B3)을 도출하기 위한 방정식들은 다음과 같다.
- 영역 B2에 대해:
Figure 112015031475594-pct00049
= [U444(2x,2y) + U444(2x+1,2y) + U444(2x,2y+1) + U444(2x + 1,2y + 1) + 2]/4, 및
- 영역 B3에 대해:
Figure 112015031475594-pct00050
= [V444(2x,2y) + V444(2x+1,2y) + V444(2x,2y+1) + V444(2x + 1,2y + 1) + 2]/4,
여기서, (x,y)의 범위는 양 영역에 대해
Figure 112015031475594-pct00051
이다.
이러한 필터링으로 인해, YUV 4:4:4 프레임으로부터의 위치 U444(2x,2y) 및 V444(2x,2y)에서의 샘플 값들은 주요 뷰에서 직접 표현되지 않는 대신에, 필터링된 샘플 값들
Figure 112015031475594-pct00052
Figure 112015031475594-pct00053
이 주요 뷰(902) 내의 위치들에 존재한다. YUV 4:4:4 프레임으로부터의 U444(2x + 1,2y), U444(2x,2y + 1), U444(2x + 1,2y + 1), V444(2x + 1,2y), V444(2x,2y +1) 및 V444(2x + 1, 2y + 1)에서의 샘플 값들은 여전히 영역들(B4-B9) 중의 보조 뷰(903) 내에 직접 표현된다.
YUV 4:4:4 포맷의 프레임들이 출력될 때의 후처리 동작들의 일부로서의 대응하는 필터링에 있어서, YUV 4:4:4 프레임의 위치 U444(2x,2y) 및 V444(2x,2y)에 대한 샘플 값들은 아래와 같이, 팩킹된 프레임 내의 값들로부터 U'444(2x,2y) 및 V'444(2x,2y)로서 계산될 수 있다.
-
Figure 112015031475594-pct00054
Figure 112015031475594-pct00055
-
Figure 112015031475594-pct00056
Figure 112015031475594-pct00057
여기서, (x,y)의 범위는
Figure 112015031475594-pct00058
이고, α는 구현에 의존하는 가중 팩터이고, " 마크는 (아마도 다손실의) 코딩으로부터의 재구성을 지시한다. 크로마 샘플 그리드 위치들이 수평 및 수직 양자에서 루마 샘플 위치들 사이에 중심을 갖는 경우, [0.5 0.5]의 안티-앨리어스 필터가 제안되는 경우, 값 α=1은 양자화 에러 및 라운딩 에러의 부재시에 입력 값들을 완전히 재구성하여, 전처리에서 수행된 필터링을 직접 반전시킬 것이다. α의 다른 값들의 경우, 후처리 동안의 필터링은 전처리에서 수행된 필터링을 단지 대략 반전시킨다. 양자화 에러를 고려할 때, 약간 더 작은 α 값(예로서, α=0.5)을 사용하는 것이 인식 가능한 아티팩트들을 감소시키기 위해 권장될 수 있다. 일반적으로, α는 0.0 내지 1.0의 범위 내에 있어야 하며, 양자화 스텝 크기가 더 클 때 α는 더 작아야 한다. 높은 α 값을 사용하는 것은 다손실 압축으로 인해 유발되는 아티팩트들을 증가시킬 수 있다.
또는, 상이한 샘플 위치들에 대해 상이한 가중치들이 할당될 수 있다. YUV 4:4:4 프레임의 위치 U444(2x,2y) 및 V444(2x,2y)에 대한 샘플 값들은 아래와 같이, 팩킹된 프레임 내의 값들로부터 U'444(2x,2y) 및 V'444(2x,2y)로서 계산될 수 있다.
Figure 112015031475594-pct00059
여기서, (x,y)의 범위는
Figure 112015031475594-pct00060
이고, α, β 및 γ는 구현에 의존하는 가중 팩터들이고, " 마크는 (아마도 다손실의) 코딩으로부터의 재구성을 지시한다. 크로마 샘플 그리드 위치들이 수평 및 수직 양자에서 루마 샘플 위치들 사이에 중심을 갖는 경우, [0.5 0.5]의 안티-앨리어스 필터가 제안되는 경우, 값 α=β=γ=1은 양자화 에러 및 라운딩 에러의 부재시에 입력 값들을 완전히 재구성하여, 전처리에서 수행된 필터링을 직접 반전시킬 것이다. α, β 및 γ의 다른 값들의 경우, 후처리 동안의 필터링은 전처리에서 수행된 필터링을 단지 대략 반전시킨다. 양자화 에러를 고려할 때, 약간 더 작은 α, β 및 γ 값들(예로서, α=β=γ=0.5)을 사용하는 것이 인식 가능한 아티팩트들을 감소시키기 위해 권장될 수 있다. 일반적으로, α, β 및 γ는 0.0 내지 1.0의 범위 내에 있어야 하며, 양자화 스텝 크기가 더 클 때 α, β 및 γ는 더 작아야 한다. 높은 α, β 및 γ 값들을 사용하는 것은 다손실 압축으로 인해 유발되는 아티팩트들을 증가시킬 수 있다. α, β 및 γ 값들은 교차 상관 분석을 이용하는 조건부 최적화를 위해 설계될 수 있다.
α=β=γ=1일 때, YUV 4:4:4 프레임의 위치 U444(2x,2y) 및 V444(2x,2y)에 대한 샘플 값들은 아래와 같이, 팩킹된 프레임 내의 값들로부터 U'444(2x,2y) 및 V'444(2x,2y)로서 간단히 계산될 수 있다.
Figure 112015031475594-pct00061
Figure 112015031475594-pct00062
Figure 112015031475594-pct00063
여기서, (x,y)의 범위는
Figure 112015031475594-pct00064
이다.
예를 들어, 전처리 동안, 위치 (2x, 2y), (2x+1, 2y), (2x, 2y+1) 및 (2x+1, 2y+1)에 대한 샘플 값들(29, 15, 7, 18)은 17로 라운딩되는 샘플 값 17.25를 생성하도록 필터링된다. 17의 필터링된 샘플 값은 29의 본래의 샘플 값 대신 사용된다. 후처리 동안, 위치 (2x, 2y)에 대한 샘플 값은 68-15-7-18=28이 되도록 재구성된다. 본래의 샘플 값(29)과 재구성된 샘플 값(28) 간의 차이는 전처리 동작을 위한 필터링으로 인한 예측의 손실을 나타낸다.
대안으로서, 장치는 전처리 동안 필터링이 수행된 경우에도 후처리 동안 필터링 동작들을 선택적으로 생략할 수 있다. 예를 들어, 장치는 디코딩 및 재생의 계산 부하를 줄이기 위해 후처리 동안 필터링을 생략할 수 있다.
대안으로서, 전처리 동작들 및 후처리 동작들은 주요 뷰(예를 들어, 도 9에 표현된 프레임(902)에 대한 영역들(B2, B3))를 표현하는 4:2:0 프레임의 일부인 4:4:4 프레임의 크로마 신호로 제한되지 않는다. 대신에, 전처리 동작들 및 후처리 동작들은 보조 뷰(예로서, 도 9에 표현된 프레임(903)의 영역들(B4-B9))를 표현하는 4:2:0 프레임의 일부인 4:4:4 프레임의 크로마 신호에 대해서도 수행된다. (보조 뷰를 표현하는 4:2:0 프레임의 일부인 4:4:4 프레임의 크로마 신호에 대한) 그러한 전처리 및 후처리 동작들은 주요 뷰를 표현하는 4:2:0 프레임의 일부로 구성되는 4:4:4 프레임의 크로마 신호의 전처리 및 후처리와 다른 필터링 동작들을 사용할 수 있다.
전처리 동작들 및 후처리 동작들의 전술한 예들에서는, 평균 필터링이 전처리 동안 사용되고, 대응하는 필터링이 후처리 동안 사용된다. 대안으로서, 전처리 동작들 및 후처리 동작들은 변환/역변환 쌍을 구현할 수 있다. 예를 들어, 변환/역변환 쌍은 웨이블릿 변환들, 리프팅 변환들 및 다른 변환들의 클래스 중 하나일 수 있다. 사용 예 시나리오들에 따라서는, 4:4:4 프레임들의 팩킹과 관련된 전처리 동작들 및 후처리 동작들의 사용에 대해 전술한 상이한 설계 이유들을 충족시키기 위해 특정 변환들도 설계될 수 있다. 또는, 전처리 및 후처리는 다른 필터 영역들을 지원하는 다른 필터 구조들을 사용하거나, 콘텐츠 및/또는 충실도와 관련하여 적합한(예로서, 인코딩에 사용되는 양자화 스텝 크기와 관련하여 적합한) 필터링을 사용할 수 있다.
일부 예시적인 구현들에서, 프레임 팩킹된 4:2:0 콘텐츠의 표현 및/또는 압축은 4:4:4 콘텐츠의 본래의 샘플 비트 깊이보다 큰 샘플 비트 깊이를 사용할 수 있다. 예를 들어, 4:4:4 프레임들의 샘플 비트 깊이는 샘플당 8 비트이고, 프레임 팩킹된 4:2:0 프레임들의 샘플 비트 깊이는 샘플당 10 비트이다. 이것은 전처리 동작들 및 후처리 동작들의 적용 동안의 정밀도 손실을 감소를 도울 수 있다. 또는, 이것은 4:2:0 프레임들이 다손실 압축을 이용하여 인코딩될 때 더 높은 레벨의 충실도를 달성하는 것을 도울 수 있다. 예를 들어, 4:4:4 콘텐츠가 샘플당 8 비트의 샘플 비트 깊이를 갖고, 프레임 팩킹된 4:2:0 콘텐츠가 샘플당 10 비트의 샘플 비트 깊이를 갖는 경우, 샘플당 10 비트의 비트 깊이는 인코더 및 디코더의 모든 또는 대부분의 내부 모듈들에서 유지될 수 있다. 샘플 비트 깊이는 필요한 경우에는 수신 측에서 콘텐츠를 4:4:4 포맷으로 언팩킹한 후에 샘플당 8 비트로 감소될 수 있다. 더 일반적으로, 고해상도 크로마 샘플링 포맷의 프레임들의 샘플 값들은 (샘플당 8, 10, 12 또는 16 비트와 같은) 제1 비트 깊이를 가질 수 있고, (프레임 팩킹에 이어지는) 저해상도 크로마 샘플링 포맷의 프레임들의 샘플 값들은 제1 비트 깊이보다 큰 제2 비트 깊이를 가질 수 있다.
D. YUV 4:2:2 비디오에 대한 대안들
위의 예들 중 다수에서, YUV 4:4:4 프레임들은 인코딩 및 디코딩을 위해 YUV 4:2:0 프레임들로 팩킹된다. 다른 예들에서, YUV 4:2:2 프레임들은 인코딩 및 디코딩을 위해 YUV 4:2:0 프레임들로 팩킹된다. 통상적인 4:2:2 프레임은 4개의 픽셀 위치마다 8개의 샘플 값을 포함하는 반면, 4:2:0 프레임은 4개의 픽셀 위치마다 6개의 샘플 값만을 포함한다. 따라서, 4:2:2 프레임 내에 포함된 샘플 값들은 4/3 4:2:0 프레임들로 팩킹될 수 있다. 즉, 효율적으로 팩킹될 때, 3개의 4:2:2 프레임이 4개의 4:2:0 프레임으로 팩킹될 수 있다.
하나의 접근법에서, 4:2:2 프레임들에 대한 프레임 팩킹은 4:4:4 대 4:2:0 프레임 팩킹에 대해 도 8에서 설명된 간단한 접근법(800)과 유사한 간단한 방식으로 수행된다.
다른 접근법들에서는, YUV 4:2:2 프레임이 YUV 4:2:2 프레임의 크로마 정보에 대한 기하학적 대응을 유지하면서 4:2:0 프레임들로 팩킹된다. 자신들의 Y, U 및 V 성분들 간의 양호한 기하학적 대응을 갖는 결과적인 4:2:0 프레임들은 더 양호하게 압축될 수 있는데, 그 이유는 그들이 인코딩된 YUV 4:2:0 프레임들에 적합한 통상적인 인코더에 의해 예상되는 모델에 적합하기 때문이다. 이와 동시에, YUV 4:2:0 프레임이 더 낮은 해상도의 컬러 성분들을 갖지만, YUV 4:2:2 프레임에 의해 표현된 완전한 장면을 표현하도록 팩킹이 행해질 수 있다.
이러한 설계 제약들은 YUV 4:2:2를 2개의 4:2:0 프레임(주요 뷰 및 보조 뷰)으로 팩킹하는 동안 충족될 수 있다. 보조 뷰는 "공백" 영역들을 가질 것이지만, 이러한 영역들은 고정 값을 이용하여 또는 크로마 값들의 복제에 의해 채워질 수 있다. 또는, 공백 영역들은 장면의 깊이와 같은 다른 정보를 지시하는 데 사용될 수 있다. 예를 들어, 도 9를 참조하여 설명된 팩킹 접근법(900)의 경우, 접근법(900)은 영역들(B4, B5)이 데이터를 갖지 않을 것이라는 것 외에는 그대로 사용될 수 있다. 또는, 도 11을 참조하여 설명된 팩킹 접근법(1100)의 경우, 접근법(1100)은 영역들(A4, A5)이 데이터를 갖지 않을 것이라는 것 외에는 그대로 사용될 수 있다.
예시적인 구현들에서, 아래의 표에 나타난 바와 같이, content_interpretation_type에 대한 새로운 값들이 YUV 4:2:2 프레임들의 구성 YUV 4:2:0 프레임들로의 팩킹을 시그널링하도록 정의된다.
Figure 112015031475594-pct00065
대안으로서, 신택스 요소 content_interpretation_type에 대한 상이한 값들이 이전의 표에 나타난 해석들과 관련된다. 또는, content_interpretation_type에 대한 다른 그리고/또는 추가적인 해석들을 이용하여, 프레임 팩킹에 의해 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로부터 획득된 저해상도 크로마 샘플링 포맷의 프레임들의 인코딩/디코딩을 지원할 수 있다.
E. 다른 크로마 샘플링 포맷들
본 명세서에서 설명되는 예들 중 다수는 크로마 샘플링 포맷들로서의 4:4:4, 4:2:2, 4:2:0 등과 같은 샘플링 비율들에서의 Y'UV, YIQ, Y'IQ, YDbDr, YCbCr, YCoCg 등과 같은 YUV 컬러 공간들의 변형들을 포함한다. 대안으로서, 설명되는 접근법들은 크로마 샘플링 포맷들로서의 4:4:4, 4:2:2, 4:2:0 등과 같은 샘플링 비율들에서의 RGB, GBR 등과 같은 컬러 공간들에 대해 사용될 수 있다. 예를 들어, 장치는 (RGB 4:4:4 또는 GBR 4:4:4와 같은) 고해상도 논(non)-YUV 크로마 샘플링 포맷의 프레임들을 (4:2:0 포맷과 같은) 저해상도 포맷의 프레임들로 팩킹할 수 있으며, 이어서 이들은 인코딩될 수 있다. 인코딩에 있어서, 명목상 루마 성분 및 명목상 크로마 성분들은 (대략적인 휘도 및 컬러 차이 값들이 아니라) 논-YUV 성분들의 샘플 값들을 나타낸다. 대응하는 언팩킹에 있어서, 장치는 (4:2:0 포맷과 같은) 저해상도 포맷의 프레임들을 (RGB 4:4:4 또는 GBR 4:4:4와 같은) 고해상도 논-YUV 크로마 샘플링 포맷의 프레임들로 언팩킹한다.
또한, 설명되는 접근법들은 4:4:4 포맷, 4:2:2 포맷 또는 4:2:0 포맷의 비디오 콘텐츠의 4:0:0 포맷으로의 프레임 팩킹을 위해 사용될 수 있으며, 4:0:0 포맷은 통상적으로 그레이스케일 또는 단색 비디오 콘텐츠에 사용된다. 4:4:4 포맷, 4:2:2 포맷 또는 4:2:0 포맷의 프레임으로부터의 크로마 정보는 4:0:0 포맷의 하나 이상의 추가 또는 보조 프레임의 주성분으로 팩킹될 수 있다.
F. 프레임 팩킹/언팩킹을 위한 범용 기술들
도 12는 프레임 팩킹을 위한 범용 기술(1200)을 나타낸다. 예를 들어 도 4를 참조하여 설명된 바와 같은 프레임 팩커를 구현하는 컴퓨팅 장치가 기술(1200)을 수행할 수 있다.
장치는 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 팩킹한다(1210). 예를 들어, 장치는 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)을 4:2:0 포맷(예로서, YUV 4:2:0 포맷)의 프레임(들)으로 팩킹한다. 또는, 장치는 4:2:2 포맷(예로서, YUV 4:2:2 포맷)의 프레임(들)을 4:2:0 포맷(예로서, YUV 4:2:0 포맷)의 프레임(들)으로 팩킹한다. 또는, 장치는 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)을 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)으로 팩킹한다.
YUV 포맷들에 대해, 장치는 팩킹 후에 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 인접 샘플 값들 간의 기하학적 대응을 유지하도록 프레임 팩킹(1210)을 수행할 수 있다. 예를 들어, 그러한 샘플 값들은 저해상도 크로마 샘플링 포맷의 프레임(들)의 루마 및 크로마 성분들의 인접 샘플들 및/또는 공동 배치된 부분들로서 유지된다. 후속 인코딩은 그러한 기하학적 대응을 이용할 수 있다.
일부 프레임 팩킹 접근법들에서, 장치는 고해상도 크로마 샘플링 포맷의 프레임(들)의 더 낮은 크로마 해상도 버전을 저해상도 크로마 샘플링 포맷의 프레임(들)의 일부로서 삽입할 수 있다. 따라서, 저해상도 크로마 샘플링 포맷의 프레임(들)의 일부는 고해상도 크로마 샘플링 포맷의 프레임(들)의 더 낮은 크로마 해상도 버전을 나타낸다. 저해상도 크로마 샘플링 포맷의 프레임(들)의 나머지는 고해상도 크로마 샘플링 포맷의 프레임(들)으로부터의 잔여 크로마 정보를 나타낸다. 다른 프레임 팩킹 접근법들에서는, 고해상도 크로마 샘플링 포맷의 프레임(들)의 공간 파티셔닝에 따라, 장치는 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들을 저해상도 크로마 샘플링 포맷의 프레임(들)의 루마 및 크로마 성분들에 할당한다.
프레임 팩킹 동안, 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들이 필터링될 수 있으며, 필터링된 샘플 값들은 저해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 부분들에 할당된다. 일부 구현들에서, 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들은 더 낮은 비트 깊이(예로서, 샘플당 8 비트)를 가지며, 필터링된 샘플 값들은 더 큰 비트 깊이에서의 인코딩을 위해 더 큰 비트 깊이(예로서, 샘플당 10 비트)를 갖는다.
이어서, 장치는 저해상도 크로마 샘플링 포맷의 프레임(들)을 인코딩할 수 있다(1220). 대안으로서, 상이한 장치가 인코딩(1220)을 수행한다. 장치(들)는 프레임별로 또는 다른 방식으로 기술(1200)을 반복할 수 있다.
장치는 프레임 팩킹/언팩킹에 대한 메타데이터를 시그널링할 수 있다. 예를 들어, 장치는 프레임 팩킹/언팩킹의 사용 여부를 지시하는 메타데이터를 시그널링한다. 또는, 장치는 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들이 프레임 팩킹 동안 필터링되었으며 후처리의 일부로서 필터링되어야 한다는 지시를 시그널링한다. 프레임 팩킹/언팩킹에 대한 메타데이터는 보완 향상 정보 메시지의 일부로서 또는 소정의 다른 타입의 메타데이터로서 시그널링될 수 있다.
도 13은 프레임 언팩킹을 위한 범용 기술(1300)을 나타낸다. 예를 들어 도 5를 참조하여 설명된 바와 같은 프레임 언팩커를 구현하는 컴퓨팅 장치가 기술(1300)을 수행할 수 있다.
프레임 언팩킹 자체를 수행하기 전에, 장치는 저해상도 크로마 샘플링 포맷의 프레임(들)을 디코딩할 수 있다(1310). 대안으로서, 다른 장치가 디코딩(1310)을 수행한다.
장치는 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임을 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 언팩킹한다(1320). 예를 들어, 장치는 4:2:0 포맷(예로서, YUV 4:2:0 포맷)의 프레임(들)을 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)으로 언팩킹한다. 또는, 장치는 4:2:0 포맷(예로서, YUV 4:2:0 포맷)의 프레임(들)을 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)으로 언팩킹한다. 또는, 장치는 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)을 4:4:4 포맷(예로서, YUV 4:4:4 포맷)의 프레임(들)으로 언팩킹한다.
고해상도 크로마 샘플링 포맷의 프레임(들)의 더 낮은 크로마 해상도 버전이 저해상도 크로마 샘플링 포맷의 프레임(들)의 일부로서 삽입될 때, 장치는 표시를 위한 옵션들을 갖는다. 고해상도 크로마 샘플링 포맷의 프레임(들)의 더 낮은 크로마 해상도 버전을 나타내는 저해상도 크로마 샘플링 포맷의 프레임(들)의 일부는 출력 및 표시를 위해 재구성될 수 있다. 저해상도 크로마 샘플링 포맷의 프레임(들)의 나머지는 고해상도 크로마 샘플링 포맷의 프레임(들)으로부터의 잔여 크로마 정보를 나타내며, 프레임 언팩킹의 일부로서 사용될 수 있다. 다른 프레임 언팩킹 접근법들에서는, 고해상도 크로마 샘플링 포맷의 프레임(들)의 공간 파티셔닝을 반전시키기 위해, 장치는 저해상도 크로마 샘플링 포맷의 프레임(들)의 루마 및 크로마 성분들의 샘플 값들을 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들에 할당한다.
프레임 언팩킹 동안, 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들은 후처리의 일부로서 필터링될 수 있다. 일부 구현들에서, 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 적어도 일부 샘플 값들은 후처리 필터링 전에 더 큰 비트 깊이(예로서, 샘플당 10 비트)를 가지며, 그러한 샘플 값들은 후처리 필터링 후에 더 낮은 비트 깊이(예로서, 샘플당 8 비트)를 갖는다.
장치는 프레임 팩킹/언팩킹에 대한 메타데이터도 수신할 수 있다. 예를 들어, 장치는 프레임 팩킹/언팩킹의 사용 여부를 지시하는 메타데이터를 수신한다. 또는, 장치는 고해상도 크로마 샘플링 포맷의 프레임(들)의 크로마 성분들의 샘플 값들이 프레임 팩킹 동안 필터링되었으며 후처리의 일부로서 필터링되어야 한다는 지시를 수신한다. 프레임 팩킹/언팩킹에 대한 메타데이터는 보완 향상 정보 메시지의 일부로서 또는 소정의 다른 타입의 메타데이터로서 시그널링될 수 있다.
장치(들)는 프레임별로 또는 다른 단위로 기술(1300)을 반복할 수 있다.
개시된 발명의 원리들을 적용할 수 있는 많은 가능한 실시예들에 비추어, 설명된 실시예들은 본 발명의 바람직한 예들일 뿐이며 본 발명의 범위를 한정하는 것으로 간주되지 않아야 한다는 것을 인식해야 한다. 오히려, 본 발명의 범위는 아래의 청구항들에 의해 정의된다. 따라서, 이러한 청구항들의 범위 및 사상 내에 속하는 모든 것들을 본 발명으로서 청구한다.

Claims (29)

  1. 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임 - 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임은 크로마 성분의 샘플 값 및 루마 성분의 샘플 값을 포함함 - 을 수신하는 단계와,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 팩킹하는 단계를 포함하되,
    상기 저해상도 크로마 샘플링 포맷은 상기 고해상도 크로마 샘플링 포맷보다 낮은 크로마 해상도를 갖고, 상기 팩킹하는 단계는 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분의 샘플 값에 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값의 일부를 할당하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 팩킹 단계 이후에,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 인코딩하는 단계를 더 포함하는
    방법.
  3. 제2항에 있어서,
    상기 팩킹은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 인접 샘플 값 간의 기하학적 대응(geometric correspondence)을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 루마와 크로마 성분의 인접 샘플 또는 공동 배치된 부분 중 적어도 하나로서 유지하고, 상기 인코딩은 상기 기하학적 대응을 이용하는
    방법.
  4. 제3항에 있어서,
    상기 인코딩은 (a) 모션 벡터의 도출 및 예측 모드의 도출 중 하나 이상을 포함하는 인코딩 동작에서 또는 (b) 모션 추정, 양자화 파라미터의 선택 및 예측 모드의 선택 중 하나 이상을 포함하는 인코딩 결정을 안내하기 위해 중 적어도 하나에 관하여 상기 기하학적 대응을 이용하는
    방법.
  5. 제1항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제1 부분은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타내고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제2 부분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분을 포함하고 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타내는
    방법.
  6. 제1항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제1 부분은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타낸다는 것을 표시하고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제2 부분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분을 포함하고 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타낸다는 것을 표시하는, 메타데이터를 시그널링하는 단계를 더 포함하는
    방법.
  7. 제1항에 있어서,
    상기 팩킹은 복수의 설계 제약과 일치하며,
    상기 복수의 설계 제약은,
    상기 팩킹 후에 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값 간의 기하학적 대응을 유지하는 것과,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 일부로서 삽입하는 것을 포함하는
    방법.
  8. 제1항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분이고, 상기 팩킹 단계는, 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분에 대해,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 모든 제2 행 또는 열에 대응하는 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 루마 성분의 샘플 값에 할당하는 단계와,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열에 대응하는 모든 제2 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 주요 뷰의 크로마 성분의 샘플 값에 할당하는 단계와,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열에 대응하는 다른 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 크로마 성분의 샘플 값에 할당하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    상기 팩킹 단계는
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 샘플 값을 안티-앨리어스(anti-alias) 필터링하는 단계와,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중의 주요 뷰의 크로마 성분의 샘플 값에 상기 필터링된 샘플 값을 할당하는 단계를 포함하는
    방법.
  10. 제1항에 있어서,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 제1 비트 깊이를 갖고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 상기 제1 비트 깊이보다 높은 제2 비트 깊이를 갖는
    방법.
  11. 제1항에 있어서,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 샘플 값이 상기 팩킹의 일부로서 필터링되었는지 여부의 표시를 시그널링하는 단계를 더 포함하는
    방법.
  12. 컴퓨팅 장치로서,
    하나 이상의 처리 유닛과,
    휘발성 메모리와,
    비휘발성 메모리 또는 저장소 중 적어도 하나를 포함하되,
    상기 비휘발성 메모리 또는 저장소 중 적어도 하나는 상기 컴퓨팅 장치가 프로그래밍될 때 고해상도 크로마 샘플링 포맷의 프레임을 재구성하기 위한 동작들을 수행하게 하는 컴퓨터 실행가능 명령어를 저장하고,
    상기 동작들은
    저해상도 크로마 샘플링 포맷의 하나 이상의 프레임 - 상기 저해상도 크로마 샘플링 포맷은 상기 고해상도 크로마 샘플링 포맷보다 낮은 크로마 해상도를 가짐 - 을 수신하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 상기 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 언팩킹하는 것을 포함하되,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임은 크로마 성분의 샘플 값 및 루마 성분의 샘플 값을 포함하고, 상기 언팩킹하는 것은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값의 일부에 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분의 샘플 값을 할당하는 것을 포함하는
    컴퓨팅 장치.
  13. 제12항에 있어서,
    상기 동작들은
    상기 수신 및 상기 언팩킹 전에, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 디코딩하는 것을 더 포함하는
    컴퓨팅 장치.
  14. 제12항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제1 부분은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타내고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제2 부분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분을 포함하고 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타내는
    컴퓨팅 장치.
  15. 제12항에 있어서,
    상기 동작들은
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제1 부분은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타낸다는 것을 표시하고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제2 부분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분을 포함하고 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타낸다는 것을 표시하는 메타데이터를 수신하는 것을 더 포함하는
    컴퓨팅 장치.
  16. 제12항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분이고, 상기 언팩킹 하는 것은, 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분에 대해,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 모든 제2 행 또는 열의 샘플 값에 할당하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 주요 뷰의 크로마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열의 모든 제2 위치에서의 샘플 값에 할당하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 크로마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열의 다른 위치에서의 샘플 값에 할당하는 것을 포함하는
    컴퓨팅 장치.
  17. 제12항에 있어서,
    상기 언팩킹하는 것은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 샘플 값을 필터링하는 것을 포함하는
    컴퓨팅 장치.
  18. 제12항에 있어서,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 제1 비트 깊이를 갖고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 상기 제1 비트 깊이보다 높은 제2 비트 깊이를 갖는
    컴퓨팅 장치.
  19. 제12항에 있어서,
    상기 동작들은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 샘플 값이 팩킹의 일부로서 필터링되었는지 여부의 표시를 수신하는 것을 더 포함하는
    컴퓨팅 장치.
  20. 프로세서 및 메모리를 포함하는 컴퓨팅 장치로서,
    상기 컴퓨팅 장치는,
    YUV 4:2:0 포맷의 프레임을 인코딩하도록 구성되는 비디오 인코더와 YUV 4:2:0 포맷의 프레임을 디코딩하도록 구성되는 비디오 디코더 중 적어도 하나와,
    (a) 상기 YUV 4:2:0 포맷의 하나 이상의 프레임의 제1 부분이 YUV 4:4:4 포맷의 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타낸다는 것과, (b) 상기 YUV 4:2:0 포맷의 상기 하나 이상의 프레임의 제2 부분이 상기 YUV 4:4:4 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타낸다는 것과, (c) 상기 YUV 4:4:4 포맷의 상기 하나 이상의 프레임의 크로마 성분의 샘플 값이 상기 YUV 4:2:0 포맷의 상기 하나 이상의 프레임으로의 팩킹의 일부로서 필터링되었는지의 여부를 나타내는, 보완 향상 정보 메시지를 처리하기 위한 모듈 - 상기 YUV 4:4:4 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값의 일부는 상기 YUV 4:2:0 포맷의 상기 하나 이상의 프레임의 상기 제2 부분 중 루마 성분의 샘플 값에 할당됨 - 을 구현하는
    컴퓨팅 장치.
  21. 하나 이상의 처리 유닛이 프로그래밍될 때 고해상도 크로마 샘플링 포맷의 프레임을 재구성하기 위한 동작들을 수행하게 하는 컴퓨터 실행가능 명령어를 저장하는 하나 이상의 유형의 컴퓨터 판독가능 매체로서,
    상기 동작들은
    저해상도 크로마 샘플링 포맷의 하나 이상의 프레임 - 상기 저해상도 크로마 샘플링 포맷은 상기 고해상도 크로마 샘플링 포맷보다 낮은 크로마 해상도를 가짐 - 을 수신하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 상기 고해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 언팩킹하는 것을 포함하되,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임은 크로마 성분의 샘플 값 및 루마 성분의 샘플 값을 포함하고, 상기 언팩킹하는 것은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값의 일부에 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분의 샘플 값을 할당하는 것을 포함하는
    컴퓨터 판독가능 매체.
  22. 제21항에 있어서,
    상기 동작들은
    상기 수신 및 상기 언팩킹 전에, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 디코딩하는 것을 더 포함하는
    컴퓨터 판독가능 매체.
  23. 제21항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분이고, 상기 언팩킹 하는 것은, 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분에 대해,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 모든 제2 행 또는 열의 샘플 값에 할당하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 주요 뷰의 크로마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열의 모든 제2 위치에서의 샘플 값에 할당하는 것과,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 크로마 성분에 대응하는 샘플 값을 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열의 다른 위치에서의 샘플 값에 할당하는 것을 포함하는
    컴퓨터 판독가능 매체.
  24. 제21항에 있어서,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 제1 비트 깊이를 갖고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 샘플 값은 상기 제1 비트 깊이보다 높은 제2 비트 깊이를 갖는
    컴퓨터 판독가능 매체.
  25. 컴퓨팅 장치로서,
    하나 이상의 처리 유닛과,
    휘발성 메모리와,
    비휘발성 메모리 또는 저장소 중 적어도 하나를 포함하되,
    상기 비휘발성 메모리 또는 저장소 중 적어도 하나는 상기 컴퓨팅 장치가 프로그래밍될 때 동작들을 수행하게 하는 컴퓨터 실행가능 명령어를 저장하고,
    상기 동작들은
    고해상도 크로마 샘플링 포맷의 하나 이상의 프레임 - 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임은 크로마 성분의 샘플 값 및 루마 성분의 샘플 값을 포함함 - 을 수신하는 것과,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 저해상도 크로마 샘플링 포맷의 하나 이상의 프레임으로 팩킹하는 것을 포함하되,
    상기 저해상도 크로마 샘플링 포맷은 상기 고해상도 크로마 샘플링 포맷보다 낮은 크로마 해상도를 갖고, 상기 팩킹하는 것은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분의 샘플 값에 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 상기 크로마 성분의 샘플 값의 일부를 할당하는 것을 포함하는
    컴퓨팅 장치.
  26. 제25항에 있어서,
    상기 팩킹은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 인접 샘플 값 간의 기하학적 대응을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 루마와 크로마 성분의 인접 샘플 또는 공동 배치된 부분 중 적어도 하나로서 유지하는
    컴퓨팅 장치.
  27. 제26항에 있어서,
    상기 동작들은, 상기 팩킹 이후에, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임을 인코딩하는 것을 더 포함하고,
    상기 인코딩은 상기 기하학적 대응을 이용하는
    컴퓨팅 장치.
  28. 제25항에 있어서,
    상기 동작들은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제1 부분은 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 하위 크로마 해상도 버전을 나타낸다는 것을 표시하고, 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 제2 부분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분을 포함하고 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임으로부터의 잔여 크로마 정보를 나타낸다는 것을 표시하는, 메타데이터를 시그널링하는 것을 더 포함하는
    컴퓨팅 장치.
  29. 제25항에 있어서,
    상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 하나의 루마 성분은 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 보조 뷰의 루마 성분이고, 상기 팩킹하는 것은, 상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분에 대해,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 모든 제2 행 또는 열에 대응하는 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 루마 성분의 샘플 값에 할당하는 것과,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열에 대응하는 모든 제2 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 주요 뷰의 크로마 성분의 샘플 값에 할당하는 것과,
    상기 고해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임의 크로마 성분의 다른 행 또는 열에 대응하는 다른 샘플 값을 상기 저해상도 크로마 샘플링 포맷의 상기 하나 이상의 프레임 중 상기 보조 뷰의 크로마 성분의 샘플 값에 할당하는 것을 포함하는
    컴퓨팅 장치.
KR1020157008253A 2012-10-01 2013-09-26 고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법 KR102132047B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261708328P 2012-10-01 2012-10-01
US61/708,328 2012-10-01
US14/027,013 US9979960B2 (en) 2012-10-01 2013-09-13 Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US14/027,013 2013-09-13
PCT/US2013/061784 WO2014055310A1 (en) 2012-10-01 2013-09-26 Frame packing and unpacking higher-resolution chroma sampling formats

Publications (2)

Publication Number Publication Date
KR20150067158A KR20150067158A (ko) 2015-06-17
KR102132047B1 true KR102132047B1 (ko) 2020-07-08

Family

ID=50385192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157008253A KR102132047B1 (ko) 2012-10-01 2013-09-26 고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법

Country Status (6)

Country Link
US (2) US9979960B2 (ko)
EP (1) EP2904769B1 (ko)
JP (1) JP6246215B2 (ko)
KR (1) KR102132047B1 (ko)
CN (1) CN104919804B (ko)
WO (1) WO2014055310A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119333A1 (ko) * 2020-12-02 2022-06-09 현대자동차주식회사 블록 기반 딥러닝 모델을 이용하는 비디오 코덱
WO2023196012A1 (en) * 2022-04-06 2023-10-12 Tencent America LLC Systems and methods for explicit signaling of scaling factors for joint coding of motion vector difference

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013102293A1 (en) * 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9661340B2 (en) * 2012-10-22 2017-05-23 Microsoft Technology Licensing, Llc Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
US20140198855A1 (en) * 2013-01-14 2014-07-17 Qualcomm Incorporated Square block prediction
EP2984837B1 (en) * 2013-04-08 2018-01-17 GE Video Compression, LLC Inter-component prediction
GB2516825B (en) * 2013-07-23 2015-11-25 Canon Kk Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
USRE48920E1 (en) * 2014-02-21 2022-02-01 Lattice Semiconductor Corporation Adaptive processing of video streams with reduced color resolution
JP2016005032A (ja) * 2014-06-13 2016-01-12 ソニー株式会社 符号化装置、符号化方法、カメラ、レコーダおよびカメラ一体型レコーダ
JP6344082B2 (ja) * 2014-06-19 2018-06-20 株式会社ニコン 符号化装置、復号装置、符号化方法および復号方法
US9811882B2 (en) * 2014-09-30 2017-11-07 Electronics And Telecommunications Research Institute Method and apparatus for processing super resolution image using adaptive preprocessing filtering and/or postprocessing filtering
CN105791848B (zh) * 2015-01-09 2019-10-01 安华高科技股份有限公司 用于改善低成本视频/图像压缩的方法
US10455230B2 (en) * 2015-01-09 2019-10-22 Avago Technologies International Sales Pte. Limited Methods for improving low-cost video/image compression
GB201500719D0 (en) 2015-01-15 2015-03-04 Barco Nv Method for chromo reconstruction
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US20160212423A1 (en) 2015-01-16 2016-07-21 Microsoft Technology Licensing, Llc Filtering to mitigate artifacts when changing chroma sampling rates
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
US20180167615A1 (en) * 2015-06-07 2018-06-14 Sharp Kabushiki Kaisha Systems and methods for optimizing video coding based on a luminance transfer function or video color component values
US11019365B2 (en) * 2015-07-30 2021-05-25 Zhejiang Dahua Technology Co., Ltd. Methods and systems for image compression
CN105228000B (zh) * 2015-09-25 2018-10-30 网宿科技股份有限公司 一种基于gpu的完全硬件转码的方法和***
TWI629892B (zh) * 2016-05-09 2018-07-11 國立成功大學 景深包裝及解包裝之rgb格式與yuv格式的轉換與反轉換的方法及電路
WO2017211306A1 (zh) * 2016-06-08 2017-12-14 同济大学 视频数据压缩码流的解码、视频数据的编码方法及装置
CN106454347B (zh) * 2016-09-09 2019-04-12 上海兆芯集成电路有限公司 帧分辨率决定方法以及使用该方法的装置
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US10049437B2 (en) 2016-11-21 2018-08-14 Microsoft Technology Licensing, Llc Cleartype resolution recovery resampling
FR3062010A1 (fr) 2017-07-05 2018-07-20 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'une sequence d'images
FR3068557A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3068558A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3442235B1 (en) * 2017-08-10 2022-03-16 Continental Automotive GmbH Device and method for raw image data compression
US11533450B2 (en) 2017-09-25 2022-12-20 Comcast Cable Communications, Llc Anti-piracy video transmission and display
TWI633791B (zh) * 2017-10-16 2018-08-21 國立成功大學 景深圖框包裝及解包裝之rgb格式的調整與重建方法及電路
WO2019143551A1 (en) * 2018-01-16 2019-07-25 Vid Scale, Inc. Adaptive frame packing for 360-degree video coding
US10819965B2 (en) 2018-01-26 2020-10-27 Samsung Electronics Co., Ltd. Image processing device and method for operating image processing device
CN110798705A (zh) * 2018-08-01 2020-02-14 深信服科技股份有限公司 一种视频图像传输方法、装置及设备
WO2020098810A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
CN109325127B (zh) * 2018-11-28 2021-11-19 创新先进技术有限公司 一种风险识别方法和装置
JP7209092B2 (ja) 2018-12-21 2023-01-19 北京字節跳動網絡技術有限公司 動きベクトル差分によるマージ(mmvd)モードにおける動きベクトル予測
CN113196771B (zh) 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
CN109951715B (zh) * 2019-02-25 2020-09-22 北京新兴东方航空装备股份有限公司 一种基于h.264的yuv444图像编解码方法
CN110062238B (zh) * 2019-04-02 2020-09-11 上海工程技术大学 一种用于四分量视频的编解码方法
CN110381278A (zh) * 2019-09-05 2019-10-25 无锡思朗电子科技有限公司 用于色彩空间4:4:4传输的方法及设备
CN112533025A (zh) * 2019-09-19 2021-03-19 恒为科技(上海)股份有限公司 一种图像色度还原方法、装置及***
CN110913192B (zh) * 2019-10-14 2021-09-24 珠海亿智电子科技有限公司 一种显示处理方法及装置
CN110636304B (zh) * 2019-10-23 2021-11-12 威创集团股份有限公司 一种YCbCr444和YCbCr422转换方法
US20210127125A1 (en) * 2019-10-23 2021-04-29 Facebook Technologies, Llc Reducing size and power consumption for frame buffers using lossy compression
CN111031388B (zh) * 2019-11-25 2022-05-20 无锡思朗电子科技有限公司 Yuv4:4:4数据的编解码方法
US10853709B1 (en) * 2019-12-18 2020-12-01 Ricoh Company, Ltd. Image filtering for improved lossless compression
CN113271466B (zh) * 2020-02-14 2022-12-02 北京小鸟科技股份有限公司 图像编码方法、解码方法、传输方法以及存储装置和处理装置
US11638040B2 (en) 2020-08-24 2023-04-25 Schmied Enterprises LLC Eco-friendly codec-based system for low latency transmission
CN113038179A (zh) * 2021-02-26 2021-06-25 维沃移动通信有限公司 视频编码方法、视频解码方法、装置及电子设备
CN112995664B (zh) * 2021-04-20 2021-08-13 南京美乐威电子科技有限公司 图像采样格式转换方法、计算机可读存储介质和编码器
CN113365083B (zh) * 2021-07-08 2022-10-11 广州市保伦电子有限公司 一种基于h.265实现yuv444图像编解码方法
CN113473144A (zh) * 2021-07-15 2021-10-01 无锡思朗电子科技有限公司 一种yuv4:4:4图像传输的方法
CN114650449A (zh) * 2022-03-03 2022-06-21 京东科技信息技术有限公司 一种视频数据处理方法和装置
CN117201789B (zh) * 2023-11-07 2024-01-26 南京美乐威电子科技有限公司 视频码流生成方法、计算机存储介质及编码器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110280316A1 (en) * 2010-05-13 2011-11-17 Qualcom Incorporated Frame packing for asymmetric stereo video

Family Cites Families (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895128B2 (en) 2001-05-29 2005-05-17 Mevis Breastcare Gmbh & Co. Kg Method and computer system for prefetching of images
US5047853A (en) * 1990-03-16 1991-09-10 Apple Computer, Inc. Method for compresssing and decompressing color video data that uses luminance partitioning
KR940011881B1 (ko) 1991-12-23 1994-12-27 주식회사 금성사 움직임 검출 및 추정장치
US5379071A (en) 1992-12-16 1995-01-03 Ibm Corporation (International Business Machines Corporation) Method of encoding a location of changes in a sequence of video images
JP3381855B2 (ja) * 1992-12-28 2003-03-04 ソニー株式会社 画像信号符号化方法および画像信号符号化装置、並びに画像信号復号化方法および画像信号復号化装置
JP2518503B2 (ja) 1993-03-08 1996-07-24 日本電気株式会社 画面切り替え検出方法
JP2933487B2 (ja) * 1994-07-15 1999-08-16 松下電器産業株式会社 クロマフォーマット変換の方法
US5742892A (en) * 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
JPH09139944A (ja) 1995-09-12 1997-05-27 Matsushita Electric Ind Co Ltd 符号化方法,符号化装置,ウエーブレット変換装置およびウエーブレット逆変換装置
JP3994445B2 (ja) 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
US6282364B1 (en) 1996-02-05 2001-08-28 Matsushita Electric Industrial Co., Ltd. Video signal recording apparatus and video signal regenerating apparatus
US5850232A (en) 1996-04-25 1998-12-15 Microsoft Corporation Method and system for flipping images in a window using overlays
US5712687A (en) * 1996-04-25 1998-01-27 Tektronix, Inc. Chrominance resampling for color images
US5825363A (en) 1996-05-24 1998-10-20 Microsoft Corporation Method and apparatus for determining visible surfaces
US5952943A (en) 1996-10-11 1999-09-14 Intel Corporation Encoding image data for decode rate control
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
US6208350B1 (en) 1997-11-04 2001-03-27 Philips Electronics North America Corporation Methods and apparatus for processing DVD video
US6925606B2 (en) 1997-11-13 2005-08-02 Tarantella, Inc. Color quality and packet shaping features for displaying an application on a variety of client devices
US6937659B1 (en) * 1997-11-14 2005-08-30 Ac Capital Management, Inc. Apparatus and method for compressing video information
US6829301B1 (en) 1998-01-16 2004-12-07 Sarnoff Corporation Enhanced MPEG information distribution apparatus and method
DE19919412B4 (de) 1998-04-29 2006-02-23 Lg Electronics Inc. Decoder für einen digitalen Fernsehempfänger
US6757705B1 (en) 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US6608630B1 (en) 1998-11-09 2003-08-19 Broadcom Corporation Graphics display system with line buffer control scheme
US7233619B1 (en) 1998-12-21 2007-06-19 Roman Kendyl A Variable general purpose compression for video images (ZLN)
US6414992B1 (en) 1999-01-27 2002-07-02 Sun Microsystems, Inc. Optimal encoding of motion compensated video
JP2001197499A (ja) 1999-10-29 2001-07-19 Sony Corp 動画像符号化方法及び装置、動画像復号方法及び装置、並びに動画像伝送方法及び装置
US6674479B2 (en) * 2000-01-07 2004-01-06 Intel Corporation Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion
US7111060B2 (en) 2000-03-14 2006-09-19 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser
US7450114B2 (en) 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
JP2002204356A (ja) 2000-10-27 2002-07-19 Canon Inc データ処理装置、プロセッサ、及びその制御方法
US7155676B2 (en) 2000-12-19 2006-12-26 Coolernet System and method for multimedia authoring and playback
US20020129096A1 (en) 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
JP2002271788A (ja) 2001-03-08 2002-09-20 Monolith Co Ltd 画像符号化方法と装置および画像復号方法および装置
US6904563B2 (en) 2001-04-05 2005-06-07 International Business Machines Corporation Editing platforms for remote user interface translation
ATE459908T1 (de) 2001-05-02 2010-03-15 Bitstream Inc Verfahren, systeme und programmierung zur herstellung und anzeige von subpixeloptimierten font-bitmaps unter verwendung eines nichtlinearen farbausgleichs
US7027615B2 (en) 2001-06-20 2006-04-11 Hrl Laboratories, Llc Vision-based highway overhead structure detection system
US20030112863A1 (en) 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
AUPR860901A0 (en) 2001-10-31 2001-11-29 Canon Kabushiki Kaisha Activating a filling of a graphical object
US7171444B2 (en) 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US7415670B2 (en) 2001-11-19 2008-08-19 Ricoh Co., Ltd. Printer with audio/video localization
US7076108B2 (en) 2001-12-11 2006-07-11 Gen Dow Huang Apparatus and method for image/video compression using discrete wavelet transform
AUPS028702A0 (en) 2002-02-01 2002-02-28 Canon Kabushiki Kaisha Efficient display update from changing object graphics
KR100627597B1 (ko) 2002-04-26 2006-09-25 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR100438724B1 (ko) 2002-06-24 2004-07-05 삼성전자주식회사 원격 사용자 인터페이스를 구동하는 홈 네트워크 시스템및 그 운용 방법
US7437720B2 (en) 2002-06-27 2008-10-14 Siebel Systems, Inc. Efficient high-interactivity user interface for client-server applications
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US20040008214A1 (en) 2002-07-11 2004-01-15 Sun Microsystems, Inc., A Delaware Corporation Tagging repeating images for improved compression
GB2392793A (en) 2002-07-31 2004-03-10 Blip X Ltd Video compression by removing complementary sets of pixels
US20040036711A1 (en) 2002-08-23 2004-02-26 Anderson Thomas G. Force frames in animation
US7653928B2 (en) 2002-08-30 2010-01-26 Sony Corporation Remote user interface for media player
JP4027196B2 (ja) 2002-09-24 2007-12-26 キヤノン株式会社 画像表示装置及びその制御方法
KR20040038388A (ko) 2002-10-31 2004-05-08 이준표 화면 이미지의 영역 지정을 이용한 원격 화면 전송 및갱신 방법
US7634230B2 (en) 2002-11-25 2009-12-15 Fujitsu Limited Methods and apparatus for secure, portable, wireless and multi-hop data networking
US7121639B2 (en) 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
US7574691B2 (en) 2003-03-17 2009-08-11 Macrovision Corporation Methods and apparatus for rendering user interfaces and display information on remote client devices
US7406715B2 (en) 2003-03-19 2008-07-29 Intel Corp. Controlling and remotely monitoring accessed network data
US7376908B2 (en) 2003-03-24 2008-05-20 Microsoft Corporation On-screen display image rendered with MPEG hardware
US8291009B2 (en) 2003-04-30 2012-10-16 Silicon Graphics International Corp. System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US7471724B2 (en) 2003-06-23 2008-12-30 Vichip Corp. Limited Method and apparatus for adaptive multiple-dimensional signal sequences encoding/decoding
US8264489B2 (en) 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
JP2007502561A (ja) 2003-08-12 2007-02-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオエンコードおよびデコードの方法および対応する装置
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US20050071759A1 (en) 2003-09-29 2005-03-31 Xerox Corporation Method for an imaging system to form a user interface for a user to accept or request modification to a displayed document, a method for an imaging system to form a user interface for a user to communicate to the imaging system a desired modification in a displayed document, and a method of modifying a displayed document in an imaging system
US7551792B2 (en) 2003-11-07 2009-06-23 Mitsubishi Electric Research Laboratories, Inc. System and method for reducing ringing artifacts in images
US7538770B2 (en) 2003-11-28 2009-05-26 Canon Kabushiki Kaisha Tree-based compositing system
US20050129130A1 (en) 2003-12-10 2005-06-16 Microsoft Corporation Color space coding framework
CA2455043A1 (en) 2004-01-09 2005-07-09 Digital Multitools Inc. Method and apparatus for facilitating control of a target computer by a remote computer
US7511713B2 (en) 2004-03-02 2009-03-31 Ittiam Systems (P) Ltd. Method and apparatus for high rate concurrent read-write applications
US20050228654A1 (en) 2004-03-30 2005-10-13 Yolanda Prieto Method and apparatus for improved bit rate efficiency in wavelet based codecs by means of subband correlation
JP4483457B2 (ja) 2004-03-31 2010-06-16 日本ビクター株式会社 伝送システム
EP1587049A1 (en) 2004-04-15 2005-10-19 Barco N.V. Method and device for improving conformance of a display panel to a display standard in the whole display area and for different viewing angles
EP1756702B1 (en) 2004-05-21 2017-01-25 CA, Inc. Systems and methods for tracking screen updates
EP1769318B1 (en) 2004-06-03 2015-12-23 Hillcrest Laboratories, Inc. Client-Server Architectures and Methods for a Zoomable User Interface
US7562131B2 (en) 2004-06-25 2009-07-14 Intel Corporation UPnP user interface system and method
US7672005B1 (en) 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
US20060008154A1 (en) 2004-07-01 2006-01-12 Belle Ronny V Video compression and decompression to virtually quadruple image resolution
US7515759B2 (en) 2004-07-14 2009-04-07 Sharp Laboratories Of America, Inc. 3D video coding using sub-sequences
KR100679011B1 (ko) 2004-07-15 2007-02-05 삼성전자주식회사 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치
US7561620B2 (en) 2004-08-03 2009-07-14 Microsoft Corporation System and process for compressing and decompressing multiple, layered, video streams employing spatial and temporal encoding
KR101058010B1 (ko) 2004-09-07 2011-08-19 삼성전자주식회사 그래픽 데이터 생성 장치, 방법 및 정보 저장 매체
US8073053B2 (en) 2004-09-22 2011-12-06 Panasonic Corporation Image encoding device that encodes an arbitrary number of moving pictures
KR100603601B1 (ko) 2004-11-08 2006-07-24 한국전자통신연구원 다시점 콘텐츠 생성 장치 및 그 방법
JP2006157443A (ja) 2004-11-29 2006-06-15 Toshiba Corp 画像送信装置、画像受信装置および画像伝送システム
US7692642B2 (en) 2004-12-30 2010-04-06 Intel Corporation Method and apparatus for controlling display refresh
JP4106058B2 (ja) 2005-01-04 2008-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション ウィンドウ内におけるフレーム再配置を行うための情報処理装置、フレームの再配置方法、およびプログラム
EP1839177A4 (en) 2005-01-05 2010-07-07 Divx Inc SYSTEM AND METHOD RELATING TO OFF-SITE USER INTERFACE
CA2593247A1 (en) 2005-01-10 2006-11-16 Quartics, Inc. Integrated architecture for the unified processing of visual media
US20060168526A1 (en) 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US7489341B2 (en) 2005-01-18 2009-02-10 Primax Electronics Ltd. Method to stabilize digital video motion
US7730157B2 (en) 2005-02-03 2010-06-01 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for displaying information on a thin-client in communication with a network
KR100703760B1 (ko) 2005-03-18 2007-04-06 삼성전자주식회사 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
US20060225107A1 (en) 2005-04-01 2006-10-05 Microsoft Corporation System for running applications in a resource-constrained set-top box environment
US7630394B2 (en) 2005-04-14 2009-12-08 Ramot At Tel-Aviv University Ltd. Method, apparatus and computer-readable code for data compression of network packets
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US8345768B1 (en) 2005-07-28 2013-01-01 Teradici Corporation Progressive block encoding using region analysis
DE602005001946T2 (de) 2005-08-12 2008-04-30 Thule S.P.A. Schneekette mit einer limitierten Aufbauhöhe
EP1928184B1 (en) 2005-09-20 2017-09-27 Mitsubishi Electric Corporation Image encoding apparatus, image encoding method
US8761259B2 (en) 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
US8879635B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Methods and device for data alignment with time domain boundary
CN101313582A (zh) 2005-09-27 2008-11-26 高通股份有限公司 使用各种运动模型的编码器辅助式帧速率提升转换
US8126283B1 (en) 2005-10-13 2012-02-28 Maxim Integrated Products, Inc. Video encoding statistics extraction using non-exclusive content categories
KR100873636B1 (ko) 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
WO2007060498A1 (en) 2005-11-22 2007-05-31 Freescale Semiconductor, Inc. Method and system for filtering image data
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8769127B2 (en) 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US20070261096A1 (en) 2006-05-08 2007-11-08 Aspeed Technology Inc. Apparatus and method for data capture with multi-threshold decision technique
US8253752B2 (en) 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
KR100771879B1 (ko) 2006-08-17 2007-11-01 삼성전자주식회사 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치
US9001899B2 (en) 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US7973858B2 (en) 2006-10-23 2011-07-05 Lsi Corporation Reduced memory and bandwidth motion adaptive video deinterlacing
US7847798B1 (en) 2006-10-24 2010-12-07 Adobe Systems Incorporated Clipping and culling artwork using a graphics processing unit
WO2008049446A1 (en) 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
US8315466B2 (en) 2006-12-22 2012-11-20 Qualcomm Incorporated Decoder-side region of interest video processing
US8532175B2 (en) 2007-01-04 2013-09-10 Thomson Licensing Methods and apparatus for reducing coding artifacts for illumination compensation and/or color compensation in multi-view coded video
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
US20080238928A1 (en) 2007-03-30 2008-10-02 Bimal Poddar Frame buffer compression for desktop composition
FI3920538T3 (fi) 2007-04-12 2023-04-05 Dolby Int Ab Limittäminen videon enkoodauksessa ja dekoodauksessa
CN101543037B (zh) 2007-05-17 2012-05-30 索尼株式会社 信息处理设备和方法
US8027542B2 (en) 2007-06-18 2011-09-27 The Regents Of The University Of California High speed video action recognition and localization
KR20080114388A (ko) 2007-06-27 2008-12-31 삼성전자주식회사 스케일러블 영상 부호화장치 및 방법과 그 영상 복호화장치및 방법
US7924292B2 (en) 2007-08-31 2011-04-12 Broadcom Corportion Device and method for reducing visual artifacts in color images
US8139081B1 (en) * 2007-09-07 2012-03-20 Zenverge, Inc. Method for conversion between YUV 4:4:4 and YUV 4:2:0
US8127233B2 (en) 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
JP5035154B2 (ja) 2008-03-07 2012-09-26 富士通株式会社 映像信号処理装置及び映像信号処理方法
EP2308232B1 (en) 2008-07-20 2017-03-29 Dolby Laboratories Licensing Corp. Encoder optimization of stereoscopic video delivery systems
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8687702B2 (en) 2008-10-27 2014-04-01 Advanced Micro Devices, Inc. Remote transmission and display of video data using standard H.264-based video codecs
DE112009004408T5 (de) * 2009-01-12 2012-10-25 Maxim Integrated Products, Inc. Videoaufzeichnungs- und verarbeitungssysteme
CN104702960B (zh) * 2009-01-26 2018-01-02 汤姆森特许公司 用于视频解码的装置
JP4947389B2 (ja) 2009-04-03 2012-06-06 ソニー株式会社 画像信号復号装置、画像信号復号方法、および画像信号符号化方法
US8520734B1 (en) 2009-07-31 2013-08-27 Teradici Corporation Method and system for remotely communicating a computer rendered image sequence
TWI405467B (zh) 2009-11-25 2013-08-11 Novatek Microelectronics Corp 影像壓縮的位元速率控制電路與方法
EP2536152B1 (en) 2010-02-12 2018-09-05 Canon Kabushiki Kaisha Image processing device and image processing method
US8625666B2 (en) * 2010-07-07 2014-01-07 Netzyn, Inc. 4:4:4 color space video with 4:2:0 color space video encoders and decoders systems and methods
US9467689B2 (en) * 2010-07-08 2016-10-11 Dolby Laboratories Licensing Corporation Systems and methods for multi-layered image and video delivery using reference processing signals
CN103262532B (zh) 2010-07-19 2018-03-09 杜比实验室特许公司 用于经采样复用的图像和视频数据的增强方法
CN105163118B (zh) 2010-07-20 2019-11-26 Sk电信有限公司 用于解码视频信号的解码方法
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
CN103098466B (zh) * 2010-09-13 2016-08-17 索尼电脑娱乐公司 图像处理装置和图像处理方法
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
WO2012047047A2 (ko) 2010-10-06 2012-04-12 에스케이텔레콤 주식회사 고정밀 필터를 이용한 영상 부호화/복호화 방법 및 장치
KR101341993B1 (ko) * 2010-10-06 2013-12-16 에스케이텔레콤 주식회사 고정밀 필터를 이용한 영상 부호화/복호화 방법 및 장치
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
EP2456204A1 (en) 2010-11-18 2012-05-23 Koninklijke Philips Electronics N.V. Method and apparatus for encoding or generating an image
US20120236115A1 (en) 2011-03-14 2012-09-20 Qualcomm Incorporated Post-filtering in full resolution frame-compatible stereoscopic video coding
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8743291B2 (en) 2011-04-12 2014-06-03 Dolby Laboratories Licensing Corporation Quality assessment for images that have extended dynamic ranges or wide color gamuts
US9288500B2 (en) 2011-05-12 2016-03-15 Texas Instruments Incorporated Luma-based chroma intra-prediction for video coding
JP6094973B2 (ja) 2011-05-20 2017-03-15 サン パテント トラスト 色平面内予測を用いて映像を符号化および復号する方法および装置
US9414086B2 (en) 2011-06-04 2016-08-09 Apple Inc. Partial frame utilization in video codecs
US20130003839A1 (en) 2011-06-30 2013-01-03 Futurewei Technologies, Inc. Fast Encoding Method for Lossless Coding
US8787454B1 (en) 2011-07-13 2014-07-22 Google Inc. Method and apparatus for data compression using content-based features
US9332271B2 (en) 2011-11-03 2016-05-03 Cisco Technology, Inc. Utilizing a search scheme for screen content video coding
TWI556629B (zh) 2012-01-03 2016-11-01 杜比實驗室特許公司 規定視覺動態範圍編碼操作及參數
US9363516B2 (en) 2012-01-19 2016-06-07 Qualcomm Incorporated Deblocking chroma data for video coding
KR102013240B1 (ko) 2012-02-02 2019-08-22 삼성전자주식회사 영역별 특성에 기초한 영상 부호화 방법 및 그 장치, 그리고 영상 복호화 방법 및 그 장치
WO2013128010A2 (en) 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
US8958474B2 (en) 2012-03-15 2015-02-17 Virtualinx, Inc. System and method for effectively encoding and decoding a wide-area network based remote presentation session
US8639057B1 (en) 2012-03-19 2014-01-28 The Modern Video Company Artifact removal method and system for contoured images and video
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
CN102801988B (zh) 2012-07-20 2014-10-08 浙江工业大学 一种基于色度分量幅度的yuv444转yuv420的视频格式转换方法
GB2506345A (en) 2012-09-06 2014-04-02 British Broadcasting Corp Video encoding and decoding with chrominance sub-sampling
US20140072027A1 (en) 2012-09-12 2014-03-13 Ati Technologies Ulc System for video compression
US20140072048A1 (en) 2012-09-13 2014-03-13 Samsung Electronics Co., Ltd Method and apparatus for a switchable de-ringing filter for image/video coding
US9185421B2 (en) 2012-10-01 2015-11-10 Texas Instruments Incorporated System and method for video transcoding
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9661340B2 (en) 2012-10-22 2017-05-23 Microsoft Technology Licensing, Llc Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
US9426469B2 (en) 2012-12-17 2016-08-23 Broadcom Corporation Combination HEVC deblocker/SAO filter
US8817179B2 (en) 2013-01-08 2014-08-26 Microsoft Corporation Chroma frame conversion for the video codec
JP2014171097A (ja) 2013-03-04 2014-09-18 Toshiba Corp 符号化装置、符号化方法、復号装置、および、復号方法
US20140301463A1 (en) 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for video coding and decoding
US9749627B2 (en) 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
GB2516021A (en) 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for pre-encoding and post-decoding high bit-depth content in video encoder and decoder
EP3020186B1 (en) 2013-07-09 2022-12-07 Nokia Technologies Oy Method and apparatus for video coding involving syntax for signalling motion information
US9558567B2 (en) 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US20150063451A1 (en) 2013-09-05 2015-03-05 Microsoft Corporation Universal Screen Content Codec
US8837826B1 (en) 2014-06-12 2014-09-16 Spinella Ip Holdings, Inc. System and method for transmission, reception, and restoration of decimated color channels in image data
US9153017B1 (en) 2014-08-15 2015-10-06 Google Inc. System and method for optimized chroma subsampling
TW201637448A (zh) 2015-01-14 2016-10-16 Vid衡器股份有限公司 非4:4:4螢幕內容視訊調色盤編碼
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US10455249B2 (en) 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
US20160360234A1 (en) 2015-06-03 2016-12-08 Apple Inc. Techniques For Resource Conservation During Performance Of Intra Block Copy Prediction Searches
US20170070740A1 (en) 2015-09-03 2017-03-09 Intel Corporation Encoding techniques for display of text and other high-frequency content
AU2016203181B2 (en) * 2016-05-16 2018-09-06 Canon Kabushiki Kaisha Method, apparatus and system for determining a luma value

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110280316A1 (en) * 2010-05-13 2011-11-17 Qualcom Incorporated Frame packing for asymmetric stereo video

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119333A1 (ko) * 2020-12-02 2022-06-09 현대자동차주식회사 블록 기반 딥러닝 모델을 이용하는 비디오 코덱
WO2023196012A1 (en) * 2022-04-06 2023-10-12 Tencent America LLC Systems and methods for explicit signaling of scaling factors for joint coding of motion vector difference

Also Published As

Publication number Publication date
JP6246215B2 (ja) 2017-12-13
US20180234686A1 (en) 2018-08-16
CN104919804B (zh) 2019-06-04
KR20150067158A (ko) 2015-06-17
US9979960B2 (en) 2018-05-22
JP2015534778A (ja) 2015-12-03
US10523953B2 (en) 2019-12-31
WO2014055310A1 (en) 2014-04-10
EP2904769B1 (en) 2020-07-08
EP2904769A1 (en) 2015-08-12
CN104919804A (zh) 2015-09-16
US20140092998A1 (en) 2014-04-03

Similar Documents

Publication Publication Date Title
KR102132047B1 (ko) 고해상도 크로마 샘플링 포맷들의 프레임 팩킹 및 언팩킹 기법
US11317113B2 (en) Features of intra block copy prediction mode for video and image coding and decoding
US10652576B2 (en) Features of base color index map mode for video and image coding and decoding
US10523933B2 (en) Control data for motion-constrained tile set
US10044974B2 (en) Dynamically updating quality to higher chroma sampling rate
CN107211155B (zh) 图内块拷贝预测模式下的合并的色度块的特殊情况处理
CN107251557B (zh) 高色度分辨率细节的编码/解码
US9661340B2 (en) Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
US10542274B2 (en) Dictionary encoding and decoding of screen content
US10368080B2 (en) Selective upsampling or refresh of chroma sample values

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant