KR20130140066A - 비디오 코딩 방법 및 장치 - Google Patents

비디오 코딩 방법 및 장치 Download PDF

Info

Publication number
KR20130140066A
KR20130140066A KR1020137014866A KR20137014866A KR20130140066A KR 20130140066 A KR20130140066 A KR 20130140066A KR 1020137014866 A KR1020137014866 A KR 1020137014866A KR 20137014866 A KR20137014866 A KR 20137014866A KR 20130140066 A KR20130140066 A KR 20130140066A
Authority
KR
South Korea
Prior art keywords
prediction
parameter values
picture
parameters
decoder
Prior art date
Application number
KR1020137014866A
Other languages
English (en)
Other versions
KR101775936B1 (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 KR20130140066A publication Critical patent/KR20130140066A/ko
Application granted granted Critical
Publication of KR101775936B1 publication Critical patent/KR101775936B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/02Colour television systems with bandwidth reduction
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/62Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions

Landscapes

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

Abstract

디지털 픽처들을 인코딩하고 디코딩하기 위한 방법들에서 몇몇의 예측 파라미터들이 인코더 측에 대한 출력이나 디코더 측에 대한 출력으로부터 생략될 수 있다. 인코더는 디코더 에뮬레이터가 동일하거나 상이한 픽처로부터 나온 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러 값들과 같은 다른 정보로부터 예측 파라미터 값들을 재현할 수 있는지를 결정함으로써 생략될 수 있는 예측 파라미터 값들을 식별할 수 있다.

Description

비디오 코딩 방법 및 장치{VIDEO CODING METHODS AND APPARATUS}
본 발명의 실시예들은 디지털 비디오에 관한 것이며 보다 구체적으로는 비디오 코딩 표준을 실행하기 위한 방법 및 장치에 관한 것이다.
디지털 신호 압축은 많은 멀티미디어 어플리케이션들과 장치들에 널리 사용된다. 코더/디코더(코덱)를 사용하는 디지털 신호 압축은 오디오 또는 비디오 신호들과 같은 스트리밍 미디어가 인터넷을 통해 전송되거나 콤팩트 디스크에 저장되도록 허용한다. H.261, H.263; DV; MPEG-l, MPEG-2, MPEG-4, VC1; 및 AVC(H.264)를 포함하는 디지털 비디오 압축의 다수의 상이한 표준들이 나타났다. 이런 표준들뿐만 아니라 다른 비디오 압축 기술들은 주어진 픽처 내에 및/또는 연속하는 픽처들 사이에 공간적이고 시간적인 리던던시(redundancy)들을 제거하거나 감소시킴으로써 비디오 프레임 픽처(video frame picture)를 효과적으로 나타내려고 추구한다. 이와 같은 압축 표준의 사용을 통해, 비디오 콘텐츠는 고도로 압축된 비디오 비트 스트림으로 이송될 수 있고, 그에 따라 디스크에 효과적으로 저장되거나 네트워크를 통해 전송될 수 있다.
또한 H.264로서 알려진 MPEG-4 AVC(어드밴스드 비디오 코딩)는 이전에 있었던 것들보다 상당히 큰 압축을 제공하는 비디오 압축 표준이다. H.264 표준은 이전의 MPEG-2 표준의 압축의 2배까지 제공하는 것으로 기대된다. H.264 표준은 또한 지각적 품질의 개선을 제공하는 것으로 기대된다. 그 결과로, 점점 더 많은 비디오 콘텐츠가 AVC(H.264)-코딩된 스트림의 형태로 이송된다. 두 개의 경쟁하는 DVD 포맷들인 HD-DVD 포맷과 블루레이 디스크 포맷은 의무적인 플레이어 특성으로서 H.264/AVC 하이 프로파일 디코딩을 지원한다. AVC(H.264) 코딩은 여기에 참고로 포함되는 ISO/IEC 14496-10:2009, "정보 기술 - 오디오 비디오 객체들의 코딩 - 파트 10: 어드밴스드 비디오 코딩, 5판(Information technology - Coding of audio - visual objects - Part 10: Advanced Video Coding, Edition 5)" 5/13/2009에서 상세하게 설명된다. 사본은 다음의 URL: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52974에서 다운로드될 수 있다.
H.264(MPEG-2)의 이전에 있었던 것은 기준 픽처로부터 현재 픽처를 예측하는 구조를 가졌다. 이런 표준은 현재 픽처와 이전의 픽처 사이의 데이터 의존성을 제거하는 툴을 제공하였다. 구체적으로는, MPEG-2는 이전의 픽처와 현재 픽처 사이에 있는 하나의 그룹의 픽셀들을 제거하기 위해 2-D 모션 벡터를 계산하였다. H.264는 16 x 16 블록 내에 있는 많은 모션 벡터들을 고려한다. 현재 픽처는 이전의 픽처에 있는 픽셀들과 유사한 한 다발의 픽셀들을 가진다. 아이디어는 상당한 양의 픽셀들이 이전의 픽처에 있는 위치로부터 현재 픽처에 있는 다른 위치로 이동되었다는 것이다. 각각의 16 x 16 블록 내에 모션이 있을 수 있다. H.264는 각각의 16 x 16 블록 내의 많은 모션 벡터들을 코딩할 수 있다. 결국 모션 벡터들의 개수가 픽셀들의 개수를 초과할 것이기 때문에 픽셀마다 모션 벡터를 인코딩하는 것은 비현실적이고, 이런 경우에 모션 벡터들 대신에 픽셀들을 전송하는 것이 바람직할 것이다. 그에 따라, 모션 벡터들의 수와 픽셀들의 수 사이에 트레이드오프(tradeoff)가 있다. H.264는 4 x 4 블록의 픽셀들만큼 작은 픽셀들의 그룹들에 대해 모션 벡터들을 인코딩한다. 이런 표준은 픽셀들과 모션 벡터들 사이에 균형을 잘 유지한다. 그러나 그 이외에는, H.264는 MPEG-2와 동일한 프로세스와 동일한 데이터 흐름을 기본적으로 사용한다.
이런 맥락 내에서 본 발명의 실시예들이 생긴다.
본 발명의 일 실시형태에 따르면, 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법으로서, a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계; b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러 값들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계로서, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및 e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법이 제공된다.
본 발명의 다른 실시형태에 따르면, 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치로서, 프로세서; 메모리; 및 상기 메모리에서 구현되고 상기 프로세서에 의해 실행 가능한 컴퓨터 코딩된 명령들을 포함하고, 상기 컴퓨터 코딩된 명령들은 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩/디코딩하기 위한 방법을 실행하도록 구성되며, 상기 방법은: a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계; b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계이고, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및 e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치가 제공된다.
본 발명의 또 다른 실시형태에 따르면, 컴퓨터 프로그램 제품으로서, 매체에서 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지는 비일시적인 컴퓨터 판독 가능 저장 매체이고, 상기 프로그램 코드는 실행될 때, 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법을 실행시키는 컴퓨터 실행 가능 명령들을 포함하며, 상기 방법은: a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계; b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계; d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계로서, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및 e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 실시형태에 따르면, 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법이고, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들과 부분적인 세트의 예측 파라미터들을 포함하는 상기 픽처 디코딩 방법으로서, 상기 방법은: a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계; b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계; c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및 d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 것을 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법이 제공된다.
본 발명의 또 다른 실시형태에 따르면, 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 디코딩하기 위한 장치로서, 프로세서; 메모리; 및 상기 메모리에서 구현되고 상기 프로세서에 의해 실행 가능한 컴퓨터 코딩된 명령들을 포함하고, 상기 컴퓨터 코딩된 명령들은 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 데이터를 가지는 하나 이상의 데이터 패킷들을 디코딩하기 위한 방법을 실행시키도록 구성되며, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들 및 부분적인 세트의 예측 파라미터들을 포함하고, 상기 방법은: a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계; b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계; c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및 d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 디코딩하기 위한 장치가 제공된다.
본 발명의 또 다른 실시형태에 따르면, 컴퓨터 프로그램 제품으로서, 매체에서 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지는 비일시적인 컴퓨터 판독 가능 저장 매체이고, 상기 프로그램 코드는 실행될 때, 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 하나 이상의 데이터 패킷들을 디코딩하기 위한 방법을 실행시키는 컴퓨터 실행 가능 명령들을 포함하며, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들 및 부분적인 세트의 예측 파라미터들을 포함하고, 상기 방법은: a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계; b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계; c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및 d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 실시예들은 첨부한 도면들과 함께 다음의 상세한 설명을 고려함으로써 쉽게 이해될 수 있다.
도 1a는 본 발명의 실시예들의 맥락 내에서 비디오 픽처의 하나의 가능한 분할을 설명하는 개략도이다.
도 1b는 본 발명의 일 실시예에 따른 디지털 픽처의 인코딩을 설명하는 흐름도이다.
도 1c는 본 발명의 일 실시예에 따른 디지털 픽처의 디코딩을 설명하는 흐름도이다.
도 2a는 본 발명의 일 실시예에 따른 디지털 픽처 인코딩을 설명하는 흐름도이다.
도 2b는 본 발명의 일 실시예에 따른 디지털 픽처 디코딩을 설명하는 흐름도이다.
도 3은 스트리밍 데이터 디코딩의 일반적인 프로세스 흐름을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 모션 벡터 파라미터들을 결정하기 위한 방법을 설명하는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 디지털 픽처를 인코딩하고/인코딩하거나 디코딩하기 위한 장치를 설명하는 블록도이다.
도 6은 발명의 일 실시예에 따른 디지털 픽처를 인코딩하고/인코딩하거나 디코딩하기 위한 장치의 셀 프로세서 실행의 일 예를 설명하는 블록도이다.
도 7은 비디오 인코딩 또는 디코딩 중에 3차원 모션 보상을 실행시키기 위한 명령을 가지는 비일시적인 컴퓨터 판독 가능 저장 매체의 일 예를 설명한다.
비록 다음의 상세한 설명은 설명을 위해 많은 특정한 세부 사항들을 포함하지만, 본 기술분야에서 통상의 기술을 가진 사람은 다음의 상세한 설명에 대한 많은 변형들과 변경들이 본 발명의 범위 내에 있다는 것을 이해할 것이다. 따라서, 아래에 설명되는 본 발명의 예시적인 실시예들은 청구된 본 발명에 대한 일반성의 어떤 손상도 없고, 청구된 본 발명에 대한 한정을 가하지 않고 설명된다.
서론
디지털 비디오를 위한 새로운 코딩 표준을 개발할 때, 각각의 디지털 비디오 프레임에 대한 정보를 전송하기 위해 요구되는 비트들의 수를 줄이는 것이 바람직하다. 일반적으로, 비디오 프레임은 2차원 배열의 픽셀들에 의해 표현되는 이미지이다. 각각의 픽셀은 강도(휘도) 값과 하나 이상의 색상(크로미넌스) 값들을 가질 수 있다. 예로서, 일반적인 비디오 신호는 두 개의 크로미넌스 값들인, Cb(청색-차이)와 Cr(적색-차이)을 가진다. 인코딩과 디코딩을 위해, 이미지는 일반적으로 상이한 크기의 픽셀들의 그룹들로 분해된다.
예로서, 그리고 한정을 하지 않고, 도 1에 도시된 바와 같이, 단일의 디지털 비디오 픽처(100)(예를 들면, 디지털 비디오 프레임)는 하나 이상의 섹션들로 분해될 수 있다. 여기에서 사용되는 바와 같이, 용어 "섹션"은 픽처(100) 내의 하나 이상의 픽셀들의 하나의 그룹을 가리킨다. 섹션은 픽처 내에 있는 단일의 픽셀로부터 전체 픽처까지의 범위일 수 있다. 섹션들의 비한정적인 예들은 슬라이스들(102), 매크로블록들(104), 서브매크로블록들(106), 블록들(108) 및 개별 픽셀들(110)을 포함한다. 도 1a에 도시된 바와 같이, 각각의 슬라이스(102)는 매크로블록들(104)의 하나 이상의 열들이나 하나 이상의 이와 같은 열들의 부분들을 가질 수 있다. 하나의 열에 있는 매크로블록들의 개수는 매크로블록들의 크기 및 픽처(100)의 크기와 해상도에 의해 좌우된다. 예를 들면, 만약 각각의 매크로블록이 16×16 픽셀들을 가진다면, 각각의 열에 있는 매크로블록들의 수는 (픽셀들에 있는) 픽처(100)의 폭을 16으로 나눔으로써 결정될 수 있다. 각각의 매크로블록(104)은 다수의 서브매크로블록들(106)로 분해될 수 있다. 각각의 서브매크로블록(106)은 다수의 블록들(108)로 분해될 수 있고 각각의 블록은 다수의 픽셀들(110)을 가질 수 있다. 예로서, 그리고 본 발명을 한정하지 않고, 통상의 비디오 코딩 스킴에서, 각각의 매크로블록(104)은 네 개의 서브매크로블록들(106)로 분해될 수 있다. 각각의 서브매크로블록은 네 개의 블록들(108)로 분해될 수 있고 각각의 블록은 16개의 픽셀들(110)인 4X4의 배열을 가질 수 있다.
종래에는, 디지털 비디오 이미지들은 각각의 픽처의 디코딩이나 각각의 슬라이스의 디코딩을 위해 싱글 스레드(single thread)를 사용하여 디코딩되었다. 종래의 싱글 스레드 디코더에서 하나의 매크로블록에 대한 모든 디코딩 태스크들은 다음의 매크로블록을 디코딩하기 전에 완료된다. 멀티스레드 픽처 디코딩 - 즉, 병렬로 다수의 픽처들을 디코딩하는 것이 또한 실행될 수 있다. 픽처들 내에서 멀티스레드 디코딩을 용이하게 하기 위해, 각각의 픽처(100)는 하나 이상의 슬라이스들을 포함하는 둘 이상의 서브유닛들(112)로 분해될 수 있다. 본 발명의 실시예들에서 슬라이스(102)가 인접한 서브유닛들(112) 사이의 경계에 "걸쳐 있는" 것이 가능하다. 따라서, 슬라이스는 두 개의 상이한 서브유닛들 사이에서 공유될 수 있다.
각각의 픽처는 프레임이나 필드일 수 있다는 것이 주목된다. 프레임은 완성된 이미지를 가리킨다. 필드는 특정한 타입의 디스플레이 장치들에 이미지를 디스플레이하는 것을 용이하게 하는데 사용되는 이미지의 일부분이다. 일반적으로, 하나의 이미지에 있는 픽셀들은 열들로 배열된다. 디스플레이를 용이하게 하기 위해 이미지는 두 개의 상이한 필드들에 픽셀들의 교대하는 열들을 배치함으로써 때때로 나눠질 수 있다. 두 개의 필드들에 있는 픽셀들의 열들은 그런 다음에 완성된 이미지를 형성하기 위해 인터레이싱될 수 있다. 음극선관(CRT) 디스플레이들과 같은 몇몇의 디스플레이 장치들에 대해, 두 개의 필드들은 빠르게 연속하여 차례로 간단하게 디스플레이될 수 있다. 잔상과 조합되는 CRT 스크린에 사용되는 인광체의 잔광이 연속하는 이미지로서 인지되는 두 개의 필드들을 초래한다. 액정 디스플레이들과 같은 다른 디스플레이 장치들에 대해, 디스플레이되기 전에 두 개의 필드들을 단일 픽처로 인터레이싱하는 것이 필요할 수 있다. 인코딩된 이미지들을 표현하는 스트리밍 데이터는 일반적으로 이미지가 필드인지 또는 프레임인지를 가리키는 정보를 포함한다. 이와 같은 정보는 이미지에 대한 헤더에 포함될 수 있다. 본 발명의 실시예들은 비디오 코덱이 픽처를 필드들로 분해해야 하지 않고 현재 처리하는 픽처 내에서 리던던시들을 찾도록 허용한다.
픽셀 예측은 압축을 위해 비디오 콘텐츠 리던던시를 이용하는데 사용되는 기술이다. 예를 들면, 선행 기술의 비디오 코딩 표준들에서, 만약 현재 픽셀 블록이 2차원 이동과 이전의 디코딩된 픽셀 블록에 의해 예측될 수 있다면, 예측 방법은 (기준 블록이 상이한 이미지로부터 나올 때) 인터 예측(inter-prediction) 또는 (기준 블록이 동일한 이미지로부터 나올 때) 인트라 예측(intra-prediction)으로 불리며, 예측 파라미터는 이동을 한정하는데 사용되는 (모션 벡터로 알려진) 2D 벡터이다. 예측 후에, (때때로 잔류 픽셀들로 불리는) 예측 에러 픽셀들이 몇몇 타입의 양자화 변환(예를 들면, 이산 코사인 변환과 같은 웨이브렛 변환(wavelet transform))을 사용하여 압축된 비디오 스트림으로 인코딩된다. 일반적으로, 더 복잡한 예측 방법들은 예측 파라미터들을 전송하고 보다 양호한 예측 결과를 생성하기 위해 더 많은 비트들을 필요로 한다. 그래서, 특정한 점에서, 양호하고 복잡한 예측을 전송하는데 사용되는 비트들은 더 작은 잔류 픽셀 값들에 의해 저장되는 비트들을 초과할 것이다. 이런 점에서, 보다 양호하고 더 복잡한 예측은 더 이상 정당화되지 않는다.
H.261, H.263, MPEG 1, MPEG 2, MPEG 4, 및 H.264/AVC와 같은 많은 설정된 비디오 압축 표준들은 픽셀 예측을 사용한다. 모든 이런 선행 기술의 비디오 코딩 표준들에서, 예측 방법, 비트 비용, 및 예측 결과의 정확성 사이에 최선의 균형을 찾는 것은 인코더의 책임이다. 인코더는 그런 다음에 다수의 비트들을 필요로 하는, 픽셀 재구성을 위해 디코더에 예측 파라미터들과 잔류 픽셀들을 전송한다. 이와 같이, 예측 파라미터들을 전송하는 효율이 매우 나쁘고, 선행 기술의 비디오 표준들과 함께 이용 가능한 가장 복잡한 예측 방법은 단순한 2-D 이동이다.
더 정확한 예측 방법들을 실행하기 위해 인코더의 책임을 디코더로 이동시키는 것은 예측 파라미터들을 찾는 연산의 복잡성이 매우 높기 때문에 과거에는 솔루션으로서 실패하였다. 이와 같은 태스크를 처리하는데 저비용의 하드웨어 또는 범용 CPU들을 사용하는 것은 비현실적이다. 이는 픽셀 예측 방법들을 단순한 2-D 이동으로 제한하는 주요 이유이다. 그래서, 보다 복잡한 예측 방법들을 개발하기 위한 동기가 거의 없었다.
그러나, GPU들은 더 저렴해지고 더 융통성이 있게 됨에 따라, 3-D 기반 예측 방법들이 가까운 미래에 실현 가능하게 될 것이다. 3-D 비디오 압축을 위해, 3-D 모션 기반 예측이 현재의 2-D 멀티뷰 솔루션보다 훨씬 더 매력적이다. 멀티뷰 비디오 스트림에서 각각의 뷰는 2D 픽처 시퀀스이다. 멀티뷰 비디오 스트림은 3-D 비디오 콘텐츠를 전송하는데 사용될 수 있었다. 멀티뷰는 또한 예를 들면, 스포츠 이벤트를 리코딩하는 다수의 카메라들로부터 나온 출력을 전송하기 위해 다른 비디오 콘텐츠 전송에 사용될 수 있다. 만약 멀티뷰 비디오가 3D 비디오에 사용된다면, 각각의 뷰 스트림은 상이한 뷰 각도를 나타낸다. 그래서, 가장 단순한 3D 비디오 멀티뷰 스트림은 2개의 뷰들을 가진다. 2개의 뷰들이 사용된다면, 관찰자는 셔터 안경을 사용해야 하고 그 결과로 관찰자의 좌측 눈과 우측 눈은 3D를 경험하기 위해 상이한 뷰들을 인식한다. 또는, 3D 비디오 시스템은 안경 없이 3D를 경험하기 위해 단일의 뷰 포인트에 고정된 상이한 뷰들의 이미지들을 제공할 수 있다. 그러나, 안경 없는 3D 비디오를 실현하기 위해, 많은 뷰들이 마찬가지로 사용된다. 비디오 스트림에서 뷰들의 수가 증가함에 따라, 멀티뷰 인코딩은 실제 3D 픽처 인코딩보다 덜 효율적이 된다. 그 결과로, 3-D 모션 파라미터들을 전송하는데 필요한 비트들의 수는 2-D 모션의 수보다 10배까지 더 많을 수 있다. 본 발명의 방법은 3-D 예측 파라미터들을 인코딩하는데 필요한 비트들의 수를 감소시키도록 설계된다.
픽셀 예측과 재구성의 기초는 다음의 예에 의해 설명될 수 있다. 카메라가 비디오 시퀀스를 구성할 때, 이는 주어진 지속 시간당 한번 이의 렌즈를 통해 광자들을 수집한다. 이런 광자들은 카메라의 전방에 있는 많은 물체들의 표면들에 의해 방출된다. 이런 물체 표면들의 텍스쳐와 형상의 유사성은 인트라 이미지 리던던시(intra-image redundancy)라 불린다. 두 시간 인스탄스들 사이의 유사성은 인터 이미지 리던던시(inter-image redundancy)이라 불린다. 인트라 유사성이나 인터 유사성을 발견하고 픽셀 예측을 실행하는데 이런 유사성들을 사용하기 위해, 핵심은 두 개의 유사한 물체 표면들 사이의 관계를 찾는 것이다.
최근에, 2차원 모션 보상을 사용하는 픽셀 예측과 재구성은 H.264로서 동일한 기본적인 프로세스를 사용하여 더 최적화될 수 없다. 근본적인 변화가 요구된다. 근본적인 변화들에 숨겨진 두 개의 가능한 개념들은 (A) 가능한 한 많은 픽셀들을 인코딩하는데 단일의 모션 벡터(또는 다른 예측 파라미터)를 사용하는 것, 및/또는 (B) 모션 벡터(또는 다른 예측 파라미터)를 인코딩하는데 필요한 비트들의 수를 줄이는 것이다.
가능한 한 많은 픽셀들을 인코딩하기 위한 단일의 모션 벡터의 사용을 설명하기 위해, 다음의 예를 고려하자. 예로서, 그리고 한정을 하지 않고, 이미지가 회전 휠을 가지는 상황을 고려하라. 휠이 회전될 때, 휠의 상이한 부분들은 다른 속도들로 다른 방향들로 이동된다. 종래의 인코딩 표준에서, 휠은 다수의 작은 그룹들의 픽셀들로 분해될 것이고 각각의 그룹은 상이한 2-D 모션 벡터를 필요로 할 것이다. 이는 휠의 모션을 표현하기 위해, 각각이 작은 그룹의 픽셀들의 2차원 모션을 설명하는, 다수의 모션 벡터들을 필요로 한다.
휠의 모션을 표현하는데 필요한 2-D 모션 벡터들의 수를 줄이기 위해, 휠은 2-D 공간에 투영되는 3차원 물체로서 취급될 수 있다. 여기서, 휠은 회전 및 병진 모션을 위한 파라미터들을 포함하는 3-D 모션 벡터를 사용하여 인코딩될 수 있다. 이런 시나리오에서, 3-D 모션 벡터는 훨씬 더 많은 수의 픽셀들을 커버할 것이고, 그에 의해 휠의 모션을 설명하는데 필요한 모션 벡터들의 수를 줄일 것이며, 트레이드오프는 각각의 3-D 모션 벡터가 각각의 3-D 모션 벡터와 관련된 추가적인 파라미터들 때문에 전송하기 위해 더 큰 수의 비트들을 필요로 할 것이라는 것이다.
많은 비디오 장치들에 있는 현존하는 하드웨어 서포트(예를 들면, 그래픽 프로세싱 유닛 또는 GPU)는 매우 양호한 3-D 회전 모션 표현, 3-D 병진 모션 표현, 및 3-D 스케일링을 가진다. 3-D 모션 벡터를 사용하는 이미지들 중에 인코딩 모션은 더 복잡한(예를 들면, 더 많은 파라미터들) 모션 벡터를 초래할 것이지만, 모션을 표현하기 위해 훨씬 더 적은 전체적인 모션 벡터들을 초래할 것이다. 게다가, 3-D 정보를 2-D 이미지로 투영하는 것은 3-D 벡터와 관련된 스케일링 파라미터와 회전 파라미터 사이에 리던던시들을 만들어낼 수 있다. 따라서, 이런 파라미터들 중의 하나는 인코딩 프로세스 중에 생략될 수 있고, 그에 의해 이런 예측 방법의 복잡성을 감소시킬 수 있다.
3-D 모션 벡터를 파라미터화하기 위해 3-D 병진, 회전, 및 스케일링을 사용하는 것에 더하여, 모션 벡터는 색상 특성을 인코딩할 수 있다. 이는 광 강도(즉, 크로미넌스와 휘도)를 표현하기 위해 3-파라미터 벡터뿐만 아니라 광 확산을 표현하기 위해 단일의 파라미터를 포함할 수 있다. 광 강도 파라미터들은 전체 이미지에 걸쳐 안정되기 쉽다. 예를 들면, 만약 픽처의 조명이 더 붉어진다면, 모든 픽셀들에 대한 크로미넌스 값들은 동일한(또는 결정 가능한) 양으로 적색을 향해 이동될 수 있다. 마찬가지로, 확산(즉, 이미지의 흐릿함)은 이미지에 걸쳐 일정하게 되기 쉽다. 그래서, 인코더는 상이한 섹션들에 대한 모션 벡터들로부터 리던던트한 정보를 제거함으로써 이런 정보를 인코딩하는데 필요한 비트들의 수를 크게 줄일 수 있다.
위의 예를 바탕으로, 동일한 이미지 내에서 또는 독립된 이미지들 내에서, 둘 이상의 장소들에 나타나는 임의의 표면은 조명 조건들의 변화와 커플링되는 3-D 운동으로서 표현될 수 있다. 2-D 이미지 압축을 위해, 이런 운동은 3-D 이동 더하기 3-D 회전으로서 특징지어질 수 있다. 조명 조건들은 광 강도 벡터에 의해 특징지어질 수 있다. 3-D 이동은 3-파라미터 벡터로서 파라미터화될 수 있다. 세 개의 회전 축들을 따른 3-D 회전은 마찬가지로 3-파라미터 벡터로서 파라미터화될 수 있다. 광 강도 벡터는 3-파라미터 벡터로서 파라미터화될 수 있다. 두 개의 파라미터들은 크로미넌스를 설명하는 두 개의 색상 차이 성분들(즉, 청색 루마와 적색 루마)을 표현하는데 사용될 것이고 다른 파라미터는 휘도를 표현할 것이다. 게다가, 3-D 모션 벡터는 광 확산을 설명하기 위한 다른 파라미터와 최종적으로 3-D 모션 벡터를 구성하는데 사용되는 기준 이미지를 가리키는 파라미터를 가질 수 있다(이런 파라미터는 인트라 코딩에 불필요하다). 3-D 모션 벡터는 매우 정확한 픽셀 예측 방법에 기여할 11개의 파라미터들로서 특징지어질 것이다. 이런 11개의 파라미터들이 3-D 표면 모션의 2-D 투영을 한정하는데만 사용될 수 있다는 것에 주목하는 것이 중요하다. 실제 3-D 모션을 표현하기 위해, 더 많은 파라미터들이 필요할 것이다.
단일의 복잡한 3-D 모션 벡터로 많은 수의 픽셀들을 표현하는 것은 극히 많은 수의 비트들의 전송을 요구하기 때문에, 근본적으로 변하는 픽셀 예측과 재구성에 숨겨진 제2 개념은 주어진 비디오 스트림을 인코딩하는데 필요한 비트들의 전체 수를 줄이는 것을 포함한다. 비트들의 수를 줄이기 위해, 인코더는 모션 벡터가 비디오 스트림에 있는 디지털 이미지의 특정한 섹션의 인코딩 프로세스 중에 생략될 수 있는지를 결정하기 위해 디코더 에뮬레이터를 사용할 수 있다. 디코더 에뮬레이터는 이전에 디코딩된 이미지들을 사용하여 프로세싱되는 현재 섹션에 대한 모션 벡터를 독립적으로 결정하기 위해 디코더의 능력을 시뮬레이션할 것이다.
디코더 에뮬레이터가 모션 벡터와 관련된 파라미터들을 충분히 설정할 수 있다면, 전체 모션 벡터는 인코딩 프로세스 중에 생략될 수 있다. 그 대신에, 상당히 적은 비트들을 필요로 하는 가이드라인들이 모션 벡터에 대한 이의 검색을 용이하게 하기 위해 디코더로 전송될 수 있다. 예로서, 그리고 한정을 하지 않고, 이런 가이드라인들은 다음을 포함할 수 있다: 1) 이 안에 가장 정확한 모션 벡터를 표현하는 파라미터들을 위치하기 위해 디코더에 하나의 세트의 범위들을 제공하는 것; 2) 특정한 이웃 픽셀들에 대한 디코더의 모션 벡터 검색을 제한하는 것; 3) 인코더의 예측 파라미터 값들(예를 들면, 모션 벡터)과 디코더 에뮬레이터의 상응하는 예측 파라미터 값들 사이의 차이(Δ)를 전송하는 것; 또는 4) 디코더가 모션 벡터를 찾기 위해 사용하는 섹션 크기를 변경하는 것. 이런 동일한 개념들은 필터 파라미터들, 확산, 크로미넌스, 및 휘도 값들과 같은, 모션 벡터들 이외의 예측 파라미터들에 적용될 수 있다는 것이 주목된다.
디코더 에뮬레이터가 모션 벡터와 관련된 모든 파라미터들을 설정할 수 있다면, 추가적인 정보(및 불필요한 비트들)가 디코더로 전송될 필요가 없을 것이다.
픽셀 예측은 많은 비디오 압축 알고리즘들의 기반이다. 본 발명의 방법에서, 만약 디코더가 이전에 디코딩된 픽셀들을 검색함으로써 특정한 예측 제어 파라미터들을 획득할 수 있다면 인코더는 이런 특정한 픽셀 예측 제어 파라미터들을 전송하는 것을 생략할 수 있다. 그 대신에, 예측 파라미터 조절들과 예측 에러 픽셀들만이 전송될 것이다. 예측 파라미터들을 생략함으로써, 본 발명의 실시예들은 인트라 코딩된 픽처들과 인터 코딩된 픽처들에 대한 매우 복잡하고 정확한 3-D 픽셀 예측을 가능하게 할 수 있고 매우 효과적으로 압축된 비디오 스트림들을 생성할 수 있다. 이런 방법은 또한 3-D 비디오 압축을 위한 현재의 멀티뷰 코딩 방법들보다 양호하게 스케일링한다.
본 발명의 실시예들에서, 인코더는 하나의 세트의 예측된 픽셀 값들을 획득하기 위해 픽처의 하나의 섹션에 제1 세트의 예측 파라미터 값들(예를 들면, 모션 벡터의 성분들)을 적용한다. 예측된 픽셀 값들은 (때때로 잔류 픽셀들로서 알려진) 예측 에러를 생성하기 위해 이런 섹션에 대한 원래의 픽셀 값들로부터 뺄 수 있다. 정변환이 하나의 세트의 변환 계수들을 생성하기 위해 예측 에러에 적용된다. 통상적으로 변환 계수들과 예측 파라미터들은 디코딩을 위해 전송된다. 본 발명의 실시예들에서, 인코더 측에 대한 디코더 에뮬레이터는 제2 세트의 예측 파라미터들(예를 들면, 모션 벡터의 성분들)을 결정하기 위해 변환 계수들과 동일한 픽처나 상이한 픽처로부터 나온 이전에 디코딩된 섹션을 사용할 수 있다. 두 개의 세트들의 예측 파라미터들은 제2 세트에 있는 임의의 파라미터 값들이 제1 세트에 있는 상응하는 값들과 매칭되는지를 결정하기 위해 서로 비교될 수 있다. 제2 세트에 있는 임의의 매칭 값들은 예측 에러로부터 디코더에 의해 생성될 수 있다는 것이 가정될 수 있다. 제2 세트에 있는 상응하는 매칭 값을 가지지 않는 제1 세트에 있는 임의의 값들은 제3 세트의 예측 파라미터 값들로 디코더 측에 전송될 수 있다. 매칭 값들은 디코더 측에 전송되는 제3 세트의 예측 파라미터 값들로부터 생략될 수 있고, 그에 의해 이런 파라미터 값들을 전송하는데 필요한 비트들의 수를 줄일 수 있다.
디코더 측은 변환 계수 및 코딩된 섹션에 상응하는 (빈 세트일 수 있는) 부분적인 세트의 예측 파라미터들을 수신할 수 있다. 디코더는 그런 다음에 이런 섹션에 대한 예측 에러 값들을 생성하기 위해 변환 계수들에 대한 역변환을 적용할 수 있다. 디코더는 이런 섹션들에 대한 픽셀 값들을 디코딩하기 위해 부분적인 세트에 있는 예측 에러 값들, 이전에 디코딩된 섹션, 및 임의의 생략되지 않은 예측 파라미터 값들을 사용할 수 있다.
예로서, 그리고 한정을 하지 않고, 도 1b는 예측 파라미터들을 생략하면서 디지털 픽처를 인코딩하기 위한 프로세스 흐름(120)의 일 예를 도시한다. 이런 예에서, 상이한 정변환들이 픽처에 있는 각각의 섹션에 적용될 수 있다. 122에 표시된 바와 같이, 인코더에 대한 디코더 에뮬레이터(125)는 변환 계수들(124)의 세트와 예측 파라미터들의 세트(예를 들면, 모션 벡터)를 생성하기 위해 픽처에서 하나의 섹션(예를 들면, 상부 좌측 블록 또는 매크로블록)에 대한 입력 예측 에러(128)에 정변환을 선택적으로 적용할 수 있다. 몇몇의 실시예들에서, 인코더는 픽처에 있는 제2 섹션에 디폴트 정변환(121)을 적용할 수 있고 아래에 논의되는 바와 같은 다른 섹션들에 대한 최선의 변환을 결정할 수 있다. 만약 현재 섹션이 제1 섹션이 아니라면, 변환(121)은 이전의 섹션에 대한 디코더 에뮬레이터 결과로부터 결정될 수 있다.
일단 정변환이 적용되었다면, 디코더 에뮬레이터(125)는 예측 에러(128')(예를 들면, 잔류 픽셀 값들)를 다시 생성하기 위해 126에 표시된 바와 같이 그 결과로 나온 변환 계수들에 상응하는 역변환을 적용할 수 있다. 디코더 에뮬레이터(125)에 의해 생성된 예측 에러(128')는 검사로서 입력 예측 에러(128)와 비교될 수 있다. 디코더 에뮬레이터(125)는 그럼 다음에 130에 표시된 바와 같이 예측 에러(128')로부터 하나 이상의 추정된 예측 파라미터 값들(131)을 생성하기 위해 이전에 디코딩된 기준 섹션(129)을 사용할 수 있다. 디코더 에뮬레이터(125)는 이전에 디코딩된 기준 섹션(129)의 예측된 픽셀 및 예측 에러 값들을 사용하여 현재 섹션에 대한 추정된 예측 파라미터 값들(131)을 생성할 수 있다. 132에 표시된 바와 같이, 추정된 예측 파라미터 값들(131)은 인코딩 프로세스의 다른 부분에서 인코더에 의해 생성된 하나의 세트의 입력 예측 파라미터 값들(123)과 비교될 수 있다. 추정된 파라미터 값들(131)은 전송을 위한 입력 파라미터 값들(135)을 선택하기 위해 입력 파라미터 값들(123)과 비교될 수 있다. 특히, 상응하는 추정된 파라미터 값들(131)과 매칭되는 입력 파라미터 값들(123)은 전송될 필요가 없다. 상응하는 추정된 파라미터 값들과 매칭되지 않는 입력 파라미터 값들은 변환 계수들(124)과 함께 전송을 위해 선택될 수 있다. 선택된 예측 파라미터들(135)만을 전송함으로써 전송된 비트들의 수는 줄어들 수 있다. 몇몇의 실시들에서, 인코더 에뮬레이터(125)는 미래 섹션, 예를 들면 다음 섹션에 대한 결과를 검사하기 위해 현재 섹션에 대한 추정된 예측 파라미터들(131) 또는 현재 섹션에 대한 선택된 예측 파라미터들(135)을 사용할 수 있다.
예로서, 그리고 한정을 하지 않고, 재구성된 픽셀 값들(예측된 픽셀 값들 더하기 디코딩된 예측 에러)은 모션 벡터(예를 들면, 3차원 모션 벡터)를 추정하기 위해 하나 이상의 디코딩된 기준 섹션들(129)로부터 나온 기준 픽셀 값들과 비교될 수 있다. 추정된 모션 벡터의 성분들은 인코딩 프로세스의 다른 부분에서 인코더에 의해 생성된 원래의 모션 벡터와 비교될 수 있다. 디코더 에뮬레이터(125)에 의해 발생된 것들과 매칭되지 않는 원래의 모션 벡터의 성분들은 변환 계수들과 함께 전송을 위해 선택될 수 있다.
예를 들면, 적당한 이전에 디코딩된 섹션이 없다면, 전체 세트의 예측 파라미터 값들(예를 들면, 전체 모션 벡터)이 때때로 전송된다. 예를 들면, 바로 제1 픽처 분할을 위해, 전체 모션 벡터가 전송되어야 한다.
상이한 변환들이 주어진 픽처의 상이한 부분들에 대해 보다 양호하게 작동할 수 있다는 것이 주목된다. 최선의 변환(122)을 찾기 위해, 인코더는 상이한 변환 계수들을 생성하기 위해 예측 에러에 상이한 정변환들을 적용할 수 있다. 몇몇의 실시예들에서, 예를 들면, 디코더 에뮬레이터(125)의 내에서 실행될 수 있는 최선의 변환 루프(136)는 섹션에 상이한 정변환들을 적용하고 미래 섹션에 사용하기 위해 최선의 변환을 결정함으로써 획득된 상이한 세트들의 변환 계수들을 비교할 수 있다. 일반적으로 변환 파라미터들에 의해 제어되는 하나의 그룹의 후보 변환들이 있을 수 있다. 디코더 에뮬레이터(125)는 각각의 특정한 섹션에 대한 최선의 변환 파라미터들을 검색할 수 있다. 상이한 변환 파라미터들이 출력 계수들의 엔트로피를 결정하는데 사용될 수 있다. 이런 계수들의 엔트로피는 이런 계수들을 인코딩하는데 필요한 비트들의 수에 상응한다. 가장 낮은 엔트로피를 가지는 계수들을 생성하는 변환이 최선의 변환으로서 선택될 수 있다. 전송하는 비용 때문에, 이전의 섹션에 대한 최선의 변환 파라미터들만이 현재 섹션에 사용되고, 즉 이는 항상 변환 파라미터 전송을 생략할 수 있다. 만약 이것이 존재한다면, 현재 섹션에 대한 최선의 변환 루프(136)에 의해 결정된 최선의 변환은 미래 섹션의 인코딩으로 전달된다. 여기에 사용되는 바와 같이, 용어 "미래 섹션"은 다음의 의미를 가진다. 하나의 열에 있는 제1 섹션에 대해(예를 들면, 매크로블록들의 열에 있는 제1 매크로블록), 미래 섹션들은 동일한 열에 있는 다음 섹션과, 만약 있다면 다음 열에 있는 제1 섹션을 포함한다. 하나의 열의 끝에 있는 하나의 섹션에 대해 미래 섹션은 없다. 모든 다른 섹션들에 대해, 미래 섹션은 동일한 열에 있는 다음 섹션이다.
일단 최선의 변환이 선택되었다면 상응하는 변환 파라미터들은 추정된 예측 파라미터 값들을 생성하는 프로세스에서 (만약 이것이 존재한다면) 미래 섹션에 대한 정변환과 역변환에 적용될 수 있다. 선택된 예측 파라미터들(135)은 138에 표시되는 바와 같이 변환 계수들(124)과 함께 전송될 수 있는 데이터 패킷(137)에 조합될 수 있다. 그러나, 최선의 변환에 대한 변환 파라미터들은 데이터 패킷(137)으로부터 생략될 수 있다. 이런 프로세스는 그런 다음에 다음 섹션에 대해 반복될 수 있다.
게다가, 134에서 전송하기 위해 파라미터들을 선택할 때, 디코더 에뮬레이터(125)는 예를 들면, 위에서 논의된 하나 이상의 기술을 사용하여 전송되는 파라미터 데이터의 비트들의 수를 더 줄일 수 있다. 구체적으로는, 선택된 파라미터 값들(135)은 이 안에 특정한 파라미터 값들이 위치하는 값들의 범위들의 세트를 포함할 수 있다. 또는, 모션 벡터의 경우에, 선택된 파라미터 값들은 기준 섹션(129) 내에 있는 특정한 픽셀들에 디코더의 모션 벡터 검색의 제약들을 포함할 수 있다. 게다가, 선택된 파라미터 값들(135)은 인코더의 예측 파라미터 값들(예를 들면, 모션 벡터)과 디코더 에뮬레이터의 상응하는 예측 파라미터 값들 사이의 차이들을 포함할 수 있다. 또는, 예측 파라미터 값들은 디코더가 생략된 예측 파라미터를 검색하기 위해 사용하는 섹션 크기를 변경할 수 있다. 예를 들면, 디코더 에뮬레이터(125)는 만약 더 크거나 더 작은 섹션 크기가 모션 벡터 검색에 사용된다면 올바른 모션 벡터가 8x8 픽셀에 대해 올바르게 추정될 수 있는지를 결정할 수 있다. 이와 같은 경우에, 선택된 파라미터 값들(135)은 예측 파라미터를 검색하는데 사용하기 위해 디코더에 대한 섹션 크기의 표시를 포함할 수 있다.
도 1c는 본 발명의 일 실시예에 따라 픽처들을 디코딩하기 위한 프로세스 흐름(140)의 일 예를 도시한다. 디코더는 픽처에 있는 인코딩된 섹션에 대한 변환 계수들과 선택된 파라미터들을 가지는 하나 이상의 데이터 패킷들(137)을 수신할 수 있다. 디코더는 그런 다음에 예측 에러(143A)를 획득하기 위해 142에서 표시되는 바와 같이 이런 계수들에 역변환을 적용할 수 있다. 만약 디코더가 인코더 측에 대한 디코더 에뮬레이터(125)와 동일한 방식으로 작동된다면, 예측 에러(143A)는 인코더 에뮬레이터(125)에 의해 생성된 예측 에러(128')와 매칭되어야 한다.
만약 섹션이 픽처에 있는 제1 섹션이라면, 디코더가 변환 계수들에 미리 결정된 디폴트 변환(141)을 선택적으로 적용할 수 있다는 것이 주목된다. 그렇지 않으면, 아래에 논의되는 바와 같이, 디코더는 이런 계수들에 상이한 역변환들을 적용할 수 있고 그 결과로 나온 예측 에러에 상이한 상응하는 정변환들을 적용할 수 있으며 최선의 정변환을 결정하기 위해 그 결과로 나온 추정된 계수들을 비교할 수 있다. 최선의 정변환은 일반적으로 가장 작은 수의 비트들을 가지는 계수들을 초래하는 변환이다.
예측 에러(143A)는 재구성된 픽셀 값들을 획득하기 위해 상응하는 예측된 픽셀 값들(143B)과 조합될 수 있다. 예측된 픽셀 값들(143B)은 디코딩 프로세스(도시되지 않음)의 상이한 부분에서 이전에 디코딩된 기준 섹션(129)에 모션 벡터를 적용함으로써 획득될 수 있다. 144에 표시된 바와 같이, 디코더는 예측된 픽셀들(143B)과 예측 에러(143A)를 사용하여 획득된 이전에 재구성된 픽셀 값들(143C) 및 하나 이상의 이전에 디코딩된 기준 섹션들(129)을 사용하여 예측 파라미터들(145)을 검색할 수 있다. 예로서, 그리고 한정을 하지 않고, 재구성된 픽셀 값들(143C)은 모션 벡터(예를 들면, 3차원 모션 벡터)를 추정하기 위해 하나 이상의 디코딩된 기준 섹션들(129)로부터 나온 기준 픽셀 값들과 비교될 수 있다. 바람직하게는, 이전에 디코딩된 기준 섹션(129)은 인코더 측에 대해 디코더 에뮬레이터에 의해 사용되는 동일한 것이다. 이를 용이하게 하기 위해, 데이터 패킷들(137)은 관련된 기준 섹션들을 식별하는 데이터를 포함할 수 있다. 디코더는 146에 표시되는 바와 같이 데이터 패킷(137)에 포함되는 상응하는 파라미터들의 값들로 선택되고 추정된 예측 파라미터들(145)을 교체함으로써 예측 파라미터들(147)의 출력 세트를 생성할 수 있다. 예측 파라미터들(147)은 또한 만약 이것이 존재한다면, 미래 섹션을 디코딩하는데 사용될 수 있다. 구체적으로는, 예측 파라미터들(147)은 미래 섹션에 대한 예측된 픽셀들을 생성하는데 사용될 수 있다.
게다가, 데이터 패킷들(137)에 있는 선택된 파라미터 값들은 이로부터 생략된 예측 파라미터들이 추정되거나 유도될 수 있는 정보를 포함할 수 있다. 예를 들면, 데이터 패킷들(137)은 이 안에 특정한 파라미터 값들이 위치하는 값들의 범위들의 세트를 포함할 수 있다. 또는, 모션 벡터의 경우에, 데이터 패킷들은 기준 섹션(129) 내에 있는 특정한 픽셀들에 디코더의 모션 벡터 검색에 대한 제약들을 포함할 수 있다. 게다가, 데이터 패킷들(137)은 인코더의 예측 파라미터 값들(123)(예를 들면, 모션 벡터)과 디코더 에뮬레이터(125)에 의해 생성된 상응하는 추정된 예측 파라미터 값들(131) 사이의 차이들을 포함할 수 있다. 디코더는 출력 세트의 예측 파라미터 값들(147)을 획득하기 위해 (예를 들면, 각각의 추정된 파라미터 값과 이의 상응하는 차이 값의 덧셈이나 뺄셈으로) 추정된 예측 값 파라미터들(145)과 차이 값들을 조합할 수 있다. 또는, 예측 파라미터 값들은 디코더가 생략된 예측 파라미터를 검색하기 위해 사용하는 섹션 크기를 변경할 수 있다. 예를 들면, 만약 데이터 패킷들(137)이 예를 들면, 모션 벡터 검색에서, 144에 있는 예측 파라미터들을 추정하는데 사용하기 위해 디코더에 대한 하나의 섹션 크기를 포함할 수 있다면.
위에서 언급된 바와 같이, 디코더는 변환 계수들에 상이한 역변환들을 적용할 수 있고 픽처에 있는 미래 섹션에 대한 최선의 변환을 결정할 수 있다. 예를 들면, 최선의 변환 루프(148)는 예측 에러(143A)에 상이한 정변환들을 적용할 수 있고 위에서 논의된 바와 같은 상응하는 변환 계수들을 생성할 수 있다. 최선의 변환 루프(148)가 도 1b에 도시된 디코더 에뮬레이터(125)에 대한 최선의 변환 루프(136)와 기본적으로 동일한 방식으로 작동될 수 있다는 것이 주목된다. 각각의 정변환에 대한 결과들은 최선의 정변환을, 예를 들면 가장 작은 수의 비트들을 가지는 변환 계수들을 생성하는 정변환을 결정하기 위해 서로 비교될 수 있다. 이런 프로세스는 올바른 역변환이 데이터 패킷에서 입력 계수들에 대해 사용되었는지를 확인하기 위해 변환 파라미터 검색 프로세스의 내에서 사용될 수 있다. 이전의 픽처 섹션에 대한 최선의 변환은 현재 픽처에 대한 최선의 변환이 아닐 수 있다는 것이 주목된다. 그러나, 최선의 변환 파라미터들을 전송하는 비트 비용을 회피하기 위해, 이전의 섹션에 대한 최선의 변환이 현재 섹션에 사용될 수 있다. 일단 최선의 정변환이 발견되었다면, 디코더는 디코더 프로세스의 상이한 부분에 상응하는 재구성된 픽셀들(143C)을 출력할 수 있고 150에 표시되는 바와 같은 통상적인 방식으로 이들을 사용할 수 있다. 예를 들면, 재구성된 픽셀들(143C)은 예를 들면, 아래에 논의되는 바와 같이 섹션들의 디코딩을 완료하는데 사용될 수 있다. 그 결과로 나온 디코딩된 섹션들은 그런 다음에 디코딩된 픽처의 일부분으로서 비디오 디스플레이, 컴퓨터 모니터, 또는 프린터와 같은 디스플레이 장치에 의해 디스플레이될 수 있다. 예측 파라미터들(147)은 미래 섹션, 예를 들면 다음 섹션을 디코딩하는데 사용될 수 있다.
위의 설명으로부터 이전의 섹션에 대해 결정된 최선의 변환은 현재 섹션에 대한 변환 계수들을 잔류 픽셀들(예측 에러)(143A)로 바꾸기 위해 역변환을 하는데 사용될 수 있다는 것이 보여질 수 있다. 따라서, 현재 픽처에 대한 변환 파라미터들을 전송하기 위해 인코더에 대한 필요를 회피하는 것이 가능하다.
본 발명의 실시예들은 상이한 인코딩 및 디코딩 방법들과 함께 사용될 수 있다. 예로서, 본 발명의 일 실시예에 따라, 인트라 또는 인터 픽처는 도 2a에 도시된 바와 같은 방법(200)에 따라 인코딩될 수 있다. 인코더는 복수의 디지털 이미지들(201)을 수신하고 각각의 이미지를 인코딩한다. 디지털 픽처(201)의 인코딩은 섹션 베이스로 진행될 수 있다. 각각의 섹션에 대한 인코딩 프로세스는 선택적으로 패딩(202)을 포함하고, 일반적으로 이미지 압축(204)과 모션 보상(206)을 포함한다. 인트라 코딩된 픽처와 인터 코딩된 픽처에 대한 공통적인 프로세스 흐름을 용이하게 하기 위해, 현재 프로세싱되는 픽처(201) 내에 있는 모든 디코딩되지 않은 픽셀들은 202에 표시된 바와 같이 패딩된 픽처를 생성하기 위해 임시의 픽셀 값들로 선택적으로 패딩될 수 있다. 패딩된 픽처는 버퍼에 저장된 기준 픽처들(203)의 목록에 추가될 수 있다. 202에서 픽처를 패딩하는 것은 이미지 압축(204)과 모션 보상(206) 중에 뒤이어지는 프로세싱에서 기준 픽처로서 현재 프로세싱되는 픽처의 사용을 용이하게 한다. 픽처 패딩은 이의 전체 내용이 참고로 여기에 포함되는 "PICTURE ENCODING USING SAME-PICTURE REFERENCE FOR PIXEL RECONSTRUCTION(픽셀 재구성을 위해 동일한 픽처 기준을 사용하는 픽처 인코딩)" 명칭으로 하는 Jason N. Wang의 미국 특허출원번호 11/627,867에 보다 상세하게 설명된다.
여기에서 사용되는 바와 같이, 이미지 압축은 디지털 이미지들에 대한 데이터 압축의 적용을 가리킨다. 이미지 압축(204)의 목적은 효율적인 형태의 압축된 데이터로 이런 이미지에 대한 데이터를 저장하거나 전송할 수 있기 위해 주어진 이미지(201)에 대한 이미지 데이터의 리던던시를 감소시키는 것이다. 이미지 압축(204)은 손실이 있을 수 있거나 손실이 없을 수 있다. 손실이 없는 압축이 기술 도면들, 아이콘들 또는 만화들과 같은 인공 이미지들에 대해 때때로 선호된다. 이는 손실이 있는 압축 방법들이, 특히 낮은 비트율로 사용될 때, 압축 가공물(artifact)을 도입하기 때문이다. 손실이 없는 압축 방법들은 또한 기록을 위해 만들어진 의료 이미지나 이미지 스캔들과 같은 고가의 콘텐츠에 대해 선호될 수 있다. 손실이 있는 방법들은 비트율의 상당한 감소를 성취하기 위해 충실도의 사소한(때때로 미세한) 손실을 받아들일 수 있는 경우에 적용하는 사진들과 같은 자연 이미지들에 특히 적합하다.
손실이 없는 이미지 압축을 위한 방법들의 예는 PCX에서 디폴트 방법 및 BMP, TGA, TIFF에서 가능한 하나로서 사용되는 - 런 길이 인코딩, 엔트로피 코딩, GIF와 TIFF에 사용되는 - LZW와 같은 적응적 사전 알고리즘들 및 PNG, MNG 및 TIFF에 사용되는 - 디플레이션을 포함하지만, 이들에 한정되지 않는다. 손실이 있는 압축을 위한 방법들의 예는 이미지에서 가장 공통의 색상들에 대한 픽처(201)의 색상 공간을 감소시키는 것, 채도 서브샘플링, 변환 코딩, 및 프랙탈 압축(fractal compression)을 포함한다.
색상 공간 감소에서, 선택된 색상들은 압축된 이미지의 헤더에 있는 색상 팔레트에서 특정될 수 있다. 각각의 픽셀은 색상 팔레트에 있는 색상의 인덱스를 바로 참조한다. 이런 방법은 포스터리제이션(posterization)을 회피하기 위해 디더링(dithering)과 조합될 수 있다. 채도 서브샘플링은 이미지에서 크로미넌스 정보의 절반 이상을 버림으로써 눈이 색상보다 더 명확하게 밝기를 인식한다는 사실을 이용한다. 변환 코딩은 아마 가장 통상적으로 사용되는 이미지 압축 방법일 것이다. 변환 코딩은 일반적으로 이산 코사인 변환(DCT)이나 웨이브렛 변환과 같은 푸리에 관련 변환을 적용하고, 그 다음에 양자화와 엔트로피 코딩이 계속된다. 프랙탈 압축은 특정 이미지들에서, 이 이미지의 부분들이 동일한 이미지의 다른 부분들과 유사하다는 사실에 의존한다. 프랙탈 알고리즘들은 이런 부분들, 또는 보다 정확하게는 구조적 형상들을 인코딩된 이미지를 재현하는데 사용되는 "프랙탈 코드들"이라 불리는 수학적인 데이터로 바꾼다.
이미지 압축(204)은 이미지(201)의 특정한 부분들이 다른 것들보다 고품질로 인코딩되는 관심 영역 코딩을 포함할 수 있다. 관심 영역 코딩은 이미지(201)의 특정한 부분들이 먼저 인코딩되고 다른 부분들이 나중에 인코딩되는 것을 허용하는 확장 특성과 조합될 수 있다. 압축된 데이터는 이미지들을 분류하거나, 검색하거나 브라우징하는데 사용될 수 있는 (때때로 메타 정보 또는 메타데이터로 언급되는) 이미지에 대한 정보를 포함할 수 있다. 이와 같은 정보는 색상과 텍스쳐 통계자료, 작은 미리보기 이미지들 및 작가/저작권 정보를 포함할 수 있다.
예로서, 한정을 하지 않고, 204에서 이미지 압축 중에 인코더는 픽셀들의 블록을 압축하기 위한 최선의 방법을 검색할 수 있다. 인코더는 양호한 매칭을 위해, 현재 패딩된 픽처를 포함할 수 있는 기준 픽처 목록(203)에 있는 모든 기준 픽처들을 검색할 수 있다. 현재 픽처가 인트라 픽처로서 코딩된다면, 패딩된 픽처만이 기준 목록에서 이용 가능하다. 204에서 이미지 압축은 206에서 모션 보상 중에 (패딩된 픽처를 포함하는) 하나 이상의 기준 픽처들과 함께 뒤이어서 사용되는 3차원 모션 벡터(MV)와 변환 계수들(207)을 생성한다.
이미지 압축(204)은 일반적으로 최선의 인터 예측 매칭을 위한 모션 검색(MS), 최선의 인트라 예측 매칭을 위한 인트라 검색(IS), 현재 매크로블록이 인터 코딩되는지 또는 인트라 코딩되는지를 결정하기 위한 인터/인트라 비교(C), 및 손실이 없는 잔류 픽셀들(205)의 형태로 예측 에러를 계산하기 위해 최선의 매칭하는 예측된 픽셀 값들로 인코딩된 섹션으로부터 원래의 입력 픽셀들의 값들의 빼기(S)를 포함한다. 잔류 픽셀들은 그런 다음에 변환 계수들(207)을 생성하기 위해 변환과 양자화(XQ)를 겪는다. 변환은 일반적으로 이산 코사인 변환(DCT)과 같은 푸리에 또는 푸리에와 유사한 변환에 근거한다. 현존하는 비디오 표준들에 대해, 만약 인트라 픽처가 코딩되어야 하면, 모션 검색(MS)과 인터/인트라 비교(C)는 중지된다. 그러나, 본 발명의 실시예들에서, 패딩된 픽처는 기준으로서 이용 가능하기 때문에, 이 기능들은 중지되지 않는다. 그 결과로, 이미지 압축(204)은 인트라 코딩된 픽처들과 인터 코딩된 픽처들에 대해 동일한 것이다.
모션 검색(MS)은 인터 코딩된 픽처에 대해 통상적으로 행해지는 것과 같은 모션 보상을 위해 최선의 매칭 섹션에 대한 픽처(201)를 검색함으로써 3차원 모션 벡터(MV)를 생성할 수 있다. 만약 현재 픽처(201)가 인트라 코딩된 픽처이라면, 이와 반대로, 현존하는 코덱들은 일반적으로 픽처들에 걸쳐 예측을 허용하지 않는다. 그 대신에 모든 모션 보상은 통상적으로 인트라 픽처 및 변환 계수들을 생성하고 픽셀 예측을 실행함으로써 코딩된 픽처에 대해 중지된다. 그러나, 본 발명의 실시예들에서, 인트라 픽처는 현재 픽처에 있는 섹션을 동일한 픽처 내에 있는 다른 오프셋된 섹션과 매칭시킴으로써 인터 예측을 하는데 사용될 수 있다. 두 개의 섹션들 사이의 오프셋은 206에서 모션 보상에 사용될 수 있는 예측 파라미터로서, 예를 들면 (3차원 모션 벡터일 수 있는) 모션 벡터(MV')로서 코딩될 수 있다. 예로서, 인코더는 인트라 픽처에 있는 하나의 섹션을 동일한 픽처에 있는 몇몇의 다른 오프셋된 섹션과 매칭시키고 그런 다음에 3차원 모션 벡터(MV')로서 둘 사이의 오프셋을 코딩하기 위해 시도할 수 있다. "인터" 픽처에 대한 코덱의 통상적인 모션 벡터 보상은 그런 다음에 "인트라" 픽처에 대한 모션 벡터 보상을 하는데 사용될 수 있다. 몇몇의 현존하는 코덱들은 두 개의 섹션들 사이의 오프셋을 모션 벡터로 바꿀 수 있는 기능들을 가지고, 이는 그 다음에 206에서 모션 보상을 하기 위해 사용될 수 있다. 그러나, 이런 기능들은 인트라 픽처들의 인코딩을 위해 종래에는 중지된다. 본 발명의 실시예들에서, 코덱은 인트라 픽처들의 인코딩을 위해 이와 같은 "인터" 픽처 기능들을 중지하지 않도록 명령을 받을 수 있다.
여기에서 사용되는 바와 같이, 모션 보상은 기준 이미지를 현재 프로세싱되는 이미지로 변환하는 관점에서 픽처를 설명하기 위한 기술을 가리킨다. 일반적으로, 모션 보상(206)은 인코딩 프로세스(200)를 실행하는 인코더 내에서 로컬 디코더로서 기능을 한다. 구체적으로는, 모션 보상(206)은 이미지 압축(204)로부터 나온 모션 벡터(MV 또는 MV')와 기준 목록에 있는 픽처로부터 나온 기준 픽셀들을 사용하여 예측된 픽셀들(PP)을 얻기 위해 인터 예측(IP1)과 (선택적으로) 인트라 예측(IP2)을 포함한다. 실제 문제로, 두 개의 예측들(IP1 및 IP2) 중의 하나만이 예측된 픽셀들(PP)을 생성하기 위해 선택될 수 있기 때문에 인트라 예측은 선택적이라는 것이 주목된다. 이미지 압축(204)으로부터 나온 변환 계수들(207)을 사용하는 역양자화와 역변환(IQX)은 디코딩된 픽셀들(209)을 생성하기 위해 예측된 픽셀들(PP)에 추가되는 손실이 있는 잔류 픽셀들(205L)을 생성한다. 디코딩된 픽셀들(209)은 기준 픽처에 삽입되고 현재 프로세싱되는 픽처(201)의 뒤이어지는 섹션에 대한 이미지 압축(204)과 모션 보상(206)에 사용하기 위해 이용 가능하다. 디코딩된 픽셀들이 삽입된 후에, 기준 픽처에 있는 디코딩되지 않은 픽셀들은 패딩(202)을 겪을 수 있다.
종래의 인코더에서, 만약 현재 픽처가 인트라 코딩된다면, 모션 보상(206)의 인터 예측 부분들은 모션 보상에 사용될 수 있는 다른 픽처들이 없기 때문에 중지된다. 그러나, 본 발명의 실시예들에서, 이와 반대로, 모션 보상은 특정한 픽처가 인터 코딩되는 것인지 또는 인트라 코딩되는 것인지에 관계없이 임의의 픽처(201)에 대해 실행될 수 있다. 본 발명의 실시예들에서, 방법(200)을 실행시키는 인코더는 기준 픽처 목록(203)에 패딩된 픽처를 추가하기 위해 변경될 수 있고, 심지어 현재 프로세싱되는 이미지가 인트라 코딩되어야 하는 경우에도, 모션 보상(206)의 인터 예측 부분들은 중지되지 않는다. 그 결과로, 인터 코딩된 섹션들과 인트라 코딩된 섹션들에 대한 프로세스 흐름은 모션 보상(206) 중에 동일하다. 단지 주요 차이는 인코딩에 사용되는 기준 픽처의 선택이다.
예로서, 그리고 한정을 하지 않고, 하나의 타입의 3차원 모션 보상에서, 각각의 이미지는 픽셀들의 블록들(예를 들면, 16×16 픽셀들의 매크로블록들)로 분할될 수 있다. 각각의 블록은 기준 프레임에 있는 동일한 크기의 하나의 블록으로부터 예측된다. 블록들은 3차원 모션(즉, 3D 이동, 3D 회전)의 파라미터화를 통해 예측된 블록의 위치로 변환될 수 있다. 블록들은 또한 광의 조명과 확산의 강도의 파라미터화를 통해 예측된 블록의 색상 특성을 나타낼 수 있다. 이런 3차원 운동들과 색상 특성의 변화들은 3차원 모션 벡터(MV)에 의해 표현된다. 이웃하는 블록 벡터들 사이의 리던던시를 활용하기 위해, (예를 들면, 다수의 블록들에 의해 커버되는 단일의 운동하는 물체에 대해) 비트 스트림에서 현재와 이전의 3차원 모션 벡터 사이의 차이만을 인코딩하는 것이 일반적이다. 이런 차별화 프로세스의 결과는 패닝(panning)할 수 있는 전체적인 모션 보상과 수학적으로 등가이다. 게다가 인코딩 파이프라인의 아래에서, 방법(200)은 출력 크기를 줄이기 위해 제로 벡터의 주위에서 그 결과로 나온 모션 벡터들의 통계적인 분포를 이용하는데 엔트로피 코딩(208)을 선택적으로 사용할 수 있다.
정수가 아닌 수의 픽셀들에 의해 블록을 이동시키는 것이 가능하고, 이는 서브픽셀 정밀도라고 불린다. 중간에 있는 픽셀들은 이웃하는 픽셀들을 보간함으로써 생성된다. 일반적으로, 1/2픽셀 또는 1/4픽셀 정밀도가 사용된다. 서브픽셀 정밀도의 연산 비용은 보간을 위해 요구되는 추가의 프로세싱 및 인코더 측에 대해, 평가되는 훨씬 더 큰 수의 포텐셜 소스 블록들 때문에 훨씬 더 높다.
3차원 모션 보상은 현재 인코딩 이미지를 겹치지 않는 블록들로 나누고, 기준 이미지에서 이 블록들이 나오는 곳을 가리키는 3차원 모션 보상 벡터를 연산한다. 기준 블록들은 일반적으로 소스 프레임에서 겹쳐진다. 몇몇의 비디오 보상 알고리즘들은 기준 이미지 목록(203)에 있는 몇몇의 상이한 기준 이미지들의 조각들로부터 나온 현재 이미지와 유사하다. 소스 프레임은 현재 프레임의 원래의 입력 픽셀들을 포함하는 프레임을 가리킨다. 현재 입력 프레임은 다수의 기준 이미지들에 의해 예측될 수 있다. 때때로, 입력 픽셀 블록은 다수의 기준 이미지들에 의해 예측될 수 있다.
패딩(202), 이미지 압축(204), 모션 보상(206) 및 (선택적으로) 엔트로피 코딩(208)의 결과는 코딩된 픽처(211)이다. 모션 벡터(MV), (및/또는 인트라 예측 모드 모션 벡터(MV')및 변환 계수들(207)은 코딩된 픽처(211)에 포함될 수 있다. 각각의 디지털 픽처(201)가 패딩(202), 이미지 압축(204), 및 모션 보상(206)을 겪을 때, 이는 디코더 에뮬레이터(213)에 동시에 공급된다. 디코더 에뮬레이터(213)는 이런 특정한 디지털 픽처(202)와 관련된 이용 가능한 3차원 모션 벡터를 가지지 않고 디지털 픽처(202)에 대한 디코딩 프로세스를 시뮬레이션한다. 그 대신에, 디코더 에뮬레이터(213)는 디지털 픽처, 또는 이의 섹션에 대한 3차원 모션 벡터(MV'')를 독립적으로 결정하기 위해 간단하게 이미 디코딩된 이미지들과 픽셀들(예를 들면, 기준 이미지 목록(203)으로부터 나온 것들)을 사용한다. 디코더 에뮬레이터에 의해 결정되는 3차원 모션 벡터(MV'')는 그런 다음에 인코더에 의해 결정되는 3차원 모션 벡터(MV, MV')와 비교된다. 만약 디코더 에뮬레이터에 의해 결정되는 3차원 모션 벡터(MV'')가 인코더로부터 유도된 3차원 모션 벡터(MV, MV')의 것과 동등한 하나 이상의 예측 파라미터들을 포함한다면, 인코더는 최종 코딩된 픽처(215)를 전송할 때 이런 예측 파라미터들을 생략할 수 있다. 인코더는 또한 생략된 예측 파라미터들을 찾는데 디코더를 안내하도록 최종 코딩된 픽처(215) 내에서 추가적인 정보를 인코딩하기 위해 디코더 에뮬레이터에 의해 결정되는 3차원 모션 벡터(MV'')를 사용할 수 있다. 예로서, 그리고 한정을 하지 않고, 추가적인 정보는 다음을 포함할 수 있다: 이 안에서 디코더가 검색해야 하는 각각의 예측 파라미터에 대한 값들의 범위; 이 안에서 디코더가 모션 벡터(MV, MV')를 결정하기 위해 검색해야 하는 이웃하는 픽셀들의 인덱스; 인코더의 3차원 모션 벡터(MV, MV')와 디코더 에뮬레이터의 3차원 모션 벡터(MV'') 사이의 차이; 또는 이들의 몇몇의 조합. 디코더에 몇몇의 픽셀 예측 의무들을 위임함으로써, 인코딩 프로세스에서 상당한 수의 비트들이 절약될 수 있다. 이는 보다 큰 예측 정확성과 보다 효율적인 인코딩/디코딩 스킴들을 초래하는 디지털 픽처들을 인코딩하기 위해 보다 복잡한 예측 방법들의 사용을 허용한다.
일단 픽처가 도 2a에 도시된 바와 같은 인코딩을 겪었다면, 이는 전송될 수 있고 그런 다음에 본 발명의 다른 실시예에 따라 디코딩될 수 있다. 본 발명의 실시예들에 따른 픽처 디코딩은 도 2b에 도시된 바와 같은 방법(200)에 따라 진행될 수 있다. 222에 표시된 바와 같이, 픽처의 디코딩되지 않은 부분은 패딩된 픽처(221')를 생성하기 위해 패딩될 수 있다. 만약 현재 픽처(221)가 도 2a에 대해 위에서 설명된 바와 같이 인코딩되었다면, 3차원 모션 벡터(MV)(또는 인트라 모드 3차원 모션 벡터(MV')의 몇몇의 성분들은 현재 픽처가 인터 코딩되는지 또는 인트라 코딩되는지에 관계없이 224에서 현재 픽처(221)로부터 추출될 수 있다. 3차원 모션 벡터(MV, MV')의 추출은, 이용 가능할 때, 코딩된 픽처(221)에 의해 제공되는 3차원 모션 벡터(MV, MV')를 간단하게 사용함으로써 행해질 수 있다. 그러나, 주어진 픽처(221)에 대한 3차원 모션 벡터(MV, MV') 또는 3차원 모션 벡터(MV, MV')와 관련된 몇몇의 예측 파라미터들이 이용 가능하지 않는 경우에, 디코더는 기준 픽처(221')로부터 나온 이전에 디코딩된 섹션들을 사용함으로써 모션 벡터(MV) 또는 생략된 예측 파라미터들을 검색할 수 있다. 픽처 코딩의 타입에 따라, 기준 픽처는 코딩된 픽처(221)와 다른 픽처일 수 있다. 또는, 이전에 디코딩된 섹션들은 현재 디코딩되는 코딩된 픽처(221)로 나올 수 있다. 검색은 도 2a에 논의된 바와 같이 코딩된 픽처(221)(예를 들면, 이 안에서 디코더가 검색해야 하는 각각의 예측 파라미터에 대한 값들의 범위)에서 발견된 추가적인 정보에 의해 안내될 수 있다.
선행 기술에서, 인터 픽처는 인터 모드와 인트라 모드 기능들을 사용하여 인코딩될 수 있다는 것이 주목된다. 인트라 픽처는, 이와 반대로 인트라 모드 기능들을 사용하여 단지 인코딩될 수 있다. 본 발명의 몇몇의 실시예들에서, 인터 모드와 인트라 모드 기능들은 인트라 픽처 내에 있는 각각의 개별 섹션들에 허용될 수 있다. 그 결과로, 동일한 데이터 흐름이 인트라 픽처들과 인터 픽처들에 사용된다. 이것의 이점은 비디오 프로세싱 파이프라인에 있는 단계로서 비디오 인코딩 또는 디코딩을 고려한다면 이해될 수 있다. 만약 인트라 및 인터 픽처들의 인코딩 또는 디코딩이 동일한 프로세스를 사용하고 동일한 수의 사이클들을 소비한다면, 전체 파이프라인은 더 매끄러워질 것이다.
일단 모션 벡터(MV (또는 MV'))가 추출되었다면, 이는 예측된 픽셀들(225)을 생성하기 위해 현재 픽처(221)의 디코딩되지 않은 섹션의 픽셀 예측(226)에 사용될 수 있다. 픽셀 예측(226)은 기준 픽셀들(223)로서 패딩된 픽처(221')로부터 나온 기준 픽셀들(223)을 사용할 수 있다. 기준 픽셀들(223)은 패딩된 픽처(221')의 패딩되지 않은 부분들에서 나올 수 있다. 게다가, 패딩 프로세스(222)에서 획득된 픽셀들은 또한 기준 픽셀들(223)로서 사용될 수 있다. 픽셀 예측(226)은 인터 코딩된 픽처들과 인트라 코딩된 픽처들에 대한 인터 예측과 인트라 예측을 포함할 수 있다. 특히, 픽셀 예측(226)은 위에서 설명된 바와 같이 생성되는 종래의 인터 모드 모션 벡터(MV) 또는 인트라 모드 모션 벡터(MV')를 사용할 수 있다. 226에서 픽셀 예측과 함께, 디코딩 방법(220)을 실행하는 디코더는 228에 표시된 바와 같이 현재 픽처(221)로부터 변환 계수들을 추출할 수 있고, 230에 표시된 바와 같이 변환 계수들로부터 잔류 픽셀들(227)을 계산할 수 있다. 예측된 픽셀들(225)과 잔류 픽셀들(227)은 디코딩된 픽셀들(229)을 생성하기 위해 예를 들면, 간단한 추가로, 232에 표시된 바와 같이 조합될 수 있다.
만약 234에서, 디코딩이 완료되지 않는다면, 디코딩은 236에 표시된 바와 같이 현재 픽처(221)의 다음 부분에 대해 진행된다. 일단 디코딩이 완료된다면, 포스트 프로세싱이 238에 표시된 바와 같이 디코딩된 픽셀들(229)에 대해 실행될 수 있다. 포스트 프로세싱의 예는 디블록킹(de-blocking), 자연 노이즈 감소, 코딩 에러 노이즈 감소, 색상 향상, 색상 공간 변환, 인터레이스 프로그레시브 변환(interlace progressive conversion), 프레임율 변환, 픽처 크기 스케일링, 알파 벤딩 및 3-D 객체 랩핑을 포함하지만, 이들에 한정되지 않는다. 만약 현재 프로세싱 섹션으로부터 충분히 떨어진다면 포스트 프로세싱은 일반적으로 하나의 섹션에 대해 행해지고 그 결과로 섹션은 기준 픽셀들의 소스로서 사용되지 않을 것이다. 하나의 섹션이 픽셀 예측에 대해 사용될 것인지를 결정하는 것은 234에서 결정의 부분일 수 있다. 일단 포스트 프로세싱이 모든 픽셀들에 대해 완료된다면, 위의 프로세스는 240에 표시된 바와 같이 다른 픽처에 대해 반복될 수 있다.
디코딩이 완료되는지에 관한 234에서 결정의 본질은 현재 픽처 픽셀들이 포스트 프로세싱 전이나 후에 기준 픽셀들로서 사용되는지에 의존한다는 것이 주목된다. 최선의 예측을 달성하기 위해, 포스트 프로세싱 후에 현재 픽처 픽셀들을 사용하는 것이 바람직하다. 이와 같은 경우에, 현재 섹션으로부터 나온 픽셀들의 포스트 프로세싱은 현재 섹션에 대한 픽셀 예측 후에 그리고 미래 섹션에 대한 픽셀 예측 전에 일어날 수 있다. 그러나, 가장 간단한 실행을 달성하기 위해, 그렇지 않다면 포스트 프로세싱된 현재 픽처 픽셀들이 다음 매크로블록을 디코딩하기 전에 각각의 매크로블록에 다시 공급되어야 할 것이기 때문에 기준 픽셀들로서 프리-포스트 프로세싱 픽셀들을 사용하는 것이 바람직하다. 이와 같은 경우에, 미래 섹션의 디코딩은 현재 섹션에 대한 픽셀 예측이 완료된 후이지만 현재 섹션에 대한 픽셀들의 포스트 프로세싱 전에 시작될 수 있다.
바람직한 실시예에서, 프리-포스트 프로세싱 픽셀들은 동일한 픽처의 매크로블록 인터 예측을 위한 기준 픽셀들로서 사용된다. 이와 같은 경우에, 패딩 픽셀들은 디블록킹과 같은 포스트 프로세싱을 아직 겪지 않은 디코딩된 매크로블록들로부터 복사될 수 있다.
몇몇의 경우들에서, 예를 들면, 기준 픽셀들의 소스로서 현재 픽처의 부분들을 사용하는, 컴퓨터 생성 인공 콘텐츠를 포함하는 인트라 코딩된 픽처들과 인터 코딩된 픽처들은 임의의 다른 예측 모드보다 양호한 예측을 생성할 수 있다. 그러나, 모든 현존하는 비디오 코딩 표준들에 따라, 기준으로서 현재 픽처를 사용하는 것은 인트라 코딩된 픽처들에 대해 허용되지 않는다. 이는 현재 픽처로부터 나온 최선의 예측을 가질 가능성이 적기 때문에, 카메라 포착 자연 장면들이나 저해상도 픽처들에 대한 확실한 솔루션일 수 없다. 그러나, 이는 인터 및 인트라 코딩된 픽처들에 대한 단순화된 프로세스 흐름의 이점으로부터 여전히 이익을 얻는다.
도 3은 스트리밍 데이터(301)를 디코딩하기 위한 방법(300)의 가능한 프로세스 흐름의 일 예를 도시한다. 이런 특정한 예는 예를 들면, AVC(H.264) 표준을 사용하는 비디오 디코딩에 대한 프로세스 흐름을 보여준다. 코딩된 스트리밍 데이터(301)는 초기에 버퍼에 저장될 수 있다. 코딩된 스트리밍 데이터(301)(예를 들면, 비디오 데이터 비트스트림)는 네트워크, 예를 들면, 인터넷을 통해 전송되는 경우에, 데이터(301)는 302에 표시되는 네트워크 추상화 계층(NAL) 디코딩으로서 언급되는 프로세스를 초기에 겪을 수 있다. NAL 디코딩은 데이터를 전송하는 것을 보조하기 위해 추가되는 정보를 데이터(301)로부터 제거될 수 있다. "네트워크 랩퍼(network wrapper)"로서 언급되는 이와 같은 정보는 데이터를 비디오 데이터로서 확인할 수 있거나, 비트스트림의 시작이나 끝, 데이터의 정렬을 위한 비트들, 및/또는 비디오 데이터 자체에 대한 메타데이터를 가리킬 수 있다. 게다가, 예로서, 네트워크 랩퍼는 예를 들면, 해상도, 픽처 디스플레이 포맷, 데이터를 디스플레이하기 위한 색상 팔레트 변환 매트릭스, 각각의 픽처, 슬라이스 또는 매크로블록에 있는 비트들의 수에 대한 정보뿐만 아니라 보다 낮은 수준의 디코딩에 사용되는 정보, 예를 들면 슬라이스의 시작이나 끝을 가리키는 데이터를 포함하는 데이터(301)에 대한 정보를 포함할 수 있다. 이런 정보는 단일의 섹션에서 각각의 태스크 그룹들로 이동시키기 위해 매크로블록들의 수를 결정하는데 사용될 수 있다.
이의 복잡성 때문에, NAL 디코딩은 일반적으로 픽처와 슬라이스 수준에 대해 행해진다. NAL 디코딩에 사용되는 가장 작은 NAL 버퍼는 통상적으로 슬라이스 크기이다. 다행히, NAL 디코딩 프로세스(302)는 비교적 작은 수의 사이클들을 포함한다. 그 결과, NAL 디코딩 프로세스(302)는 단일 프로세서에서 행해질 수 있다.
몇몇의 실시예들에서, 302에서 NAL 디코딩 후에, 도 3에 도시된 남은 디코딩이 여기서 비디오 코딩된 계층(VCL) 디코딩(304), 모션 벡터(MV) 재구성(310) 및 픽처 재구성(314)으로서 언급되는 세 개의 다른 스레드 그룹들 또는 태스크 그룹들에서 실행될 수 있다. 픽처 재구성 태스크 그룹(314)은 픽셀 예측 및 재구성(316)과 포스트 프로세싱(320)을 포함할 수 있다. 본 발명의 몇몇의 실시예들에서, 이런 태스크 그룹들은 각각의 태스크 그룹이 매크로블록들이 뒤이어지는 프로세싱을 위해 다음 태스크 그룹으로 전송되기 전에 픽처(예를 들면, 프레임이나 필드) 또는 섹션에 있는 모든 매크로블록들의 프로세싱을 완료할 수 있도록 데이터 의존성에 근거하여 선택될 수 있다.
몇몇의 코덱들이 공간 영역으로부터 주파수 영역으로의 픽셀 정보의 변환을 포함하는 데이터 압축의 형태를 사용할 수 있다. 하나의 이와 같은 변환은 특히, 이산 코사인 변환(DCT)으로서 알려져 있다. 이와 같은 압축된 데이터에 대한 디코딩 프로세스는 주파수 영역에서부터 공간 영역으로의 역변환을 포함한다. DCT를 사용하는 압축된 데이터의 경우에, 역 프로세스는 역 이산 코사인 변환(IDCT)으로서 알려져 있다. 변환된 데이터는 이산 변환된 데이터에서 숫자를 표현하는데 사용되는 비트들의 수를 줄이기 위해 때때로 양자화된다. 예를 들면, 숫자들 1, 2, 3은 모두 2로 매핑될 수 있고 숫자들 4, 5, 6은 모두 5로 매핑될 수 있다. 데이터의 압축을 풀기 위해, 역양자화(IQ)로서 알려진 프로세스가 주파수 영역으로부터 공간 영역으로 역변환을 실행하기 전에 사용된다. VCL IQ/IDCT 디코딩 프로세스(304)에 대한 데이터 의존성은 일반적으로 동일한 슬라이스 내에서 매크로블록들에 대한 매크로블록 수준에 있다. 결과적으로, VCL 디코딩 프로세스(304)에 의해 생성된 결과들은 매크로블록 수준에서 버퍼링될 수 있다.
VCL 디코딩(304)은 VCL 신택스를 디코딩하는데 사용되는 엔트로피 디코딩(306)으로서 언급되는 프로세스를 종종 포함한다. AVC(H.264)와 같은 많은 코덱들은 엔트로피 인코딩으로서 언급되는 인코딩의 계층을 사용한다. 인트로피 인코딩은 신호들의 확률과 코드 길이들을 매칭시키기 위해 신호들에 코드들을 할당하는 코딩 스킴이다. 일반적으로, 엔트로피 인코더들은 동일한 길이의 코드들에 의해 표현되는 심볼들을 확률의 음의 대수에 비례하는 코드들에 의해 표현되는 심볼들로 교체함으로써 데이터를 압축하는데 사용된다. AVC(H.264)는 두 개의 엔트로피 인코딩 스킴들인, 상황 적응 가변 길이 코딩(CAVLC)과 상황 적응 이진 산술 코딩(CABAC)을 지원한다. CABAC가 CAVLC보다 약 10% 이상의 압축을 제공하는 경향이 있기 때문에, CABAC이 AVC(H.264) 비트스트림들을 생성하는 많은 비디오 인코더들에 의해 선호된다. AVC(H.264) 코딩된 데이터 스트림들의 엔트로피 계층을 디코딩하는 것은 연산적으로 집중될 수 있고 범용 마이크로프로세서들을 사용하여 AVC(H.264) 코딩된 비트스트림들을 디코딩하는 장치에 대한 도전들을 제공할 수 있다. 블루레이 또는 HD-DVD 표준들의 목표가 되는 고 비트율 스트림들을 디코딩하기 위해, 하드웨어는 매우 빠르고 복잡할 필요가 있고, 전체 시스템 비용이 아주 높을 수 있다. 이런 문제에 대한 하나의 통상적인 솔루션은 CABAC 디코딩을 위한 특수한 하드웨어를 설계하는 것이다. 또는, 엔트로피 디코딩이 소프트웨어에서 실행될 수 있다. 엔트로피 디코딩의 소프트웨어 실행의 일 예는 여기에 참고로 첨부되는 동일 출원인에 의한 미국 특허번호 7,554,468에서 찾을 수 있다.
엔트로피 디코딩(306)에 더하여, VCL 디코딩 프로세스(304)는 308에 표시된 바와 같이 역양자화(IQ) 및/또는 역 이산 코사인 변환(IDCT)을 포함할 수 있다. 이런 프로세스들은 매크로블록들로부터 나온 데이터와 헤더들(309)을 디코딩할 수 있다. 디코딩된 헤더들(309)은 이웃하는 매크로블록들의 VCL 디코딩을 보조하는데 사용될 수 있다.
VCL 디코딩(304)은 매크로블록 수준 데이터 의존 주파수에서 실행될 수 있다. 구체적으로는, 동일한 슬라이스 내에 있는 상이한 매크로블록들은 병렬로 VCL 디코딩을 겪을 수 있고 결과들은 추가적인 프로세싱을 위해 모션 벡터 재구성 태스크 그룹(310)에 전송될 수 있다.
뒤이어서, 픽처나 섹션에 있는 모든 매크로블록들은 모션 벡터 재구성(310)을 겪을 수 있다. MV 재구성 프로세스(310)는 주어진 매크로블록(311)으로부터 나온 헤더들 및/또는 동일 위치의 매크로블록 헤더들(313)을 사용하는 모션 벡터 재구성(312)을 포함할 수 있다. 게다가, 모션 벡터 재구성(312)은 도 2a 및 2b에서 위에서 논의된 바와 같이 디코더에 의해 안내된 검색을 통해 실행될 수 있다. 3차원 모션 벡터는 픽처 내에서 겉보기 모션(예를 들면, 3D 이동 또는 회전)뿐만 아니라 색상 특성(예를 들면, 광 강도 및 확산)을 설명할 수 있다. 이와 같은 모션 벡터들은 이전의 픽처의 픽셀들의 지식 및 픽처로부터 픽처로의 이런 픽셀들의 상대적인 모션에 근거하여 픽처(또는 이의 일부분)의 재구성을 허용한다. 일단 모션 벡터가 회복되면, 픽셀들은 VCL 디코딩 프로세스(304)로부터 나온 잔류 픽셀들 및 MV 재구성 프로세스(310)로부터 나온 모션 벡터들에 근거하는 프로세스를 사용하여 316에서 재구성될 수 있다. MV에 대한 데이터 의존 주파수(및 병렬 처리의 수준)는 MV 재구성 프로세스(310)가 다른 픽처들로부터 나온 동일 위치의 매크로블록들을 포함하는지에 의존한다. 다른 픽처들로부터 나온 동일 위치의 MB 헤더들을 포함하지 않는 MV 재구성을 위해, MV 재구성 프로세스(310)는 슬라이스 수준 또는 픽처 수준에서 병렬로 실행될 수 있다. 동일 위치의 MB 헤더들을 포함하는 MV 재구성을 위해, 데이터 의존 주파수는 픽처 수준에 있고 MV 재구성 프로세스(310)는 슬라이스 수준에서 병렬 처리로 실행될 수 있다.
모션 벡터 재구성(310)의 결과들은 픽처 주파수 수준에 대해 병렬화될 수 있는 픽처 재구성 태스크 그룹(314)에 전송된다. 픽처 재구성 태스크 그룹(314) 내에서, 픽처나 섹션에 있는 모든 매크로블록들은 디블록킹(320)와 함께 픽셀 예측 및 재구성(316)을 겪을 수 있다. 픽셀 예측 및 재구성 태스크(316)와 디블록킹(320)은 디코딩의 효율을 향상시키기 위해 병렬화될 수 있다. 이런 태스크들은 데이터 의존성에 근거하여 매크로블록 수준에서 픽처 재구성 태스크 그룹(314)의 내에서 병렬화될 수 있다. 예를 들면, 픽셀 예측 및 재구성(316)은 하나의 매크로블록에 대해 실행될 수 있고 그 다음에 디블록킹(320)이 계속될 수 있다. 디블록킹(320)에 의해 획득되는 디코딩된 픽처로부터 나온 기준 픽셀들은 뒤이어지는 매크로블록들에 대한 픽셀 예측 및 재구성(316)에 사용될 수 있다. 픽셀 예측 및 재구성(318)은 뒤이어지는 매크로블록을 위한 픽셀 예측 및 재구성 프로세스(318)에 대한 입력들로서 사용될 수 있는 이웃하는 픽셀들을 포함하는 디코딩된 섹션들(319)(예를 들면, 디코딩된 블록들 또는 매크로블록들)을 생성한다. 픽셀 예측 및 재구성(316)에 대한 데이터 의존성은 동일한 슬라이스에 있는 매크로블록들에 대한 매크로블록 수준에서 특정한 정도의 병렬 프로세싱을 허용한다.
본 발명의 실시예들에서, 픽셀 예측은 이미 디코딩된 픽처로부터 나온 픽셀들의 대신에 기준 픽셀들로서 디코딩되는 중인 현재 픽처 내에 있는 픽셀들을 사용할 수 있다. 디코딩되지 않은 임의의 기준 픽셀들은 패딩 픽셀들로 교체될 수 있고, 이는 이미 디코딩된 현재 픽처의 내에 있는 픽셀들로부터 결정될 수 있다. 만약 픽셀들이 디코딩되지 않았다면, 패딩 픽셀들의 값들은 위에서 논의된 바와 같이 임의로 결정될 수 있다.
포스트 프로세싱 태스크 그룹(320)은 블록 코딩 기술이 사용될 때 블록들 사이에 형성될 수 있는 날카로운 엣지들을 매끄럽게 함으로써 화질과 예측 성능을 개선하기 위해 디코딩된 섹션(3196)에 있는 블록들에 적용되는 디블록킹 필터(322)를 포함할 수 있다. 디코딩 필터(322)는 그 결과로 나온 디블록킹된 섹션들(324)의 외관을 개선하는데 사용될 수 있다.
디코딩된 섹션(319)이나 디블록킹된 섹션들(324)은 이웃하는 매크로블록을 디블록킹하는데 사용하기 위해 이웃하는 픽셀들을 제공할 수 있다. 게다가, 현재 디코딩하는 픽처로부터 나온 섹션들을 포함하는 디코딩된 섹션들(319)은 뒤이어지는 매크로블록들을 위한 픽셀 예측 및 재구성(318)에 대한 기준 픽셀들을 제공할 수 있다. 이 단계 중에, 현재 픽처 내에서 나온 픽셀들이 픽처가 인터 코딩되는지 또는 인트라 코딩되는지에 관계없이 위에서 설명된 바와 같이 이런 동일한 현재 픽처 내에서 픽셀 예측에 사용될 수 있다. 디블록킹(320)은 동일한 픽처에 있는 매크로블록들에 대해 매크로블록 수준에서 병렬화될 수 있다.
포스트 프로세싱(320) 전에 생성된 디코딩된 섹션들(319)과 포스트 프로세싱된 섹션들(324)은 포함된 특정한 코덱에 따라 동일한 버퍼, 예를 들면 출력 픽처 버퍼에 저장될 수 있다. 디블록킹은 H.264에서 포스트 프로세싱 필터라는 것이 주목된다. 이는 H.264가 이웃하는 매크로블록들의 인트라 예측을 위한 기준으로서 예비 디블록킹 매크로블록 및 미래 픽처 매크로블록들의 인터 예측을 위해 사후 디블록킹 매크로블록들을 사용하기 때문이다. 예비 및 사후 디블록킹 픽셀들이 예측에 사용되기 때문에, 디코더 또는 인코더는 예비 디블록킹 매크로블록들과 사후 디블록킹 매크로블록들을 버퍼링해야 한다. 가장 낮은 비용의 소비자 어플리케이션들에 대해, 예비 디블록킹 픽처들과 사후 디블록킹 픽처들은 메모리 사용을 줄이기 위해 동일한 버퍼를 공유한다. MPEG4 파트 10(메모: H.264는 또한 MPEG4 파트 10으로 불린다)을 제외하고 MPEG2 또는 MPEG4와 같이 H.264에 선행하는 표준들에 대해, 프리-포스트 프로세싱 매크로블록들(예를 들면, 예비 디블록킹 매크로블록들)만이 다른 매크로블록 예측을 위한 기준으로서 사용된다. 이와 같은 코덱들에서, 미리 필터링된 픽처는 후에 필터링되는 픽처와 동일한 버퍼를 공유하지 않을 수 있다.
따라서, H.264에 대해, 픽셀 디코딩 후에, 디코딩된 섹션(319)은 출력 픽처 버퍼에 저장된다. 이후에, 포스트 프로세싱된 섹션들(324)은 출력 픽처 버퍼에서 디코딩된 섹션들(319)을 교체한다. H.264가 아닌 경우에 대해, 디코더는 출력 픽처 버퍼에서 디코딩된 섹션들(319)만 저장한다. 포스트 프로세싱은 디스플레이 시간에 행해지고 포스트 프로세싱 출력은 디코더 출력 픽처 버퍼와 동일한 버퍼를 공유하지 않을 수 있다.
대부분의 멀티 프로세서 하드웨어 플랫폼들에 대해, 인터 프로세서 데이터 액세스 지연이 비디오 픽처들 사이의 시간 간격보다 더 짧다. 그러나, 오직 몇몇의 병렬 프로세싱 엔진들은 매크로블록 프로세싱 속도보다 더 빠르게 인터 프로세서 데이터 전송을 할 수 있다. 픽처 주파수에서 두 개의 태스크들의 교환 데이터를 가지는 것이 허용 가능하다. 도 3에 대한 위에서 설명되는 픽처 주파수 의존성에 근거하여, 디코딩 프로세스(300)를 다섯 개의 별도의 태스크들로 분해하는 것이 가능하다. 이런 태스크들은 A) NAL 디코딩(302) 및 디코더 내부 관리, B) VCL 신택스 디코딩 및 IQ/IDCT(304), C) 모션 벡터 재구성(310) D) 픽셀 예측 및 재구성(316) 및 E) 디블록킹(320)이다.
일반적으로, NAL 디코딩은 픽처 또는 슬라이스 수준 데이터 의존 주파수에서 행해질 수 있다. AVC(H.264)와 같은 코덱들에 대해, NAL 디코딩(302)에 포함되는 데이터 의존성은 상당히 복잡할 수 있지만 전체 NAL 디코딩 프로세스(302)는 비교적 낮은 수의 사이클들을 취할 수 있다. 그 결과로 이런 프로세스를 병렬화시키려고 시도하는 것보다 오히려 단일 프로세서에서 모든 NAL 디코딩(302)을 실행시키는 것이 더 효과적이다. 모션 벡터 재구성 태스크(310)는 일반적으로 VCL 신택스 디코딩 및 IQ/IDCT(304), 픽셀 예측 및 재구성(316) 및 디블록킹(320)에 대한 것보다 약 10분의 1만큼 많은 프로세서 사이클들을 취한다. 후자의 세 개의 태스크들의 연산의 복잡성은 아주 유사하다. 그러나, 이런 세 개의 큰 사이클 태스크들 사이의 실행 사이클 할당은 상이한 코딩된 비디오 스트림들에 대해 상이하다.
VCL 신택스 디코딩 및 IQ/IDCT(304) 내에는 각각의 슬라이스 내에 있는 매크로블록 수준 데이터 의존성만이 있다. 이런 태스크에 대해, 슬라이스들은 서로 관계없는 것으로 취급될 수 있다. 모션 벡터 재구성 태스크(310)는 입력에 대한 VCL 신택스 디코딩 및 IQ/IDCT(304)의 출력에 의존한다. 픽셀 예측 및 재구성 태스크(316)는 입력들로서 VCL 신택스 디코딩 및 IQ/IDCT 태스크(304)와 모션 벡터 재구성 태스크(310)의 출력들을 취한다. 모션 벡터 재구성 태스크(310)와 픽셀 예측 및 재구성 태스크(318)의 내에는, 매크로블록 수준 데이터 의존성이 있지만, 하나의 픽처의 내에 있는 슬라이스는 서로에 독립적이다.
픽셀 예측 및 재구성 태스크(316)는 모션 보상을 포함할 수 있다. 픽셀 예측 및 재구성 태스크(316)에서 픽처 의존성은 이와 같은 모션 보상으로부터 초래될 수 있다. 위에서 논의된 바와 같이, 모션 보상은 현재 픽처를 예측하기 위해 이전에 디코딩된 픽처를 통상적으로 사용하는 프로세스이다. 모션 보상 프로세스에서, 모션 벡터라 불리는 3차원 벡터가 이전에 디코딩된 픽처에 있는 픽셀들을 기준으로 삼는데 사용된다. 모션 벡터 재구성 태스크(310)에서 픽처 수준 의존성은 직접적인 예측에 의해 야기된다. 직접적인 예측에서, 이전에 디코딩된 매크로블록의 모션 벡터가 현재 매크로블록의 모션 벡터를 계산하는데 사용된다. 비록 통상적이더라도, 기준으로 삼은 매크로블록은 현재 매크로블록의 동일한 위치에 있는 이전에 디코딩된 기준 픽처에 있다. 본 발명의 실시예들에서, 이와 반대로, 현재 픽처에 있는 하나의 섹션(예를 들면, 블록 또는 매크로블록)이 기준으로서 사용될 수 있다.
AVC 디코더에서, 이전에 디코딩된 기준 픽처는 디블록킹 태스크(320)의 출력이다. 코딩 표준에 의해 정의되는 모션 벡터 범위들에 대한 제한 때문에, 이전의 픽처에 있는 모든 픽셀들이 현재 픽처에 있는 몇몇의 매크로블록을 예측하는데 이용 가능하지 않을 수 있다. 예를 들면, AVC 수준 4.1 스트림에 대한 모션 벡터 범위는 수직으로 -512 내지 511.75 픽셀들이고 수평으로 -1024 내지 1023.75 픽셀들이다. 만약 픽처 크기가 1920X1088 픽셀들이라면, 기준 픽처에 있는 약 4분의 1의 픽셀들이 코너 매크로블록의 예측에 사용될 수 있다. 이와 반대로, 기준 픽처에 있는 거의 모든 픽셀들이 중앙 매크로블록의 예측에 사용될 수 있다.
도 3에 도시된 예에서, VCL 디코딩 및 IQ/IDCT 태스크(308)와 임의의 다른 태스크들 사이에 의존 루프가 없다는 것에 주목하라. 이와 같이, 이런 태스크는 이용 가능한 프로세서들 사이의 태스크 부하들의 균형을 이루기 위해 임의의 또는 모든 VCL 디코딩 태스크(304), 모션 벡터 재구성 태스크(310) 또는 픽셀 예측 및 재구성 태스크(316)에 통합될 수 있다. 몇몇의 블록들은 DCT 계수들을 가질 수 없기 때문에, IQ/IDCT 태스크(304)를 블록 신택스 디코딩 루프로 통합하는 것은 디코더가 코딩된 블록들에 대해서만 IQ/IDCT를 하고 브랜치들(branches)의 수를 줄이도록 허용할 수 있다.
인트라 이미지 예측의 상황에서, 모션 검색 기반 예측은 심지어 인코더의 도움으로도 정확한 결과를 반드시 생성하는 것은 아닐 수 있다. 도 4는 모션 검색 기반 예측이 만족스런 결과들을 제공하지 못할 때 인트라 이미지 예측을 위한 대안의 방법을 도시한다.
이전에 디코딩된 이미지의 기준 표면이 제한된 해상도를 가지는 제한된 수의 픽셀들에 의해 표현된다면, 서브픽셀의 보간이 임의의 누락된 픽셀 위치에서 픽셀 값을 계산하는데 사용될 수 있다. 일반적으로, 선형 필터가 서브픽셀을 보간하는데 사용된다. 예를 들면, AVC 디코더는 서브픽셀의 보간을 실행하기 위해 3개 필터 파라미터들을 가지는 6-탭 필터를 사용할 수 있다. 일반적으로, 더 많은 필터 탭들이 보다 양호한 결과들을 생성하지만, 보다 많은 파라미터들을 사용한다. 필터는 상이한 비디오 콘텐츠와 방향들에 사용하는데 적합해야 한다. 만약 디코더가 최선의 보간 필터를 검색하기 위해 이웃하는 디코딩된 픽셀들을 사용할 수 있다면, 인코더는 스트림에서 인코딩 필터 파라미터들을 생략할 수 있고 보다 복잡한 필터들의 사용이 이미지 압축을 위해 가능하게 될 것이다.
대부분의 컴퓨터 생성 비디오 시퀀스들에 대해, GPU는 픽셀 예측 및 재구성을 실행하기 위해 2x2만큼 작은 블록 크기들을 사용한다. 2x2 블록 예측을 허용하는 것에는 이점들이 있으며, 특히 더 큰 예측 정확성에 대한 이점이 있다. 그러나, 선행 기술의 비디오 코딩 표준들에서, 가장 작은 예측 블록 크기는 모션 벡터들의 터무니없이 비싼 코딩 비용 때문에 4x4이다. 본 발명의 실시예들에서, 예측 파라미터들의 코딩 비용은 디코더가 독립적으로 생성할 수 있는 파라미터들의 전송을 회피함으로써 크게 감소될 수 있다. 그 결과로 더 작은 예측 블록 크기들이 가능하게 된다.
일반적으로 주어진 픽처에 있는 제1 섹션은 디폴트 필터 파라미터들을 사용하여 인코딩되거나 디코딩될 수 있다. 그러나, 제1 섹션 후에, 이런 픽처에 대한 모든 미래 섹션들은 이전의 섹션으로부터 나온 재구성된 픽셀들과 기준 픽셀들로 인코더/디코더에 의해 검색된 최선의 필터 파라미터들을 사용할 수 있다. 최선의 필터와 차선의 필터 사이의 차이는 비교적 작은 경향이 있기 때문에, 필터 파라미터들을 전송하는 것이 필요하지 않을 수 있다. 인코더는 만약 존재한다면, 디코더 에뮬레이터가 미래 섹션의 서브픽셀 보간에 대해 찾을 수 있는 어떤 필터든지 사용할 수 있다.
도 4는 이전에 디코딩된 섹션들을 사용하여 디코더 측에 예측 파라미터들을 설정하는 일 예를 도시한다. 도 4에서, 픽셀 블록 F(401)는 현재 디코딩되는 중인 프로세스에 있다. 픽셀 블록들 A 내지 D(403, 405, 407, 409)는 각각 이미 디코딩된 동일한 이미지의 내에서 이웃하는 블록들이다. 픽셀 블록 E는 픽셀 블록 F와 동일한 위치를 취하는 픽셀 블록이지만, 이전의 디코딩된 픽처에 위치된다. 각각의 픽셀 블록은 디코딩된 픽셀 매트릭스에 의해 표현된다. 본 발명의 몇몇의 실시예들에서, 인코더는 몇몇 또는 모든 이의 이웃하는 블록들을 사용함으로써, 디코더가 모션 벡터들뿐만 아니라 필터 파라미터들을 포함할 수 있는 몇몇 또는 모든 예측 파라미터들을 검색하도록 명령할 수 있다. 예측을 설정하는데 사용되는 특정한 이웃하는 블록들은 위에서 논의된 바와 같이, 디코더 에뮬레이터를 통해 인코더에 의해 결정될 것이다. 디코더는 그런 다음에 어느 이웃하는 블록들이 인코더로부터의 예측과 필터 파라미터들을 설정하는데 사용되어야 하는지를 가리키는 가이드라인들을 수신할 수 있다. 디코더는 또한 예측 파라미터들에 대한 이의 검색에 도움을 주기 위해 인코더로부터 다른 정보를 수신할 수 있다는 것에 주목하는 것이 중요하다.
인코더 또는 디코더가 이전에 디코딩된 섹션들로부터 필터 또는 예측 파라미터들을 검색할 수 있는 다수의 방법들이 있다. 예를 들면, 디코더 측, 또는 인코더 내에 있는 디코더 에뮬레이터에 대해, 후보 세트의 필터들이 이전의 픽처 섹션 예측에 사용된 기준 픽셀들의 하나의 블록에 적용될 수 있다. 그런 다음에, 각각의 이런 필터들에 대한 출력 결과들이 상응하는 예측 에러들을 생성하기 위해 이전의 섹션으로부터 나온 재구성된 픽셀들과 비교될 수 있다. 최선의 필터는 가장 작은 예측 에러를 생성하는 필터일 수 있다. 이런 최선의 필터는 만약 존재한다면, 미래 섹션에 대한 픽셀들을 생성하고 예측하는데 사용될 수 있다.
본 발명의 실시예들은 위에서 설명된 타입의 인코더/디코더 방법을 실행시키도록 구성되는 컴퓨터 장치를 포함한다. 예로서, 그리고 한정을 하지 않고, 도 5는 본 발명의 일 실시예에 따른 비디오 코딩 스킴을 실행시키는데 사용될 수 있는 컴퓨터 장치(500)의 블록도를 도시한다. 장치(500)는 일반적으로 프로세서 모듈(501)과 메모리(502)를 포함할 수 있다. 프로세서 모듈(501)은 하나 이상의 프로세서 코어들을 포함할 수 있다. 다수의 프로세서 모듈들을 사용하는 프로세싱 시스템의 일 예로 셀 프로세서가 있고, 이의 예들은 예를 들면, 이의 내용이 여기에 참조로 첨부되고, http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/1AEEE1270EA2776387257060006E61BA/$file/CBEA_01_pub.pdf에서 온라인으로 이용 가능한 Cell Broadband Engine Architecture(셀 브로드밴드 엔진 아키텍처)에 상세하게 설명된다.
메모리(502)는 집적 회로, 예를 들면, RAM, DRAM, ROM 등의 형태일 수 있다. 메모리는 또한 모든 프로세서 모듈들(501)에 의해 접속될 수 있는 메인 메모리일 수 있다. 몇몇의 실시예들에서, 프로세서 모듈(501)은 각각의 코어와 관련된 로컬 메모리들을 가질 수 있다. 코더 프로그램(503)은 프로세서 모듈들(501)에 실행될 수 있는 프로세서 판독 가능한 명령들의 형태로 메인 메모리(502)에 저장될 수 있다. 코더 프로그램(503)은 예를 들면, 도 1b에 대해 위에 설명된 바와 같이 압축된 신호 데이터로 픽처를 인코딩하고/인코딩하거나 예를 들면, 도 1c에 대해 위에 설명된 바와 같이 압축된 신호 데이터를 디코딩하도록 구성될 수 있다. 코더 프로그램(503)은 임의의 적당한 프로세서 판독 가능 언어, 예를 들면, C, C++, JAVA(자바), Assembly(어셈블리), MATLAB(매틀랩), FORTRAN(포트란) 및 다수의 다른 언어들로 기록될 수 있다. 코더 프로그램(503)은 도 7에 대해 아래에 설명되는 바와 같이 구성되는 명령들을 포함할 수 있다. 특히, 코더 프로그램(503)은 인코더 측 명령들, 디코더 측 명령들 또는 인코더 측과 디코더 측 명령들을 포함할 수 있다.
입력 또는 출력 데이터(507)는 메모리(502)에 저장될 수 있다. 코더 프로그램(503)의 실행 중에, 프로그램 코드 및/또는 데이터(507)의 일부분들은 프로세서(501)를 프로세싱하기 위해 메모리(502) 또는 프로세서 코어들의 로컬 저장부들에 로딩될 수 있다. 예로서, 그리고 한정을 하지 않고, 입력 데이터(507)는 인코딩이나 디코딩 전에 또는 인코딩이나 디코딩의 중간 단계들에서 비디오 픽처들, 또는 이들의 섹션들을 포함할 수 있다. 인코딩의 경우에, 데이터(507)는 스트리밍 데이터의 버퍼링된 부분들, 예를 들면 인코딩되지 않은 비디오 픽처들이나 이들의 부분들을 포함할 수 있다. 디코딩의 경우에, 데이터(507)는 디코딩되지 않은 섹션들, 디코딩되었지만 포스트 프로세싱되지 않은 섹션들 및 디코딩되고 포스트 프로세싱된 섹션들의 형태의 입력 데이터를 포함할 수 있다. 이와 같은 입력 데이터는 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 데이터를 가지는 데이터 패킷들을 포함할 수 있다. 예로서, 그리고 한정을 하지 않고, 이와 같은 데이터 패킷들은 하나의 세트의 변환 계수들과 부분적인 세트의 예측 파라미터들을 포함할 수 있다. 이런 다양한 섹션들은 하나 이상의 버터들에 저장될 수 있다. 특히, 디코딩되고/디코딩되거나 포스트 프로세싱된 섹션들은 메모리(502)에서 실행되는 출력 픽처 버퍼에 저장될 수 있다.
장치(500)는 또한 입력/출력(I/O) 요소들(511), 파워 서플라이들(P/S)(512), 클럭(CLK)(513) 및 캐시(514)와 같이 잘 알려진 서포트 기능들(510)을 포함할 수 있다. 장치(500)는 프로그램들 및/또는 데이터를 저장하기 위해 디스크 드라이브, CD-ROM 드라이브, 테이프 드라이브 등과 같은 대용량 저장 장치(515)를 선택적으로 포함할 수 있다. 장치(500)는 또한 장치(500)와 사용자 사이의 상호 작용을 용이하게 하기 위해 디스플레이 유닛(516)과 사용자 인터페이스 유닛(518)을 선택적으로 포함할 수 있다. 디스플레이 유닛(516)은 문자, 숫자, 그래픽 심볼들 또는 이미지들을 디스플레이하는 음극선관(CRT) 또는 평판 패널 스크린의 형태일 수 있다. 사용자 인터페이스(518)는 그래픽 사용자 인터페이스(GUI)와 함께 사용될 수 있는 키보드, 마우스, 조이스틱, 라이트 펜, 또는 다른 장치를 포함할 수 있다. 장치(500)는 또한 장치가 인터넷과 같은 네트워크를 통해 다른 장치들과 통신하는 것을 가능하게 하는 네트워크 인터페이스(520)를 포함할 수 있다. 이런 구성요소들은 하드웨어, 소프트웨어, 또는 펌웨어, 또는 둘 이상의 이들의 몇몇 조합으로 실행될 수 있다. 장치(500)에서 다수의 프로세서들로 병렬 프로세싱을 능률적으로 하기 위한 다수의 추가적인 방법들이 있다. 예를 들면, 상이한 부분의 데이터를 프로세싱하기 위해 둘 이상의 프로세서 코어들에 대한 코드를 되풀이하고 각각의 프로세서 코어가 코드를 실행시킴으로써 프로세싱 루프들을 "푸는" 것이 가능하다. 이와 같은 실행은 루프를 구성하는 것과 관련된 대기 시간을 막을 수 있다.
특히 셋 이상의 프로세서들에 대한 병렬 프로세싱을 실행시킬 수 있는 프로세싱 시스템의 일 예는 셀 프로세서이다. 셀 프로세서들로 분류될 수 있는 다수의 상이한 프로세서 설계들이 있다. 예로서, 그리고 한정을 하지 않고, 도 6은 본 발명의 특정한 실시예들과 함께 사용될 수 있는 하나의 타입의 셀 프로세서(600)를 도시한다. 셀 프로세서(600)는 메인 메모리(602), 단일의 파워 프로세서 요소(PPE)(604) 및 여덟 개의 시너지 프로세서 요소들(SPE)(606)을 포함한다. 또는, 셀 프로세서(600)는 임의의 수의 SPE들로 구성될 수 있다. 메모리(602), PPE(604), 및 SPE들(606)은 링 타입의 요소 상호 연결 버스(610)를 통해 서로 통신할 수 있고 I/O 장치(608)와 통신할 수 있다. 메모리(602)는 위에 설명된 입력 데이터(607)와 같은 특징들을 가지는 입력 데이터(603) 및 위에 설명된 코더 프로그램(603)과 같은 특징들을 가지는 코더 프로그램(609)을 가진다. SPE들(606) 중의 적어도 하나는 로컬 저장부(LS)에 있는 디코딩 명령들(605) 및/또는 예를 들면, 위에 설명된 바와 같이 병렬로 프로세싱되는 것인 버퍼링된 입력 데이터의 일부분을 포함할 수 있다. PPE(604)는 이의 L1 캐시에 있고 위에 설명된 코더 프로그램(605)과 같은 특징들을 가지는 코드 명령들(607)을 포함할 수 있다. 명령들(605)과 데이터(607)는 또한 필요할 때 SPE(606)와 PPE(604)에 의한 접속을 위해 메모리(602)에 저장될 수 있다.
예로서 PPE(604)는 관련된 캐시들을 가지는 64비트 파워PC 프로세서 유닛(PPU)일 수 있다. PPE(604)는 선택적인 벡터 멀티미디어 확장 유닛을 포함할 수 있다. 각각의 SPE(606)는 시너지 프로세서 유닛(SPU)과 로컬 저장부(LS)를 포함한다. 몇몇의 실행들에서, 로컬 저장부는 예를 들면, 코드와 데이터를 위해 약 256 킬로바이트의 메모리의 용량을 가질 수 있다. SPU들은 이들이 일반적으로 임의의 시스템 관리 기능들을 실행시키지 않는다는 점에서 PPU보다 복잡하지 않은 연산 유닛들이다. SPU들은 이들의 할당된 태스크들을 실행하기 위해 단일 명령, 복수 데이터(SIMD) 성능을 가질 수 있고 일반적으로 데이터를 프로세싱할 수 있으며 임의의 요구되는 데이터 전송들을 시작할 수 있다. SPU들은 시스템(600)이 더 높은 연산 유닛 밀도를 필요로 하고 제공된 명령 세트를 효과적으로 사용할 수 있는 어플리케이션들을 실행시키는 것을 허용한다. PPE(604)에 의해 관리되는 시스템에 있는 상당한 수의 SPU들은 폭넓은 범위의 어플리케이션들에 걸쳐 비용 효율적인 프로세싱을 허용한다. 예로서, 셀 프로세서(600)는 셀 브로드밴드 엔진 설계(CBEA)로 알려진 설계를 특징으로 할 수 있다. CBEA-순응 설계에서, 다수의 PPE들은 PPE 그룹에 결합될 수 있고 다수의 SPE들은 SPE 그룹에 결합될 수 있다. 예로서, 셀 프로세서(600)는 단일의 SPE와 단일의 PPE를 가지는 단일의 SPE 그룹과 단일의 PPE 그룹만을 가지는 것으로 도시된다. 또는, 셀 프로세서는 다수의 그룹들의 파워 프로세서 요소들(PPE 그룹들)과 다수의 그룹의 시너지 프로세서 요소들(SPE 그룹들)을 포함할 수 있다. CBEA-순응 프로세서들은 예를 들면, 여기에 참조로 첨부되고, http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/1AEEE1270EA2776387257060006E61BA/$file/CBEA_01_pub.pdf에서 온라인으로 이용 가능한 Cell Broadband Engine Architecture(셀 브로드밴드 엔진 아키텍처)에 상세하게 설명된다.
본 발명의 실시예들은 인코딩된 스트리밍 비디오와 같은 스트리밍 데이터의 병렬 디코딩을 위한 시스템들과 방법들을 제공한다. 이와 같은 실시예들은 대부분의 비디오 디코더들, 특히 H.264/AVC 디코더들 및, 보다 구체적으로는, 모듈로 비디오 디코더를 가지는 제품들에 적용될 수 있다. 이와 같은 제품들의 예는 비디오 게임 콘솔들, DVD 플레이어들, 소프트웨어(PC) 비디오 디코더/플레이어, 비디오 온 셀 폰들 등을 포함하지만 이들에 한정되지 않는다.
다른 실시예에 따라, 디지털 이미지의 3차원 모션 보상을 위한 명령들은 컴퓨터 판독 가능 매체에 저장될 수 있다. 예로서, 그리고 한정을 하지 않고, 도 7은 본 발명의 일 실시예에 따른 비일시적인 컴퓨터 판독 가능 저장 매체(700)의 일 예를 도시한다. 저장 매체(700)는 컴퓨터 프로세싱 장치에 의해 검색되고, 해석되며, 실행될 수 있는 포맷으로 저장된 컴퓨터 판독 가능 명령들을 가진다. 예로서, 그리고 한정을 하지 않고, 컴퓨터 판독 가능 저장 매체(700)는 랜덤 액세스 메모리(RAM) 또는 리드 온리 메모리(ROM)와 같은 컴퓨터 판독 가능 메모리, 고정된 디스크 드라이브에 대한 컴퓨터 판독 가능 저장 디스크(예를 들면, 하드 디스크), 또는 이동식 디스크 드라이브일 수 있다. 게다가, 컴퓨터 판독 가능 저장 매체(700)는 플래시 메모리, 컴퓨터 판독 가능 테이프, CD-ROM, DVD-ROM, 블루레이, HD-DVD, UMD, 또는 다른 광학 저장 매체일 수 있다.
저장 매체(700)는 디지털 이미지들의 인코딩을 용이하게 하도록 구성되는 인코딩 명령들(701)을 가진다. 명령들은 컴퓨터 프로세서에 의해 실행될 수 있는 적당한 프로그래밍 언어로 인코딩될 수 있다. 저장 매체는 또한 인코딩 명령들(701)에 따라 인코딩된 디지털 이미지들의 디코딩을 용이하게 하도록 구성되는 디코딩 명령들(721)을 가질 수 있다. 인코딩 명령들과 디코딩 명령들은 편의상 도시될 수 있다는 것에 주목하라. 그러나, 이는 본 발명에 대한 한정으로 해석되지 않아야 한다. 또는, 저장 매체(700)는 인코딩 명령들(701)을 가질 수 있지만 디코딩 명령들(721)을 가질 수 없거나 인코딩 명령들(701)이 없이 디코딩 명령들(721)만 가질 수 있다. 저장 매체(700)는 또한 인코딩 명령들(701)과 디코딩 명령들(721)로부터 분리될 수 있는 디스플레이 명령들(731)을 선택적으로 포함할 수 있다.
인코딩 명령들(701)은 예를 들면, 도 1a에 대해 위에 설명된 바와 같은 디지털 픽처 인코딩 프로세스의 일부분을 실행시키도록 구성될 수 있다. 특히, 인코딩 명령들(701)은 실행될 때 인코딩되는 디지털 픽처의 하나의 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성할 수 있는 계수 생성 명령들(703)을 포함할 수 있다. 인코딩 명령들(701)은 동일하거나 상이한 픽처로부터 나온 현재 인코딩되는 섹션과 이전에 디코딩된 기준 섹션에 근거하여 인코더 측에 대한 하나의 세트의 예측 파라미터 값들(예를 들면, 모션 벡터)을 생성할 수 있는 제1 세트의 예측 파라미터 값 결정 명령들(705)을 더 포함할 수 있다. 인코딩 명령들(701)은 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀들과 예측 에러들을 사용하여 디코더 에뮬레이터로 상이한 세트의 예측 파라미터 값들(예를 들면, 모션 벡터)을 생성할 수 있는 제2 세트의 예측 파라미터 값 결정 명령들(707)을 더 포함할 수 있다. 예측된 픽셀들과 예측 에러들은 재구성된 픽셀들을 계산하는데 사용될 수 있다. 인코딩 명령들(701)은 실행 중에, 제3 세트의 예측 파라미터 값들을 식별하기 위해 제2 세트의 예측 파라미터들과 제1 세트의 예측 파라미터들을 비교하는 하나의 세트의 비교 예측 파라미터 세트 명령들(709)을 더 포함할 수 있고, 제3 세트의 예측 파라미터 값들은 제2 세트에 있지 않은 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함한다. 인코딩 명령들(701)은 실행될 때, 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 컴퓨터 프로세서가 이런 세트의 변환 계수들과 제3 세트의 예측 파라미터 값들을 전송하는 것을 야기하는 하나의 세트의 전송 명령들(711)을 더 포함할 수 있다. 계수들과 제3 세트의 예측 파라미터 값들은 상이한 장치에 전송될 수 있거나 다른 프로세싱을 위해 인코딩 프로그램의 상이한 부분에 전송될 수 있다는 것에 주목하라.
디코딩 명령들(721)은 실행될 때, 컴퓨터 프로세서가 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 데이터를 가지는 하나 이상의 데이터 패킷들을 디코딩하게 할 수 있고, 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들과 부분적인 세트의 예측 파라미터들을 포함한다. 디코딩 명령들(721)은 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 변환 계수들에 역변환을 적용하는 역변환 명령들(723)을 포함할 수 있다. 디코딩 명령들(721)은 또한 실행될 때, 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 이런 세트의 예측 픽셀들과 예측 에러 값들을 사용하여 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 하나의 세트의 예측 파라미터 생성 명령들(725)을 포함할 수 있다. 디코딩 명령들(721)은 또한 실행될 때, 출력 세트의 예측 파라미터들을 생성하기 위해 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 컴퓨터 프로세서가 하나 이상의 추정된 예측 파라미터 값들을 교체하게 하는 하나의 세트의 예측 파라미터 교체 명령들(727)을 포함할 수 있다. 디코딩 명령들(721)은 또한 실행될 때 이런 세트의 예측 에러 값들과 출력 세트의 예측 파라미터들을 사용하여 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 하나의 세트의 디코딩된 섹션 생성 명령들(729)을 포함할 수 있다.
본 발명의 실시예들은 예측 파라미터 값들로 저장되거나 전송될 때 데이터의 양을 줄임으로써 인코더 측에 전송되고 디코더 측에 저장되는데 필요한 데이터의 양을 상당히 줄일 수 있는 개선된 비디오 코덱을 제공한다.
비록 본 발명은 이의 특정하고 바람직한 버전들을 참조하여 상당히 상세하게 설명되었지만, 다른 버전들이 가능하다. 예를 들면, 비록 예측 파라미터들이 모션 벡터들의 성분들인 특정한 실시예들이 설명되지만, 본 발명의 실시예들은 예측 파라미터들이 필터 파라미터들, 확산 값들, 광 강도 값들, 크로미넌스, 휘도, 및 다른 예측 파라미터 값들과 같은 다른 값들을 포함하는 실행들을 포함할 수 있다. 게다가, 비록 예측 에러에 적용되는 변환이 이산 코사인 변환(DCT)인 특정한 실시예들이 설명되었지만, 본 발명의 실시예들은 이와 같은 실행들에 한정되지 않는다. 다른 푸리에 타입 변환들 또는 웨이브렛 변환들이 또한 사용될 수 있다. 그러므로, 첨부된 청구항들의 사상과 범위는 여기에 포함된 바람직한 버전들의 설명으로 한정되지 않아야 한다. 그 대신에, 본 발명의 범위는 균등물들의 전체 범위와 함께, 첨부된 청구항들을 참조하여 결정되어야 한다.
(임의의 첨부한 청구항들, 요약 및 도면들을 포함하는) 본 명세서에 개시된 모든 특징들은 달리 명확하게 언급되지 않는다면, 동일하거나, 균등하거나 유사한 목적을 제공하는 다른 특징들로 교체될 수 있다. 따라서, 달리 명확하게 언급되지 않는다면, 개시된 각각의 특징은 단지 일반적인 시리즈의 균등하거나 유사한 특징들의 일 예이다. 바람직하든 바람직하기 않든 간에 임의의 특징은 바람직하든 바람직하기 않든 간에 임의의 다른 특징과 결합될 수 있다. 다음의 청구항들에서, 부정관사 "하나의" 또는 "한"은 달리 명확히 언급되는 경우를 제외하고, 관사의 다음의 하나 이상의 아이템의 양을 가리킨다. 지정된 기능을 실행시키는 "하기 위한 수단"을 명시적으로 언급하지 않는 하나의 청구항에 있는 임의의 요소는 35USC 112조 6항에 규정된 "수단" 또는 "단계"로 해석되지 않는다. 특히, 여기에 있는 청구항들에서 "의 단계"의 사용은 35USC 112조 6항의 규정들을 행사하기 위한 것이 아니다.
독자의 관심은 본 명세서와 동시에 출원되고 본 명세서와 함께 공중의 열람에 공개된 모든 서류들과 문서들, 및 참조로 여기에 첨부되는 임의의 서류들과 문서들의 내용들을 대상으로 한다.
위에 언급된 것은 본 발명의 바람직한 실시예의 완전한 설명이지만, 다양한 대체들, 변형들 및 균등물들을 사용하는 것이 가능하다. 그러므로, 본 발명의 범위는 위의 설명을 참조하여 결정되어야 하는 것이 아니라, 그 대신에 균등물들의 전체 범위와 함께, 첨부된 청구항들을 참조하여 결정되어야 한다. 바람직하든 바람직하지 않든 간에, 여기에 설명된 임의의 특징은 바람직하든 바람직하지 않든 간에, 여기에 설명된 임의의 다른 특징과 결합될 수 있다. 다음에 오는 청구항들에서, 부정 관사 "하나의" 또는 "한"은 달리 명확히 언급되는 경우를 제외하고, 관사의 다음에 오는 하나 이상의 아이템의 양을 가리킨다. 만약 이와 같은 제한이 문구 "에 대한 수단"을 사용하여 주어진 청구항에 명시적으로 인용되지 않는다면, 첨부된 청구항들은 수단-플러스-기능 제한들을 포함하는 것으로 해석되지 않는다.

Claims (35)

  1. 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법으로서,
    a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계;
    b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러 값들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계로서, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및
    e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  2. 제1항에 있어서,
    상기 제1, 제2, 및 제3 세트들에서 상기 하나 이상의 예측 파라미터 값들은 3차원 모션 벡터의 하나 이상의 성분들을 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  3. 제2항에 있어서,
    상기 b) 단계는 인트라 예측을 사용하여 상기 3차원 모션 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  4. 제2항에 있어서,
    상기 b) 단계는 인터 예측을 사용하여 상기 3차원 모션 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  5. 제2항에 있어서,
    상기 3차원 모션 벡터는 상기 현재 섹션의 3차원 병진의 특징을 나타내는 3개 파라미터 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  6. 제2항에 있어서,
    상기 3차원 모션 벡터는 상기 현재 섹션의 3차원 회전의 특징을 나타내는 3개 파라미터 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  7. 제1항에 있어서,
    상기 제1, 제2, 및 제3 세트들에서 상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션에서 크로미넌스와 휘도의 특징을 나타내는 3개 파라미터 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  8. 제1항에 있어서,
    상기 제1, 제2, 및 제3 세트들에서 상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션에서 광 확산의 특징을 나타내는 파라미터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  9. 제1항에 있어서,
    상기 제1, 제2, 및 제3 세트들에서 상기 하나 이상의 예측 파라미터 값들은 상기 하나 이상의 예측 파라미터 값들과 함께 사용되는 기준 섹션을 식별하는 파라미터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  10. 제1항에 있어서,
    e) 이 안에서 디코더가 상기 제3 세트로부터 생략된 파라미터들을 검색할 수 있는 일정한 범위의 값들을 전송하는 단계를 더 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  11. 제1항에 있어서,
    e) 이 안에서 디코더가 상기 제3 세트로부터 생략된 파라미터들을 검색할 수 있는 이웃하는 픽셀들의 인덱스를 전송하는 단계를 더 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  12. 제1항에 있어서,
    상기 제3 세트는 상기 제1 세트에 있는 하나 이상의 값들과 상기 제2 세트에 있는 하나 이상의 상응하는 값들 사이의 차이들의 세트를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법.
  13. 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치로서,
    프로세서;
    메모리; 및
    상기 메모리에서 구현되고 상기 프로세서에 의해 실행 가능한 컴퓨터 코딩된 명령들을 포함하고,
    상기 컴퓨터 코딩된 명령들은 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩/디코딩하기 위한 방법을 실행하도록 구성되며,
    상기 방법은:
    a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계;
    b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계이고, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및
    e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  14. 제13항에 있어서,
    상기 제1, 제2, 및 제3 세트들에서 상기 하나 이상의 예측 파라미터 값들은 3차원 모션 벡터의 하나 이상의 성분들을 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  15. 제14항에 있어서,
    상기 b) 단계는 인트라 예측을 사용하여 상기 3차원 모션 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  16. 제14항에 있어서,
    상기 b) 단계는 인터 예측을 사용하여 상기 3차원 모션 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  17. 제13항에 있어서,
    상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션의 3차원 이동의 특징을 나타내는 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  18. 제13항에 있어서,
    상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션의 3차원 회전의 특징을 나타내는 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  19. 제13항에 있어서,
    상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션 내에서 크로미넌스와 휘도의 특징을 나타내는 벡터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  20. 제13항에 있어서,
    상기 하나 이상의 예측 파라미터 값들은 상기 현재 섹션 내에서 광 확산의 특징을 나타내는 파라미터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  21. 제13항에 있어서,
    상기 하나 이상의 예측 파라미터는 상기 3차원 모션 벡터와 함께 사용되는 기준 섹션을 가리키는 파라미터를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  22. 제13항에 있어서,
    상기 정보는 이 안에서 상기 디코더가 생략된 파라미터들을 검색할 수 있는 일정한 범위의 값들을 식별하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  23. 제13항에 있어서,
    e) 이 안에서 디코더가 생략된 파라미터들을 검색할 수 있는 이웃하는 픽셀들의 인덱스를 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  24. 제13항에 있어서,
    e) 상기 제1 세트에 있는 하나 이상의 값들과 상기 제2 세트에 있는 하나 이상의 값들 사이의 차이를 전송하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 인코딩하기 위한 장치.
  25. 컴퓨터 프로그램 제품으로서,
    매체에서 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지는 비일시적인 컴퓨터 판독 가능 저장 매체이고, 상기 프로그램 코드는 실행될 때, 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 인코딩하기 위한 방법을 실행시키는 컴퓨터 실행 가능 명령들을 포함하며,
    상기 방법은:
    a) 인코더를 사용하여 픽처의 현재 섹션에 대한 하나의 세트의 예측 에러들로부터 하나의 세트의 변환 계수들을 생성하는 단계;
    b) 상기 인코더를 사용하여 상기 디지털 픽처의 상기 현재 섹션에 대한 제1 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    c) 하나 이상의 이전에 디코딩된 섹션들의 예측된 픽셀 및 예측 에러들을 사용하여 디코더 에뮬레이터로 상기 디지털 픽처의 상기 현재 섹션에 대한 제2 세트의 하나 이상의 예측 파라미터 값들을 결정하는 단계;
    d) 제3 세트의 예측 파라미터 값들을 식별하기 위해 상기 제2 세트의 예측 파라미터들과 상기 제1 세트의 예측 파라미터들을 비교하는 단계로서, 상기 제3 세트의 예측 파라미터 값들은 상기 제2 세트가 아닌 상기 제1 세트로부터 하나 이상의 파라미터 값들을 식별하는 정보를 포함하는 상기 비교하는 단계; 및
    e) 상기 제1 및 제2 세트들의 예측 파라미터 값들과 공통인 하나 이상의 파라미터들을 생략하고, 상기 세트의 변환 계수들과 상기 제3 세트의 예측 파라미터 값들을 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  26. 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법이고, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들과 부분적인 세트의 예측 파라미터들을 포함하는 상기 픽처 디코딩 방법으로서,
    상기 방법은:
    a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계;
    b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계;
    c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및
    d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 것을 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  27. 제26항에 있어서,
    디스플레이에 상기 하나 이상의 디코딩된 섹션들을 가지는 하나 이상의 디코딩된 디지털 픽처들을 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  28. 제26항에 있어서,
    상기 a) 단계는 상기 예측 에러 값들로부터 최선의 정변환을 결정하고 상기 변환 계수들에 상응하는 역변환을 적용하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  29. 제26항에 있어서,
    상기 a) 단계는 상기 하나 이상의 디지털 픽처들에 있는 제1 섹션에 대한 변환 계수들에 디폴트 역변환을 적용하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  30. 제26항에 있어서,
    상기 부분적인 세트의 예측 파라미터들은 3차원 모션 벡터의 하나 이상의 성분들을 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  31. 제26항에 있어서,
    상기 하나 이상의 데이터 패킷들은 일정한 범위의 값들을 포함하고,
    상기 d) 단계는 생략된 예측 파라미터들을 상기 범위의 내에서 검색하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  32. 제26항에 있어서,
    상기 부분적인 세트의 예측 파라미터들은 이웃하는 픽셀들의 인덱스를 포함하고
    상기 c) 단계는 상기 인덱스를 사용하여 상기 부분적인 세트로부터 생략된 예측 파라미터들을 검색하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  33. 제26항에 있어서,
    상기 부분적인 세트의 예측 파라미터들은 하나의 세트의 예측 값 차이들을 포함하고
    상기 c) 단계는 상기 추정된 예측 파라미터 값들과 상기 차이들을 결합하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 데이터 패킷들을 디코딩하기 위한 픽처 디코딩 방법.
  34. 3차원 모션 보상을 사용하여 디지털 픽처의 현재 섹션을 디코딩하기 위한 장치로서,
    프로세서;
    메모리; 및
    상기 메모리에서 구현되고 상기 프로세서에 의해 실행 가능한 컴퓨터 코딩된 명령들을 포함하고,
    상기 컴퓨터 코딩된 명령들은 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 데이터를 가지는 하나 이상의 데이터 패킷들을 디코딩하기 위한 방법을 실행시키도록 구성되며, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들 및 부분적인 세트의 예측 파라미터들을 포함하고,
    상기 방법은:
    a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계;
    b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계;
    c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및
    d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 디지털 픽처의 현재 섹션을 디코딩하기 위한 장치.
  35. 컴퓨터 프로그램 제품으로서,
    매체에서 구현되는 컴퓨터 판독 가능 프로그램 코드를 가지는 비일시적인 컴퓨터 판독 가능 저장 매체이고, 상기 프로그램 코드는 실행될 때, 하나 이상의 디지털 픽처들의 하나 이상의 코딩된 섹션들을 나타내는 하나 이상의 데이터 패킷들을 디코딩하기 위한 방법을 실행시키는 컴퓨터 실행 가능 명령들을 포함하며, 상기 하나 이상의 데이터 패킷들은 하나의 세트의 변환 계수들 및 부분적인 세트의 예측 파라미터들을 포함하고,
    상기 방법은:
    a) 하나의 세트의 예측 에러 값들을 생성하기 위해 디코더로 상기 변환 계수들에 역변환을 적용하는 단계;
    b) 상기 하나 이상의 디지털 픽처들의 하나 이상의 이전에 디코딩된 섹션들의 하나의 세트의 예측된 픽셀 및 예측 에러 값들을 사용하여 상기 디코더로 하나 이상의 추정된 예측 파라미터 값들을 생성하는 단계;
    c) 출력 세트의 예측 파라미터들을 생성하기 위해 상기 부분적인 세트의 예측 파라미터들로부터 나온 하나 이상의 상응하는 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 상기 추정된 예측 파라미터 값들을 교체하는 단계; 및
    d) 상기 세트의 예측 에러 값들과 상기 출력 세트의 예측 파라미터들을 사용하여 상기 디코더로 하나 이상의 디코딩된 섹션들을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020137014866A 2010-11-09 2011-08-18 비디오 코딩 방법 및 장치 KR101775936B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/942,909 2010-11-09
US12/942,909 US8787459B2 (en) 2010-11-09 2010-11-09 Video coding methods and apparatus
PCT/US2011/048204 WO2012064394A1 (en) 2010-11-09 2011-08-18 Video coding methods and apparatus

Publications (2)

Publication Number Publication Date
KR20130140066A true KR20130140066A (ko) 2013-12-23
KR101775936B1 KR101775936B1 (ko) 2017-09-07

Family

ID=46019609

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014866A KR101775936B1 (ko) 2010-11-09 2011-08-18 비디오 코딩 방법 및 장치

Country Status (5)

Country Link
US (1) US8787459B2 (ko)
EP (1) EP2638695B1 (ko)
JP (1) JP5782522B2 (ko)
KR (1) KR101775936B1 (ko)
WO (1) WO2012064394A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087730A (ko) * 2015-01-14 2016-07-22 한화테크윈 주식회사 범용 그래픽 프로세서에서의 모션 보상의 병렬화 방법 및 장치
WO2018038316A1 (ko) * 2016-08-22 2018-03-01 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782661B1 (ko) * 2010-01-19 2017-10-23 톰슨 라이센싱 비디오 인코딩 및 디코딩을 위한 템플릿 매칭 예측의 복잡도를 감소시키는 방법 및 장치
TR201807638T4 (tr) * 2010-08-11 2018-06-21 Ge Video Compression Llc Multi görüntü sinyali kodeği.
US9634690B2 (en) * 2010-09-30 2017-04-25 Alcatel Lucent Method and apparatus for arbitrary resolution video coding using compressive sampling measurements
US9635383B2 (en) * 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for computing a motion vector
US9420294B2 (en) 2011-02-23 2016-08-16 Lg Electronics Inc. Intra-prediction method using filtering, and apparatus using the method
US9094689B2 (en) * 2011-07-01 2015-07-28 Google Technology Holdings LLC Motion vector prediction design simplification
US20130050420A1 (en) * 2011-08-22 2013-02-28 Ding-Yun Chen Method and apparatus for performing image processing according to disparity information
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
US9185428B2 (en) 2011-11-04 2015-11-10 Google Technology Holdings LLC Motion vector scaling for non-uniform motion vector grid
JP5871628B2 (ja) 2011-11-07 2016-03-01 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2013102297A (ja) * 2011-11-07 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム
US9510018B2 (en) 2011-11-23 2016-11-29 Luca Rossato Signal analysis and generation of transient information
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
CA2807786C (en) * 2012-03-08 2016-06-21 Research In Motion Limited Motion vector sign bit hiding
US9767598B2 (en) 2012-05-31 2017-09-19 Microsoft Technology Licensing, Llc Smoothing and robust normal estimation for 3D point clouds
US9846960B2 (en) 2012-05-31 2017-12-19 Microsoft Technology Licensing, Llc Automated camera array calibration
US20130321564A1 (en) 2012-05-31 2013-12-05 Microsoft Corporation Perspective-correct communication window with motion parallax
JP6168365B2 (ja) * 2012-06-12 2017-07-26 サン パテント トラスト 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US8396127B1 (en) * 2012-06-27 2013-03-12 Google Inc. Segmentation for video coding using predictive benefit
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9369728B2 (en) * 2012-09-28 2016-06-14 Sharp Kabushiki Kaisha Image decoding device and image encoding device
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US20140204088A1 (en) * 2013-01-18 2014-07-24 Microsoft Corporation Surface codec using reprojection onto depth maps
WO2014162849A1 (ja) * 2013-04-05 2014-10-09 ソニー株式会社 画像処理装置及び画像処理方法
US9270999B2 (en) * 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
US9563806B2 (en) 2013-12-20 2017-02-07 Alcatel Lucent Methods and apparatuses for detecting anomalies using transform based compressed sensing matrices
US9600899B2 (en) 2013-12-20 2017-03-21 Alcatel Lucent Methods and apparatuses for detecting anomalies in the compressed sensing domain
AU2014376061B8 (en) * 2014-01-03 2019-05-30 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
CN105474642B (zh) 2014-05-22 2018-10-26 微软技术许可有限责任公司 使用频域差对图像集合重新编码的方法、***以及介质
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2015194913A1 (ko) * 2014-06-20 2015-12-23 성균관대학교 산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9894324B2 (en) 2014-07-15 2018-02-13 Alcatel-Lucent Usa Inc. Method and system for modifying compressive sensing block sizes for video monitoring using distance information
KR102330740B1 (ko) 2014-09-30 2021-11-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 파면 병렬 프로세싱이 인에이블되는 경우의 인트라 픽쳐 예측 모드에 대한 규칙
US9729885B2 (en) * 2015-02-11 2017-08-08 Futurewei Technologies, Inc. Apparatus and method for compressing color index map
CN114245118B (zh) 2016-10-04 2023-03-28 有限公司B1影像技术研究所 图像数据编码/解码方法和计算机可读记录介质
US12022199B2 (en) 2016-10-06 2024-06-25 B1 Institute Of Image Technology, Inc. Image data encoding/decoding method and apparatus
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
BR122022003520A8 (pt) * 2017-11-09 2023-03-28 Samsung Electronics Co Ltd Aparelho de decodificação de informações de movimento, e método para codificar informações de movimento
US10499081B1 (en) * 2018-06-19 2019-12-03 Sony Interactive Entertainment Inc. Neural network powered codec
GB2577339A (en) * 2018-09-24 2020-03-25 Sony Corp Image data encoding and decoding
US11412260B2 (en) * 2018-10-29 2022-08-09 Google Llc Geometric transforms for image compression
US11012686B2 (en) * 2019-03-08 2021-05-18 Tencent America LLC Unified block vector prediction for intra picture block compensation
US11164339B2 (en) 2019-11-12 2021-11-02 Sony Interactive Entertainment Inc. Fast region of interest coding using multi-segment temporal resampling
US20230007265A1 (en) * 2019-12-11 2023-01-05 Sony Group Corporation Image processing device, bit stream generation method, coefficient data generation method, and quantization coefficient generation method
EP4118823A1 (en) * 2020-03-12 2023-01-18 InterDigital VC Holdings France Method and apparatus for video encoding and decoding
KR102378713B1 (ko) * 2020-06-23 2022-03-24 주식회사 에스원 동영상 부호화 방법, 복호화 방법 및 그 장치

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07336695A (ja) * 1994-06-13 1995-12-22 Oki Electric Ind Co Ltd 動画像の符号化及び復号化方法
US5959672A (en) 1995-09-29 1999-09-28 Nippondenso Co., Ltd. Picture signal encoding system, picture signal decoding system and picture recognition system
JPH11353499A (ja) * 1998-06-08 1999-12-24 Matsushita Electric Ind Co Ltd 画像符号化装置および画像複合化装置
JP3927388B2 (ja) * 2000-09-27 2007-06-06 株式会社リコー 画像処理装置、画像処理方法及び記録媒体
US6870962B2 (en) * 2001-04-30 2005-03-22 The Salk Institute For Biological Studies Method and apparatus for efficiently encoding chromatic images using non-orthogonal basis functions
EP2339854A3 (en) * 2001-11-30 2013-11-13 NTT DoCoMo, Inc. Moving picture encoding device, moving picture decoding device, moving picture encoding method, moving picture decoding method, program, and computer readable recording medium storing program
WO2004039083A1 (ja) * 2002-04-26 2004-05-06 Ntt Docomo, Inc. 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム及び画像復号プログラム
US20060098886A1 (en) * 2003-01-10 2006-05-11 Koninklijke Philips Electronics N.V. Efficient predictive image parameter estimation
JP5007228B2 (ja) 2004-06-14 2012-08-22 プレコード,インコーポレイテッド 画像クリーンアップおよび前置符号化
EP1610560A1 (en) * 2004-06-24 2005-12-28 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating and for decoding coded picture data
EP1619651A1 (en) * 2004-07-23 2006-01-25 Deutsche Thomson-Brandt Gmbh Method and device for processing video data by combining error diffusion and dithering
US20060285590A1 (en) * 2005-06-21 2006-12-21 Docomo Communications Laboratories Usa, Inc. Nonlinear, prediction filter for hybrid video compression
US20090034857A1 (en) * 2005-07-22 2009-02-05 Mitsubishi Electric Corporation Image encoder and image decoder, image encoding method and image decoding method, image encoding program and image decoding program, and computer readable recording medium recorded with image encoding program and computer readable recording medium recorded with image decoding program
EP1827009A1 (en) 2006-02-28 2007-08-29 Matsushita Electric Industrial Co., Ltd. Video encoder and decoder for an improved zapping service for mobile video reception
JP4868968B2 (ja) * 2006-07-31 2012-02-01 株式会社東芝 補間フレーム作成方法及び補間フレーム作成装置
US7554468B2 (en) 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
JP2008154015A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
JPWO2008120577A1 (ja) 2007-03-29 2010-07-15 株式会社東芝 画像符号化及び復号化の方法及び装置
CN101822056B (zh) * 2007-10-12 2013-01-02 汤姆逊许可公司 用于视频编解码几何划分的双向预测模式划分的方法和装置
CN101415122B (zh) 2007-10-15 2011-11-16 华为技术有限公司 一种帧间预测编解码方法及装置
JP2009194617A (ja) 2008-02-14 2009-08-27 Sony Corp 画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
JP2010016454A (ja) * 2008-07-01 2010-01-21 Sony Corp 画像符号化装置および方法、画像復号装置および方法、並びにプログラム
JPWO2010035731A1 (ja) * 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
JP4878047B2 (ja) * 2008-10-22 2012-02-15 日本電信電話株式会社 映像符号化方法,映像復号方法,映像符号化装置,映像復号装置,映像符号化プログラム,映像復号プログラムおよびそれらの記録媒体
WO2010087809A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087730A (ko) * 2015-01-14 2016-07-22 한화테크윈 주식회사 범용 그래픽 프로세서에서의 모션 보상의 병렬화 방법 및 장치
WO2018038316A1 (ko) * 2016-08-22 2018-03-01 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
US10887591B2 (en) 2016-08-22 2021-01-05 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera
US11399178B2 (en) 2016-08-22 2022-07-26 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera
US11924424B2 (en) 2016-08-22 2024-03-05 Goldenwavepartners Co., Ltd. Method and device for transmitting block division information in image codec for security camera

Also Published As

Publication number Publication date
US20120114039A1 (en) 2012-05-10
EP2638695A4 (en) 2015-02-18
EP2638695A1 (en) 2013-09-18
JP2013546267A (ja) 2013-12-26
US8787459B2 (en) 2014-07-22
JP5782522B2 (ja) 2015-09-24
KR101775936B1 (ko) 2017-09-07
EP2638695B1 (en) 2017-10-18
WO2012064394A1 (en) 2012-05-18

Similar Documents

Publication Publication Date Title
KR101775936B1 (ko) 비디오 코딩 방법 및 장치
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
US9872018B2 (en) Random access point (RAP) formation using intra refreshing technique in video coding
US20190208194A1 (en) Deriving reference mode values and encoding and decoding information representing prediction modes
Dufaux et al. The JPEG XR image coding standard [Standards in a Nutshell]
CN106797464B (zh) 用于视频编码和解码中的矢量编码的方法和装置
EP2324639B1 (en) System and method for decoding using parallel processing
JP2022133346A (ja) ニューラルネットワークを利用したコーデック
JP2022521515A (ja) 交差成分フィルタリングのための方法、装置、およびプログラム
US11509896B2 (en) Picture quality oriented rate control for low-latency streaming applications
KR101906614B1 (ko) 모션 보상 예제 기반 초해상도를 사용하는 비디오 디코딩
JP2009544225A (ja) ビデオ圧縮用並列処理装置
JP2022518587A (ja) イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換
CN103250182A (zh) 高动态范围视频色调映射
GB2492778A (en) Motion compensated image coding by combining motion information predictors
KR20220112840A (ko) 비디오 코딩을 위한 방법 및 장치
JP2023508364A (ja) コンテキスト適応変換セット
JP2024074928A (ja) ビデオコーディングのための方法および装置
CN116848843A (zh) 可切换的密集运动向量场插值
JP2017073598A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2009260494A (ja) 画像符号化装置及びその制御方法
CN116437083A (zh) 视频处理方法和视频处理装置
KR20240052053A (ko) 루마로부터 크로마 인트라 예측 모드에 대한 다운샘플링 필터의 시그널링
Jagadish Implementation of Serial and Parallel algorithm of SAO in HEVC

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant