KR102267792B1 - 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩 - Google Patents

이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩 Download PDF

Info

Publication number
KR102267792B1
KR102267792B1 KR1020190131196A KR20190131196A KR102267792B1 KR 102267792 B1 KR102267792 B1 KR 102267792B1 KR 1020190131196 A KR1020190131196 A KR 1020190131196A KR 20190131196 A KR20190131196 A KR 20190131196A KR 102267792 B1 KR102267792 B1 KR 102267792B1
Authority
KR
South Korea
Prior art keywords
encoding mode
sad
block
image block
circuit
Prior art date
Application number
KR1020190131196A
Other languages
English (en)
Other versions
KR20200094071A (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 KR20200094071A publication Critical patent/KR20200094071A/ko
Application granted granted Critical
Publication of KR102267792B1 publication Critical patent/KR102267792B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

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

Abstract

이미지 블록에 관한 픽셀-도메인 전처리 동작(pixel-domain pre-processing operation)들에 기초한 이미지 블록 코딩을 위한 임베디드 코덱(EBC) 회로가 제공된다. EBC 회로는, 제1 이미지 블록을 저장하는 메모리와, 픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터의 제1 SAD(sum of absolute differences; 절대 차이들의 합)를 계산하고, 열 방향 잔차 값들의 제2 예측 블록으로부터의 제2 SAD를 계산하는 인코더 회로를 포함한다. 인코더 회로는, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대해, 최적의 잔차 예측 유형으로서 잔차 예측 유형 세트로부터 한 잔차 예측 유형을, 및 최적의 양자화 파라미터들로서 양자화 파라미터 세트를 선택한다. 인코더 회로는, 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여, 각각, 제1 인코딩 모드 및 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성한다.

Description

이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩{IMAGE BLOCK CODING BASED ON PIXEL-DOMAIN PRE-PROCESSING OPERATIONS ON IMAGE BLOCK}
관련출원에 대한 상호-참조/참조에 의한 포함
없음
발명의 분야
본 개시내용의 다양한 실시예는 임베디드 코덱 회로(embedded codec circuitry)에서의 이미지 및 비디오 압축 및 압축해제 기술에 관한 것이다. 더 구체적으로, 본 개시내용의 다양한 실시예는 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 임베디드 코덱(EBC) 회로 및 방법에 관한 것이다.
최근 이미지 압축을 위한 촬영 기술의 발전으로 인해, 시각적 품질의 현저한 저하없이 및/또는 메모리 이용률에 영향을 미치지 않고 상이한 해상도들(예를 들어, Full High Definition(HD) 4K 해상도 및 8K 해상도)을 갖는 이미지들을 저장할 수 있는 이미지 캡처 및 디스플레이 디바이스에서의 온칩 코덱에 대한 수요가 증가하게 되었다. 통상적으로, 종래의 이미지 인코딩 회로는, 상이한 코딩 방식들에 의해 이미지 블록을 인코딩하고, 또한, 인코딩된 이미지 블록의 복수의 비트스트림으로부터 상이한 이미지 블록들을 완전하게 재구성하도록 구성될 수 있다. 이러한 동작들은, 인코딩된 이미지 블록으로부터 재구성된 이미지 블록이 최소한의 압축 아티팩트를 갖도록, 이미지 블록을 인코딩하기 위한 최적의 모드를 결정하기 위해 수행될 수 있다. 재구성된 이미지 블록들은 원본 이미지 블록과 비교되어 최적의 코딩 모드를 선택할 수 있다. 최적의 코딩 모드를 발견하기 위한 각각의 이미지 블록의 반복된 인코딩, 재구성 및 비교의 악순환은, 과도한 컴퓨팅 자원, 메모리 자원의 이용을 초래할 수 있고, 나아가, 이미지 블록의 인코딩 동작에서 지연을 야기할 수 있다.
종래의 및 전통적인 접근법의 추가적인 제한 및 단점은, 설명되는 시스템과 도면을 참조한 본 출원의 나머지 부분에 개시되는 본 개시내용의 일부 양태들과의 비교를 통해 본 기술분야의 통상의 기술자에게 명백해질 것이다.
청구항들에서 더욱 완전하게 개시되는 바와 같이, 실질적으로, 도면들 중 적어도 하나에 도시되거나 및/또는 이와 관련하여 설명된 바와 같이, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 임베디드 코덱(EBC) 회로 및 방법이 제공된다.
본 개시내용의 이들 및 다른 피쳐들 및 이점들은, 전체적으로 유사한 참조 번호는 유사한 부분을 나타내는 첨부된 도면들과 함께, 본 개시내용의 이하의 상세한 설명의 검토로부터 이해될 수 있을 것이다.
도 1은, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 임베디드 코덱(EBC) 회로 및 기타의 회로들을 갖는 예시적인 미디어 디바이스를 도시하는 블록도이다.
도 2는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 다양한 주변 컴포넌트들을 갖는 도 1의 EBC 회로를 도시하는 블록도이다.
도 3a 및 도 3b는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한, 도 2의 EBC 회로에 의한 이미지 블록 코딩을 위한 예시적인 시나리오를 집합적으로 도시한다.
도 4a 및 도 4b는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 예시적인 동작을 나타내는 플로차트를 집합적으로 도시한다.
본 개시내용의 다양한 실시예는, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 방법 및 임베디드 코덱(EBC) 회로에서 발견될 수 있다. 개시된 EBC 회로는, 이미지 블록의 변환-도메인 코딩 단계 이후에 획득된 비트스트림으로부터 이미지 블록들의 완전한 재구성없이 이미지 블록들을 인코딩하는 최상의(즉, 최적의) 모드를 선택하는 솔루션을 제공한다. 종래 기술은 이미지 블록을 인코딩할 최상의 모드를 선택하기 위해 전체 이미지 블록을 재구성해야 하기 때문에, 개시된 EBC 회로는 원본 이미지 블록의 (변환-도메인 코딩 단계 이전의) 픽셀-도메인 전처리 단계에서 이미지 블록을 인코딩할 최상의 모드를 결정한다. 개시된 EBC 회로는 또한, 픽셀-도메인 전처리 단계에서 최적의 양자화 파라미터 값 및 잔차 예측 유형(예를 들어, DC 전용 또는 모든 주파수 잔차)의 선택을 다룬다. 따라서, 개시된 EBC 회로는 이미지 블록의 시각적으로 손실없는 이미지 품질을 여전히 유지하면서 최상의 모드를 선택한다. 픽셀-도메인 전처리 단계는 컴퓨팅 자원 및 메모리 자원의 최소한의 및 효율적인 이용을 가능케하여 종래의 기술보다 현저하게 빠른 처리 시간으로 상이한 이미지 블록들에 관한 인코딩 동작을 수행할 수 있다.
도 1은, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 임베디드 코덱(EBC) 회로 및 기타의 회로들을 갖는 예시적인 미디어 디바이스를 도시하는 블록도이다. 도 1을 참조하면, 프로세서(106), EBC 회로(108), 및 외부 메모리(110)를 포함하는 미디어 디바이스(102)가 도시되어 있다. 일부 실시예들에서, 이미지 센서(104)는, 프로세서(106), EBC 회로(108), 및 외부 메모리(110)에 인터페이스될 수 있다. 이미지 센서(104), 프로세서(106), EBC 회로(108) 및 외부 메모리(110)를 상호접속하는 시스템 버스(112)가 더 도시되어 있다.
미디어 디바이스(102)는, 압축되지 않은 원시 이미지 및/또는 비디오를 인코딩된(즉, 압축된) 이미지 및/또는 비디오로서 외부 메모리(110)에 저장하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 미디어 디바이스(102)는 또한, 미디어 콘텐츠(예를 들어, 인코딩된 이미지 및/또는 비디오)의 인코딩 뿐만 아니라 디코딩과, 나아가, 디코딩된 미디어 콘텐츠의 미디어 디바이스(102)에서의 재생을 관리하도록 구성될 수 있다. 미디어 디바이스(102)는, 미디어 디바이스(102)에서 미디어 콘텐츠의 오프라인(네트워크없는) 인코딩을 위한 기타의 계산 회로와 함께, (EBC 회로(108) 등의) 전용 온칩 코덱 회로, 및 (압축되지 않은 또는 인코딩되지 않은) 이미지의 저장을 위한 외부 메모리(110)를 포함할 수 있다. 일부 실시예들에서, 미디어 디바이스(102)는 또한, 압축되지 않은 파일 포멧인 원시 이미지 파일 포멧으로 이미지를 캡처하기 위해 (이미지 센서(104) 등의) 하나 이상의 이미지 센서를 포함할 수 있다. 이러한 경우에, 캡처된 이미지는 미디어 디바이스(102)의 EBC 회로(108)에 의해 인코딩될 수 있다. 미디어 디바이스(102)의 예는, 디지털 카메라, 휴대형 통신 디바이스(예를 들어, 랩탑, 스마트폰, 태블릿, 패블릿, 스마트 와치, 스마트 안경 등), 미디어 서버, 워크스테이션, 데스크탑 컴퓨터, 및 증강 현실/가상 현실/혼합 현실(AR/VR/MR) 디바이스를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
도 1에 도시되지 않았지만, 미디어 디바이스(102)는 또한, 통신 네트워크(미도시)를 통한, 다른 주변 디바이스 또는 피어-접속된 디바이스들과의, 인코딩된 및/또는 원시 비압축 이미지 및/또는 비디오의 공유를 관리하도록 구성될 수 있는 네트워크 인터페이스를 포함할 수 있다. 네트워크 인터페이스 및 통신 네트워크의 상세한 설명은 간결성을 위해 본 개시내용에서 생략되었다.
이미지 센서(104)는 이미지 센서(104)의 시야(FOV; field of view)에 있는 장면의 원시 비압축 이미지 또는 원시 비압축 이미지 시퀀스를 캡처하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 이미지 센서(104)는, CMOS(complementary-metal-oxide semiconductor) 센서 등의, 능동 픽셀 센서(active pixel sensor)로서 구현될 수 있다. 이러한 구현에서, 이미지 센서(104)는, CMOS 센서의 센서 코어 상의 픽셀들의 각각의 행 또는 열(1차원(1D) 픽셀 어레이 또는 1D 이미지 블록)의 프로그레시브 스캔(라인별)을 실행하도록 구성될 수 있다. 프로그레시브 스캔은 수직 스캔(열별) 또는 수평 스캔(행별)일 수 있다. 일부 실시예들에서, 이미지 센서(104)는, 능동 픽셀 센서 대신에, (CCD(charged coupled device) 센서, 오버샘플링된 2진 이미지 센서, 평면 푸리에 캡처 어레이(PFCA), 배면 조사형(BSI 또는 BI) 센서 등의) 수동 픽셀 센서로서 구현될 수 있다. 도시되지는 않았지만, 이미지 센서(104)는 또한, 이미지 센서(104)로부터의 이미지 데이터에 따라 동작하도록 구성된 전문화된 마이크로프로세서(또는 마이크로제어기), 프레임 버퍼에 저장된 이미지를 처리하기 위한 GPU(graphic processing unit), 및/또는 이미지 센서(104)와 통합된 메모리를 포함할 수 있다.
프로세서(106)는, 전용 메모리(예를 들어, 외부 메모리(110) 또는 EBC 회로(108)의 온칩 메모리)에 저장된 명령어 세트를 실행하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 프로세서(106)는 본 기술분야에 공지된 다수의 프로세서 기술들에 기초하여 구현될 수 있다. 프로세서(106)의 예는, GPU(Graphical Processing Unit), (전문화된 이미지 코프로세서 등의) 프로세서를 위한 코프로세서, 전문화된 디지털 신호 프로세서, 중앙 처리 유닛(CPU), x86 기반의 프로세서, x64 기반의 프로세서, RISC(Reduced Instruction Set Computing) 프로세서, ASIC(Application-Specific Integrated Circuit) 프로세서, CISC(Complex Instruction Set Computing) 프로세서를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
EBC 회로(108)는, 제1 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초하여 선택된 특정한 코딩 모드에 기초해, 제1 이미지 블록(예를 들어, 특정한 압축 인자에 따라 8x4 또는 16x8 이미지 블록)을 인코딩하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. EBC 회로(108)는 또한, EBC 회로(108)에서 수신된 명령어에 응답하여, 인코딩된 제1 이미지 블록을 디코딩하도록 구성될 수 있다. 제1 이미지 블록은, 입력 이미지 프레임(즉, 원시 비압축 이미지 프레임), 또는 이미지 센서(104)에 의한 행 방향 또는 열 방향 스캔에 후속하여 이미지 센서(104)의 판독 레지스터로부터 직접 회수된 픽셀 어레이(행 또는 열)의 일부일 수 있다. EBC 회로(108)는 또한, 외부 메모리(110)로의 인코딩된 제1 이미지 블록의 비트스트림의 저장을 관리하거나, 전용 통신 네트워크를 통한 다른 미디어 디바이스들로의 인코딩된 제1 이미지 블록의 비트스트림의 전송을 관리할 수 있다.
EBC 회로(108)는 미디어 디바이스(102)의 다른 계산 회로들과 인터페이스하는 전문화된 하드웨어 인코더/디코더로서 구현될 수 있다. 이러한 구현에서, EBC 회로(108)는 특정한 계산 회로에 관한 특정한 폼팩터와 연관될 수 있다. 특정한 계산 회로의 예는, FPGA(Field Programmable Gate Array), PLD(Programmable Logic Devices), ASIC(Application Specific Integrated Circuit), PL-ASIC(Programmable ASIC), ASSP(application specific integrated part), 표준 마이크로프로세서(MPU) 또는 디지털 신호 프로세서(DSP) 기반의 SOC(System-on-Chip)를 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 또 다른 실시예에 따르면, EBC 회로(108)는 또한, EBC 회로(108)의 동작들을 병렬화하기 위해 그래픽 처리 유닛(GPU)과 인터페이스될 수 있다. 역시 또 다른 실시예에 따르면, EBC 회로(108)는, 메모리에 저장된 프로그램가능한 명령어와 미디어 디바이스(102)의 하드웨어 회로 상의 로직 유닛들(또는 프로그램가능한 로직 유닛들)의 조합으로서 구현될 수 있다.
외부 메모리(110)는, (비압축 원시 또는 인코딩된) 입력 이미지 프레임 또는 입력 이미지들의 시퀀스를 저장하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 외부 메모리(110)는 또한, 이미지 센서(104)로부터 회수된 원시 비압축 이미지 블록을 저장하는 이미지 버퍼로서 역할하도록 구성될 수 있다. 추가로, 외부 메모리(110)는 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초하여 선택될 수 있는 (최적의 코딩 모드에 대응하는) 순차적 인코딩/디코딩 방식과 연관된 명령어를 저장할 수 있다. 한 예시적인 실시예에서, 외부 메모리(110)는, EBC 회로(108)와 외부적으로 인터페이스될 수 있는 동적 랜덤 액세스 메모리(DRAM) 회로일 수 있다. 또 다른 예시적인 실시예에서, 외부 메모리(110)는, EBC 회로(108)와 외부적으로 인터페이스될 수 있는 SRAM(static random access memory) 회로일 수 있다. 외부 메모리(110)의 구현의 추가적인 예는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(EEPROM), 하드 디스크 드라이브(HDD), 솔리드-스테이트 드라이브(SSD), CPU 캐시, 또는 보안 디지털(SD) 카드를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
도 1에 도시되지는 않았지만, 미디어 디바이스(102)는, AVC(Advanced Video Codec)/MPEG-4/AVC(Media Experts Group) 또는 H.264, MPEG-4/HEVC 또는 H.265 등을 포함할 수 있는 공지된 코덱 표준을 지원할 수 있고 호환될 수 있는 비디오 코덱을 더 포함할 수 있다. 추가로, 비디오 코덱은, FFmpeg, Xvid, DIVx, VP1-9, Windows Media Codec, FFav 등을 포함할 수 있는 다른 코덱 라이브러리에 의해 지원될 수 있다.
시스템 버스(112)는, 미디어 디바이스(102)의 상이한 컴포넌트들에 대한 데이터 채널 세트(또는 전도성 경로)를 포함할 수 있는 하드웨어 버스일 수 있다. 대안으로서, 시스템 버스(112)는 미디어 디바이스(102)의 상이한 컴포넌트들의 적어도 데이터 포트, 어드레스 포트, 및 제어 신호 포트를 상호접속할 수 있다. 예를 들어, 시스템 버스(112)는, 이미지 센서(104), 프로세서(106), EBC 회로(108), 외부 메모리(110) 및 기타의 회로들을 서로 상호접속할 수 있다. 시스템 버스(112)는, 미디어 디바이스(102)의 상이한 온보드 컴포넌트들 사이의 직렬 데이터 통신 또는 병렬화된 데이터 통신을 용이화하도록 구성될 수 있다. 시스템 버스(112)의 예는, 8 비트 병렬 단일 시스템 버스, 16 비트 병렬 단일 시스템 버스, 32 비트 병렬 단일 시스템 버스, 64 비트 병렬 단일 시스템 버스, 직렬 데이터 버스 등을 포함할 수 있다.
동작시에, 입력 이미지 프레임의 복수의 이미지 블록(예를 들어, 2D 이미지 블록)이 미디어 디바이스(102)의 외부 메모리(110)에 의해 수신될 수 있다. 일부 실시예들에서, 제1 이미지 블록은, (이미지 센서(104) 등의) 온칩 이미지 센서 또는 미디어 디바이스(102)에 접속된 카메라 디바이스로부터 순차적으로 복수의 이미지 블록으로부터 회수될 수 있다. 다른 실시예에서, 복수의 이미지 블록은, 미디어 디바이스(102)의 영구 저장소에 저장되어 있거나, 카메라, 데이터 서버 등의 다른 미디어 저장 디바이스로부터 외부적으로 수신된 비압축 원시 이미지의 논리적 파티션으로부터 회수될 수 있다.
한 실시예에 따르면, EBC 회로(108)는, 외부 메모리(110) 또는 이미지 센서(104)로부터 순차적으로 복수의 이미지 블록으로부터 제1 이미지 블록을 수신하도록 구성될 수 있다. 미디어 디바이스(102)는 또한, 미디어 디바이스(102)의 외부 메모리(110) 등의 메모리의 제1 저장 공간에 제1 이미지 블록을 저장하도록 구성될 수 있다. EBC 회로(108)는, 제1 이미지 블록에 관해 순차적 인코딩 방식을 실행하여 인코딩된 제1 이미지 블록의 비트스트림을 생성하도록 구성될 수 있다. 그러나, 순차적 인코딩 방식을 적용하기 위해, 제1 이미지 블록에 관한 실제의 변환-도메인 인코딩 동작 이전에 전처리 동작의 일부로서 픽셀-도메인에서 최적의 인코딩 모드가 결정될 수 있다. 최적의 인코딩 모드는, 종래 기술에서 구현되는 바와 같은, 상이한 인코딩 모드들에 의해 인코딩된 제1 이미지 블록의 재구성없이 결정될 수 있다. 픽셀 도메인 절대 차이의 합(SAD; Sum of Absolute Differences)는 하드웨어 불편한 역 변환 동작을 요구한다. 그러나, 개시된 방법들은, 각각의 이미지 블록의 재구성이 요구되지 않기 때문에 하드웨어로 구현하기 쉽다.
한 실시예에 따르면, EBC 회로(108)는 입력 이미지 프레임을 복수의 이미지 블록으로 분할하도록 구성될 수 있다. 복수의 이미지 블록 중의 각각의 이미지 블록은 복수의 픽셀 값을 포함할 수 있다. 각각의 이미지 블록의 크기는, "8 x 4 픽셀" 또는 "16 x 4 픽셀" 등의 미리결정된 값에 기초할 수 있다. 각각의 이미지 블록 내의 각각의 픽셀은 또한, 8 비트의 조합 등의, 비트깊이로 표현될 수 있다. EBC 회로(108)는 또한, 픽셀-도메인에서 입력 이미지 프레임의 제1 이미지 블록에 관해 전처리 동작을 실행하도록 구성될 수 있다. 전처리 동작이 실행되어 한 세트의 인코딩 모드들 중에서 한 인코딩 모드를 결정할 수 있고, 여기서, 결정된 인코딩 모드는 요구되는 비트깊이로 제1 이미지 블록을 인코딩하는데 이용될 수 있다. 인코딩 모드 세트는 제1 인코딩 모드 및 제2 인코딩 모드를 포함할 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드는, 각각, 제1 순차적 인코딩 방식 및 제2 순차적 인코딩 방식에 대응할 수 있다. 각각의 순차적 인코딩 방식, 즉, 제1 순차적 인코딩 방식 및 제2 순차적 인코딩 방식은, 순방향 변환 동작(forward transform operation), 양자화 동작(quantization operation), 잔차 예측 동작(residual prediction operation), DPCM 동작, 및 엔트로피 코딩 동작(entropy coding operation) 등의 동작 시퀀스를 포함할 수 있다. 여기서, 순방향 변환의 적용은, 복수의 변환 계수를 생성하기 위한, 제1 이미지 블록의 각각의 행에 관한 1차원 행 이산 코사인 변환(1D 행 DCT)의 적용 또는 제1 이미지 블록의 각각의 열에 관한 1D 열 DCT의 적용에 대응할 수 있다.
일부 실시예들에서, 순방향 변환의 유형은, (정규직교 베이스(orthonormal base) 또는 고유벡터(eigenvector) 패밀리를 포함하는) 정현파 단위 변환 패밀리에 기초할 수 있다. 순방향 변환의 예는, 유형 I-VIII DCT, 유형 I-VIII 이산 사인 변환(DST), 이산 웨이블릿 변환(DWT), 및 듀얼-트리 복합 웨이블릿 변환(DCWT)을 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 유사하게, 엔트로피 코딩 방식은, 가변 길이 코딩(VLC; variable length coding) 방식 또는 상황 적응적 가변 길이 코딩(CAVLC; context adaptive variable length coding) 방식 또는 상황 적응적 2진 산술 코딩(CABAC; context adaptive binary arithmetic coding) 방식 중 하나일 수 있다. VLC 방식의 예는, Lempel-Ziv 코딩, Huffman 코딩, 산술 코딩, exp-Golomb 코딩, Golomb 코딩 및 progressive-Golomb 코딩을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
전처리 동작에서, EBC 회로(108)는, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여 제1 예측 블록을 생성하도록 구성될 수 있다. 유사하게, EBC 회로(108)는 또한, 제1 이미지 블록에 관한 잔차 예측 방식의 열 방향 적용에 기초하여 제2 예측 블록을 생성하도록 구성될 수 있다. 잔차 예측 방식은 : DPCM(Differential Pulse Code Modulation) 방식, 적응적 DPCM 방식, 또는 PCM 방식 중 적어도 하나일 수 있다. EBC 회로(108)는 또한, 제1 이미지 블록의 상이한 잔차 예측 값들로부터 픽셀-도메인에서의 상이한 SAD(sum of absolute difference) 값들을 계산하도록 구성될 수 있다. 더 구체적으로, EBC 회로(108)는 픽셀-도메인에서 행 방향 잔차 값들의 제1 예측 블록으로부터 제1 SAD를, 및 픽셀-도메인에서 열 방향 잔차 값들의 제2 예측 블록으로부터 제2 SAD를 계산하도록 구성될 수 있다. 제1 SAD 및 제2 SAD는, 각각, 행 방향 및 열 방향으로 스캔될 때 제1 이미지 블록의 픽셀 값들의 공간 변화의 측정치를 제공할 수 있다. 일부 실시예들에서, SAD 대신에, 이미지 블록들 사이의 다른 유사성 측정치, 예를 들어, SSD(sum of squared difference)가 본 개시내용의 범위를 제한하지 않고 이용될 수 있다.
EBC 회로(108)는 또한, 한 세트의 인코딩 모드들 중의 각각의 인코딩 모드에 대한 잔차 예측 방식에 대한 파라미터로서, 한 세트의 잔차 예측 유형들 중에서 한 잔차 예측 유형을 선택하도록 구성될 수 있다. 예를 들어, 잔차 예측 방식이 DPCM 방식이라면, 잔차 예측 유형은 모든 주파수 DPCM 또는 직류(DC) 전용 DPCM으로서 선택될 수 있다. 달리 말하면, 제1 인코딩 모드 및 제2 인코딩 모드에서 제1 이미지 블록의 모든 주파수 성분(DC 및 교류(AC)) 레벨에 관해 DPCM 방식을 실행할지 또는 DC 레벨에 관해서만 DPCM을 실행할지가 결정될 수 있다.
EBC 회로(108)는 또한, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 한 세트의 양자화 파라미터들을 선택하도록 구성될 수 있다. 전처리 동작이, 예를 들어, 도 2, 도 3a, 및 도 3b를 참조하여 더 상세하게 설명되었다.
제1 인코딩 모드 및 제2 인코딩 모드에서, 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여, EBC 회로(108)는 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하기 위해 제1 이미지 블록을 별도로 인코딩하도록 구성될 수 있다. 비트스트림 세트로부터의 각각의 비트스트림은 한 세트의 순차적 인코딩 방식들 중의 상이한 순차적 인코딩 방식에 대응할 수 있다. 달리 말하면, 각각의 비트스트림은 상이한 압축 모드에 대응할 수 있고, 여기서 개개의 방식 및 동작의 상이한 파라미터들은 달라질 수 있다. 예를 들어, 제1 인코딩 모드는, 1D 행 DCT 시퀀스, 선택된 양자화 파라미터를 갖는 양자화, (선택된 잔차 예측 유형을 갖는) 잔차 예측 방식, 및 엔트로피 코딩 방식을 포함할 수 있는 제1 순차적 인코딩 방식에 대응할 수 있다. 제2 인코딩 모드는, 1D 열 DCT 시퀀스, 선택된 양자화 파라미터를 갖는 양자화, (선택된 잔차 예측 유형을 갖는) 잔차 예측 방식, 및 엔트로피 코딩 방식을 포함할 수 있는 제2 순차적 인코딩 방식에 대응할 수 있다.
EBC 회로(108)는 비트스트림 세트 중의 각각과 연관된 비트 손실 값을 계산하도록 구성될 수 있다. 한 실시예에 따르면, 비트 손실 값은 비트스트림 세트 중의 각각에 대한 비트 커버리지 값으로부터 계산될 수 있다. 이러한 경우에, 비트 손실 값은, 비트스트림에 대한 총 비트 수로부터 대응하는 비트스트림에 대한 비트 커버리지 값을 뺀 차이일 수 있다. 비트 커버리지 값은, 제1 인코딩 모드 또는 제2 인코딩 모드에서 무손실 인코딩된 제1 이미지 블록 내의 모든 샘플에 대한 비트 수를 나타낼 수 있다. 유사하게, 비트 손실 값은, 손실 방식으로 인코딩된 제1 이미지 블록의 샘플 세트에 대응하는 비트스트림 내의 비트 수를 나타낼 수 있다. 따라서, 비트 커버리지 값 및 비트 손실 값 양쪽 모두는 코딩 품질의 척도를 나타낼 수 있고, 이것은 제1 인코딩 모드 및 제2 인코딩 모드로부터 최적의 인코딩 모드를 결정하는데 이용된다. EBC 회로(108)는, 비트스트림 세트 내의 다른 비트스트림들의 비트 손실 값과 비교하여 최소한의 비트 손실 값을 갖는 비트스트림을 비트스트림 세트로부터 식별하도록 구성될 수 있다. 달리 말하면, 비트스트림 세트로부터, 식별된 비트스트림은 손실 방식으로 인코딩된 (제1 이미지 블록에 대응하는) 최소 개수의 샘플을 갖는 것이다. 식별된 비트스트림은, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나로부터 선택된, 선호되는 인코딩 모드에 대응할 수 있다. 따라서, EBC 회로(108)는, 비트스트림 세트 중의 각각과 연관된 비트 손실 값의 계산에 기초하여, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나를 최적의 인코딩 모드로서 선택하도록 구성될 수 있다.
종래의 인코딩 회로는, 상이한 순차적 인코딩 방식들에 기초하여 인코딩된 제1 이미지 블록의 상이한 비트스트림들로부터 한 세트의 이미지 블록들을 완전하게 재구성해야 할 수도 있다. 따라서, 완전하게 재구성하기 위해, 종래의 인코딩 회로는 상이한 비트스트림들의 전체 세트를 디코딩하고 완전하게 재구성된 제1 세트의 이미지 블록들의 각각을 제1 이미지 블록과 비교해야 할 수 있다. 이것은, 한 인코딩 모드를, 인코딩된 제1 이미지 블록에 대한 최소 압축 아티팩트, 최대 압축 인자, 및 전체 비트깊이에서의 감소를 야기할 수 있는 최적의 인코딩 모드로서 식별하기 위해 이루어질 수 있다. 제1 세트의 이미지 블록들의 완전한 재구성은 계산적으로 자원 집약적 프로세스일 수 있어서, (인코딩/디코딩 시간을 포함한) 계산 시간을 증가시킬 수 있고, 나아가 처리를 위해 더 많은 메모리를 요구할 수 있다. 대조적으로, EBC 회로(108)는 복수의 압축된 비트스트림 각각과 연관된 비트 손실 값의 계산에 기초하여 최적의 인코딩 모드를 식별할 수 있다. 최적의 인코딩 모드는, 제1 이미지 블록의 상이한 비트스트림들로부터 상이한 이미지 블록들을 완전하게 재구성할 필요없이 선택될 수 있다. 픽셀 도메인 절대 차이의 합(SAD; Sum of Absolute Differences)는 전형적으로 하드웨어 불편한 역 변환 동작을 요구한다. 그러나, 개시된 EBC 회로(108)는 전처리 단계로 인해 블록들의 완전한 재구성이 요구되지 않기 때문에 하드웨어로 구현하기 쉽다.
EBC 회로(108)는 또한, 최적의 인코딩 모드에 대응하는 최적의 순차적 인코딩 방식의 적용에 의해 인코딩된 제1 이미지 블록의 비트스트림을 생성하기 위해 제1 이미지 블록을 인코딩하도록 구성될 수 있다. 미디어 디바이스(102)는, 비트스트림을 압축된 제1 이미지 블록의 스트림으로서, 제1 이미지 블록을 저장하는데 요구되는 공간보다 작은 저장 공간에 저장하도록 구성될 수 있다.
한 실시예에 따르면, EBC 회로(108)의 (도 1에 도시되지 않은) EBC 디코더 회로는, 상이한 코딩 테이블들, 예를 들어 엔트로피 코딩 방식들 및 양자화 테이블들에 대한 코딩 테이블들을 미리저장하도록 구성될 수 있다. 따라서, 인코딩된 제1 이미지 블록의 비트스트림은 상이한 코딩 테이블들 및 양자화 테이블들을 포함할 필요가 없을 수 있다. 한 실시예에 따르면, EBC 회로(108)는, 인코딩된 제1 이미지 블록의 비트스트림을 디코딩하기 위해 상이한 디코딩 방식들을 이용할 수 있는 외부 디코더들에 의해 비트스트림이 디코딩될 수 있도록, 인코딩된 이미지 블록의 비트스트림을 생성하도록 구성될 수 있다. 이러한 경우에, EBC 회로(108)는, 인코딩된 제1 이미지 블록의 비트스트림과 연관된 헤더 정보 또는 상이한 메타스트림에서, 상이한 코딩 테이블들(예를 들어, 엔트로피 코딩 방식들을 위한 코딩 테이블들) 및 양자화 테이블들을 추가하도록 구성될 수 있다. 비트스트림에서 이러한 커스텀 테이블 및 양자화 테이블을 추가함으로써, EBC 회로(108)의 출력은 다른 디코더 회로에 의해 디코딩될 수 있다.
한 실시예에 따르면, 인코딩된 제1 이미지 블록의 비트스트림은, 외부 메모리(110) 또는 EBC 회로(108)의 온칩 메모리 등의 메모리에 (2D 이미지 등의) 입력 이미지의 일부로서 저장될 수 있다. 인코딩된 제1 이미지 블록의 비트스트림은 상이한 애플리케이션들에서 복수의 구현을 가질 수 있다. 한 예시적인 구현에서, 프로세서(106)는, 시스템 버스(112)를 통해, 인코딩된 제1 이미지 블록의 비트스트림을, 미디어 디바이스(102)의 시스템 버스(112)와 통신가능하게 결합된(또는 인터페이스된) 디스플레이 회로(예를 들어, 비디오 카드)의 프레임 버퍼(또는 프레임 저장소)에 전송하도록 구성될 수 있다. 프레임 버퍼는 디스플레이 회로에 대한 압축된 프레임 버퍼로서 역할할 수 있다. 미디어 디바이스(102)(또는 (도 1에 도시되지 않은) 디코딩 회로)는, 인코딩된 제1 이미지 블록의 비트스트림을 디코딩하고 또한 활용하여 미디어 디바이스(102)의 디스플레이 스크린 상에 이미지 조각을 디스플레이할 수 있다. 또 다른 예시적인 구현에서, 프로세서(106)는, 미디어 디바이스(102) 내의 비디오 디코더의 디코더 픽처 버퍼(DPB), 이미지 디코더의 버퍼 메모리, 또는 비디오 코덱의 코딩된 픽처 버퍼(CPB) 등의, 디코더 버퍼에, 시스템 버스(112)를 통해, 인코딩된 제1 이미지 블록의 비트스트림을 전송하도록 구성될 수 있다.
한 예시적인 구현에서, 미디어 디바이스(102)는, 디지털 비디오 카메라 또는 디지털 이미지 카메라 등의 카메라일 수 있고, 인코딩된 제1 이미지 블록의 비트스트림은, 카메라의 CMOS 센서로부터 직접 수신되는 픽셀 값들의 2D 어레이에 대응할 수 있다. 특정한 시나리오에서, EBC 회로(108)는 CMOS 센서 회로에서 구현될 수 있다. EBC 회로(108)의 상세한 동작은, 예를 들어, 도 2, 도 3a 및 도 3b에서 더 상세히 설명되었다.
도 2는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 다양한 주변 컴포넌트들을 갖는 도 1의 EBC 회로를 도시하는 블록도이다. 도 2는 도 1의 요소들과 연계하여 설명된다. 도 2를 참조하면, EBC 회로(108)의 블록도(200)가 도시되어 있다. EBC 회로(108)는, 입력/출력(I/O) 인터페이스(202), 온칩 메모리(204), 인코더 회로(206), 및 디코더 회로(208)를 포함할 수 있다. 블록도(200)에서, 시스템 버스(112)를 통해 EBC 회로(108)에 통신가능하게 결합된, 이미지 센서(104), 프로세서(106), 및 외부 메모리(110)가 도시되어 있다. 일부 실시예들에서, 프로세서(106) 및 외부 메모리(110)는, 본 개시내용의 범위로부터 벗어나지 않으면서 EBC 회로(108) 내부에서 구현될 수 있다.
I/O 인터페이스(202)는, 시스템 버스(112)를 통해, 다른 주변 회로들, 예를 들어, 외부 메모리(110), 프로세서(106), 또는 이미지 센서(104)로부터의 통신 데이터의 교환을 용이화하기 위해 복수의 I/O 포트를 관리하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 통신 데이터는, 인코딩된 이미지 블록의 비트스트림, 제어 신호, CPU 명령어 등을 포함할 수 있다. I/O 포트의 구성은, EBC 회로(108)의 명세, 예를 들어 ASIC, FPGA 또는 SoC 칩에서의 물리적 I/O 핀에 의존할 수 있다.
온칩 메모리(204)는, 입력 이미지 프레임의 복수의 이미지 블록을 인코딩하기 위해 EBC 회로(108)의 상이한 컴포넌트들에 의해 이용될 수 있는 상이한 동작 데이터들(예를 들어, 변환-도메인 데이터, 잔차 레벨, 양자화 레벨, 엔트로피 코딩된 비트 등)을 저장하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 온칩 메모리(204)가 저장하도록 구성될 수 있는 동작 데이터의 예는, 인코딩된 제1 이미지 블록의 비트스트림, 변환-도메인 데이터, 양자화되고-변환된 레벨, 양자화되고-변환된 잔차 레벨, 및 1D/2D 이미지 블록을 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 온칩 메모리(204)는, R/W 속도, 메모리 크기, 제조 인자 등의 정의된 메모리 명세로 설계된 특정한 메모리로서 구현될 수 있다. 온칩 메모리(204)의 예는, 정적 랜덤 액세스 메모리(SRAM), 동적 액세스 메모리(DRAM) 및 정적 동적 RAM(SD-RAM)을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
인코더 회로(206)는, 온칩 메모리(204) 또는 외부 메모리(110) 등의 메모리에 저장된 최적의 순차적 인코딩 방식의 적용에 의해, 인코딩된 제1 이미지 블록의 비트스트림을 생성하도록 구성될 수 있는 적절한 로직, 회로, 및 인터페이스를 포함할 수 있다. 최적의 순차적 인코딩 방식은, 제1 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초하여 선택될 수 있는 최적의 인코딩 모드에 대응할 수 있다. 인코더 회로(206)는, 인코딩 동작에서 제1 이미지 블록의 양자화되고-변환된 잔차 레벨들의 블록을 인코딩하는데 이용될 수 있는 비트 수(즉, 샘플 당 비트(bps)에서의 비트깊이)를 감소시키도록 최적화될 수 있다. 바람직한 값으로의 비트깊이에서의 감소는, 제1 이미지 블록에 대한 컴팩트화 효율 및/또는 압축 계수에서의 개선을 야기할 수 있다. 일부 실시예들에서, 인코더 회로(206)는, ASIC, 프로그램가능한 로직 디바이스(PLD), SOC, FPGA, 디지털 신호 프로세서(DSP) 또는 다른 전문화된 회로 중 하나에 기초하여 구현될 수 있는 하드웨어 인코더 칩일 수 있다. 다른 실시예들에서, 인코더 회로(206)는, 하드웨어와 온칩 메모리(204)에 저장된 명령어 세트(예를 들어, VHSIC(Very High Speed Integrated Circuits) 하드웨어 기술 언어(VHDL) 또는 HDL 로직에 기초한 명령어들)의 조합으로서 구현될 수 있다.
디코더 회로(208)는, 비트스트림 내의 헤더 정보에 기초하여 인코딩된 제1 이미지 블록의 비트스트림을 디코딩하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 디코딩 동작에서, 비트스트림은, 비트스트림으로부터 제1 이미지 블록을 재구성하기 위해 디코더 회로(208)에 의해 처리될 수 있다. 디코딩된 제1 이미지 블록은 상당히 감소된 압축 아티팩트를 나타낼 수 있고, 이것은 재구성된 제1 이미지 블록의 개선된 시각적 품질로부터 명백할 수 있다. 디코더 회로(208)는, 디코더 회로(208)가 인코딩된 제1 이미지 블록의 비트스트림을 디코딩하기 위한 기준으로서 역할할 수 있는 미리 저장된 양자화 테이블 및 코딩 테이블을 가질 수 있다. 일부 실시예들에서, 디코더 회로(208)는, ASIC, 프로그램가능한 로직 디바이스(PLD), SOC, FPGA, 디지털 신호 프로세서(DSP) 또는 다른 전문화된 회로 중 하나에 기초하여 구현될 수 있는 하드웨어 인코더 칩일 수 있다. 다른 실시예들에서, 디코더 회로(208)는, 온칩 메모리(204)에서 하드웨어 및 저장된 명령어 세트(예를 들어, VHDL 또는 HDL 로직에 기초한 명령어)의 조합으로서 구현될 수 있다.
동작시에, 프로세서(106)는, 외부 메모리(110)(또는 온칩 메모리(204))에 저장된 입력 이미지 프레임을 복수의 이미지 블록으로 분할하도록 구성될 수 있다. 복수의 이미지 블록 중에서, 제1 이미지 블록은 인코더 회로(206)에 의해 외부 메모리(110)(또는 온칩 메모리(204))로부터 회수될 수 있다. 일부 경우에, 제1 이미지 블록의 회수는 복수의 이미지 블록 중 제1 이미지 블록의 선택에 기초할 수 있다. 인코더 회로(206)는, 최적의 인코딩 모드의 선택 전에 픽셀-도메인에서 입력 이미지 프레임의 제1 이미지 블록에 관한 전처리 동작을 실행하도록 구성될 수 있다. 소정 실시예에서, 제1 이미지 블록은 YCbCr 색 공간에서 표현되고, 여기서, 제1 이미지 블록은, 루마 블록(즉, 휘도 성분), 크로마-U(즉, 색차 청색 차이 성분), 및 크로마-V 블록(즉, 색차 적색 차이 성분)에 의해 표현된다. 이러한 경우에, 인코더 회로(206)는, 픽셀-도메인에서 루마 블록, 크로마-U 블록 및 크로마-V 블록에 대해 별개로 전처리 동작을 실행하도록 구성될 수 있다. 전처리 동작은, (적응적 양자화 방식의 일부로서) 최적의 양자화 파라미터의 선택 및 최적의 잔차 예측 유형(예를 들어, 모든 주파수 DPCM 또는 DC 전용 DPCM)을 야기할 수 있다. 최적의 잔차 예측 유형은, 인코딩된 이미지 블록의 비트스트림에 대한 최소한의 비트 손실 값을 야기할 수 있는 잔차 예측 방식의 파라미터에 대응할 수 있고, 이러한 비트스트림으로부터의 디코딩된 이미지 블록은 최소한의 압축 아티팩트를 동반한 시각적으로 무손실일 수 있다.
전처리 동작 후, 인코더 회로(206)는, 각각 제1 순차적 인코딩 방식 및 제2 순차적 인코딩 방식에 대응할 수 있는, 제1 인코딩 모드 및 제2 인코딩 모드를 통해 제1 이미지 블록에 관한 인코딩 동작을 실행하도록 구성될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드는, 제1 이미지 블록에 관한, 순방향 변환, 양자화, 잔차 예측의 순차적 적용, 및 후속되는 엔트로피 코딩 방식의 적용을 포함할 수 있다. 엔트로피 코딩 방식은, 가변 길이 코딩(VLC; variable length coding) 방식 또는 상황 적응적 가변 길이 코딩(CAVLC; context adaptive variable length coding) 방식 또는 상황 적응적 2진 산술 코딩(CABAC; context adaptive binary arithmetic coding) 방식 중 하나일 수 있다. VLC 방식의 예는, Lempel-Ziv 코딩, Huffman 코딩, 산술 코딩, exp-Golomb 코딩, Golomb 코딩 및 progressive-Golomb 코딩을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
순방향 변환의 유형, 양자화 파라미터, 및 잔차 예측 유형은, 제1 인코딩 모드와 제2 인코딩 모드 사이에서 변할 수 있다. 인코더 회로(206)는 또한, 제1 인코딩 모드 및 제2 인코딩 모드에 의해 생성된 비트스트림들로부터의 비트 손실 값에 기초하여, 제1 인코딩 모드와 제2 인코딩 모드 중 하나로부터 최적의 인코딩 모드를 선택하도록 구성될 수 있다. 전처리 동작은 본 명세서에서 상세하게 설명되었다.
전처리 동작에서, 인코더 회로(206)는, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여 제1 예측 블록을 생성하도록 구성될 수 있다. 인코더 회로(206)는 또한, 제1 이미지 블록에 관한 잔차 예측 방식의 열 방향 적용에 기초하여 제2 예측 블록을 생성하도록 구성될 수 있다. 잔차 예측 방식은 : DPCM(Differential Pulse Code Modulation) 방식, 적응적 DPCM 방식, 또는 PCM 방식 중 적어도 하나일 수 있다.
예시적인 실시예에서, 제1 예측 블록은 잔차 픽셀 값들의 수평 DPCM 블록에 대응할 수 있고 제2 예측 블록은 잔차 픽셀 값들의 수직 DPCM 블록에 대응할 수 있다. 제1 예측 블록은, 제1 이미지 블록의 각각의 행의 픽셀들 내의 연속된 픽셀 값들의 각각의 쌍 사이의 차이에 기초하여 생성될 수 있다. 유사하게, 제2 예측 블록은 제1 이미지 블록의 각각의 열의 픽셀들 내의 연속된 픽셀 값들의 각각의 쌍 사이의 차이에 기초하여 생성될 수 있다.
인코더 회로(206)는 또한, 이미지 블록 내의 대응하는 픽셀 값에 기초하여, 제1 예측 블록 및 제2 예측 블록의 특정한 잔차 값을 설정하도록 구성될 수 있다. 예를 들어, 모든 청색 픽셀에 대한 DPCM 잔차 값들은, 수평 예측 블록 및 수직 예측 블록에서 "0"으로 설정될 수 있다. 인코더 회로(206)는 또한, 픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터 제1 SAD를, 및 열 방향 잔차 값들의 제2 예측 블록으로부터 제2 SAD를 계산하도록 구성될 수 있다. 제1 예측 블록 및 제2 예측 블록은 제1 이미지 블록에 대응할 수 있다. 제1 SAD 및 제2 SAD는, 제1 예측 블록 및 제2 예측 블록에서의 차이(즉, 픽셀-도메인에서의 잔차 값)의 절대 합을 나타낼 수 있다. 또한, 제1 SAD 및 제2 SAD는, 상이한 스캐닝 방향들(또는 스캔 순서들), 예를 들어 좌측에서 우측으로의 행 방향 수평 스캔 또는 상단에서 하단으로의 열 방향 수직 스캔을 따라 더 강한 엣지의 관점에서 입력 이미지 블록의 공간 복잡성의 척도를 나타낼 수 있다.
인코더 회로(206)는 또한, 제1 이미지 블록에 관해 제1 인코딩 모드 및 제2 인코딩 모드에서 적용될 수 있는 잔차 예측 방식에 대한 최적의 파라미터를 결정하도록 구성될 수 있다. 최적의 파라미터는, 잔차 예측 방식에 기초하여 처리될 수 있는 양자화되고-변환된 레벨들의 일부를 명시할 수 있는 특정 잔차 예측 유형 파라미터를 포함할 수 있다. 인코더 회로(206)는, 잔차 예측 유형 세트로부터 한 잔차 예측 유형을 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서 선택하도록 구성될 수 있다. 잔차 예측 유형 세트는, DC 전용 DPCM 유형 및 모든 주파수 DPCM 유형을 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 최적의 잔차 예측 유형은, 인코딩된 이미지 블록의 비트스트림에 대한 최소한의 비트 손실 값을 야기할 수 있는 잔차 예측 방식의 파라미터에 대응할 수 있고, 이러한 비트스트림으로부터의 디코딩된 이미지 블록은 최소한의 압축 아티팩트를 동반한 시각적으로 무손실일 수 있다. 잔차 예측 유형의 선택은, 각각, 제1 인코딩 모드 및 제2 인코딩 모드에서 명시된 제1 유형의 순방향 변환 및 제2 유형의 순방향 변환 등의 순방향 변환의 유형에 의존할 수 있다. 그 후, 잔차 예측 유형의 선택은 계산된 제1 SAD 및 계산된 제2 SAD에 기초할 수 있다.
한 예시적인 실시예에서, 제1 유형의 순방향 변환은 제1 인코딩 모드에 대한 1D 열 DCT일 수 있다. 인코더 회로(206)는 또한, 제1 인코딩 모드에 대해, 계산된 제1 SAD가 계산된 제2 SAD보다 크거나 같은지를 체크하도록 구성될 수 있다. 잔차 예측 유형은 계산된 제1 SAD가 계산된 제2 SAD보다 크거나 같을 때 모든 주파수 DPCM 유형일 수 있다. 그렇지 않고, 계산된 제1 SAD가 계산된 제2 SAD보다 작을 때 잔차 예측 유형은 DC 전용 DPCM 유형일 수 있다.
DC 전용 DPCM 유형에서, 인코더 회로(206)는 DPCM 방식을 제1 이미지 블록에 대한 DC 양자화되고-변환된 레벨에만 적용하도록 구성될 수 있다. 나머지 AC 양자화되고-변환된 잔차 레벨은 DPCM 방식의 적용 후에 영향을 받지 않을 수 있다. 유사하게, 모든 주파수 DPCM 유형에서, (DC 및 AC 레벨을 포함한) 모든 양자화되고-변환된 잔차 레벨은 DPCM 방식에 종속될 수 있다.
한 예시적인 실시예에서, 제2 유형의 순방향 변환은 제2 인코딩 모드에 대한 1D 행 DCT일 수 있다. 이러한 경우에, 인코더 회로(206)는, 루마 블록 및 크로마 블록 쌍에 대한 특정한 비트깊이에 따라 제1 이미지 블록의 루마 블록 및 크로마 블록 쌍(즉, 크로마-U 및 크로마-V 성분)에 대한 오프셋 파라미터를 결정하도록 구성될 수 있다. 특정한 비트깊이는 인코딩된 루마 또는 크로마 블록에 대한 타겟 비트 깊이일 수 있다. 오프셋 파라미터는 크로마 블록 값들로부터 루마 블록 값들의 오프셋을 나타낼 수 있는 적응적 오프셋 값에 대응할 수 있다. 오프셋 파라미터의 값은 또한, 루마 블록 및 크로마 블록 쌍에 대한 타겟 비트깊이에 기초하여 추가로 결정될 수 있다. 오프셋 파라미터의 값은 타겟 비트깊이에 상관없이 크로마 블록 쌍에 대해 "0"으로 초기화될 수 있고, 오프셋 파라미터의 값은 루마 블록에 대해 0이 아닌 값일 수 있다.
상이한 타겟 비트깊이들에 대한 오프셋 파라미터를 위한 상이한 값들의 예는 다음과 같이 표 1에 주어져 있다 :
Figure 112019107721585-pat00001
표 1: 상이한 블록 유형들에 대한 오프셋 값들
표 1에서, 오프셋 파라미터의 값은 타겟 비트깊이에 관계없이 크로마 블록 쌍에 대해 "0"이다. 루마 블록에 대한 0이 아닌 값은 "4bps"(샘플 당 비트)의 비트깊이의 경우 "35"이고 "6bps"의 비트깊이의 경우 "75"이다. 여기서, 원래의 비트깊이는 제1 이미지 블록의 색차 성분 또는 루마 성분을 나타내는데 이용되는 비트 수를 나타낸다. 타겟 비트깊이는, 선호되는 비트 예산 내에서 원하는 압축 비율을 달성하기 위해 동일한 색차 성분 또는 루마 성분을 인코딩하는데 요구될 수 있는 비트 수를 나타낸다.
인코더 회로(206)는 또한, 제2 인코딩 모드에 대해, 계산된 제1 SAD가 계산된 제2 SAD와 결정된 오프셋 파라미터의 합보다 작거나 같은지를 체크하도록 구성될 수 있다. 한 예시적인 실시예에서, 잔차 예측 유형은, 계산된 제1 SAD가 계산된 제2 SAD와 결정된 오프셋 파라미터의 합보다 작거나 같을 때 모든 주파수 DPCM 유형일 수 있다. 그렇지 않고, 계산된 제1 SAD가 계산된 제2 SAD와 결정된 오프셋 파라미터의 합보다 클 때 잔차 예측 유형은 DC 전용 DPCM 유형일 수 있다.
인코더 회로(206)는 또한, 계산된 제1 SAD와 계산된 제2 SAD의 비교에 기초하여 최소 SAD 값을 결정하도록 구성될 수 있다. 그 후, 결정된 최소 SAD 값이 임계값보다 작은지가 체크될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트의 선택은, 결정된 최소 SAD 값이 임계값보다 작은지를 결정하기 위한 체크에 기초할 수 있다. 임계값은 블록 유형(즉, 루마 성분 및 크로마 성분에 대해 상이함) 및 타겟 비트깊이에 기초하여 달라질 수 있다.
양자화 파라미터 세트의 선택을 위한 상이한 블록 유형들에 대한 상이한 임계값들의 예는 다음과 같이 표 2에 주어진다 :
Figure 112019107721585-pat00002
표 2 : 상이한 블록 유형들에 대한 임계값들
표 2에서, 타겟 비트깊이 "4 bps" 및 "6 bps"와 루마의 블록 유형에 대한 임계값은 "525"로 설정되고, 타겟 비트깊이 "4 bps" 및 "6bps"와 크로마의 블록 유형에 대한 임계값은 각각 "250" 및 "300"으로 설정된다.
인코더 회로(206)는, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 양자화 파라미터 세트를 선택하도록 구성될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트는, 최소 SAD 값과 임계값의 비교에 기초하여 선택될 수 있다. 양자화 파라미터의 특정한 값은 또한, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 DCT 유형, 블록 유형, 및 타겟 비트깊이로부터 추가로 결정될 수 있다. 상이한 타겟 비트깊이들 및 상이한 블록 유형들에 대한 상이한 세트들의 양자화 파라미터들의 예는 다음과 같이 표 3에 주어진다 :
Figure 112019107721585-pat00003
표 3 : 상이한 타겟 비트깊이들 및 상이한 블록 유형들에 대한 상이한 세트들의 양자화 파라미터들
표 3으로부터, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 양자화 파라미터 세트는 표 3의 4개의 주어진 양자화 파라미터(QN0, QN1, QN2 및 QN3) 중 3개의 상이한 양자화 파라미터의 상이한 조합들을 포함할 수 있다. 예를 들어, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 최소 SAD가 임계값보다 작을 때, 양자화 파라미터 세트는, 한 예에서, (a) QN0, QN1 및 QN2의 조합; 또는 (b) QN1, QN2 및 QN3의 조합으로부터 선택될 수 있다. 양자화 파라미터의 특정한 값은 또한, 표 3에 주어진 바와 같이, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 DCT 유형, 블록 유형, 및 타겟 비트깊이로부터 추가로 결정될 수 있다.
제1 SAD 및 제2 SAD의 계산 및 잔차 예측 유형 및 양자화 파라미터 세트의 선택은, 픽셀-도메인에서 제1 이미지 블록과 연관된 전처리 동작에 대응한다. 전처리 동작은 인코딩 동작 이전에 실행되며, 여기서, 상이한 순차적 인코딩 방식들이 변환-도메인에서 제1 이미지 블록에 적용된다. 여기서, 제1 이미지 블록에 관한 상이한 인코딩 모드들을 통한 상이한 순차적 인코딩 방식들의 적용이 설명된다.
전처리 동작 후, 일부 실시예들에서, 인코더 회로(206)는 또한, 제1 인코딩 모드에서 제1 이미지 블록에 제1 순차적 인코딩 방식을 적용하여 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제1 비트스트림을 생성하도록 구성될 수 있다. 제1 비트스트림은, 제1 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다. 제1 순차적 인코딩 방식은, 제1 유형의 순방향 변환(예를 들어, 1D 행 DCT), 양자화, 잔차 예측(예를 들어, DPCM 방식), 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다. 또한, 인코더 회로(206)는, 제2 인코딩 모드에서, 제1 이미지 블록에 제2 순차적 인코딩 방식을 적용하여 인코딩된 제1 이미지 블록의 비트스트림 세트 중의 제2 비트스트림을 생성하도록 구성될 수 있다. 제2 비트스트림은, 제2 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다. 제2 순차적 인코딩 방식은, 제2 유형의 순방향 변환(예를 들어, 1D 열 DCT), 양자화, 잔차 예측(예를 들어, DPCM 방식), 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다.
제1 인코딩 모드 및 제2 인코딩 모드로부터 최상의 인코딩 모드를 선택하기 위해, 인코더 회로(206)는 또한, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들을 계산하도록 구성될 수 있다. 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들은 각각 제1 인코딩 모드 및 제2 인코딩 모드에 대해 계산될 수 있다. 한 실시예에 따르면, 비트 손실 값은 비트스트림 세트 중의 각각에 대한 비트 커버리지 값으로부터 계산될 수 있다. 이러한 경우에, 비트 손실 값은, 비트스트림에 대한 총 비트 수로부터 대응하는 비트스트림에 대한 비트 커버리지 값을 뺀 차이일 수 있다. 비트 커버리지 값은, 제1 인코딩 모드 또는 제2 인코딩 모드에서 무손실 인코딩된 제1 이미지 블록 내의 모든 샘플에 대한 비트 수를 나타낼 수 있다. 유사하게, 비트 손실 값은, 손실 방식으로 인코딩된 제1 이미지 블록의 샘플 세트에 대응하는 비트스트림 내의 비트 수를 나타낼 수 있다. 따라서, 비트 커버리지 값 및 비트 손실 값 양쪽 모두는 코딩 품질의 척도를 나타낼 수 있고, 이것은 제1 인코딩 모드 및 제2 인코딩 모드로부터 최적의 인코딩 모드를 결정하는데 이용된다.
한 실시예에 따르면, 인코더 회로(206)는, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들을 스케일링하도록 구성될 수 있다. 스케일링은, 제1 인코딩 모드에 대한 비트 손실 값들과 제2 인코딩 모드에 대한 비트 손실 값들 사이의 비교가 정규화된 스케일로 이루어질 있도록 보장하기 위해 수행될 수 있다. 더 구체적으로, 제1 이미지 블록에 대한 입력 비트깊이가 제1 인코딩 모드 및 제2 인코딩 모드에 대해 동일할 때에도, (엔트로피 코딩 단계 이후) 인코딩된 제1 이미지 블록에 대한 동작 비트깊이는 제1 인코딩 모드와 제2 인코딩 모드에 관해 상이할 수 있다(또는 상이하지 않을 수 있다). 예를 들어, 샘플 당 "8" 비트(bps)의 입력 비트깊이에 대해, 제1 인코딩 모드 및 제2 인코딩 모드를 통해 인코딩된 제1 이미지 블록에 관한 동작 비트깊이는 각각 "6 bps"및 "4 bps"일 수 있다. 따라서, 제1 인코딩 모드 및 제2 인코딩 모드를 통해, 인코딩된 제1 이미지 블록의 모든 샘플은 각각 "6 비트" 및 "4 비트"로 표현될 수 있다. 공평한 비교를 위해, 인코더 회로(206)는, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들을 스케일링하도록 구성될 수 있다.
그 후, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나는 인코더 회로(206)에 의해 제1 이미지 블록에 대한 최상의 인코딩 모드로서 선택될 수 있다. 최상의 인코딩 모드는, 이미지 블록이 최소한의 비트 손실 값으로 인코딩될 수 있고 인코딩된 이미지 블록으로부터의 이미지 블록의 재구성/디코딩이 시각적으로 손실없는 이미지 블록의 생성으로 이어질 수 있는 인코딩 모드에 대응할 수 있다. 선택은, 계산된 제1 세트의 비트 손실 값들 및 계산된 제2 세트의 비트 손실 값들에 기초하여 이루어질 수 있다. 달리 말하면, 총 비트 손실 값이 가장 작은 인코딩 모드가 최상의 인코딩 모드로서 선택된다. 인코더 회로(206)는 또한, 최상의 인코딩 모드를 통해, 제1 이미지 블록에 최적의 순차적 인코딩 방식을 적용하여 인코딩된 이미지 블록의 비트스트림을 생성하도록 구성될 수 있다. 도 1 및 도 2에 기술된 바와 같이, EBC 회로(108)에 의해 실행되는 기능 및/또는 동작은, 예를 들어, 도 3a 및 도 3b에 더 상세히 설명되었다.
도 3a 및 도 3b는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한, 도 2의 EBC 회로에 의한 이미지 블록 코딩을 위한 예시적인 시나리오를 집합적으로 도시한다. 도 3a 및 도 3b는, 도 1 및 도 2의 요소들과 연계하여 설명된다.
304에서, 전처리 동작은 픽셀 도메인에서 입력 이미지 프레임(302)의 제1 이미지 블록(302A)에 관해 실행될 수 있다. 인코더 회로(206)는, 제1 이미지 블록(302A)을 인코딩된 제1 이미지 블록의 비트스트림으로 인코딩하기 위한 최적의 인코딩 모드로서 제1 인코딩 모드 및 제2 인코딩 모드로부터 한 인코딩 모드를 선택하기 위해 전처리 동작을 실행하도록 구성될 수 있다. 각각의 인코딩 모드는, 순방향 변환 동작, 양자화 동작, 잔차 예측 동작(예를 들어, DPCM 동작), 및 엔트로피 코딩 동작을 포함할 수도 있다.
306A에서, 제1 이미지 블록(302A)의 제1 변환 블록이 생성될 수 있다. 인코더 회로(206)는, 제1 이미지 블록(302A)에 관한 (1D 행 DCT 등의) 제1 유형의 순방향 변환의 적용에 의해, 제1 이미지 블록(302A)으로부터 제1 변환 블록을 생성하도록 구성될 수 있다.
306B에서, 제1 이미지 블록(302A)의 제2 변환 블록이 생성될 수 있다. 인코더 회로(206)는, 제1 이미지 블록(302A)에 관한 (1D 열 DCT 등의) 제2 유형의 순방향 변환의 적용에 의해, 제1 이미지 블록(302A)으로부터 제2 변환 블록을 생성하도록 구성될 수 있다.
308에서, 제1 변환 블록 및 제2 변환 블록이 양자화될 수 있다. 인코더 회로(206)는, 제1 변환 블록 및 제2 변환 블록을 양자화하여 양자화되고-변환된 레벨의 제1 블록 및 양자화되고-변환된 레벨의 제2 블록을 생성하도록 구성될 수 있다. 양자화는, 제1 인코딩 모드 및 제2 인코딩 모드에 대해 결정된 양자화 파라미터 세트 중의 각각에 기초하여 수행될 수 있다. 308A, 308B 및 308C에서의 양자화 동작은, 306A에서의 행 DCT 변환의 적용 후에 획득된 변환 블록에 관해 실행될 수 있다. 인코더 회로(206)는, 제2 유형의 순방향 변환에 대해 결정된 제2 세트의 양자화 파라미터들 각각에 기초하여, 제2 세트의 양자화된 변환 블록들을 생성하기 위해 제2 변환 블록을 양자화하도록 구성될 수 있다. 308D, 308E, 및 308F에서의 양자화 동작은, 308A에서의 열 DCT 변환의 적용 후에 획득된 변환 블록에 관해 실행될 수 있다.
310에서, 양자화되고-변환된 레벨들의 제1 블록 및 양자화되고-변환된 레벨들의 제2 블록은 양자화되고-변환된 잔차 레벨들의 제1 블록 및 양자화되고-변환된 잔차 레벨들의 제2 블록으로 변환될 수 있다. 변환은, 양자화되고-변환된 레벨들의 제1 블록 및 양자화되고-변환된 레벨들의 제2 블록에 최적의 DPCM 방식을 적용함으로써 야기될 수 있다. 인코더 회로(206)는, 양자화되고-변환된 레벨들의 제1 블록 및 양자화되고-변환된 레벨들의 제2 블록에 최적의 DPCM 방식을 적용하여 양자화되고-변환된 레벨들의 제1 블록 및 양자화되고-변환된 레벨들의 제2 블록을 생성하도록 구성될 수 있다. DPCM 동작의 적용은, 양자화되고-변환된 레벨들의 제1 블록에 관해 310A, 310B 및 310C에서, 및 양자화되고-변환된 레벨들의 제2 블록에 관해 310D, 310E 및 310F에서 실행될 수 있다.
312에서, 복수의 픽셀-도메인 잔차 값은 제1 이미지 블록(302A)에 관한 PCM 방식의 적용에 기초하여 계산될 수 있다. 인코더 회로(206)는, 제1 이미지 블록(302A)에 관한 PCM 방식의 적용에 기초하여 복수의 픽셀-도메인 잔차 값을 계산하도록 구성될 수 있다.
314에서, 양자화되고-변환된 잔차 레벨의 제1 블록 및 양자화되고-변환된 잔차 레벨의 제2 블록은 엔트로피 인코딩될 수 있다. 인코더 회로(206)는, 양자화되고-변환된 잔차 레벨들의 제1 블록 및 양자화되고-변환된 잔차 레벨들의 제2 블록을 엔트로피 인코딩하여 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하도록 구성될 수 있다.
제1 비트스트림은, 314A, 314B, 및 314C에서 양자화되고-변환된 잔차 레벨들의 제1 블록에 관한 엔트로피 코딩 방식의 적용에 기초하여 생성될 수 있다. 유사하게, 제2 비트스트림은, 314D, 314E, 및 314F에서 양자화되고-변환된 잔차 레벨들의 제2 블록에 관한 엔트로피 코딩 방식의 적용에 기초하여 생성될 수 있다. 엔트로피 코딩 방식은, 가변 길이 코딩(VLC; variable length coding) 방식 또는 상황 적응적 가변 길이 코딩(CAVLC; context adaptive variable length coding) 방식 또는 상황 적응적 2진 산술 코딩(CABAC; context adaptive binary arithmetic coding) 방식 중 하나일 수 있다. VLC 방식의 예는, Lempel-Ziv 코딩, Huffman 코딩, 산술 코딩, exp-Golomb 코딩, Golomb 코딩 및 progressive-Golomb 코딩을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
316에서, 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들이, 각각, 제1 비트스트림 및 제2 비트스트림에 관해 계산될 수 있다. 인코더 회로(206)는, 각각, 제1 비트스트림 및 제2 비트스트림에 대한 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들을 계산하도록 구성될 수 있다.
318에서, 최적의 인코딩 모드가 제1 인코딩 모드 및 제2 인코딩 모드로부터 선택된다. 인코더 회로(206)는, 도 1 및 도 2에서 논의된 바와 같이, 제1 비트스트림 및 제2 비트스트림 각각의 비트 손실 값의 계산에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드로부터 최적의 인코딩 모드를 선택하도록 구성될 수 있다. 최상의 인코딩 모드는, 이미지 블록이 최소한의 비트 손실 값으로 인코딩될 수 있고 인코딩된 이미지 블록으로부터의 이미지 블록의 재구성/디코딩이 시각적으로 손실없는 이미지 블록의 생성으로 이어질 수 있는 인코딩 모드에 대응할 수 있다.
도 4a 및 도 4b는, 본 개시내용의 한 실시예에 따른, 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩을 위한 예시적인 동작을 나타내는 플로차트를 집합적으로 도시한다. 도 4를 참조하면, 플로차트(400)가 도시되어 있다. 플로차트(400)는, 예를 들어, 도 1, 도 2, 도 3a 및 도 3b와 연계하여 설명된다. EBC 회로(108)에서 구현된 동작들은 402에서 시작하여 404로 진행한다.
404에서, 입력 이미지 프레임은, 서버, 외부 디바이스 또는 이미지 센서(104)로부터 수신될 수 있다. EBC 회로(108)는, 서버, 외부 디바이스, 또는 이미지 센서(104)로부터 입력 이미지 프레임을 수신하도록 구성될 수 있다. 예를 들어, 입력 이미지 프레임은 비디오의 이미지 프레임일 수 있다. 소정 시나리오에서, 입력 이미지 프레임은 미디어 디바이스(102)와 연관된 이미지 캡처 디바이스에 의해 캡처된 이미지일 수 있다.
406에서, 입력 이미지 프레임이 저장될 수 있다. 온칩 메모리(204) 또는 외부 메모리(110)는, 도 1에서 논의된 바와 같이, 입력 이미지 프레임을 저장하도록 구성될 수 있다.
408에서, 입력 이미지 프레임은 복수의 이미지 블록으로 분할될 수 있고, 이들 각각은 복수의 픽셀 값을 포함한다. EBC 회로(108)는, 도 1에서 논의된 바와 같이, 입력 이미지 프레임을 복수의 이미지 블록들로 분할하도록 구성될 수 있다.
410에서, 복수의 이미지 블록 중 제1 이미지 블록이 저장될 수 있다. 온칩 메모리(204) 또는 외부 메모리(110)는, 복수의 이미지 블록 중 제1 이미지 블록을 저장하도록 구성될 수 있다.
412에서, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여 전처리 동작에서 제1 예측 블록이 생성될 수 있다. 인코더 회로(206)는, 전처리 동작에서, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여, 전처리 동작에서 제1 예측 블록을 생성하도록 구성될 수 있다.
414에서, 제1 이미지 블록에 관한 잔차 예측 방식의 열 방향 적용에 기초하여 전처리 동작에서 제2 예측 블록이 생성될 수 있다. 인코더 회로(206)는, 전처리 동작에서, 제1 이미지 블록에 관한 잔차 예측 방식의 열 방향 적용에 기초하여, 전처리 동작에서 제2 예측 블록을 생성하도록 구성될 수 있다.
416에서, 행 방향 잔차 값들의 제1 예측 블록으로부터의 제1 SAD 및 열 방향 잔차 값들의 제2 예측 블록으로부터의 제2 SAD가 픽셀-도메인에서 계산될 수 있다. 인코더 회로(206)는, 픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터 제1 SAD를, 및 열 방향 잔차 값들의 제2 예측 블록으로부터 제2 SAD를 계산하도록 구성될 수 있다.
418에서, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서, 잔차 예측 유형 세트로부터 한 잔차 예측 유형이 선택될 수 있다. 인코더 회로(206)는, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여, 잔차 예측 유형 세트로부터 한 잔차 예측 유형을 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서 선택하도록 구성될 수 있다. 최적의 잔차 예측 유형은, 인코딩된 이미지 블록의 비트스트림에 대한 최소한의 비트 손실 값을 야기할 수 있는 잔차 예측 방식의 파라미터에 대응할 수 있고, 이러한 비트스트림으로부터의 디코딩된 이미지 블록은 최소한의 압축 아티팩트를 동반한 시각적으로 무손실일 수 있다.
420에서, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 한 세트의 양자화 파라미터들이 선택될 수 있다. 인코더 회로(206)는, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 한 세트의 양자화 파라미터들을 선택하도록 구성될 수 있다.
422에서, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트가 생성될 수 있다. 인코더 회로(206)는, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하도록 구성될 수 있다.
424에서, 제1 인코딩 모드에 대한 제1 세트의 비트 손실 값들 및 제2 인코딩 모드에 대한 제2 세트의 비트 손실 값들은 제1 인코딩된 이미지 블록의 비트스트림들로부터 계산될 수 있다. 인코더 회로(206)는, 제1 인코딩된 이미지 블록의 비트스트림들로부터 제1 인코딩 모드에 대한 제1 세트의 비트 손실 값들 및 제2 인코딩 모드에 대한 제2 세트의 비트 손실 값들을 계산하도록 구성될 수 있다.
426에서, 계산된 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들에 기초하여, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나가, 제1 이미지 블록에 대한 최상의 인코딩 모드로서 선택될 수 있다. 인코더 회로(206)는, 계산된 제1 세트의 비트 손실 값들 및 제2 세트의 비트 손실 값들에 기초하여, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나를 제1 이미지 블록에 대한 최상의 인코딩 모드로서 선택하도록 구성될 수 있다.
428에서, 선택된 최적의 인코딩 모드에서 순차적 인코딩 방식의 적용에 의해 제1 이미지 블록이 인코딩되어 인코딩된 제1 이미지 블록의 비트스트림을 획득할 수 있다. 인코더 회로(206)는, 선택된 최적의 인코딩 모드에서 순차적 인코딩 방식의 적용에 의해 제1 이미지 블록을 인코딩하여 인코딩된 제1 이미지 블록의 비트스트림을 획득하도록 구성될 수 있다. 제어는 종료로 간다.
본 개시내용의 다양한 실시예는, 디지털 이미지 데이터를 압축하기 위해 머신 및/또는 컴퓨터에 의해 실행가능한 적어도 하나의 코드 섹션을 갖고 있는 머신 코드 및/또는 컴퓨터 프로그램이 저장되어 있는, 비일시적인 컴퓨터 판독가능한 매체 및/또는 저장 매체, 및/또는 비일시적 머신 판독가능한 매체 및/또는 저장 매체를 제공할 수 있다. 적어도 하나의 코드 섹션은, 머신 및/또는 컴퓨터로 하여금 입력 이미지 프레임의 복수의 이미지 블록 중의 제1 이미지 블록의 저장을 포함하는 단계들을 수행하게 할 수 있다. 픽셀-도메인에서 행 방향 잔차 값들의 제1 예측 블록으로부터의 제1 SAD(sum of absolute difference) 및 열 방향 잔차 값들의 제2 예측 블록으로부터의 제2 SAD의 합의 계산이 이루어진다. 제1 예측 블록 및 제2 예측 블록은 제1 이미지 블록에 대응할 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서 잔차 예측 유형 세트로부터 한 잔차 예측 유형의 선택이 이루어진다. 잔차 예측 유형은, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여 선택될 수 있다. 일부 실시예들에서, 잔차 예측 유형 세트는, DC 전용 DPCM 유형 및 모든 주파수 DPCM 유형을 포함할 수 있다. 또한, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 한 세트의 양자화 파라미터들의 선택이 이루어진다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트는, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여 선택될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드에서 각각 인코딩된 제1 이미지 블록의 비트스트림 세트의 생성이 이루어진다. 비트스트림 세트는, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다.
본 개시내용의 소정 실시예들은 임베디드 코덱(EBC) 회로에서 발견될 수 있다. 본 개시내용의 다양한 실시예는, 메모리 및 메모리에 통신가능하게 결합된 인코더 회로를 포함할 수 있는 EBC 회로를 제공할 수 있다. 메모리는, 입력 이미지 프레임의 복수의 이미지 블록 중 제1 이미지 블록을 저장하도록 구성될 수 있다. 인코더 회로는, 픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터 제1 SAD를, 및 열 방향 잔차 값들의 제2 예측 블록으로부터 제2 SAD를 계산하도록 구성될 수 있다. 제1 예측 블록 및 제2 예측 블록은 제1 이미지 블록에 대응할 수 있다. 인코더 회로는 또한, 잔차 예측 유형 세트로부터 한 잔차 예측 유형을 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서 선택하도록 구성될 수 있다. 잔차 예측 유형은, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여 선택될 수 있다. 일부 실시예들에서, 잔차 예측 유형 세트는, DC 전용 DPCM 유형 및 모든 주파수 DPCM 유형을 포함할 수 있다. 또한, 인코더 회로는, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 양자화 파라미터 세트를 더 선택하도록 구성될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트는, 계산된 제1 SAD 및 계산된 제2 SAD에 기초하여 선택될 수 있다. 인코더 회로는, 각각, 제1 인코딩 모드 및 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하도록 구성될 수 있다. 비트스트림 세트는, 제1 인코딩 모드 및 제2 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 입력 이미지 프레임을 복수의 이미지 블록으로 분할하도록 구성될 수 있다. 각각의 이미지 블록은 복수의 픽셀 값을 포함할 수 있다. 한 실시예에 따르면, 제1 SAD 및 제2 SAD의 계산 및 잔차 예측 유형 및 양자화 파라미터 세트의 선택은, 변환-도메인에서의 제1 이미지 블록에 관한 순차적 인코딩 방식의 적용 이전에, 픽셀-도메인에서의 제1 이미지 블록과 연관된 전처리 동작에 대응한다.
한 실시예에 따르면, 인코더 회로는 또한, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여 전처리 동작에서 제1 예측 블록을 생성하도록 구성될 수 있다. 인코더 회로는 또한, 제1 이미지 블록에 관한 잔차 예측 방식의 열 방향 적용에 기초하여 전처리 동작에서 제2 예측 블록을 생성하도록 구성될 수 있다. 잔차 예측 방식은 : DPCM(Differential Pulse Code Modulation) 방식, 적응적 DPCM 방식, 또는 PCM 방식 중 적어도 하나일 수 있다. 한 실시예에 따르면, 제1 예측 블록은 잔차 픽셀 값들의 수평 DPCM 블록에 대응할 수 있고 제2 예측 블록은 잔차 픽셀 값들의 수직 DPCM 블록에 대응할 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 제1 인코딩 모드에 대해, 계산된 제1 SAD가 계산된 제2 SAD보다 크거나 같은지를 체크하도록 구성될 수 있다. 잔차 예측 유형은, 계산된 제1 SAD가 계산된 제2 SAD보다 크거나 같을 때 모든 주파수 DPCM 유형일 수 있다. 잔차 예측 유형은, 계산된 제1 SAD가 계산된 제2 SAD보다 작을 때 DC 전용 DPCM 유형일 수 있다.
한 실시예에 따르면, 제1 이미지 블록은 YCbCr 색 공간에서 적어도 루마 블록 및 한 쌍의 크로마 블록으로서 표현될 수 있다. 인코더 회로는 또한, 루마 블록 및 한 쌍의 크로마 블록에 대한 특정한 비트깊이에 따라 루마 블록 및 한 쌍의 크로마 블록에 대한 오프셋 파라미터를 결정하도록 구성될 수 있다. 인코더 회로는 또한, 제2 인코딩 모드에 대해, 계산된 제1 SAD가 계산된 제2 SAD와 결정된 오프셋 파라미터의 합보다 작거나 같은지를 체크하도록 구성될 수 있다. 잔차 예측 유형은, 계산된 제1 SAD가 합보다 작거나 같을 때 모든 주파수 DPCM 유형일 수 있다. 그렇지 않고, 계산된 제1 SAD가 합보다 클 때 잔차 예측 유형은 DC 전용 DPCM 유형일 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 계산된 제1 SAD와 계산된 제2 SAD의 비교에 기초하여 최소 SAD 값을 결정하도록 구성될 수 있다. 그 후, 결정된 최소 SAD 값이 임계값보다 작은지가 체크될 수 있다. 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트의 선택은 체크에 기초할 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 전처리 동작 후에, 제1 이미지 블록에 관해 제1 순차적 인코딩 방식을 적용하여 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제1 인코딩 모드에서 제1 비트스트림을 생성하도록 구성될 수 있다. 제1 비트스트림은, 제1 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다. 한 실시예에 따르면, 제1 순차적 인코딩 방식은, 제1 유형의 순방향 변환, 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다. 제1 유형의 순방향 변환은 1D 행 DCT일 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 전처리 동작 후에, 제1 이미지 블록에 관해 제2 순차적 인코딩 방식을 적용하여 인코딩된 제1 이미지 블록의 비트스트림 세트로부터 제2 인코딩 모드에서 제2 비트스트림을 생성하도록 구성될 수 있다. 제2 비트스트림은, 제2 인코딩 모드에 대한 선택된 잔차 예측 유형 및 선택된 양자화 파라미터 세트에 기초하여 생성될 수 있다. 제2 순차적 인코딩 방식은, 제2 유형의 순방향 변환, 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다. 제2 유형의 순방향 변환은 1D 열 DCT일 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터, 제1 인코딩 모드에 대한 제1 세트의 비트 손실 값들 및 제2 인코딩 모드에 대한 제2 세트의 비트 손실 값들을 계산하도록 구성될 수 있다. 그 후, 제1 인코딩 모드 또는 제2 인코딩 모드 중 하나는, 인코더 회로에 의해, 제1 이미지 블록에 대한 최상의 인코딩 모드로서 선택될 수 있다. 선택은, 계산된 제1 세트의 비트 손실 값들 및 계산된 제2 세트의 비트 손실 값들에 기초하여 이루어질 수 있다.
본 개시내용은, 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로 실현될 수 있다. 본 개시내용은, 적어도 하나의 컴퓨터 시스템에서 중앙집중형 방식으로, 또는 상이한 요소들이 수 개의 상호접속된 컴퓨터 시스템들에 걸쳐 분산되어 있을 수 있는 분산형 방식으로 실현될 수 있다. 여기서 설명된 방법을 수행하도록 적합화된 컴퓨터 시스템 또는 다른 장치가 적절할 수도 있다. 하드웨어 및 소프트웨어의 조합은, 로딩되고 실행될 때, 여기서 설명된 방법을 수행하도록 컴퓨터 시스템을 제어할 수 있는 컴퓨터 프로그램을 갖춘 범용 컴퓨터 시스템일 수 있다. 본 개시내용은 다른 기능들도 역시 수행하는 집적 회로의 일부를 포함하는 하드웨어로 실현될 수도 있다.
본 개시내용은 또한, 여기서 설명된 방법들의 구현을 가능하게 하고 컴퓨터 시스템에 로딩될 때 이들 방법을 수행할 수 있는 모든 피쳐들을 포함하는 컴퓨터 프로그램 제품에 임베딩될 수도 있다.
본 개시내용이 소정 실시예들을 참조하여 기술되었지만, 본 기술분야의 통상의 기술자라면, 본 개시내용의 범위로부터 벗어나지 않고 다양한 변경이 이루어질 수 있고 균등물로 대체될 수 있다는 것을 이해할 것이다. 또한, 특정한 상황 또는 재료를 그 범위로부터 벗어나지 않고 본 개시내용의 교시에 맞게 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 본 개시내용은 개시된 특정 실시예로 제한되지 않으며, 본 개시내용은 첨부된 청구항들의 범위 내에 속하는 모든 실시예를 포함하는 것으로 의도된다.

Claims (24)

  1. 임베디드 코덱(EBC; embedded codec) 회로로서,
    입력 이미지 프레임의 복수의 이미지 블록 중의 제1 이미지 블록을 저장하는 메모리; 및
    인코더 회로
    를 포함하고, 상기 인코더 회로는 :
    픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터의 제1 절대 차이들의 합(SAD; sum of absolute differences) 및 열 방향 잔차 값들의 제2 예측 블록 ―상기 제1 예측 블록 및 상기 제2 예측 블록은 상기 제1 이미지 블록에 대응함― 으로부터의 제2 SAD를 계산하고;
    상기 계산된 제1 SAD 및 상기 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서, 잔차 예측 유형(residual prediction type) 세트로부터 한 잔차 예측 유형을 선택하며;
    상기 계산된 제1 SAD 및 상기 계산된 제2 SAD에 기초하여, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터(quantization parameter)들로서 양자화 파라미터 세트를 선택하고;
    상기 제1 인코딩 모드 및 상기 제2 인코딩 모드에 대한 상기 선택된 잔차 예측 유형 및 상기 선택된 양자화 파라미터 세트에 기초하여, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하도록 구성된, EBC 회로.
  2. 제1항에 있어서, 상기 인코더 회로는 또한, 상기 입력 이미지 프레임을 상기 복수의 이미지 블록으로 분할하도록 구성되고, 각각의 이미지 블록은 복수의 픽셀 값을 포함하는, EBC 회로.
  3. 제1항에 있어서, 상기 제1 SAD 및 상기 제2 SAD의 계산, 및 상기 잔차 예측 유형 및 상기 양자화 파라미터 세트의 선택은, 변환-도메인에서의 상기 제1 이미지 블록에 관한 순차적 인코딩 방식의 적용 이전에, 상기 픽셀-도메인에서의 상기 제1 이미지 블록과 연관된 전처리 동작에 대응하는, EBC 회로.
  4. 제1항에 있어서, 상기 인코더 회로는 또한, 제1 이미지 블록에 관한 잔차 예측 방식의 행 방향 적용에 기초하여 전처리 동작에서 상기 제1 예측 블록을 생성하도록 구성된, EBC 회로.
  5. 제4항에 있어서, 상기 인코더 회로는 또한, 상기 제1 이미지 블록에 관한 상기 잔차 예측 방식의 열 방향 적용에 기초하여 상기 전처리 동작에서 상기 제2 예측 블록을 생성하도록 구성된, EBC 회로.
  6. 제5항에 있어서, 상기 잔차 예측 방식은 : DPCM(Differential Pulse Code Modulation) 방식, 적응적 DPCM 방식, 또는 PCM 방식 중 적어도 하나인, EBC 회로.
  7. 제1항에 있어서, 상기 제1 예측 블록은 잔차 픽셀 값들의 수평 DPCM 블록에 대응하고, 상기 제2 예측 블록은 잔차 픽셀 값들의 수직 DPCM 블록에 대응하는, EBC 회로.
  8. 제1항에 있어서, 상기 인코더 회로는 또한, 상기 제1 인코딩 모드에 대해, 상기 계산된 제1 SAD가 상기 계산된 제2 SAD보다 크거나 같은지를 체크하도록 구성된, EBC 회로.
  9. 제8항에 있어서, 상기 잔차 예측 유형은, 상기 계산된 제1 SAD가 상기 계산된 제2 SAD보다 크거나 같을 때 모든 주파수 DPCM 유형(All Frequency DPCM type)인, EBC 회로.
  10. 제8항에 있어서, 상기 잔차 예측 유형은, 상기 계산된 제1 SAD가 상기 계산된 제2 SAD보다 작을 때 직류(DC) 전용 DPCM 유형(Direct Current (DC) Only DPCM type)인, EBC 회로.
  11. 제1항에 있어서, 상기 잔차 예측 유형 세트는, DC 전용 DPCM 유형 및 모든 주파수 DPCM 유형을 포함하는, EBC 회로.
  12. 제1항에 있어서, 상기 제1 이미지 블록은 YCbCr 색 공간에서 적어도 루마 블록(luma block) 및 한 쌍의 크로마 블록(chroma block)들로서 표현되는, EBC 회로.
  13. 제12항에 있어서, 상기 인코더 회로는 또한, 상기 루마 블록 및 상기 한 쌍의 크로마 블록에 대한 특정한 비트깊이에 따라 상기 루마 블록 및 상기 한 쌍의 크로마 블록에 대한 오프셋 파라미터를 결정하도록 구성된, EBC 회로.
  14. 제13항에 있어서, 상기 인코더 회로는 또한, 상기 제2 인코딩 모드에 대해, 상기 계산된 제1 SAD가 상기 계산된 제2 SAD와 상기 결정된 오프셋 파라미터의 합보다 작거나 같은지를 체크하도록 구성된, EBC 회로.
  15. 제14항에 있어서, 상기 잔차 예측 유형은, 상기 계산된 제1 SAD가 상기 합보다 작거나 같을 때 모든 주파수 DPCM 유형(All Frequency DPCM type)인, EBC 회로.
  16. 제14항에 있어서, 상기 잔차 예측 유형은, 상기 계산된 제1 SAD가 상기 합보다 클 때 DC 전용 DPCM 유형(Direct Current (DC) Only DPCM type)인, EBC 회로.
  17. 제1항에 있어서, 상기 인코더 회로는 또한 :
    상기 계산된 제1 SAD와 상기 계산된 제2 SAD의 비교에 기초하여 최소 SAD 값을 결정하고;
    상기 결정된 최소 SAD 값이 임계값보다 작은지를 체크하도록 구성된, EBC 회로.
  18. 제17항에 있어서, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드 각각에 대한 양자화 파라미터 세트의 선택은 상기 체크에 기초하는, EBC 회로.
  19. 제1항에 있어서, 상기 인코더 회로는 또한, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터, 상기 제1 인코딩 모드에서 제1 비트스트림을 생성하기 위해, 전처리 동작 후, 상기 제1 이미지 블록에 관해 제1 순차적 인코딩 방식을 적용하도록 구성되고, 상기 제1 비트스트림은, 상기 제1 인코딩 모드에 대한 상기 선택된 잔차 예측 유형 및 상기 선택된 양자화 파라미터 세트에 기초하여 생성되는, EBC 회로.
  20. 제19항에 있어서, 상기 제1 순차적 인코딩 방식은, 제1 유형의 순방향 변환, 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함하고, 상기 제1 유형의 순방향 변환은 1차원 행 이산 코사인 변환(1D 행 DCT)인, EBC 회로.
  21. 제1항에 있어서, 상기 인코더 회로는 또한, 인코딩된 제1 이미지 블록의 비트스트림 세트로부터, 상기 제2 인코딩 모드에서 제2 비트스트림을 생성하기 위해, 전처리 동작 후, 상기 제1 이미지 블록에 관해 제2 순차적 인코딩 방식을 적용하도록 구성되고, 상기 제2 비트스트림은 상기 제2 인코딩 모드에 대한 상기 선택된 잔차 예측 유형 및 상기 선택된 양자화 파라미터 세트에 기초하여 생성되는, EBC 회로.
  22. 제21항에 있어서, 상기 제2 순차적 인코딩 방식은, 제2 유형의 순방향 변환, 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함하고, 상기 제2 유형의 순방향 변환은 1D 열 DCT인, EBC 회로.
  23. 제1항에 있어서, 상기 인코더 회로는 또한 :
    상기 인코딩된 제1 이미지 블록의 비트스트림 세트로부터, 상기 제1 인코딩 모드에 대한 제1 세트의 비트 손실 값들 및 상기 제2 인코딩 모드에 대한 제2 세트의 비트 손실 값들을 계산하고;
    상기 계산된 제1 세트의 비트 손실 값들 및 상기 계산된 제2 세트의 비트 손실 값들에 기초하여, 상기 제1 이미지 블록에 대한 최상의 인코딩 모드로서, 상기 제1 인코딩 모드 또는 상기 제2 인코딩 모드 중 하나를 선택하도록 구성된, EBC 회로.
  24. 방법으로서,
    메모리 및 인코더 회로를 포함하는 임베디드 코덱(EBC) 회로에서 :
    상기 메모리에 의해, 입력 이미지 프레임의 복수의 이미지 블록 중의 제1 이미지 블록을 저장하는 단계;
    상기 인코더 회로에 의해, 픽셀-도메인에서, 행 방향 잔차 값들의 제1 예측 블록으로부터의 제1 절대 차이들의 합(SAD; sum of absolute differences) 및 열 방향 잔차 값들의 제2 예측 블록 ―상기 제1 예측 블록 및 상기 제2 예측 블록은 상기 제1 이미지 블록에 대응함― 으로부터의 제2 SAD를 계산하는 단계;
    상기 인코더 회로에 의해, 상기 계산된 제1 SAD 및 상기 계산된 제2 SAD에 기초하여, 제1 인코딩 모드 및 제2 인코딩 모드 각각에 대한 최적의 잔차 예측 유형으로서, 잔차 예측 유형(residual prediction type) 세트로부터 한 잔차 예측 유형을 선택하는 단계;
    상기 인코더 회로에 의해, 상기 계산된 제1 SAD 및 상기 계산된 제2 SAD에 기초하여, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드 각각에 대한 최적의 양자화 파라미터들로서 양자화 파라미터 세트를 선택하는 단계; 및
    상기 인코더 회로에 의해, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드에 대한 상기 선택된 잔차 예측 유형 및 상기 선택된 양자화 파라미터 세트에 기초하여, 상기 제1 인코딩 모드 및 상기 제2 인코딩 모드에서 인코딩된 제1 이미지 블록의 비트스트림 세트를 생성하는 단계
    를 포함하는 방법.
KR1020190131196A 2019-01-29 2019-10-22 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩 KR102267792B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/260,193 2019-01-29
US16/260,193 US10893272B2 (en) 2019-01-29 2019-01-29 Image block coding based on pixel-domain pre-processing operations on image block

Publications (2)

Publication Number Publication Date
KR20200094071A KR20200094071A (ko) 2020-08-06
KR102267792B1 true KR102267792B1 (ko) 2021-06-24

Family

ID=71733625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190131196A KR102267792B1 (ko) 2019-01-29 2019-10-22 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩

Country Status (4)

Country Link
US (1) US10893272B2 (ko)
JP (1) JP6868793B2 (ko)
KR (1) KR102267792B1 (ko)
CN (1) CN111491163B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023009608A1 (en) * 2021-07-27 2023-02-02 Beijing Dajia Internet Information Technology Co., Ltd. Coding enhancement in cross-component sample adaptive offset
WO2023038964A1 (en) * 2021-09-08 2023-03-16 Beijing Dajia Internet Information Technology Co., Ltd. Coding enhancement in cross-component sample adaptive offset

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871588B1 (ko) 2007-06-25 2008-12-02 한국산업기술대학교산학협력단 인트라 부호화 장치 및 그 방법
US20150201191A1 (en) * 2014-01-10 2015-07-16 Sony Corporation Adaptive block partitioning with shared bit-budget
US20170201769A1 (en) 2016-01-11 2017-07-13 Qualcomm Incorporated Block size decision for video coding
US20180234694A1 (en) * 2017-02-15 2018-08-16 Sony Corporation Variable length coding of header data for image compression

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3211989B2 (ja) * 1992-08-31 2001-09-25 日本ビクター株式会社 直交変換符号化装置及び復号化装置
US6192081B1 (en) 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
JP3624581B2 (ja) 1996-10-28 2005-03-02 ソニー株式会社 映像信号の圧縮装置
US7436890B2 (en) 2002-06-05 2008-10-14 Kddi R&D Laboratories, Inc. Quantization control system for video coding
CN101087427B (zh) * 2006-06-06 2011-04-06 北京大学深圳研究生院 一种h.264标准的帧内预测模式选择方法
US9729888B2 (en) * 2009-09-10 2017-08-08 Dolby Laboratories Licensing Corporation Speedup techniques for rate distortion optimized quantization
CN101895756B (zh) * 2010-07-15 2012-10-31 北京大学 视频图像块的编码、解码、重构方法及***
US20120195364A1 (en) 2011-01-31 2012-08-02 Apple Inc. Dynamic mode search order control for a video encoder
JP2012169762A (ja) * 2011-02-10 2012-09-06 Sony Corp 画像符号化装置と画像復号化装置およびその方法とプログラム
US9521410B2 (en) 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
CN103024383B (zh) * 2012-12-14 2016-02-10 北京工业大学 一种基于hevc框架的帧内无损压缩编码方法
US11323747B2 (en) * 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
WO2015137785A1 (ko) * 2014-03-14 2015-09-17 삼성전자 주식회사 샘플값 보상을 위한 영상 부호화 방법과 그 장치, 및 샘플값 보상을 위한 영상 복호화 방법과 그 장치
US10284849B2 (en) * 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10750175B2 (en) * 2017-05-04 2020-08-18 Sony Corporation Quantization partitioning for enhanced image compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871588B1 (ko) 2007-06-25 2008-12-02 한국산업기술대학교산학협력단 인트라 부호화 장치 및 그 방법
US20150201191A1 (en) * 2014-01-10 2015-07-16 Sony Corporation Adaptive block partitioning with shared bit-budget
US20170201769A1 (en) 2016-01-11 2017-07-13 Qualcomm Incorporated Block size decision for video coding
US20180234694A1 (en) * 2017-02-15 2018-08-16 Sony Corporation Variable length coding of header data for image compression

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Matteo Naccari et al, "Inter-Prediction Residual DPCM", (JCTVC-M0442), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 13th Meeting: Incheon, KR, (2013.04.21.)*

Also Published As

Publication number Publication date
JP6868793B2 (ja) 2021-05-12
JP2020123947A (ja) 2020-08-13
CN111491163A (zh) 2020-08-04
KR20200094071A (ko) 2020-08-06
US10893272B2 (en) 2021-01-12
CN111491163B (zh) 2022-10-28
US20200244960A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
CN113545064B (zh) 用于处理视频内容的方法和装置及计算机可读存储介质
JP4895400B2 (ja) 画像フレームの非フレームエッジブロックの表現における改良された圧縮
US10645386B1 (en) Embedded codec circuitry for multiple reconstruction points based quantization
US20130021350A1 (en) Apparatus and method for decoding using coefficient compression
JP2022548825A (ja) 映像処理における量子化パラメータのシグナリング
US20190068981A1 (en) Storing and retrieving lossy-compressed high bit depth image data
CN114145016A (zh) 视频信号的矩阵加权帧内预测
KR102267792B1 (ko) 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩
JP2022549773A (ja) 映像データの可逆符号化
CN115836525A (zh) 用于从多个交叉分量进行预测的方法和***
US10728557B2 (en) Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels
US10798419B2 (en) Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
JP2022548204A (ja) 変換スキップモードで映像データを符号化するための方法及び装置
WO2011046681A2 (en) Joint scalar embedded graphics coding for color images
KR102267215B1 (ko) 잔차 레벨 데이터의 위치 의존적 엔트로피 코딩을 위한 임베디드 코덱(ebc) 회로
KR102267322B1 (ko) 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로
US10931954B2 (en) Image coding modes selection for an embedded codec circuitry
JP2020127188A5 (ko)
US10652543B2 (en) Embedded codec circuitry and method for frequency-dependent coding of transform coefficients
US10778990B2 (en) Embedded codec circuitry for randomized refinement of uncoded-bits

Legal Events

Date Code Title Description
E902 Notification of reason for refusal