KR20110113774A - 인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹 - Google Patents

인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹 Download PDF

Info

Publication number
KR20110113774A
KR20110113774A KR1020117021057A KR20117021057A KR20110113774A KR 20110113774 A KR20110113774 A KR 20110113774A KR 1020117021057 A KR1020117021057 A KR 1020117021057A KR 20117021057 A KR20117021057 A KR 20117021057A KR 20110113774 A KR20110113774 A KR 20110113774A
Authority
KR
South Korea
Prior art keywords
block
image
data
pixel
deblocking
Prior art date
Application number
KR1020117021057A
Other languages
English (en)
Other versions
KR101260157B1 (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 KR20110113774A publication Critical patent/KR20110113774A/ko
Application granted granted Critical
Publication of KR101260157B1 publication Critical patent/KR101260157B1/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

인트라코딩된 이미지/프레임에 인루프 디블로킹을 적용하기 위한 방법 및 인코더/디코더가 개시된다. 디코딩에 관련하여, 디코딩 순서에서 후속 블록을 디코딩하기 전에 인트라코딩된 블록의 재구성된 픽셀에 디블로킹 필터가 적용된다. 인코딩에 관련하여, 이미지에 대한 코딩 순서로 후속 블록을 인코딩하기 전에 인터코딩 루프에서 인트라코딩된 블록의 재구성된 픽셀에 디블로킹 필터가 적용된다.

Description

인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹{IN-LOOP DEBLOCKING FOR INTRA-CODED IMAGES OR FRAMES}
본 발명은 일반적으로 이미지 또는 비디오 코딩 및 디코딩에 관한 것으로, 보다 상세하게는 인트라코딩된(intra-coded) 이미지 또는 프레임의 인루프 디블로킹(in-loop deblocking)을 수행하는 방법, 인코더, 및 디코더에 관한 것이다.
비디오 인코딩에 대한 현행 최신 기술은 ITU-T H.264/AVC 비디오 코딩 표준이다. 이는 메인(Main) 프로파일, 베이스라인(Baseline) 프로파일 및 기타를 포함한 상이한 애플리케이션에 대한 다수의 상이한 프로파일을 정의한다.
블록 기반 코딩 프로세스를 사용하는 H.264를 비롯하여 이미지 및 비디오를 인코딩/디코딩하는 다수의 표준이 있다. 이들 프로세스에서, 이미지 또는 프레임은 블록들, 통상적으로 4x4 또는 8x8의 블록들로 나뉘어지고, 블록들은 계수들로 스펙트럼 변환(spectrally transform)되고, 양자화되고, 엔트로피 인코딩(entropy encoded)된다. 많은 경우에, 변환되고 있는 데이터는 실제 픽셀 데이터가 아니고, 예측(prediction) 동작 다음의 잔차(residual) 데이터이다. 예측은 인트라프레임(intra-frame), 즉 프레임/이미지 내의 블록-블록이거나(공간 예측으로도 불림), 인터프레임(inter-frame), 즉 프레임들 사이(움직임 예측으로도 불림)일 수 있다.
인코딩 및 디코딩과 관련하여 생기는 문제는, 인트라코딩된 공간 예측이 이미지 내의 이웃 블록에서의 재구성된 픽셀에 의존한다는 것이다. 그 결과, 인트라코딩된 블록의 재구성된 값의 오차는 율-왜곡(rate-distortion) 성능에 악영향을 미치게 된다.
개선된 인코더, 디코더 및 인코딩 또는 디코딩 방법을 제공하는 것이 이로울 것이다.
본 발명은 이미지 및 비디오 인코딩/디코딩에서의 개선을 달성하기 위한 방법 및 인코더/디코더에 대해 기재한다. 구체적으로, 본 발명은 변환 도메인 계수를 적응적으로 양자화하는 방법에 대해 기재한다. 각각의 블록이 N 계수를 갖는 다수의 블록을 갖는 이미지에 대하여, 각각의 계수에 대한 양자화 스텝 사이즈가 동적으로 선택되며, 따라서 상이한 계수에 상이한 스텝 사이즈를 적용할 수 있는 양자화기가 된다. 선택된 스텝 사이즈는 이미지/프레임 내의 모든 블록에 대하여 사용된다. 하나의 양상에서, 스텝 사이즈는 이미지/프레임이 디코딩될 때 픽셀 도메인 왜곡의 균형을 맞추는 것에 기초하여 선택된다.
본 발명은 인트라코딩된(intra-coded) 이미지/프레임에 인루프 디블로킹(in-loop deblocking)을 적용하도록 구성된 방법 및 인코더/디코더에 대해 더 기재한다. 하나의 양상에서, 디블로킹 필터는 디코딩 순서에서 후속 블록을 디코딩하기 전에 인트라코딩된 블록의 디코딩된 픽셀에 적용된다.
본 발명은 또한 수정된 컨텍스트 모델을 사용하여 이미지/프레임 데이터를 엔트로피 인코딩하도록 구성된 방법 및 인코더/디코더에 대해 더 기재한다. 하나의 양상에서, 양자화된 계수의 블록은 계수를 양자화하는데 사용된 증가하는 양자화 스텝 사이즈에 기초하여 동적으로 결정된 코딩 순서로 인코딩된다. 다른 요인도 또한 아니면 대안으로서 코딩 순서를 동적으로 조정하는데 사용될 수 있다.
하나의 양상에서, 본 발명은 인코더를 사용하여 이미지를 인코딩하는 방법에 대해 기재하며, 인코더는 이미지에 블록 기반 코딩을 적용하도록 구성된다. 본 발명은, 블록에 스펙트럼 변환을 적용하여 변환 도메인 계수를 발생시키고, 계수 각각에 대한 양자화 스텝 사이즈를 선택하고 - 상기 선택은 디코딩될 때 블록 내의 미리 결정된 평균 픽셀 도메인 왜곡을 달성하는 것에 기초함 - , 각자의 선택된 양자화 스텝 사이즈를 사용하여 변환 도메인 계수의 각각을 양자화하고, 양자화된 계수를 인코딩하여 이미지 데이터의 비트스트림을 발생시키고, 비트스트림을 출력하는 것을 포함한다.
부가의 양상에서, 본 발명은 이미지를 인코딩하는 인코더에 대해 기재한다. 인코더는 프로세서, 이미지를 저장하는 메모리, 인코딩된 이미지 데이터의 비트스트림을 출력하는 통신 시스템, 및 이미지에 블록 기반 코딩을 적용하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장되는 인코딩 애플리케이션을 포함한다. 인코딩 애플리케이션은, 변환 도메인 계수를 발생시키기 위해 블록에 스펙트럼 변환을 적용하도록 구성된 변환 프로세서, 계수 각각에 대한 양자화 스텝 사이즈를 선택하도록 구성된 적응적 양자화기 모듈 - 상기 선택은 디코딩될 때 블록 내의 미리 결정된 평균 픽셀 도메인 왜곡을 달성하는 것에 기초함 - , 각자의 선택된 양자화 스텝 사이즈를 사용하여 변환 도메인 계수의 각각을 양자화하도록 구성된 양자화기, 및 인코딩된 이미지 데이터의 비트스트림을 발생시키기 위해 양자화된 계수를 인코딩하도록 구성된 엔트로피 인코더를 포함한다.
다른 양상에서, 본 발명은 인코더를 사용하여 이미지를 인코딩하는 방법에 대해 기재하며, 인코더는 이미지에 블록 기반 코딩을 적용하도록 구성된다. 방법은, 이미지의 블록에 대하여, 블록에 스펙트럼 변환을 적용하여 계수의 변환 도메인 행렬을 발생시키고, 양자화 행렬을 사용하여 계수를 양자화하고 - 상기 양자화 행렬의 구성요소들은 픽셀 도메인에서 디코딩된 블록 내의 미리 결정된 균일 왜곡 분포에 기초하여 선택됨 - , 양자화된 계수를 인코딩하는 것을 포함한다.
다른 양상에서, 본 발명은 디코더를 사용하여 인트라코딩된 이미지를 디코딩하는 방법을 개시하며, 상기 이미지는 복수의 블록을 갖는다. 방법은, 인트라코딩된 이미지를 인코딩한 데이터의 비트스트림을 수신하고, 데이터의 비트스트림으로부터 이미지의 블록에 대한 픽셀 데이터를 재구성하고, 블록에 대하여 재구성된 픽셀 데이터에 디블로킹 필터를 적용하여 디블로킹 재구성된 블록을 생성하고, 디블로킹 재구성된 블록으로부터의 적어도 하나의 디블로킹된 픽셀에 기초하여 예측 계산 및 데이터의 비트스트림으로부터 이미지의 후속 블록에 대한 픽셀 데이터를 재구성하는 것을 포함한다.
또다른 양상에서, 본 발명은 인코더를 사용하여 이미지를 인코딩하는 방법에 대해 기재한다. 이미지는 복수의 블록을 가지며, 인코더는 코딩 순서로 이미지의 블록에 블록 기반 코딩을 적용하도록 구성되고, 이미지 내의 블록의 재구성은 이미지 내에서 코딩 순서로 후속 블록을 코딩할 때 예측 계산에 사용된다. 방법은, 블록의 디블로킹이 후속 블록에 대한 예측 계산 전에 일어나도록 인트라코딩 루프 내에서 이미지의 재구성된 블록에 디블로킹 필터를 적용하는 것을 포함한다.
다른 양상에서, 본 발명은 이미지를 인코딩하는 인코더에 대해 기재하며, 이미지는 복수의 블록을 갖는다. 인코더는 프로세서, 이미지를 저장하는 메모리, 인코딩된 이미지 데이터의 비트스트림을 출력하는 통신 시스템, 및 코딩 순서로 이미지의 블록에 블록 기반 코딩을 적용하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 인코딩 애플리케이션을 포함하고, 이미지 내의 블록의 재구성은 이미지 내에서 코딩 순서로 후속 블록을 코딩할 때 예측 계산에 사용된다. 인코딩 애플리케이션은 재구성된 블록의 디블로킹이 후속 블록에 대한 예측 계산 전에 일어나도록 인트라코딩 루프 내에서 이미지의 재구성된 블록에 디블로킹 필터를 적용하도록 구성된 디블로킹 컴포넌트를 포함한다.
또 부가의 양상에서, 본 발명은 인트라코딩된 이미지를 디코딩하는 디코더를 제공하며, 이미지는 복수의 블록을 갖는다. 디코더는 프로세서, 인트라코딩된 이미지를 인코딩한 데이터의 비트스트림을 수신하여 디코딩된 이미지를 출력하는 통신 시스템, 및 비트스트림으로부터 이미지의 블록에 대한 픽셀 데이터를 재구성하기 위해 블록 기반 디코딩을 적용하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 디코딩 애플리케이션을 포함한다. 디코딩 애플리케이션은 디블로킹 재구성된 블록을 생성하기 위해 블록에 대한 재구성된 픽셀 데이터에 디블로킹 필터를 적용하도록 구성된 디블로킹 모듈을 포함한다. 디코딩 애플리케이션은 디블로킹 재구성된 블록으로부터의 적어도 하나의 디블로킹된 픽셀에 기초하여 예측 계산 및 데이터의 비트스트림으로부터 이미지의 후속 블록에 대한 픽셀 데이터를 재구성하도록 구성된다.
또 부가의 양상에서, 본 발명은 인코더에서 이미지를 엔트로피 인코딩하는 방법을 제공하며, 이미지는 복수의 픽셀 블록을 포함하고, 인코더는 블록의 각각을 양자화된 변환 도메인 계수의 블록 및 예측으로 변환한다. 방법은, 양자화된 변환 도메인 계수의 블록에 대하여 코딩 순서를 결정하고 - 상기 코딩 순서는 양자화된 변환 도메인 계수의 적어도 하나의 특성에 기초하여 결정됨 - , 이미지에 대하여 결정된 코딩 순서로 양자화된 변환 도메인 계수의 블록 각각을 엔트로피 인코딩하여 인코딩된 이미지 데이터의 비트스트림을 발생시키고, 비트스트림을 출력하는 것을 포함한다.
또 다른 양상에서, 본 발명은 이미지를 인코딩하는 인코더를 제공하며, 이미지는 복수의 픽셀 블록을 포함한다. 인코더는 프로세서, 이미지를 저장하는 메모리, 인코딩된 이미지 데이터의 비트스트림을 출력하는 통신 시스템, 및 블록의 각각을 양자화된 변환 도메인 계수의 블록 및 예측으로 변환하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 인코딩 애플리케이션을 포함한다. 인코딩 애플리케이션은 양자화된 변환 도메인 계수의 블록에 대한 코딩 순서를 결정하도록 구성된 코딩 순서 모듈을 포함하며, 코딩 순서는 양자화된 변환 도메인 계수의 적어도 하나의 특성에 기초하여 결정되고, 인코딩 애플리케이션은 비트스트림을 발생시키기 위해 코딩 순서 모듈에 의해 이미지에 대하여 결정된 코딩 순서로 양자화된 변환 도메인 계수의 블록들 각각을 엔트로피 인코딩하도록 구성된다.
하나의 양상에서, 본 발명은 복수의 픽셀 블록을 갖는 이미지의 블록 기반 인코딩을 위한 방법을 제공한다. 방법은 블록 기반 변환의 각각의 계수 위치에 대하여 양자화 스텝 사이즈를 선택하고 - 상기 선택은 픽셀 블록마다 미리 결정된 픽셀 도메인 왜곡을 달성하는 것에 기초함 - , 픽셀 블록의 각각에 블록 기반 변환을 적용하여 각각의 픽셀 블록에 대하여 변환 도메인 계수 세트를 발생시키고, 각각의 변환 도메인 계수 세트에 대하여, 그 변환 도메인 계수의 계수 위치에 대하여 선택된 양자화 스텝 사이즈를 사용해 변환 도메인 계수의 각각을 양자화하여 양자화된 계수를 생성하고, 양자화된 계수를 인코딩하여 인코딩된 이미지 데이터의 비트스트림을 발생시키는 것을 포함한다.
다른 양상에서, 본 발명은 복수의 픽셀 블록을 갖는 이미지를 인코딩하는 인코더를 제공한다. 인코더는 프로세서, 픽셀 블록을 저장하는 메모리, 및 블록 기반 변환의 각각의 계수 위치에 대하여 양자화 스텝 사이즈를 선택하고 - 상기 선택은 디코딩될 때 픽셀 블록마다 미리 결정된 픽셀 도메인 왜곡을 달성하는 것에 기초함 - , 각각의 픽셀 블록에 대하여 변환 도메인 계수 세트를 발생시키도록 픽셀 블록들 각각에 블록 기반 변환을 적용하고, 각각의 변환 도메인 계수 세트에 대하여, 양자화된 계수를 생성하도록 그 변환 도메인 계수의 계수 위치에 대하여 선택된 양자화 스텝 사이즈를 사용하여 변환 도메인 계수의 각각을 양자화하고, 인코딩된 이미지 데이터의 비트스트림을 발생시키도록 양자화된 계수를 인코딩함으로써, 이미지를 인코딩하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 인코딩 애플리케이션을 포함한다.
부가의 양상에서, 본 발명은 인코딩된 데이터를 디코딩하는 방법을 제공하며, 인코딩된 데이터는 복수의 픽셀 데이터 블록을 갖는 이미지를 포함한다. 방법은, 인코딩된 데이터를 엔트로피 디코딩하여 각각의 픽셀 데이터 블록에 대하여 양자화된 변환 도메인 계수 세트를 획득하며 블록 기반 변환의 각각의 계수 위치에 대한 양자화 스텝 사이즈를 획득하고, 각각의 양자화된 변환 도메인 계수 세트에 대하여, 그 양자화된 변환 도메인 계수의 계수 위치에 대한 양자화 스텝 사이즈를 사용해 양자화된 변환 도메인 계수의 각각을 역양자화(de-quantize)하여 변환 도메인 계수를 생성하고, 변환 도메인 계수를 역 변환(inverse transform)하여 픽셀 데이터 블록을 재구성하는 것을 포함한다.
또 부가의 양상에서, 본 발명은 인코딩된 데이터를 디코딩하는 디코더에 대해 기재하며, 인코딩된 데이터는 복수의 픽셀 데이터 블록을 갖는 이미지를 포함한다. 디코더는, 프로세서, 메모리, 및 각각의 픽셀 데이터 블록에 대하여 양자화된 변환 도메인 계수 세트를 획득하며 블록 기반 변환의 각각의 계수 위치에 대한 양자화 스텝 사이즈를 획득하도록 인코딩된 데이터를 엔트로피 디코딩하고, 각각의 양자화된 변환 도메인 계수 세트에 대하여, 변환 도메인 계수를 생성하도록 그 양자화된 변환 도메인 계수의 계수 위치에 대한 양자화 스텝 사이즈를 사용해 양자화된 변환 도메인 계수의 각각을 역양자화하고, 픽셀 데이터 블록을 재구성하도록 변환 도메인 계수를 역 변환함으로써 인코딩된 데이터를 디코딩하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 디코딩 애플리케이션을 포함한다.
또 다른 양상에서, 본 발명은 인코딩된 데이터를 디코딩하는 방법에 대해 기재하며, 인코딩된 데이터는 복수의 픽셀 블록을 갖는 인트라코딩된 이미지를 포함한다. 방법은 인코딩된 데이터로부터 이미지의 블록에 대한 픽셀 데이터를 재구성하고, 블록에 대하여 재구성된 픽셀 데이터에 디블로킹 필터를 적용하여 디블로킹 재구성된 블록을 생성하고, 디블로킹 재구성된 블록으로부터 적어도 하나의 디블로킹된 픽셀에 기초하여 예측 계산 및 인코딩된 데이터로부터 이미지의 후속 블록에 대한 픽셀 데이터를 재구성하는 것을 포함한다.
부가의 양상에서, 본 발명은 코딩 순서로 복수의 블록을 갖는 이미지의 블록 기반 인코딩을 위한 방법을 제공하며, 이미지 내의 블록의 재구성은 이미지 내에서 코딩 순서로 후속 블록을 인코딩할 때 예측 계산에 사용된다. 방법은 블록의 디블로킹이 후속 블록에 대한 예측 계산 전에 일어나도록 인트라코딩 루프 내에서 이미지의 재구성된 블록에 디블로킹 필터를 적용하는 것을 포함한다.
또다른 양상에서, 본 발명은 복수의 블록을 갖는 이미지를 인코딩하는 인코더를 제공한다. 인코더는 프로세서, 이미지를 저장하는 메모리, 및 코딩 순서로 이미지의 블록에 블록 기반 인코딩을 적용하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장되는 인코딩 애플리케이션을 포함하고, 이미지 내의 블록의 재구성은 이미지 내에서 코딩 순서로 후속 블록을 인코딩할 때 예측 계산에 사용되며, 인코딩 애플리케이션은 재구성된 블록의 디블로킹이 후속 블록에 대한 예측 계산 전에 일어나도록 인트라코딩 루프 내에서 이미지의 재구성된 블록에 디블로킹 필터를 적용하도록 구성된 디블로킹 컴포넌트를 포함한다.
또 다른 양상에서, 본 발명은 인코딩된 데이터를 디코딩하는 디코더에 대해 기재하며, 인코딩된 데이터는 복수의 픽셀 블록을 갖는 인트라코딩된 이미지를 포함한다. 디코더는, 프로세서, 메모리, 및 인코딩된 데이터로부터 이미지의 블록에 대한 픽셀 데이터를 재구성하고, 디블로킹 재구성된 블록을 생성하도록 블록에 대한 재구성된 픽셀 데이터에 디블로킹 필터를 적용하고, 디블로킹 재구성된 블록으로부터 적어도 하나의 디블로킹된 픽셀에 기초하여 예측 계산 및 인코딩된 데이터로부터 이미지의 후속 블록에 대한 픽셀 데이터를 재구성하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 디코딩 애플리케이션을 포함한다.
또 부가의 양상에서, 본 발명은 복수의 픽셀 블록을 갖는 이미지를 엔트로피 인코딩하는 방법에 대해 기재하며, 블록들 각각은 양자화된 변환 도메인 계수의 블록 및 예측으로 변환되었다. 방법은 각각의 블록의 양자화된 변환 도메인 계수가 엔트로피 인코딩될 코딩 순서를 결정하고 - 상기 코딩 순서는 양자화된 변환 도메인 계수의 적어도 하나의 특성에 기초하여 결정됨 - , 인코딩된 이미지 데이터의 비트스트림을 발생시키도록 결정된 코딩 순서로 양자화된 변환 도메인 계수를 엔트로피 인코딩하는 것을 포함한다.
다른 양상에서, 본 발명은 복수의 픽셀 블록을 갖는 이미지를 인코딩하는 인코더를 개시한다. 인코더는, 프로세서, 이미지를 저장하는 메모리, 및 블록들 각각을 양자화된 변환 도메인 계수의 블록 및 예측으로 변환하고, 각각의 블록의 양자화된 변환 도메인 계수가 엔트로피 인코딩될 코딩 순서를 결정하고 - 상기 코딩 순서는 양자화된 변환 도메인 계수의 적어도 하나의 특성에 기초하여 결정됨 - , 인코딩된 이미지 데이터의 비트스트림을 발생시키도록 결정된 코딩 순서로 양자화된 변환 도메인 계수를 엔트로피 인코딩하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 인코딩 애플리케이션을 포함한다.
부가의 양상에서, 본 발명은 인코딩된 데이터를 엔트로피 디코딩하는 방법에 대해 기재하며, 인코딩된 데이터는 이미지의 각각의 픽셀 블록에 대한 양자화된 변환 도메인 계수의 블록 및 예측을 포함한다. 방법은 인코딩된 데이터로부터 코딩 순서 데이터를 추출하고, 각각의 블록의 양자화된 변환 도메인 계수가 엔트로피 인코딩된 코딩 순서를 결정하고 - 상기 코딩 순서는 코딩 순서 데이터에 기초하여 결정됨 - , 코딩 순서로 양자화된 변환 도메인 계수를 복구하도록 인코딩된 데이터를 엔트로피 디코딩하는 것을 포함한다.
또 부가의 양상에서, 본 발명은 인코딩된 데이터, 즉 이미지를 디코딩하는 디코더에 대해 기재하며, 인코딩된 데이터는 이미지의 각각의 픽셀 블록에 대한 양자화된 변환 도메인 계수의 블록 및 예측을 포함한다. 인코더는 프로세서, 이미지를 저장하는 메모리, 및 인코딩된 데이터로부터 코딩 순서 데이터를 추출하고, 각각의 블록의 양자화된 변환 도메인 계수가 엔트로피 인코딩된 코딩 순서를 결정하고 - 상기 코딩 순서는 코딩 순서 데이터에 기초하여 결정됨 - , 코딩 순서로 양자화된 변환 도메인 계수를 복구하기 위해 인코딩된 데이터를 엔트로피 디코딩하도록 프로세서를 구성하기 위한 명령어를 포함하며 메모리에 저장된 인코딩 애플리케이션을 포함한다.
당해 기술 분야에서의 통상의 지식을 가진 자라면 첨부 도면과 함께 다음의 예의 설명을 검토함으로써 본 발명의 기타 양상 및 특징을 이해할 수 있을 것이다.
본 발명에 따르면, 인트라코딩된 이미지 또는 프레임의 인루프 디블로킹을 수행하는 방법, 인코더, 및 디코더를 제공할 수 있다.
이제 예로서 본 발명의 예시적인 실시예를 도시한 첨부 도면을 참조할 것이다.
도 1은 비디오를 인코딩하기 위한 인코더를 블록도 형태로 도시한다.
도 2는 비디오를 디코딩하기 위한 디코더를 블록도 형태로 도시한다.
도 3은 4x4 사이즈 블록에 대하여 예측을 계산하는데 사용되는 이웃 픽셀들을 예시한다.
도 4는 16x16 사이즈 블록에 대하여 예측을 계산하는데 사용되는 이웃 픽셀들을 예시한다.
도 5는 예시적인 4x4 블록에 대해 디블로킹 필터가 미치는 영향을 도시한다.
도 6은 디코딩 프로세스를 흐름도 형태로 도시한다.
도 7은 비디오를 인코딩하는 예시적인 방법을 흐름도 형태로 도시한다.
도 8은 비디오를 인코딩하는 다른 예시적인 방법을 흐름도 형태로 도시한다.
도 9는 적응적 양자화기 모듈을 갖는 인코더의 블록도를 도시한다.
도 10은 4x4 블록에 대하여 H.264에 의해 지정된 코딩 순서를 예시한다.
도 11은 예시적인 동적 코딩 순서를 예시한다.
도 12는 비디오 인코딩 프로세스에서 양자화된 잔차를 엔트로피 인코딩하는 방법을 흐름도 형태로 도시한다.
도 13은 인코더의 예시적인 실시예의 단순화된 블록도를 도시한다.
도 14는 디코더의 예시적인 실시예의 단순화된 블록도를 도시한다.
도 15는 인코딩된 데이터를 디코딩하는 방법을 흐름도 형태로 도시한다.
상이한 도면에서 유사한 참조 번호가 유사한 컴포넌트를 나타내는데 사용되었을 수 있다.
다음의 설명에서, 예시적인 실시예는 H.264 표준에 관련하여 기재된다. 당해 기술 분야에서의 통상의 지식을 가진 자라면, 본 발명이 H.264에 한정되지 않고 인트라코딩된 프레임/슬라이스를 채용하는 다른 비디오 코딩/디코딩 표준에 적용할 수 있다는 것을 이해할 것이다. 또한 본 발명이 반드시 비디오 코딩/디코딩에 한정되는 것이 아니라 이미지 코딩/디코딩에 적용할 수 있다는 것도 알 수 있을 것이다.
다음의 설명에서, 용어 프레임 및 슬라이스는 어느 정도 상호교환 가능하게 사용된다. 당해 기술 분야에서의 숙련자라면, H.264 표준의 경우에, 프레임이 하나 이상의 슬라이스를 포함할 수 있다는 것을 알 것이다. 또한, 적용 가능한 비디오 코딩 표준의 특정 요건에 따라, 어떤 인코딩/디코딩 동작은 프레임별 기반으로 수행되며 어느 것들은 슬라이스별 기반으로 수행된다는 것도 알 것이다. 임의의 특정 실시예에서, 적용 가능한 비디오 코딩 표준은, 경우에 따라, 아래에 기재된 동작들이 프레임 및/또는 슬라이스에 관련하여 수행되는지를 결정할 수 있다. 따라서, 당해 기술 분야에서의 통상의 지식을 가진 자라면, 본 개시에 비추어, 주어진 실시예에 대하여, 여기에 기재된 특정 동작이나 프로세스 그리고 프레임, 슬라이스 또는 둘 다에 대한 특정 참조가 프레임, 슬라이스, 또는 둘 다에 대하여 적용될 수 있는지 이해할 것이다.
이제 비디오를 인코딩하기 위한 인코더(10)를 블록도 형태로 도시한 도 1을 참조한다. 또한 비디오를 디코딩하기 위한 디코더(50)의 블록도를 도시한 도 2를 참조한다. 여기에 기재된 인코더(10) 및 디코더(50)는 하나 이상의 프로세싱 요소 및 메모리를 포함하는 애플리케이션 특정 또는 범용 컴퓨팅 디바이스 상에서 각각 구현될 수 있다는 것을 알 것이다. 인코더(10) 또는 디코더(50)에 의해 수행되는 동작은, 경우에 따라, 예를 들어 애플리케이션 특정 집적 회로에 의해 또는 범용 프로세서에 의해 실행 가능한 저장된 프로그램 명령어에 의해 구현될 수 있다. 디바이스는 예를 들어 기본 디바이스 기능을 제어하기 위한 운영 시스템을 포함한 추가적인 소프트웨어를 포함할 수 있다. 인코더(10) 또는 디코더(50)가 구현될 수 있는 디바이스 및 플랫폼의 범위는 다음의 설명에 관련한 분야에서의 통상의 지식을 가진 자라면 알 수 있을 것이다.
인코더(10)는 비디오 소스(12)를 수신하고 인코딩된 비트스트림(14)을 생성한다. 디코더(50)는 인코딩된 비트스트림(14)을 수신하고 디코딩된 비디오 프레임(16)을 출력한다. 인코더(10) 및 디코더(50)는 다수의 비디오 압축 표준에 따라 동작하도록 구성될 수 있다. 예를 들어, 인코더(10) 및 디코더(50)는 H.264/AVC 규격일 수 있다. 다른 실시예에서, 인코더(10) 및 디코더(50)는 H.264/AVC 표준의 진화를 포함한 기타 비디오 압축 표준에 따를 수 있다.
인코더(10)는 공간 예측기(spatial predictor)(21), 코딩 모드 선택기(20), 변환 프로세서(22), 양자화기(24), 및 엔트로피 인코더(26)를 포함한다. 당해 기술 분야에서의 숙련자라면 알 수 있듯이, 코딩 모드 선택기(20)는 비디오 소스에 대한 적합한 코딩 모드를 결정하는데, 예를 들어 대상 프레임/슬라이스가 I, P 또는 B 타입 중 어느 것으로 이루어지는지 그리고 프레임/슬라이스 내의 특정 매크로블록(macroblock)이 인터코딩되는지 아니면 인트라코딩되는지를 결정한다. 변환 프로세서(22)는 공간 도메인 데이터에 대한 변환을 수행한다. 특히, 변환 프로세서(22)는 공간 도메인 데이터를 스펙트럼 성분(spectral component)으로 변환하도록 블록 기반 변환을 적용한다. 예를 들어, 많은 실시예에서, 이산 코사인 변환(DCT)이 사용된다. 어떤 경우에는 이산 사인 변환 또는 기타와 같은 다른 변환이 사용될 수 있다. 블록 기반 변환은 매크로블록의 사이즈에 따라 매크로블록 또는 서브블록 기반으로 수행된다. H.264 표준에서는, 예를 들어, 도 3에 도시적으로 예시된 바와 같이, 통상의 16x16 매크로블록은 16개의 4x4 변환 블록을 포함하고, DCT 프로세스가 4x4 블록에 대해 수행된다. 어떤 경우에는, 변환 블록이 8x8일 수 있으며, 매크로블록마다 4개의 변환 블록이 있음을 의미한다. 또 다른 경우에, 변환 블록은 다른 사이즈로 이루어질 수 있다.
픽셀 데이터의 블록에 블록 기반 변환을 적용함으로써 변환 도메인 계수 세트가 된다. 이에 관련하여 "세트"는 계수들이 계수 위치를 갖는 정렬된 세트이다. 일부 경우에, 변환 도메인 계수 세트는 계수들의 행렬 또는 "블록"으로 간주될 수 있다. 여기에서의 설명에서, 문구 "변환 도메인 계수 세트" 또는 "변환 도메인 계수의 블록"은 상호 교환가능하게 사용되며 변환 도메인 계수들의 정렬된 세트를 나타내는 것을 의미한다.
변환 도메인 계수 세트는 양자화기(24)에 의해 양자화된다. 그 다음, 양자화된 계수 및 관련 정보가 엔트로피 인코더(26)에 의해 인코딩된다.
인트라코딩된 프레임/슬라이스(즉, 타입 I)는 다른 프레임/슬라이스에 관계없이 인코딩된다. 다르게 말하자면, 이들은 시간 예측(temporal prediction)을 채용하지 않는다. 그러나, 인트라코딩된 프레임은, 공간 예측기(21)에 의해 도 1에 도시된 바와 같이, 프레임/슬라이스 내의 공간 예측에 의존한다. 즉, 특정 블록을 인코딩할 때, 블록 내의 데이터는 그 프레임/슬라이스에 대하여 이미 인코딩된 블록 내의 근처 픽셀의 데이터와 비교될 수 있다. 예측 알고리즘을 사용하여, 블록의 소스 데이터는 잔차 데이터로 변환될 수 있다. 그 다음, 변환 프로세서(22)는 잔차 데이터를 인코딩한다. H.264는 예를 들어 4x4 변환 블록에 대하여 9개의 공간 예측 모드를 규정한다. 일부 실시예에서, 9개 모드의 각각은 블록을 독립적으로 처리하는데 사용될 수 있고, 그러면 최상의 모드를 선택하는데 율-왜곡(rate-distortion) 최적화가 사용된다.
H.264 표준은 또한 시간 예측을 이용하도록 움직임(motion) 예측/보상의 사용을 규정한다. 따라서, 인코더(10)는 역양자화기(28), 역 변환 프로세서(30), 및 디블로킹 프로세서(32)를 포함하는 피드백 루프를 갖는다. 이들 요소는 프레임/슬라이스를 재생하도록 디코더(50)에 의해 구현된 디코딩 프로세스를 반영한다. 프레임 스토어(store)(34)는 재생된 프레임을 저장하는데 사용된다. 이 방식으로, 움직임 예측은 원래 프레임이 아니라 디코더(50)에서 재구성된 프레임이 될 것에 기초하며, 원래 프레임은 인코딩/디코딩에 수반되는 손실 압축으로 인해 재구성된 프레임과 다를 수 있다. 움직임 예측기(36)는 유사한 블록을 식별할 목적으로 현재 프레임과의 비교를 위해 소스 프레임/슬라이스로서 프레임 스토어(34)에 저장된 프레임/슬라이스를 사용한다. 따라서, 움직임 예측이 적용되는 매크로블록에 대하여, 변환 프로세서(22)가 인코딩하는 "소스 데이터"는 움직임 예측 프로세스에서 나오는 잔차 데이터이다. 예를 들어, 이는 기준 프레임에 관한 정보, 공간 변위 또는 "움직임 벡터" 및 기준 블록과 현재 블록 사이의 차이(만약 있다면)를 나타내는 잔차 픽셀 데이터를 포함할 수 있다. 기준 프레임에 관한 정보 및/또는 움직임 벡터는 변환 프로세서(22) 및/또는 양자화기(24)에 의해 처리되지 않을 수 있고, 대신에 양자화된 계수와 함께 비트스트림의 일부로서 인코딩을 위해 엔트로피 인코더(26)에 공급될 수 있다.
당해 기술 분야에서의 통상의 지식을 가진 자라면 H.264 인코더를 구현하기 위한 세부사항 및 가능한 변형을 알 수 있을 것이다.
디코더(50)는 엔트로피 디코더(52), 역양자화기(54), 역 변환 프로세서(56), 공간 보상기(57), 및 디블로킹 프로세서(60)를 포함한다. 프레임 버퍼(58)는 움직임 보상을 적용하는데 있어서 움직임 보상기(62)가 사용하기 위한 재구성된 프레임을 공급한다. 공간 보상기(57)는 이전에 디코딩된 블록으로부터 특정 인트라코딩된 블록에 대하여 비디오 데이터를 복구하는 동작을 나타낸다.
비트스트림(14)은 양자화된 계수를 복구하도록 엔트로피 디코더(52)에 의해 수신되어 디코딩된다. 사이드 정보도 또한 엔트로피 디코딩 프로세스 동안 복구될 수 있으며, 이들 중의 일부는 적용 가능하다면 움직임 보상에 사용하기 위한 움직임 보상 루프에 공급될 수 있다. 예를 들어, 엔트로피 디코더(52)는 인터코딩된 매크로블록에 대하여 움직임 벡터 및/또는 기준 프레임 정보를 복구할 수 있다.
그 다음, 양자화된 계수가 역양자화기(54)에 의해 역양자화되어 변환 도메인 계수를 생성하며, 이는 그 다음에 "비디오 데이터"를 재생성하도록 역 변환 프로세서(56)에 의해 역 변환이 가해진다. 인트라코딩된 매크로블록과 같은 일부 경우에, 재생성된 "비디오 데이터"는 프레임 내의 이전에 디코딩된 블록에 대한 공간 보상에 사용하기 위한 잔차 데이터임을 알 수 있을 것이다. 공간 보상기(57)는 잔차 데이터로부터 비디오 데이터를 그리고 이전에 디코딩된 블록으로부터 픽셀 데이터를 발생시킨다. 인터코딩된 매크로블록과 같은 다른 경우에, 역 변환 프로세서(56)로부터의 재생성된 "비디오 데이터"는 상이한 프레임으로부터 기준 블록에 대한 움직임 보상에 사용하기 위한 잔차 데이터이다.
움직임 보상기(62)는 특정 인터코딩된 매크로블록에 대하여 지정된 프레임 버퍼(58) 내의 기준 블록의 위치를 찾는다. 이는 인터코딩된 매크로블록에 대하여 지정된 움직임 벡터 및 기준 프레임 정보에 기초한다. 그 다음, 그 매크로블록에 대하여 재생성된 비디오 데이터에 이르도록 잔차 데이터와 함께 기준 블록 픽셀 데이터를 공급한다.
그 다음, 디블로킹 프로세서(60)에 의해 나타나는 바와 같이, 디블로킹 프로세스가 재구성된 프레임/슬라이스에 적용될 수 있다. 디블로킹 후에, 프레임/슬라이스는 예를 들어 디스플레이 디바이스 상의 디스플레이를 위해 디코딩된 비디오 프레임(16)으로서 출력된다. 컴퓨터, 셋톱 박스, DVD 또는 블루레이 플레이어, 및/또는 이동 핸드헬드 디바이스와 같은 비디오 재생 기계가 출력 디바이스 상의 디스플레이 전에 메모리에 디코딩된 프레임을 버퍼링할 수 있다는 것을 이해할 것이다.
디코딩과 관련하여 일어나는 문제는, 인트라코딩된 공간 예측이 이웃 블록에서의 재구성된 픽셀에 의존한다는 것이다. H.264는 예를 들어 매크로블록 또는 변환 블록을 처리할 때 위-아래로, 오른쪽-왼쪽으로의 코딩 순서를 따르며, 이는 현재 블록 왼쪽과 현재 블록 위의 블록만 디코딩 프로세스 동안 픽셀 데이터를 공급하는데 적용될 수 있음을 의미한다(종종 지그재그 패턴을 따르는 엔트로피 인코딩 프로세스 내에서의 계수에 대한 코딩 순서와 혼동되어서는 안되며, 이 계수 코딩 순서의 부가의 설명은 본 명세서에서 나중에 함). 예를 들어, 사이즈 4x4의 블록은, 도 3에 도시된 바와 같이, 그의 예측을 계산하는데 최대 13개의 이웃 픽셀을 사용할 수 있다. 도 3에서, 현재 블록(90)의 픽셀은 참조 번호 92로 나타낸 최대 13개의 이웃 픽셀의 픽셀 값에 기초하여 인코딩된다. 도 4는 16x16 블록(94)을 도시한다. 참조 번호 96으로 나타낸, 블록의 바로 왼쪽 그리고 위의 33개 픽셀이 공간 예측에 사용될 수 있다는 것을 유의해야 할 것이다.
H.264 표준은 최대 52개의 가능한 스텝 사이즈를 갖는 모든 4x4 DCT 계수에 대하여 균일 양자화를 사용한다. 본 발명자들은 DCT 도메인에서 균일 양자화를 사용하면 블록의 경계에서 재구성 오차가 더 높아질 경향이 있게 된다는 점을 주목하였다. 예를 들어, 다음의 행렬은 36의 양자화 파라미터를 갖는 메인 프로파일(Main Profile)을 사용하여 코딩될 때 foreman.cif의 제1 프레임에서의 평균 제곱 오차(MSE; mean squared error)을 나타낸다:
Figure pct00001
블록 경계에서의 픽셀은 블록 중간의 픽셀보다 상당히 더 높은 MSE를 갖는다는 것을 유의해야 할 것이다. 그러나, 공간 예측 프로세스에서 사용되고자 하는 것이 이들 경계 픽셀들이다. 예측은 재구성된 픽셀 데이터에 기초하며(인코더는 그의 예측을 디코더가 이용할 수 있는 동일한 재구성된 데이터에 기초하기 위하여 디코딩 프로세스를 수행함), 이웃 픽셀을 재구성하는데서의 오차가 공간 예측된 픽셀을 재구성할 수 있는 능력에 직접적인 영향을 미치지는 않지만, 이웃 픽셀의 값의 오차는 일반적으로 더 크고 그리고/또는 더 변동된 잔차 값을 초래함을 의미하며, 이는 인코딩하는데 비용이 보다 많이 듬을 의미한다. 그 결과, 인트라코딩된 블록의 경계 값의 오차는 율-왜곡 성능에 악영향을 미친다.
인루프 디블로킹( In - Loop Deblocking )
본 발명의 하나의 양상에서, 디코더 및 디코딩 프로세스는 인트라코딩된 블록에 인루프 디블로킹을 적용하도록 구성될 수 있다.
H.264 규격의 디코더는 재구성된 프레임에 강력한 디블로킹 프로세스를 적용하도록 구성된다. 전체 프레임의 재구성 후에 디블로킹이 일어나기 때문에, 이는 공간 보상이 이미 발생한 후에 일어난다. 디블로킹은 움직임 보상에 관련하여 "인루프"로 간주되는데, 디블로킹 프로세스 후에 기준 프레임이 프레임 스토어에 수집되기 때문이며, 인터코딩된 블록의 픽셀을 재구성할 때 움직임 보상기가 디블로킹된 기준 프레임을 사용함을 의미한다. 그러나, H.264 공간 예측에 사용된 픽셀은 디블로킹 전의 재구성된 픽셀이다.
본 발명의 하나의 양상에서, 디코더는 공간 예측 프로세스 내에서 개별 블록에 디블로킹을 적용하도록 구성된다. 다르게 말하자면, 전체 프레임이 완료된 후가 아니라 블록이 재구성되는 대로 디블로킹이 블록별로 적용된다. 인터코딩된 프레임에 대하여, 일부 실시예에서 디블로킹은 여전히 전체 프레임이 완료된 후에 적용될 수 있고, 또는 일부 실시예에서 인트라코딩된 프레임에 관련하여 아래에 설명되는 바와 같이 블록별로 수행될 수 있다.
이제 예시적인 4x4 블록(100)에 미치는 디블로킹 영향을 도시한 도 5를 참조한다. 블록(100)은 프레임에서 가장 최근에 디코딩된 블록이다. 블록(100) 위 그리고 왼쪽의 블록은 이미 재구성되었다. 주어진 블록의 경우, 디블로킹은 그의 바로 왼쪽 그리고 위 경계에만 적용될 수 있지만(그의 오른쪽 그리고 아래 경계를 교차하는 블록은 아직 재구성되지 않았음), 예측 계산에 사용될 것이며 추후 블록의 코딩에 영향을 미칠 수 있는 것은 아래 및 오른쪽 경계임을 유의해야 할 것이다. 그러나, 다음의 설명으로부터, 블록(100)의 상단 그리고 왼쪽 경계에 디블로킹을 적용하는 것은, 블록(100)의 하단 그리고 오른쪽 픽셀이 추후 블록에서의 공간 예측에 나중에 사용되는 경우, 긍정적인 이점을 갖는다는 것을 주목할 것이다.
계속해서 도 5를 참조하면, 당해 기술 분야에서의 숙련자는 예를 들어 H.264에서 규정된 것들과 같은 일부 디블로킹 필터가 경계로부터 3개 픽셀 깊이까지 강화될 수 있다는 것을 알 수 있을 것이다. 예를 들어, H.264 디블로킹 프로세스 내의 "모드 4"는 유효 3개 픽셀 깊이를 갖는다. 또한, H.264에서 사용된 경계 강도 모델(boundary strength model) 하에, 블록은 인트라코딩되기 때문에, 경계가 또한 매크로블록 경계인지의 여부에 따라, 채용될 디블로킹 모드는 모드 4이거나 모드 3이다. 따라서, 블록(100)의 상단 경계(102) 그리고 왼쪽 경계(104)는 블록(100)의 16개 픽셀 중의 15개에 영향을 미칠 수 있다는 것을 유의해야 할 것이다. 특히, 디블로킹은 오른쪽 경계 상의 픽셀(108)의 4개 중에 3개에 그리고 하단 경계 상의 픽셀(106)의 4개 중의 3개에 영향을 미칠 수 있다. 따라서, 상단 경계(102) 그리고 왼쪽 경계(104)를 디블로킹하는 것은 이웃 블록에 대한 공간 예측에 사용될 수 있는 하부 및 오른쪽 경계 상의 픽셀 데이터의 품질에 영향을 미칠 것이다.
따라서, 다시 도 2를 참조하면, 공간 보상기(57)는 인트라코딩된 디코딩 루프 내에서 개별 재구성된 블록에 디블로킹을 적용하도록 구성된다. 다르게 말하자면, 블록별 기반으로 그리고 블록의 상단 및 왼쪽 경계에만 적용된다. 또한, 프레임 내의 다음 블록의 재구성으로 진행하기 전에, 재구성되는 대로 각각의 블록에 적용된다. 그 결과, 공간 보상기(57)가 이용할 수 있는 픽셀 데이터는 부분적으로 디블로킹된다(적어도 하단 오른쪽 코너 픽셀은 디블로킹되지 않기 때문에, "부분적으로").
도 2에 도시된 바와 같이, 공간 보상기(57)는 디블로킹 모듈(64)을 포함한다. 일부 실시예에서, 디블로킹 모듈(64)은 디블로킹 프로세서(60)에 보통 사용되는 이미 존재하는 디블로킹 루틴 또는 기타 소프트웨어 컴포넌트에 대한 호출을 포함할 수 있다는 것을 이해할 것이다.
도 1을 다시 참조하면, 본 발명에 따른 인코더(10)는 디블로킹 컴포넌트(31)를 포함한다는 것을 유의해야 할 것이다. 디블로킹 모듈(64)(도 2)과 마찬가지로, 디블로킹 컴포넌트(31)는, 프레임 내의 다음 블록의 재구성이 일어나기 전에, 재구성된 블록의 상단 및 왼쪽 경계에 디블로킹을 적용하기 위한 것이다. 그러면, 디블록킹 컴포넌트(31)로부터의 디블로킹된 픽셀 데이터를 공간 예측기(21)가 이용할 수 있으며, 그리하여 공간 예측기(21)는 그의 예측을 디블로킹된 픽셀 데이터에 기초할 수 있다.
이제 디코딩 프로세서(120)를 흐름도 형태로 도시한 도 6을 참조한다. 도 6에 도시된 디코딩 프로세서(120)는 비디오의 인트라코딩된 프레임을 디코딩하려고 하는 예시적인 프로세스이다. 비디오의 프레임은 여기에 기재된 대안에 대해 H.264 표준에 따라 인코딩될 수 있으며, 특히 인트라코딩된 블록의 인루프 디블로킹이다. 인코딩 프로세스의 결과 인코딩된 데이터의 비트스트림이 된다. 프로세스(120)는 비트스트림을 수신하고 이를 디코딩하여 비디오 데이터를 재구성하고 비디오를 디스플레이하거나 출력하도록 구성된 셋톱 박스, 텔레비전, 컴퓨터, 이동 디바이스 등과 같은 디바이스에서 구현될 수 있다. 인터코딩된 프레임에 대한 디코딩 프로세스는 다소 유사하지만, 도 6에 도시되지 않은 움직임 보상 및 재구성된 프레임 저장 단계를 포함한다.
프로세스(120)는 단계 122에서 인덱스 i의 초기화로 시작된다. 인덱스 i는 프레임의 어느 블록이 디코딩 프로세스(120)의 대상인지를 나타낸다. 각각의 블록은 왼쪽-오른쪽으로 그리고 위-아래로의 디코딩 프로세스를 따라 순서대로 처리된다. 수신된 비트스트림의 엔트로피 디코딩이 단계 124로써 시작되며, 단계 124에서 블록 i는 엔트로피 디코딩된다. 엔트로피 디코딩은 인코딩된 데이터의 비트스트림을 양자화된 변환 도메인 계수로 변환한다. 이는 또한 비디오 데이터를 재구성하도록 디코더에 의해 사용된 양자화기 스텝 사이즈 및 기타 정보를 포함한 사이드 정보를 복구할 수 있다.
각각의 블록 i에 대하여, 프로세스(120)는 변환 도메인 계수를 복구하도록 단계 126에서 양자화된 변환 도메인 계수를 역양자화하는 것을 수반한다. 그 다음, 단계 128에서 블록 i의 변환 도메인 계수는 역 변환되어 각각의 픽셀에 대한 잔차 데이터를 재구성한다. 공간 예측을 사용하는 인트라코딩된 블록에서, 단계 128에서 재구성된 픽셀 데이터는 이웃 블록으로부터 기준 픽셀(들)에 대한 차이를 나타내는 "잔차" 데이터이다. 따라서, 단계 130에서, 동일 프레임 내의 이전에 재구성된 블록의 이웃 픽셀들로부터의 픽셀 데이터 및 잔차 데이터를 사용하여 픽셀 값을 재구성하도록 공간 보상이 적용된다. 단계 130의 결과, 블록 i에 대한 픽셀 비디오 데이터의 재구성이 된다.
단계 140(점선으로 도시됨)은 블록 i의 왼쪽 및 상단 경계에 디블로킹 필터를 적용하는 것이다. 상기 언급한 바와 같이, 블록 i의 왼쪽 및 상단 경계를 디블로킹함으로써 블록 i의 우측 및 하단 상의 픽셀들의 적어도 일부의 픽셀 데이터의 품질을 개선시킬 수 있다. 후속 블록에서의 예측에 대한 기초로서 사용될 수 있는 것이 우측 및 하단 상의 이 픽셀 데이터이다. 공간 예측에 사용될 때 이 데이터의 품질의 개선은 인코딩되어야 하는 잔차 데이터를 감소시킬 수 있으며, 그 결과 율-왜곡 성능을 개선할 수 있다.
하나의 예시적인 실시예에서, 단계 140은 단계 132, 134, 136 및 138을 포함한다. 단계 132 및 136은 각각 왼쪽 및 상단 경계에 대한 경계 강도의 평가이다. 경계 강도 평가는 어느 모드의 디블로킹을 적용하는지, 즉 어느 유형의 필터가 사용될 것인지 결정한다. 단계 134 및 138에서, 왼쪽 및 상단 경계는 각각 경계 강도 평가에 의해 나타난 필터 유형을 사용하여 디블로킹된다.
블록 i의 왼쪽 및 상단 경계가 디블로킹된 후에, 프로세스(120)는 단계 142로 계속되며, 단계 142에서는 프레임에 처리되어야 할 추가적인 블록이 있는지 여부를 평가한다. 그러한 경우, 단계 144에서 인덱스가 증분되고, 프로세스(120)는 단계 126으로 되돌아간다. 그렇지 않은 경우에는, 재구성된 프레임이 단계 146에서 출력된다.
재구성 루프가 엔트로피 인코더(26)(도 1) 전에 시작되므로 어떠한 엔트로피 디코딩도 요구되지 않는다는 점을 제외하고는, 공간 예측기(21)(도 1)에 의해 사용된 블록을 재구성하는데 프로세스(120)와 동일하거나 유사한 프로세스가 인코더(10)(도 1)에서 사용될 것임을 알 수 있을 것이다.
실험에서, 인트라코딩에 인루프 디블로킹을 적용함으로써 foreman.cif, highway.cif, paris.cif 등을 비롯한 광범위한 범위의 비디오 클립에 대하여 동일한 왜곡과 1-5%의 레이트 절약을 일으킨다는 것이 발견되었다.
균형이 맞춰진 왜곡 양자화( Balanced Distortion Quantization )
다음의 설명에서, DCT 계수 및 DCT 도메인을 참조하지만, 본 발명이 구체적으로 DCT에 한정되지 않는다는 것을 알 수 있을 것이다. 본 발명은 블록 기반 변환에 보다 광범위하게 적용 가능하다.
DCT 도메인에서의 양자화에 대하여 경계에서 발견된 비교적 큰 왜곡은 내부 픽셀을 복구하는 것보다 경계 픽셀을 재구성하는 것에 대한 더 나쁜 가중합에 의해 야기된다. 구체적으로, 상이한 DCT 계수는 픽셀 도메인에서의 재구성에 상이하게 가중치를 부여한다. DCT 계수에 적용된 부가의 양자화는 균일하다. 따라서, 본 발명은 픽셀 도메인의 샘플 사이에 왜곡 분포를 균등하게 하도록 적응적으로 DCT 계수에 대한 양자화를 적용할 것을 제안한다.
예측
Figure pct00002
의 소정의 4x4 블록
Figure pct00003
에 대하여, 잔차는
Figure pct00004
이다. DCT 도메인에서 수행된 균일 양자화는 다음과 같이 표현될 수 있다:
Figure pct00005
(1.1)
여기에서,
Figure pct00006
는 c의 구성요소이며,
Figure pct00007
와 같으며,
Figure pct00008
는 4x4 DCT 행렬이고,
Figure pct00009
Figure pct00010
에 대한 양자화 출력이고,
Figure pct00011
는 양자화 스텝 사이즈이고,
Figure pct00012
는 반올림 파라미터를 나타낸다.
Figure pct00013
의 양자화 출력을
Figure pct00014
로 간주하면, 양자화 오차는
Figure pct00015
가 되며, 픽셀 도메인에서의 현재 블록에 대한 재구성 오차는
Figure pct00016
이다. Euclidean 거리에 의해 측정되는 경우, DCT 도메인에서의 총 양자화 오차는
Figure pct00017
로서 픽셀 도메인에서의 경우와 동일할 것인데, DCT가 단일 변환(unitary transform)이기 때문이다. 하지만, 전체 블록에서 개별 픽셀에 대한 재구성된 오차를 고려하자. 상이한 픽셀에 대한 재구성 오차의 통계치는 서로 매우 다를 것이지만, 동일한 양자화기가 모든 DCT 계수에 적용된다.
예를 들어, 4x4 DCT를 취하면, 본 발명은, DCT 계수 위치 각각에 대하여 하나씩, 16개의 이산 양자화 스텝 사이즈가 선택될 것을 제안한다. 양자화 스텝 사이즈의 선택은 픽셀 도메인에서 왜곡의 균등한 분포를 달성하는 것에 기초하는 것이다.
DCT 계수는 다음과 같이 정의될 수 있다:
Figure pct00018
계수 위치는 추후의 조작을 용이하게 하도록 정수를 사용하여 인덱싱된다. 양자화 스텝 사이즈는 다음과 같이 대응하는 행렬
Figure pct00019
로서 정의될 수 있다:
Figure pct00020
경계 픽셀과 내부 픽셀 사이의 왜곡 분포를 균등하게 하도록
Figure pct00021
를 양자화하기 위한 양자화기
Figure pct00022
를 설계하도록 제한된 RD 최적화 문제를 다음과 같이 낼 수 있다:
Figure pct00023
(1.2)
Figure pct00024
를 조건으로 하며,
Figure pct00025
에 대하여,
Figure pct00026
Figure pct00027
는 각각
Figure pct00028
Figure pct00029
의 요소이며,
Figure pct00030
Figure pct00031
이고,
Figure pct00032
는 표준 기대 동작이며,
Figure pct00033
는 원하는 평균 왜곡이고,
Figure pct00034
는 식 (1.1)에 의해
Figure pct00035
를 사용하여
Figure pct00036
를 양자화하는 것의 출력이며,
Figure pct00037
는 양자화 출력을 코딩하기 위한 레이트 함수이고,
Figure pct00038
는 상수이고,
Figure pct00039
는 행렬들 사이의 요소별 곱셈을 의미한다.
Euclidean 거리를 유지하기 위한 DCT의 단일 특성을 고려하자. 식 (1.2)는 다음과 같이 다시 쓰여질 수 있다:
Figure pct00040
(1.3)
다음의 분석에서, 4x4 DCT 계수에 대하여 독립적인 가우시안(Gaussian) 분포를 가정할 것이다.
식 (1.3)의 공식은 최적화 변수로서 양자화 스텝 사이즈를 사용함으로써 스칼라(scalar) 양자화기를 전개시키는 것의 클리어 로직을 반영한다. 그러나, 이 최적화를 푸는 것은 어렵다. 양자화 왜곡은 양자화 스텝 사이즈의 단조 함수, 스칼라 양자화기임을 고려하자. 최적화 변수로서 양자화 왜곡을 사용할 수 있고, 구체적으로
Figure pct00041
에 기초하여 16개 양자화기를 설계하는 것을 고려하고 있으며,
Figure pct00042
Figure pct00043
의 스텝 사이즈를 이용한
Figure pct00044
번째 양자화기에 대한 양자화 왜곡을 나타낸다.
Figure pct00045
에 대하여
Figure pct00046
인 독립적 가우시안 분포를 가정함으로써, 식 (1.3)의 레이트 함수를 교체하도록 가우시안 소스에 대하여 율-왜곡 함수를 더 사용한다:
Figure pct00047
(1.4)
Figure pct00048
Figure pct00049
를 고려하자. 역 변환은 다음과 같이 일차원 포맷으로 다시 쓰여질 수 있다:
Figure pct00050
(1.5)
여기에서
Figure pct00051
Figure pct00052
에 관련된 상수 행렬이다. 특히, 행렬
Figure pct00053
는 역 변환의 일차원 버전이다. 식 (1.5)는 일차원 역 변환 행렬
Figure pct00054
를 통해 DCT 도메인에서의 양자화 왜곡(예를 들어,
Figure pct00055
)에 픽셀 도메인에서의 양자화 왜곡(예를 들어,
Figure pct00056
)을 관련시킨다.
Figure pct00057
를 고려하자. 일부 유도 후에, 식 (1.4)에서의 제약은 다음과 같이 된다:
Figure pct00058
(1.6)
이는
Figure pct00059
에 대한 16개의 선형 제약을 나타낸다.
요약하자면, 양자화 설계 문제는 다음과 같이 된다:
Figure pct00060
(1.7)
이는 볼록 최소화(convex minimization)에 대한 표준 기술을 사용하여 풀 수 있는 볼록 최소화 문제이다.
전술한 설명은 평균 픽셀 도메인 왜곡
Figure pct00061
와 관련되지만, 식 (1.6)에서 알 수 있듯이, 왜곡은 보다 광범위하게 벡터로 간주될 수 있다는 것을 유의하여야 한다. 식 (1.6)은 평균 픽셀 도메인 왜곡의 특수한 경우를 나타낸다. 일부 다른 경우에, 원하는 왜곡이 평균 픽셀 도메인 왜곡으로 표현되지 않을 수 있다. 예를 들어, 일부 경우에, 중심보다 픽셀 블록의 에지에서 더 낮은 왜곡을 갖는 것을 바람직할 수 있고, 또는 다른 예에서, 공간 예측에 사용된 에지와 같은 블록의 특정 에지에서 더 낮은 왜곡을 갖는 것이 바람직할 수 있다. 원하는 픽셀 도메인 왜곡은 식 (1.6) 및 (1.7)의 문맥 내에서 이들 상황을 수용하도록 지정될 수 있다.
식 (1.7)에서의 최적화 문제와는 달리, DCT 도메인에서의 종래의 양자화 설계는, H.264에서와 같은 비디오 코딩에 대하여 또는 JPEG와 같은 이미지 압축에 대하여, 합 왜곡(sum distortion) 제약을 받게 된다. DCT 계수가 독립적인 가우시안 소스로부터 나온다고 가정하면, 종래의 양자화 설계의 해(solution)로는 소위 역 "워터 필링(water-filling)"을 일으키고, 그 결과의 왜곡은 D보다 더 작은 분산을 갖는 소스를 제외한 상수 D이다. 다르게 말하자면, 결과적인 양자화 왜곡은 DCT 도메인에서는 가능한 균등하게 분포되지만, 픽셀 도메인에서는 반드시 그러한 것은 아니다.
그러나, 이 경우에, 식 (1.7)에 대한 해는 그의 DCT 왜곡에 의한 스칼라 양자화기를 지정하고, 각각의 계수 위치에 대한 DCT 왜곡은 픽셀 도메인에서 원하는 왜곡
Figure pct00062
을 달성하는 것에 기초하여 선택된다. DCT 도메인 양자화 왜곡은 코딩 절차에서 사용되기 위하여 양자화 스텝 사이즈로 변환될 필요가 있다. 일반적으로,
Figure pct00063
의 함수는 그의 역 함수를 도출하기에 너무 복잡할 수 있다. 하이 레이트(high-rate) 스칼라 양자화 경우에,
Figure pct00064
에 대한 단순화 공식으로 몇몇 결과가 존재한다. 그렇지만, 여기에서 반드시 유효한 하이 레이트 가정을 갖는 것은 아니다. 본 발명의 하나의 실시예에서, 도치 문제를 경험적으로(empirically) 푸는데
Figure pct00065
의 단조성(monotonicity)이 이용된다. 구체적으로,
Figure pct00066
의 주어진 값과
Figure pct00067
의 초기 값에 대하여,
Figure pct00068
를 얻기 위한 방향을 향해 현재
Figure pct00069
를 점진적으로 수정함으로써, 대응하는
Figure pct00070
를 찾는데 일반적인 경사 하강(gradient descent) 알고리즘이 사용된다. 양자화 스텝 사이즈
Figure pct00071
를 찾는 것은 결과적인
Figure pct00072
가 그 계수에 대하여 규정된
Figure pct00073
에 충분히 가까운 값에 도달할 때까지 계속될 수 있다는 것을 알 수 있을 것이다. 다르게 말하자면, 양자화 스텝 사이즈가 원하는
Figure pct00074
를 달성하는 것에 "충분히 가까울" 때를 결정하는데 임계값 범위가 사용될 수 있다. 또한 일부 실시예에서 스텝 사이즈가 미리 결정될 수 있다는 것을 이해할 것이며, 이는
Figure pct00075
를 정확하게 달성할 수 있는 능력을 제한하는 유한 수의 가능한 선택이 존재함을 의미한다. 이들 선택 중의 하나는
Figure pct00076
를 달성하는 것에 가장 가까운 것일 수 있지만, 실제 왜곡
Figure pct00077
Figure pct00078
와 소량 상이할 수 있다. 본 명세서에서, 계산된 양자화 왜곡
Figure pct00079
를 "달성"하는 양자화 스텝 사이즈를 인용하는 것은 정확하게
Figure pct00080
는 아니고
Figure pct00081
에 충분히 가까운 왜곡
Figure pct00082
가 되는 양자화 스텝 사이즈를 포함한다는 것을 이해할 것이다.
이제 비디오를 인코딩하는 예시적인 방법(200)을 흐름도 형태로 도시한 도 7을 참조한다. 방법(200)은 상기 개요로 나타낸 원리를 적용한다. 특히, 단계 202에서, 원하는 평균 픽셀 도메인 왜곡
Figure pct00083
이 선택된다. 선택은 원하는 신호 대 잡음비(SNR; signal-to-noise ratio) 또는 피크 SNR(PSNR; peak SNR)에 기초할 수 있다. 예를 들어, 하나의 실시예에서, 평균 픽셀 도메인 왜곡은 알고 있거나 가정한 계수 분산 및 원하는 PSNR에 기초하여 선택될 수 있다. 하나의 실시예에서,
Figure pct00084
는 사용자에 의해 선택되거나 아니면 특정 비디오 또는 특정 비디오 인코더에 대하여 지정된 "품질" 설정에 기초하여 또는 사용자에 의해 지정된 조정가능한 양일 수 있다.
단계 204에서, 4x4 MB 및/또는 16x16 MB에서의 각각의 계수 위치에 대한 양자화 스텝 사이즈는 원하는 평균 픽셀 도메인 왜곡
Figure pct00085
을 달성한다는 것에 기초하여 결정된다. 4x4 MB의 경우, 16개 양자화 스텝 사이즈가 결정된다. 일부 경우에, 일부 계수 위치에 대한 양자화 스텝 사이즈는 동일할 수 있다. 양자화 스텝 사이즈의 결정은 특정 인코딩 표준에 대하여 이용 가능한 스텝 사이즈로부터 선택하는 것을 포함할 수 있다. 예를 들어, H.264에서는 52개의 가능한 양자화 스텝 사이즈가 존재한다. 기타 표준 또는 프로파일은 더 많거나 더 적은 양자화 스텝 사이즈를 허용할 수 있다.
비디오 프레임 또는 슬라이스에 대하여 DCT 계수를 양자화하기 위한 양자화 스텝 사이즈를 선택하면, 단계 206에서, 인코더는 인코딩 프로세스 동안 변환 도메인 계수를 양자화하는데 있어서 선택된 양자화 스텝 사이즈를 사용하여 비디오 프레임 또는 슬라이스를 처리한다. 당해 기술 분야에서의 통상의 지식을 가진 자라면 알 수 있듯이, 인코딩된 프레임은 인코더로부터 출력된다.
이제 비디오를 인코딩하기 위한 다른 예시적인 방법(220)을 흐름도 형태로 도시한 도 8을 참조한다. 예시적인 방법(220)은 단계 222로 시작하며, 단계 222는 각각의 매크로블록에 대한 예측 및 잔차를 발생시키도록 비디오의 프레임을 처리하는 것을 수반한다. 잔차는 초기 변환 도메인 계수를 획득하도록 변환된다. 처리는 초기 양자화 스텝 사이즈
Figure pct00086
을 채용한다. 처리는 H.264와 같은 주어진 표준에 따를 수 있다. 처리는, 일부 실시예에서, 도 1 내지 도 6에 관련하여 상기 기재된 바와 같이 인루프 디블로킹을 적용하는 것을 포함할 수 있다. 단계 220은 초기 변환 도메인 계수의 계산에서 블록별 RD 최적화 방식을 적용하는 것을 포함할 수 있다.
단계 224에서, 계수 위치에서의 초기 변환 도메인 계수의 분산
Figure pct00087
이 단계 222에서 행해진 처리에 기초하여 계산된다. 일부 실시예에서, 상이한 사이즈의 매크로블록에 대하여 통계치가 상이할 수 있으므로, I4x4 매크로블록에 대응하는 변환 도메인 계수에 대하여 그리고 I16x16 매크로블록에 대응하는 변환 도메인 계수에 대하여 별도의 분산이 계산될 수 있다는 것을 유의하자.
단계 226에서, 원하는 평균 픽셀 도메인 왜곡
Figure pct00088
이 선택된다. 도 7과 관련하여 상기 언급한 바와 같이, 선택은 PSNR에 대한 원하는 시각 품질에 기초할 수 있다. 평균 픽셀 도메인 왜곡
Figure pct00089
은 특정 비디오에 대하여 선택되거나 설정되어 모든 프레임에 관련하여 사용될 수 있다(이 경우에, 단계 226은 메모리로부터
Figure pct00090
의 미리 설정된 값을 판독하는 것만 포함할 수 있음). 평균 픽셀 도메인 왜곡
Figure pct00091
의 선택 또는 설정은 사용자 구성가능할 수 있다. 인코더는 특정 비디오 또는 비디오의 일부를 인코딩하기 위해 평균 픽셀 도메인 왜곡을 설정하거나 조정할 수 있는 능력을 제공할 수 있다. 일부 실시예에서, 평균 픽셀 도메인 왜곡은 프레임에 대한 통계치의 측정에 기초하여 각각의 프레임에 대하여 선택될 수 있고 프레임마다 다를 수 있다. 예로써, 사용자가 재구성된 비디오에서 특정 유형의 시각 품질을 달성하기를 원하고
Figure pct00092
이 품질에 미칠 수 있는 영향을 인지하는 경우, 사용자는 평균 픽셀 도메인 왜곡
Figure pct00093
을 직접 지정할 수 있다. 다른 예에서, 사용자는 코딩 레이트 또는 양자화 스텝 사이즈와 같은 또다른 코딩 파라미터를 지정할 수 있고, 인코더는 특정 결과의 평균 픽셀 도메인 왜곡
Figure pct00094
을 식별하도록 인코딩 프로세스를 진행할 수 있으며, 그 다음 왜곡을 균등하게 하려는 시도에 사용되는 경험적
Figure pct00095
요인을 가지고 인코딩 프로세스를 재실행하는데 사용할 수 있다. 일부 경우에,
Figure pct00096
은 자유 파라미터이다. 상기 언급한 바와 같이, 일부 실시예에서, 원하는 픽셀 도메인 왜곡은 픽셀 블록에 걸쳐 균일한 평균 픽셀 도메인 왜곡이 아닐 수 있다.
단계 228에서, 계수 위치에 대한 DCT 도메인 양자화 왜곡
Figure pct00097
은 원하는 평균 픽셀 도메인 왜곡
Figure pct00098
및 이들 계수 위치에서의 계수에 대한 분산
Figure pct00099
에 기초하여 결정된다. 상기 언급한 바와 같이, 양자화 왜곡
Figure pct00100
은 제약
Figure pct00101
및 식 1.6의 제약을 조건으로 식 1.7에서 정의된 볼록 최소화 문제를 풀어서 결정될 수 있다. 하나의 실시예에서, 예로써, 볼록 최소화 문제는 표준 순차적 이차(quadratic) 프로그래밍 방법을 사용하여 풀 수 있다.
원하는 평균 픽셀 도메인 왜곡
Figure pct00102
을 달성하는데 필요한 양자화 왜곡
Figure pct00103
을 결정하면, 단계 230에서 양자화 왜곡
Figure pct00104
은 양자화 스텝 사이즈
Figure pct00105
으로 변환된다. 다르게 말하자면, 단계 230은 단계 228에서 결정된 양자화 왜곡
Figure pct00106
를 달성하기 위한 양자화 스텝 사이즈
Figure pct00107
를 선택하거나 찾는 것을 수반한다. 양자화 스텝 사이즈
Figure pct00108
는 이용 가능한 양자화 스텝 사이즈의 미리 결정된 세트로부터 선택될 수 있다. 예를 들어, H.264는 사용될 수 있는 양자화 스텝 사이즈를 지정한다. H.264에 대한 적어도 하나의 프로파일에는 52개의 가능한 양자화 스텝 사이즈가 존재한다. 따라서, 양자화 스텝 사이즈
Figure pct00109
는 적용 가능한 인코딩 표준에 의해 규정된 스텝 사이즈로부터 선택되어야 하는 제약을 조건으로 양자화 왜곡
Figure pct00110
를 최상으로 달성하는 것에 기초하여 선택될 수 있다. 상기 언급한 바와 같이, 양자화 스텝 사이즈의 선택 또는 결정은 적합한(또는 최적의) 스텝 사이즈를 찾기 위해 표준 경사 하강 알고리즘을 사용하는 것을 포함할 수 있다. 상기 언급한 바와 같이, 일부 실시예에서, I4x4 매크로블록 및 I16x16 매크로블록과 함께 사용하기 위해 별도의 양자화 스텝 사이즈 선택을 갖는 별도의 4x4 양자화기가 생성될 수 있다. 이 경우에, 획득된 양자화 스텝 사이즈는 각각
Figure pct00111
Figure pct00112
로서 표시될 수 있다.
양자화 스텝 사이즈
Figure pct00113
와 양자화 왜곡
Figure pct00114
사이의 관계는 단조 함수이다. 하나의 실시예에서, 정확한 스텝 사이즈를 찾는 프로세스는 초기 양자화 스텝 사이즈 값을 선택한 다음, 결과적인 양자화 왜곡을 평가하는 것을 포함한다. 왜곡이 단계 228에서 계산된 원하는 양자화 왜곡에 비교하여 너무 작은 경우, 양자화 스텝 사이즈는 적합한 왜곡이 될 때까지 증가된다. 일부 구현예에서, 이분 검색(bisection search)이 채용될 수 있다.
단계 224 내지 230은 다같이 균형이 맞춰진 픽셀 도메인 왜곡을 달성하기 위해 프레임 특정 양자화기를 생성하기 위한 단계들이다. 생성은 처리되고 있는 프레임의 특정 통계치에 기초한다. 다르게 말하자면, 비디오의 특정 프레임에 대하여 설계된 양자화기는 양자화 왜곡이 픽셀 도메인에서의 균형이 맞춰진 왜곡이 됨을 보장하도록 특별히 조정된다.
단계 232에서, 비디오의 프레임은 단계 224 내지 230에서 생성된 양자화기(들)를 사용하여 재처리된다(즉, 변환, 양자화 등). 다르게 말하자면, 단계 232에서의 프레임의 재처리는 양자화 스텝 사이즈
Figure pct00115
을 사용한다. 상이한 사이즈의 매크로블록에 대하여 상이한 양자화기가 사용되는 경우에, 단계 232는
Figure pct00116
Figure pct00117
양자화 스텝 사이즈를 사용하여 프레임을 재처리한다. 재처리는 상기 기재한 바와 같이 인루프 디블로킹을 적용하는 것을 포함할 수 있다.
일부 실시예에서, 방법 220은 반복적일 수 있고, 따라서 픽셀 도메인 내의 상이한 위치에서의 왜곡 분산들 사이의 최대 차이가 임계량보다 더 큰지 여부를 결정하도록 재처리의 결과가 임계치에 대하여 평가되는 단계 234를 포함할 수 있다. 그러한 경우, 단계 224 내지 232는 양자화 스텝 사이즈의 선택을 정제하도록(refine) 반복될 수 있다. 단계 224 내지 230의 결과가 차선일 수 있는 이유는, 블록 기반의 방향성 예측 방식으로 인해, 양자화기를 설계하는데 사용된 DCT 데이터 세트와, 획득된 양자화기가 적용되는 실제 DCT 데이터 사이의 불일치가 있을 수 있다는 점이다. 또한, 실제 데이터 통계치는 식 1.7에 내재된 가우시안 가정으로부터 벗어날 수 있다. 따라서, 단계 232에서의 프레임의 재처리로부터의 결과인 분산은 양자화 스텝 사이즈의 선택을 정제하는데 사용될 수 있다. 단계 234에서, 픽셀 도메인 내의 상이한 위치에서의 왜곡 분산들 사이의 최대 차이가 미리 선택된 임계값보다 작은 경우, 방법(220)은 인코딩된 프레임이 출력되는 단계 236으로 계속된다.
프레임의 인코딩은 인코딩된 비디오의 비트스트림을 발생시키도록 예측 및 잔차 데이터를 엔트로피 코딩하는 것을 포함할 수 있다는 것을 알 수 있을 것이다. 또한 엔트로피 코딩이 단계 232 또는 단계 236에서 일어날 수 있다는 것도 알 수 있을 것이다. 재방문 산술 코딩(revisited arithmetic coding)을 사용하여 엔트로피 코딩하는 신규의 프로세스가 아래에 더 기재될 것이다.
단계 236은 가능하면 유선 또는 무선 통신 경로를 통해 인코더로부터 목적지 디바이스에 인코딩된 비트스트림을 전송하는 것을 포함할 수 있다는 것을 또한 알 수 있을 것이다. 전송은 점대점 전송 또는 브로드캐스트 전송을 포함할 수 있다. 출력 비트스트림은 또한 아니면 대안으로서 비휘발성 메모리에서와 같이 추후의 전송 또는 출력을 위해 국부적으로 저장될 수 있다. 하나의 실시예에서, 자기 또는 광 디스크와 같은 디코더 판독가능한 매체 상에 저장될 수 있다.
또한, 인코더에 의해 출력된 비트스트림은 단계 230에서 찾은 양자화 스텝 사이즈의 행렬을 포함한다는 것을 이해할 것이다. 상이한 사이즈의 매크로블록에 대하여 상이한 양자화기가 사용되는 경우, 양자화 스텝 사이즈
Figure pct00118
Figure pct00119
의 4x4 행렬 둘 다 비트스트림에 포함된다. 각각의 프레임에 대하여, 비트스트림은 그 프레임에 적용 가능한 양자화 행렬을 포함한다.
비트스트림에서의 양자화 스텝 사이즈의 인코딩은, 하나의 실시예에서, 다음과 같이 행해질 수 있다. 이 예에서 단계 사이즈는 H.264에 의해 정의된 52개의 이용 가능한 스텝 사이즈로부터 선택된다. 먼저, 가장 큰 사이즈에 대하여 일 비트 코드워드가 정의된다. 이는 높은 주파수 컴포넌트에 대하여 선택된 양자화기가 소스 분산과 동일한 것인 원하는 왜곡을 가질 가능성이 높기 때문이며, 양자화 스텝 사이즈가 양자화 출력으로서 0만 발생시킬 만큼 충분히 큼을 의미한다. 이 경우에, 일 비트만 전송되고, 가장 큰 스텝 사이즈가 디코더에 의해 사용될 것이다. 다른 양자화 스텝 사이즈의 경우, 4개 이상의 비트가 디코더에 보내진다. 구체적으로, 주어진 평균 왜곡 선호
Figure pct00120
에 대응하는 양자화 스텝 사이즈를
Figure pct00121
으로서 표시하자.
Figure pct00122
으로 표시된 16개 스텝 사이즈만 사용될 것이며, 예를 들어
Figure pct00123
은 52개 스텝 사이즈의 순서에 따라
Figure pct00124
보다 8 스텝 더 작은 스텝 사이즈를 의미한다. 이 코딩 방식은 CIF 프레임을 코딩하는데 잘 작용하며, 실험에서 테스트된 모든 CIF 프레임에 대하여 총 레이트의 1% 미만을 취한다.
보다 구체적으로, 이 예시적인 코딩 방식은 17개의 상이한 스텝 사이즈
Figure pct00125
Figure pct00126
을 고려할 수 있다. 파라미터
Figure pct00127
는 H.264에 의해 정의된 52개의 이용 가능한 스텝 사이즈에서 가장 큰 것으로 설정될 수 있으며, 다른 16개 스텝 사이즈는
Figure pct00128
와 관련된다. 본질적으로,
Figure pct00129
는 일 비트 코드워드가 부여되고,
Figure pct00130
은 16개의 5 비트 코드워드, 즉 16 레벨 간을 구별하는데 4 비트 그리고
Figure pct00131
와 구별하는데 일 비트가 부여된다.
그러나 이 예시적인 코딩 방식은 수많은 가능한 코딩 방식 중의 하나임을 알 수 있을 것이다.
디코더는 비트스트림을 수신하고 양자화 스텝 사이즈 및 양자화된 변환 도메인 계수를 복구하도록 비트스트림을 엔트로피 디코딩한다. 그 다음, 변환 도메인 계수를 복구하도록, 특정 계수 위치에 대하여 지정된 양자화 스텝 사이즈를 사용하여 양자화된 변환 도메인 계수를 역양자화한다. 일부 실시예에서, 양자화 스텝 사이즈는 슬라이스별로 또는 프레임별로 결정된다. 따라서, 양자화 스텝 사이즈는 경우에 따라 프레임 또는 슬라이스마다 한번씩 인코딩될 수 있다.
이제 적응적 양자화기 모듈(300)을 갖는 인코더(10)의 블록도를 도시한 도 9를 참조할 것이다. 적응적 양자화기 모듈(300)은 상기 기재한 방법(200 또는 220)을 구현하도록 구성될 수 있다. 단계 224(도 8)에 관련하여 상기 기재된 바와 같이, 적응적 양자화기 모듈(300)은 프레임의 초기 처리로부터의 결과인 각각의 DCT 계수 위치에 대한 분산
Figure pct00132
을 결정하는 분산 계산기(302)를 포함한다. 분산 계산기(302)는 양자화 왜곡
Figure pct00133
를 결정하도록 구성되는 양자화 왜곡 계산기(304)에 분산
Figure pct00134
정보를 공급한다. 구체적으로, 각각의 계수 위치에 대한 양자화 왜곡
Figure pct00135
은 원하는 평균 픽셀 도메인 왜곡
Figure pct00136
및 각각의 계수 위치에 대한 분산 에 기초하여 결정된다. 적응적 양자화기 모듈(300)은 양자화 스텝 사이즈 선택기(306)를 더 포함하며, 이는 결정된 양자화 왜곡
Figure pct00138
을 최상으로 달성하기 위한 양자화 스텝 사이즈
Figure pct00139
을 찾는다. 그 다음, 선택된 양자화 스텝 사이즈
Figure pct00140
는, 단계 232(도 8)와 함께 상기 기재된 바와 같이, 프레임을 재처리하도록 양자화기(24)에 의해 사용된다.
용이한 기재 및 설명을 위해 개별 모듈, 컴포넌트, 또는 계산기로서 설명되었지만, 인코딩 프로세스를 실현하기 위한 소프트웨어의 구성 및 인코더에 따라 많은 구현들이 가능하다는 것을 알 수 있을 것이다.
산술 코딩을 위한 수정된 컨텍스트 모델링( Revised Context Modeling for Arithmetic Coding )
균형이 맞춰진 왜곡 양자화의 전개로 인해 양자화 출력에 대한 상이한 통계치들이 나오게 된다. 또한, H.264에 대하여 지정된 컨텍스트 모델링에 내재되어 있는 가정의 일부는, 4x4 변환 블록 내에서 양자화 스텝 사이즈가 변하는 경우에, 반드시 유효한 것은 아니다. 특히, H.264에 의해 지정된 스캐닝 또는 코딩 순서는 균일 양자화를 사용할 때 제로 계수 출력의 예상되는 증가하는 가능성에 기초한다. 용어 "스캐닝 순서"와 "코딩 순서"는 다음의 설명에서 상호교환 가능하게 사용된다.
이제 4x4 블록에 대하여 H.264에 의해 지정된 코딩 순서(350)를 도시한 도 10을 참조한다. 계수 위치 1,...,16의 넘버링은 왼쪽에서 오른쪽으로 그리고 위에서 아래로의 순서를 따른다. 넘버링된 계수 위치를 참조하면, H.264에서의 규정된 스캐닝 순서는 1, 2, 5, 6, 3, 4, 7, 8, 9, 10, 13, 14, 11, 12, 15, 16이다.
본 발명의 하나의 양상에 따르면, 코딩 순서는 프레임별 기반으로 동적으로 결정된다. 특히, 코딩 순서는 프레임에 대하여 얻어진 하나 이상의 특성 또는 통계치에 기초하여 결정된다. 예를 들어, 주어진 프레임에 대하여 선택된 코딩 순서는 프레임에 대한 계수 분산
Figure pct00141
정보를 고려할 수 있다.
양자화 스텝 사이즈가 균일하지 않은 하나의 예에서, 코딩 순서는 증가하는 양자화 스텝 사이즈에 기초하여 결정된다. 둘 이상의 계수가 동일한 양자화 스텝 사이즈를 공유하는 범위에서, 순서는 H.264에서 정의되며 도 10에 도시된 원래 스캐닝 순서에 기초한다. 이제 예시적인 동적 코딩 순서(400)를 도시한 도 11을 참조한다. 이 예에서는, 16개의 양자화 스텝 사이즈가 다음과 같이 결정되었다(첨자는 왼쪽에서 오른쪽으로 그리고 위에서 아래로의 순서를 따른 것이며 코딩 순서가 아님):
Figure pct00142
증가하는 양자화 스텝 사이즈에 기초하여, 그 결과의 코딩 순서가 도 11에 예시되어 있다. 이 예에서, 가장 작은 양자화 스텝 사이즈는 계수 1 및 3에 대하여 지정된 0.8125이다. 이들은 동일한 스텝 사이즈를 갖기 때문에, 1이 3 전에 스캐닝된다는 원래 스캐닝 순서에 의존하여 대립이 해소된다. 다음 스텝 사이즈는 계수 2, 6 및 7에 의해 공유되는 1.25이다. 원래 스캐닝 순서에서 2가 6 전에 스캐닝되고 6이 7 전에 스캐닝된다는 것을 제공하며, 이들 3개의 계수가 순서 2, 6, 7로 스캐닝됨을 의미한다. 다음 스텝 사이즈는 계수 4에만 적용 가능한 1.75이며, 그리하여 다음이 된다. 이 방식으로 처리될 때, 예에 대한 결과적인 스캐닝 순서는, 1, 3, 2, 6, 7, 4, 5, 9, 8, 10, 13, 14, 11, 12, 15, 16이다.
양자화 스텝 사이즈
Figure pct00143
이외에 또는 이 대신에 코딩 순서를 선택하는데 있어서 다른 요인에 의존할 수 있다.
이제 비디오 인코딩 프로세스에서 양자화된 잔차를 엔트로피 코딩하는 방법(450)을 흐름도 형태로 도시한 도 12를 참조한다. 방법(450)은 양자화된 잔차
Figure pct00144
의 발생으로 단계 452에서 시작된다. 단계 454에서, 양자화된 잔차는 증가하는 양자화 스텝 사이즈에 기초하여 정렬된다. 다르게 말하자면, 가장 작은 양자화 스텝 사이즈를 사용하여 양자화된 것인 양자화된 잔차가 순서에서 처음으로 위치되며, 가장 큰 양자화 스텝 사이즈를 사용하여 양자화된 것이 순서에서 마지막으로 위치된다. 양자화된 잔차 중의 임의의 것이 동일한 양자화 스텝 사이즈를 사용하여 양자화되었다면, 단계 456에서 이들은 H.264와 같은 적용 가능한 인코딩 표준에 의해 규정된 원래 스캐닝 순서의 그들 상대 위치에 기초하여 정렬된다. 순서가 결정되었다면, 단계 458에서, 양자화된 잔차는 결정된 순서를 사용하여 엔트로피 인코딩된다. 이제 엔트로피 인코더(26)가 코딩 순서 모듈(500)을 포함하는 것을 도시한 도 9를 또한 참조한다. 코딩 순서 모듈(500)은 예를 들어 도 12에 도시된 방법(450)을 사용하여 주어진 프레임에 대하여 코딩 순서를 선택하거나 결정한다.
유효 맵 및 마지막 계수 플래그에 대한 컨텍스트가, 위치 정보를 사용하는 것 이외에도, 3개의 예측 방향, 즉 왼쪽-오른쪽, 위-아래, 및 전방향성(omni-direction)을 포함하도록 개선된다. I4x4 매크로블록에 대하여, 왼쪽에서 오른쪽으로의 방향은 예측 모드 1, 6, 8이 부여되며, 위에서 아래로의 방향은 예측 모드 0, 3, 5, 및 7에 대한 것이다. 다른 모드는 전방향성으로 간주된다. I16x16 매크로블록에 대하여, 왼쪽에서 오른쪽으로의 방향은 예측 모드 1이 부여되고, 위에서 아래로의 방향은 예측 모드 0에 대한 것이며, 다른 예측 모드는 전방향성으로 취급된다.
소위 레벨로도 불리는 비제로(non-zero) 양자화 출력을 코딩하기 위한 컨텍스트는 다음과 같이 정의되는 둘 이상의 파라미터
Figure pct00145
Figure pct00146
의 조합을 포함하도록 수정된다:
Figure pct00147
여기에서,
Figure pct00148
는 크기가 1보다 더 큰 레벨의 수이고,
Figure pct00149
은 모든 이전에 코딩된 레벨의 최대 크기이다. 결국, 주어진 컨텍스트에 대한 레벨은 멀티 심볼 산술 코딩 엔진을 사용하여 코딩된다.
균형이 맞춰진 왜곡 양자화의 전개는 컨텍스트 모델링의 재방문의 이유가 되지만, 수정된 인코딩 방법의 사용은 균형이 맞춰진 왜곡 양자화가 채용되는 실시예에 한정되지 않는다. 수정된 컨텍스트 모델링이 다른 상황에도 적용될 수 있다는 것을 알 것이다. 당해 기술 분야에서의 숙련자라면, 수정된 컨텍스트 모델링이 특히 양자화 스텝 사이즈가 균일하지 않은 임의의 인코딩 프로세스에 적용 가능하지만 그 상황에 한정되는 것은 아님을 이해할 것이다.
인코딩된 데이터는 컴퓨터 판독가능한 매체 상에 저장되거나 인코딩된 데이터의 비트스트림으로서 출력될 수 있다. 인코딩된 데이터는 예를 들어 유선 또는 무선 통신 네트워크를 통해 원격 장소에 전송될 수 있다.
상기 기재된 엔트로피 인코딩 방법에 따라 인코딩된 비디오 또는 이미지 데이터는 대응하는 디코딩 방법을 적용하도록 구성된 디코더에 의해 디코딩된다. 인코더가 상기 기재된 바와 같은 적응적 코딩 순서를 사용한 경우, 디코더는 그 다음의 역양자화 및 역 변환을 위해 정확한 순서로 데이터를 디코딩하고 양자화된 변환 도메인 계수를 정렬하기 위하여 코딩 순서를 알 필요가 있다. 따라서, 디코더는 데이터를 코딩하는 코딩 순서를 결정한다. 프레임 기반으로 인코더에 의해 코딩 순서가 결정된 경우에, 디코더는 프레임별 기반으로 데이터를 디코딩하는데 동일한 코딩 순서를 식별/결정하여 적용한다.
디코더가 코딩 순서를 결정하기 위하여, 코딩 순서에 관련한 일부 데이터, 즉 코딩 순서 데이터를 인코더로부터 수신한다. 하나의 예시적인 실시예에서, 인코더는 인코딩된 데이터의 비트스트림에 코딩 순서 데이터를 추가하거나 포함시킨다. 다른 예시적인 실시예에서, 코딩 순서 데이터는 비트스트림 외의 사이드 정보로서 보내지지만, 이 실시예에서 디코더는 또한, 인코딩된 데이터의 정확한 위치에 대한 코딩 순서를 결정하는 것에 코딩 순서 데이터를 적용하도록, 디코더가 인코딩된 데이터에 코딩 순서 데이터를 상관시킬 수 있는 상관 정보를 수신한다. 첫 번째 실시예의 경우에, 코딩 순서 데이터는 인코딩된 데이터의 각각의 프레임 또는 슬라이스를 보내기 전에 비트스트림 내에 포함될 수 있고, 그리하여 디코더가 비트스트림으로부터 코딩 순서 데이터를 복구하거나 추출할 수 있으며 대응하는 프레임 또는 슬라이스에 대하여 인코딩된 데이터의 엔트로피 디코딩을 시도하기 전에 적용 가능한 코딩 순서를 결정할 수 있다.
코딩 순서 데이터는 코딩 순서 자체를 지정하는 정보를 포함할 수 있다. 예를 들어, 코딩 순서 데이터는 4x4 변환 블록의 16개 계수가 인코딩된 순서가 포워드 방향인지 아니면 백워드 방향인지 나타내는 데이터를 포함할 수 있다. 다른 예에서, 코딩 순서 데이터는 디코더가 코딩 순서를 결정할 수 있는 데이터를 포함할 수 있다. 이러한 예에서, 디코더는 코딩 순서를 결정하는데 있어서 인코더에 의해 수행된 것과 동일한 프로세스를 수행한다.
인코더가 각자의 계수에 적용된 양자화 스텝 사이즈에 기초하여 코딩 순서를 결정하는 하나의 예시적인 실시예에서, 코딩 순서 데이터는 각자의 계수에 대한 양자화 스텝 사이즈 정보를 포함할 수 있다. 이에 관련하여, 코딩 순서 데이터는 디코더가 양자화된 변환 도메인 계수를 정확하게 역양자화할 수 있도록 비트스트림에서 보내지는 양자화 스텝 사이즈 데이터이다. 디코더는 양자화 스텝 사이즈 정보를 사용하여 양자화된 변환 도메인 계수를 엔트로피 인코딩하는데 사용된 코딩 순서를 결정한다.
이제 인코딩된 데이터를 디코딩하는 방법(500)을 도시한 도 15를 참조한다. 인코딩된 데이터는 프레임별로 또는 슬라이스별로 동적으로 결정된 코딩 순서를 사용하여 엔트로피 인코딩된 양자화된 변환 도메인 계수를 포함한다. 인코딩된 데이터는 인코딩된 데이터로 삽입된 코딩 순서를 포함한다. 단계 502에서, 디코더는 인코딩된 데이터를 수신한다. 이는 통신 시스템을 통하여 인코딩된 데이터의 수신의 결과로서 일어날 수 있다. 인코딩된 데이터는 유선 또는 무선 네트워크를 통해 전송된 비트스트림의 형태로 이루어질 수 있다. 다른 예에서, 인코딩된 데이터는 자기 또는 광 디스크와 같은 컴퓨터 판독가능한 매체 상에 저장될 수 있고, 단계 502에서 디코더에 의해 매체로부터 판독될 수 있다.
단계 504에서, 디코더는 인코딩된 데이터로부터 코딩 순서 데이터를 추출한다. 코딩 순서 데이터는 일부 실시예에서 양자화된 변환 도메인 계수를 엔트로피 인코딩하는데 사용된 코딩 순서를 상세하게 열거한 명시적 정보를 포함할 수 있다. 다른 실시예에서, 코딩 순서 데이터는 디코더가 사용된 코딩 순서를 결정할 수 있는 데이터를 포함할 수 있다. 예를 들어, 코딩 순서 데이터는 양자화된 변환 도메인 계수의 블록의 각자의 계수에 대하여 사용된 양자화 스텝 사이즈를 포함할 수 있고, 코딩 순서는 양자화 스텝 사이즈에 기초하여 결정될 수 있다. 하나의 경우에, 코딩 순서는 증가하는 양자화 스텝 사이즈에 기초할 수 있다. 단계 506은 코딩 순서를 결정하는 동작을 나타낸다.
단계 508에서, 단계 506에서 결정된 코딩 순서에 의해 지정된 순서로 양자화된 변환 도메인 계수를 복구하도록 디코더는 인코딩된 데이터를 엔트로피 디코딩하기를 진행한다.
단계 510에서, 디코더는, 예를 들어 재구성된 잔차 데이터를 생성하도록 양자화된 변환 도메인 계수를 역양자화하고 역 변환하고, 필요한 바에 따라 공간 또는 움직임 보상을 적용하고, 재구성된 프레임/슬라이스를 출력함으로써, 비디오에 대한 픽셀 데이터의 재구성을 완료하도록 진행한다.
이제 인코더(900)의 예시적인 실시예의 단순화된 블록도를 도시한 도 13을 참조한다. 인코더(900)는 프로세서(902), 메모리(904), 및 인코딩 애플리케이션(906)을 포함한다. 인코딩 애플리케이션(906)은 여기에 기재된 바와 같은 동작 또는 단계를 수행하도록 프로세서(902)를 구성하기 위한 명령어를 포함하며 메모리(904)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 인코딩 애플리케이션(906)은 H.264 표준을 사용하여 인코딩된 비디오 비트스트림을 인코딩 및 출력할 수 있다. 인코딩 애플리케이션(906)은 피드백 루프 내에서 인트라코딩된 블록의 인루프 디블로킹을 수행하도록 구성된 인루프 디블로킹 컴포넌트 또는 모듈(908)을 포함할 수 있다. 인코딩 애플리케이션(906)은 여기에 기재된 바와 같이 프레임별 기반으로 계수에 대한 양자화 스텝 사이즈를 적응적으로 선택하도록 구성된 적응적 양자화기 모듈(300)을 포함할 수 있다. 인코딩 애플리케이션(906)은 여기에 기재된 바와 같이 수정된 컨텍스트 모델을 사용하여 양자화된 잔차 및 기타 데이터를 엔트로피 인코딩하도록 구성된 엔트로피 인코더(26)를 포함할 수 있다. 인코딩 애플리케이션(906), 디블로킹 모듈(908), 적응적 양자화기 모듈(300) 및/또는 엔트로피 인코더(26)가 컴팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능한 매체 상에 저장될 수 있다는 것을 이해할 것이다.
이제 디코더(1000)의 예시적인 실시예의 단순화된 블록도를 도시한 도 14를 또한 참조한다. 디코더(1000)는 프로세서(1002), 메모리(1004), 및 디코딩 애플리케이션(1006)을 포함한다. 디코딩 애플리케이션(1006)은 여기에 기재된 바와 같은 단계 또는 동작을 수행하도록 프로세서(1002)를 구성하기 위한 명령어를 포함하며 메모리(1004)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있다. 예를 들어, 디코딩 애플리케이션(1006)은 H.264 표준을 사용하여 인코딩된 비디오 비트스트림을 디코딩하고 디스플레이할 수 있다. 디코딩 애플리케이션(1006)은 인트라코딩된 블록의 인루프 디블로킹을 수행하도록 구성된 인루프 디블로킹 컴포넌트 또는 모듈(1008)을 포함할 수 있다. 디코딩 애플리케이션(1006) 및/또는 디블로킹 모듈(1008)은 컴팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독가능한 매체 상에 저장될 수 있다는 것을 이해할 것이다.
본 발명에 따른 디코더 및/또는 인코더는 서버, 적합하게 프로그래밍된 범용 컴퓨터, 셋톱 텔레비전 박스, 텔레비전 브로드캐스트 장비 및 이동 디바이스를 비한정적으로 포함한 다수의 컴퓨팅 디바이스로 구현될 수 있다는 것을 알 것이다. 디코더 또는 인코더는 여기에 기재된 기능을 수행하도록 프로세서를 구성하기 위한 명령어를 포함하는 소프트웨어에 의해 구현될 수 있다. 소프트웨어 명령어는 CD, RAM, ROM, 플래시 메모리 등을 포함한 임의의 적합한 컴퓨터 판독가능한 메모리 상에 저장될 수 있다.
여기에 기재된 인코더 및 인코더를 구성하기 위해 기재된 방법/프로세스를 구현하는 모듈, 루틴, 프로세스, 쓰레드 또는 기타 소프트웨어 컴포넌트가 표준 컴퓨터 프로그래밍 기술 및 언어를 사용하여 달성될 수 있다는 것을 이해할 것이다. 본 발명은 특정 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 관습, 데이터 구조, 기타 이러한 구현 세부사항에 한정되지 않는다. 당해 기술 분야에서의 숙련자라면, 기재된 프로세스가 ASIC의 일부로서 휘발성 또는 비휘발성 메모리에 저장된 컴퓨터 실행 코드의 일부로서 구현될 수 있다는 것을 알 수 있을 것이다.
기재된 실시예의 특정 적응 및 수정이 이루어질 수 있다. 따라서, 상기 설명된 실시예는 제한적이 아니라 예시적인 것으로 간주되어야 한다.
20: 코딩 모드 선택기 21: 공간 예측기
22: 변환 프로세서 24: 양자화기
26: 엔트로피 인코더 28: 역양자화기
30: 역변환 프로세서 31: 디블로킹 컴포넌트
32: 디블로킹 프로세서 36: 움직임 예측기
34: 프레임 스토어 52: 엔트로피 디코더
54: 역양자화기 56: 역변환 프로세서
57: 공간 보상기 58: 프레임 버퍼
60: 디블로킹 프로세서 62: 움직임 보상기
64: 디블로킹 모듈 300: 적응적 양자화기 모듈
302: 분산 계산기 304: 양자화 왜곡 계산기
306: 양자화 스텝 사이즈 선택기 500: 코딩 순서 모듈

Claims (12)

  1. 인코딩된 데이터를 디코딩하는 방법에 있어서, 상기 인코딩된 데이터는 복수의 픽셀 블록을 갖는 인트라코딩된(intra-coded) 이미지를 포함하고, 상기 방법은,
    상기 인코딩된 데이터로부터 상기 이미지의 블록에 대한 픽셀 데이터를 재구성하고;
    상기 블록에 대하여 재구성된 픽셀 데이터에 디블로킹(deblocking) 필터를 적용하여 디블로킹 재구성된 블록을 생성하고;
    상기 디블로킹 재구성된 블록으로부터의 적어도 하나의 디블로킹된 픽셀에 기초한 예측 계산 및 상기 인코딩된 데이터로부터 상기 이미지의 후속 블록에 대한 픽셀 데이터를 재구성하는 것을 포함하는, 인코딩된 데이터의 디코딩 방법.
  2. 청구항 1에 있어서, 상기 디블로킹 필터를 적용하는 것은 상기 블록의 왼쪽 및 상단 경계에 상기 디블로킹 필터를 적용하는 것을 포함하는 것인, 인코딩된 데이터의 디코딩 방법.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 디블로킹 필터를 적용하는 것은, 상기 블록의 적어도 하나의 경계의 경계 강도를 평가하고, 상기 경계 강도 평가에 기초하여 상기 디블로킹 필터를 구성하는 것을 포함하는 것인, 인코딩된 데이터의 디코딩 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 데이터의 비트스트림으로서 상기 인코딩된 데이터를 수신하는 것을 더 포함하며, 상기 블록에 대한 픽셀 데이터를 재구성하는 것은, 상기 비트스트림을 엔트로피 디코딩하여 상기 블록에 대한 양자화된 데이터를 획득하고, 상기 양자화된 데이터를 역양자화하여 상기 블록에 대한 변환 도메인 계수를 획득하고, 상기 변환 도메인 계수를 역 변환하여 상기 블록에 대한 잔차를 획득하고, 인접 블록의 적어도 하나의 픽셀 및 잔차로부터 상기 블록에 대한 픽셀 데이터를 발생시키는 것을 포함하는 것인, 인코딩된 데이터의 디코딩 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 상기 블록은 4x4 픽셀인 것인, 인코딩된 데이터의 디코딩 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서, 상기 이미지는 비디오의 프레임을 포함하는 것인, 인코딩된 데이터의 디코딩 방법.
  7. 코딩 순서로 복수의 블록을 갖는 이미지를 블록 기반 인코딩하는 방법에 있어서, 상기 이미지 내의 블록의 재구성은 상기 이미지 내에서 상기 코딩 순서로 후속 블록을 인코딩할 때 예측 계산에 사용되며, 상기 방법은,
    상기 블록의 디블로킹이 후속 블록에 대한 예측 계산 전에 일어나도록 인트라코딩 루프 내에서 상기 이미지의 재구성된 블록에 디블로킹 필터를 적용하는 것을 포함하는, 이미지의 블록 기반 인코딩 방법.
  8. 청구항 7에 있어서, 상기 디블로킹 필터를 적용하는 것은 디블로킹된 블록을 생성하도록 상기 재구성된 블록의 왼쪽 및 상단 경계에만 상기 디블로킹 필터를 적용하는 것을 포함하는 것인, 이미지의 블록 기반 인코딩 방법.
  9. 청구항 8에 있어서, 상기 디블로킹된 블록으로부터의 적어도 하나의 디블로킹된 픽셀에 기초하여 상기 이미지의 후속 블록을 인코딩하기 위해 잔차 데이터(residual data)를 계산하는 것을 더 포함하는, 이미지의 블록 기반 인코딩 방법.
  10. 복수의 블록을 갖는 이미지를 인코딩하는 인코더에 있어서,
    프로세서;
    상기 이미지를 저장하는 메모리; 및
    청구항 7 내지 청구항 9 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하기 위한 명령어를 포함하며 상기 메모리에 저장된 인코딩 애플리케이션을 포함하는 인코더.
  11. 청구항 10에 있어서, 상기 인코딩 애플리케이션은,
    변환 도메인 계수를 발생시키기 위해 상기 블록에 스펙트럼 변환(spectral transformation)을 적용하도록 구성된 변환 프로세서;
    양자화된 계수를 생성하기 위해 상기 변환 도메인 계수의 각각을 양자화하도록 구성된 양자화기; 및
    인코딩된 이미지 데이터의 비트스트림을 발생시키기 위해 상기 양자화된 계수를 인코딩하도록 구성된 엔트로피 인코더를 더 포함하는 것인 인코더.
  12. 인코딩된 데이터를 디코딩하는 디코더에 있어서, 상기 인코딩된 데이터는 복수의 픽셀 블록을 갖는 인트라코딩된 이미지를 포함하고, 상기 디코더는,
    프로세서;
    메모리; 및
    청구항 1 내지 청구항 6 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서를 구성하기 위한 명령어를 포함하며 상기 메모리에 저장된 디코딩 애플리케이션을 포함하는 디코더.
KR1020117021057A 2009-02-13 2010-02-12 인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹 KR101260157B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15242309P 2009-02-13 2009-02-13
US61/152,423 2009-02-13
PCT/CA2010/000180 WO2010091504A1 (en) 2009-02-13 2010-02-12 In-loop deblocking for intra-coded images or frames

Publications (2)

Publication Number Publication Date
KR20110113774A true KR20110113774A (ko) 2011-10-18
KR101260157B1 KR101260157B1 (ko) 2013-05-06

Family

ID=42559897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021057A KR101260157B1 (ko) 2009-02-13 2010-02-12 인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹

Country Status (6)

Country Link
US (2) US8311109B2 (ko)
EP (1) EP2396771A4 (ko)
JP (1) JP5303659B2 (ko)
KR (1) KR101260157B1 (ko)
CA (1) CA2751802A1 (ko)
WO (1) WO2010091504A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021194155A1 (ko) * 2020-03-25 2021-09-30 엘지전자 주식회사 경계 강도를 결정하여 디블록킹 필터링을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
TWI375470B (en) * 2007-08-03 2012-10-21 Via Tech Inc Method for determining boundary strength
KR20100095992A (ko) 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
US8792740B2 (en) * 2010-02-02 2014-07-29 Humax Holdings Co., Ltd. Image encoding/decoding method for rate-distortion optimization and apparatus for performing same
KR20110123651A (ko) * 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
US8976856B2 (en) 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
JP5884313B2 (ja) * 2011-01-18 2016-03-15 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び記録媒体
US8442338B2 (en) * 2011-02-28 2013-05-14 Sony Corporation Visually optimized quantization
US9008180B2 (en) 2011-04-21 2015-04-14 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering
EP3471412B8 (en) 2011-04-25 2020-12-23 LG Electronics Inc. Intra-prediction method for video decoding and video encoding
EP2774376B1 (en) 2011-11-03 2019-03-20 InterDigital Madison Patent Holdings Video encoding and decoding based on image refinement
CN103222266B (zh) * 2011-11-21 2018-02-23 松下知识产权经营株式会社 图像处理装置以及图像处理方法
US9749633B2 (en) * 2012-01-19 2017-08-29 Vid Scale, Inc. System and method of video coding quantization and dynamic range control
US9008184B2 (en) 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
WO2021118296A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 루프 필터링을 제어하는 영상 코딩 장치 및 방법
US20240283959A1 (en) * 2023-02-16 2024-08-22 Tencent America LLC Extended quantizer with finer step size

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2737931B1 (fr) * 1995-08-17 1998-10-02 Siemens Ag Procede destine au traitement de blocs d'images decodes d'un procede de codage d'images a base de blocs
US5993541A (en) * 1996-07-31 1999-11-30 Geo Centers Inc Process for nucleation of ceramics and product thereof
FI117534B (fi) * 2000-01-21 2006-11-15 Nokia Corp Menetelmä digitaalisten kuvien suodattamiseksi ja suodatin
US6968091B2 (en) * 2001-09-18 2005-11-22 Emc Corporation Insertion of noise for reduction in the number of bits for variable-length coding of (run, level) pairs
DE10158658A1 (de) * 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren zur gerichteten Prädiktion eines Bildblockes
US6807317B2 (en) * 2002-10-25 2004-10-19 Motorola, Inc. Method and decoder system for reducing quantization effects of a decoded image
AU2004217221B2 (en) * 2003-03-03 2009-09-03 Agency For Science, Technology And Research Fast mode decision algorithm for intra prediction for advanced video coding
US20060029135A1 (en) * 2004-06-22 2006-02-09 Minhua Zhou In-loop deblocking filter
US20060002468A1 (en) * 2004-06-22 2006-01-05 Minhua Zhou Frame storage method
KR100624426B1 (ko) * 2004-07-06 2006-09-19 삼성전자주식회사 파이프 라인 방식의 복호화 장치 및 방법과, 이 장치를제어하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수있는 기록 매체
US8116379B2 (en) 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
JP4501631B2 (ja) * 2004-10-26 2010-07-14 日本電気株式会社 画像符号化装置及び方法、画像符号化装置のコンピュータ・プログラム、並びに携帯端末
JP4317814B2 (ja) * 2004-12-06 2009-08-19 株式会社ルネサステクノロジ 動画像情報の符号化装置及び符号化方法
US8311119B2 (en) 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
EP1879401A4 (en) * 2005-05-03 2012-03-28 Panasonic Corp DYNAMIC IMAGE ENCODING METHOD, DYNAMIC IMAGE DECODING METHOD, AND DEVICE THEREFOR
US7242328B1 (en) * 2006-02-03 2007-07-10 Cisco Technology, Inc. Variable length coding for sparse coefficients
US7873224B2 (en) * 2006-03-01 2011-01-18 Qualcomm Incorporated Enhanced image/video quality through artifact evaluation
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8275045B2 (en) * 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
WO2008111744A1 (en) * 2007-03-13 2008-09-18 Industry-Academia Cooperation Group Of Sejong University Method and apparatus for encoding and decoding image in pixel domain
EP1983759A1 (en) * 2007-04-19 2008-10-22 Matsushita Electric Industrial Co., Ltd. Estimation of separable adaptive interpolation filters for hybrid video coding
JP4650461B2 (ja) * 2007-07-13 2011-03-16 ソニー株式会社 符号化装置、符号化方法、プログラム、及び記録媒体
JP2011501555A (ja) * 2007-10-16 2011-01-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号処理方法及び装置
US8576906B2 (en) * 2008-01-08 2013-11-05 Telefonaktiebolaget L M Ericsson (Publ) Adaptive filtering
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021194155A1 (ko) * 2020-03-25 2021-09-30 엘지전자 주식회사 경계 강도를 결정하여 디블록킹 필터링을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11818341B2 (en) 2020-03-25 2023-11-14 Lg Electronics Inc. Method and apparatus for encoding/decoding image, for performing deblocking filtering by determining boundary strength, and method for transmitting bitstream

Also Published As

Publication number Publication date
US8311109B2 (en) 2012-11-13
JP2012517752A (ja) 2012-08-02
CA2751802A1 (en) 2010-08-19
JP5303659B2 (ja) 2013-10-02
US20100208806A1 (en) 2010-08-19
EP2396771A4 (en) 2012-12-12
WO2010091504A1 (en) 2010-08-19
EP2396771A1 (en) 2011-12-21
KR101260157B1 (ko) 2013-05-06
US20120093220A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
KR101260157B1 (ko) 인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹
KR101394536B1 (ko) 이미지 처리에서 픽셀-도메인 왜곡 분포의 균형이 맞춰진 적응적 양자화
US20100208804A1 (en) Modified entropy encoding for images and videos
EP3026910B1 (en) Perceptual image and video coding
US9282329B2 (en) Methods and devices for data compression using offset-based adaptive reconstruction levels
KR101506372B1 (ko) 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들
US20090238271A1 (en) Apparatus and method for encoding and decoding using alternative converter accoding to the correlation of residual signal
US9787989B2 (en) Intra-coding mode-dependent quantization tuning
KR20110001990A (ko) 영상 데이터의 인 루프 필터링 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치
US8582639B2 (en) Methods and devices for data compression using adaptive reconstruction levels
EP2830308B1 (en) Intra-coding mode-dependent quantization tuning
EP2405656B1 (en) Methods and devices for data compression using adaptive reconstruction levels
Jiang et al. A rate-distortion based quantization level adjustment algorithm in block-based video compression

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160411

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee