KR102267322B1 - 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로 - Google Patents

정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로 Download PDF

Info

Publication number
KR102267322B1
KR102267322B1 KR1020190131212A KR20190131212A KR102267322B1 KR 102267322 B1 KR102267322 B1 KR 102267322B1 KR 1020190131212 A KR1020190131212 A KR 1020190131212A KR 20190131212 A KR20190131212 A KR 20190131212A KR 102267322 B1 KR102267322 B1 KR 102267322B1
Authority
KR
South Korea
Prior art keywords
subblock
quantized
encoded
transformed residual
subblocks
Prior art date
Application number
KR1020190131212A
Other languages
English (en)
Other versions
KR20200105739A (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 KR20200105739A publication Critical patent/KR20200105739A/ko
Application granted granted Critical
Publication of KR102267322B1 publication Critical patent/KR102267322B1/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

임베디드 코덱(EBC; embedded codec) 회로는, 1D 이미지 블록에 대한 복수의 1차원(1D) 서브블록의 양자화되고-변환된 잔차 레벨들을 저장하는 메모리, 및 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 한 서브블록 카테고리를 한 세트의 서브블록 카테고리들로부터 결정하는 인코더 회로를 포함한다. 인코더 회로는, 엔트로피 코딩 방식의 적용에 의해 복수의 1D 서브블록을 인코딩하여 복수의 인코딩된 1D 서브블록을 생성한다. 인코더 회로는, 대응하는 1D 서브블록의 결정된 서브블록 카테고리에 기초하여, 복수의 인코딩된 1D 서브블록 중의 한 인코딩된 1D 서브블록 내의 인코딩된 양자화되고-변환된 잔차 레벨들에 대응하는 비트평면들 내의 비트 위치들에서 복수의 정교화 비트를 할당한다.

Description

정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로{EMBEDDED CODEC CIRCUITRY FOR SUB-BLOCK BASED ALLOCATION OF REFINEMENT BITS}
관련 출원에 대한 상호-참조/참조에 의한 포함
없음
분야
본 개시내용의 다양한 실시예는 이미지 및 비디오 압축 또는 압축해제를 위한 임베디드 코덱(embedded codec)에 관한 것이다. 더 구체적으로, 본 개시내용의 다양한 실시예는 정교화 비트(refinement bit)들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로에 관한 것이다.
최근의 촬영 기술의 발전에 따라, 다양한 이미지 해상도(예를 들어, 저해상도 내지 고해상도 이미지/비디오)에서 상이한 이미지 또는 비디오의 압축 및 저장을 처리할 수 있는 이미지 캡처 및 디스플레이 디바이스에서 온칩 코덱에 대한 요구가 증가하고 있다. 현재, 이미지 또는 비디오는, 원하는 압축을 달성하기 위해, 복수의 코딩 기술, 예를 들어, 변환 코딩, 잔차 예측, 양자화, 엔트로피 코딩 등의 대상이 될 수 있다. 전형적으로, 엔트로피 코딩 후에, 인코딩된 이미지 블록의 비트 예산 내에서 비트평면에는 이용가능한 코딩되지 않은 비트들이 여전히 존재할 수 있다. 소정 시나리오들에서, 코딩되지 않은 비트들은, 각각의 인코딩된 이미지 블록에서 미리결정된 시퀀스로 동일한 개수의 정교화 비트들을 할당함으로써 정교화될 수 있다. 이러한 시나리오에서, 각각의 인코딩된 이미지 블록에서 동일한 수의 정교화 비트의 할당은, 특히 온칩 메모리 이용을 최소화하면서 처리량과 관련하여 면적 효율성을 달성하는 것이 바람직한 온칩 코덱에서, 가시적인 이미지 아티팩트를 초래할뿐만 아니라, 압축 비효율성 및 차선적인 메모리 이용으로 이어질 수 있다.
본 출원의 나머지 부분에서 도면을 참조하여 개시되는 바와 같이, 본 개시내용의 일부 양태들과의 설명된 시스템의 비교를 통해, 종래의 및 전통적인 접근법의 추가적인 제한 및 단점들이 본 기술분야의 통상의 기술자에게 명백해질 것이다.
청구항들에서 더욱 완전하게 개시되는 바와 같이, 실질적으로, 도면들 중 적어도 하나에 도시되거나 및/또는 이와 관련하여 설명된 바와 같이, 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱(EBC) 회로 및 방법이 제공된다.
본 개시내용의 이들 및 다른 피쳐들 및 이점들은, 전체적으로 유사한 참조 번호는 유사한 부분을 나타내는 첨부된 도면들과 함께, 본 개시내용의 이하의 상세한 설명의 검토로부터 이해될 수 있을 것이다.
도 1은, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱(EBC) 회로 및 기타의 회로들을 갖는 예시적인 미디어 디바이스를 도시하는 블록도이다.
도 2는, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한 다양한 주변 컴포넌트를 갖는 도 1의 EBC 회로를 도시하는 블록도이다.
도 3은, 본 개시내용의 한 실시예에 따른, 도 2의 EBC 회로에 의한, 양자화되고-변환된 잔차 레벨들에 기초한 서브블록들의 카테고리화를 도시한다.
도 4는, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한, 도 2의 EBC 회로에 의한 1D 이미지 블록에 관한 예시적인 순차적 인코딩 방식의 적용을 도시한다.
도 5a 및 도 5b는, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한 예시적인 방법을 도시하는 플로차트를 집합적으로 도시한다.
본 개시내용의 다양한 실시예들은 정교화 비트들의 서브블록 기반의 할당을 위한 방법 및 임베디드 코덱(EBC) 회로에서 발견될 수 있다. EBC 회로는, 메모리 및 1D 이미지 블록의 인코딩된 비트스트림의 생성을 취급하는 인코더 회로를 포함할 수 있다. 개시된 EBC 회로는, 상이한 서브블록들의 복잡성 레벨 및 평탄성 레벨에 기초하여, 1D 이미지 블록의 상이한 서브블록들을 상이한 서브블록 카테고리들로 카테고리화한다. 개시된 EBC 회로는 또한, 대응하는 1D 서브블록과 연관된 서브블록 카테고리에 기초하여 서브블록 레벨에서의 코딩되지 않은 비트 위치들에서 정교화 비트들을 할당한다. 서브블록 레벨에서의 구별은, 서브블록 레벨에서 표현된 복잡성의 레벨에 기초하여 서브블록에 대한 정교화 비트들의 할당을 적응적으로 감소시킬 기회를 더 제공한다. 예를 들어, 평탄한 서브블록, 즉 모든 AC 계수들이 0인 1D 서브블록은 코딩되지 않은 모든 비트 위치가 정교화될 것을 요구하지 않을 수 있는 반면, 복잡한 서브블록, 즉, AC 계수들이 더 큰 값들(예를 들어, 0보다 크거나 0에 가까운 값, 예를 들어, -2, -1, 0, 1, 2)을 갖는 1D 서브블록은 코딩되지 않은 모든 비트 위치가 정교화될 것을 요구할 수 있다. 서브블록 레벨에서의 정교화 비트들의 선택적 할당은, 더 큰 AC 계수 값을 나타내기 위해 더 많은 수의 비트를 요구하는 이미지 서브블록(복잡한 레벨 서브블록)에는 최대 수의 정교화 비트들이 할당되므로 이미지 품질을 개선시킨다. 서브블록 레벨에서의 정교화 비트들의 선택적인 할당의 결과로서, 인코딩된 이미지의 품질에 악영향을 주지 않으면서 압축 효율이 상당히 개선된다. 또한, 개시된 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)는, 이미지/비디오의 오프라인(인터넷/네트워크를 필요로 하지 않는) 처리 및 압축/압축해제를 위한 (EBC 회로(108) 등의) 전용 온칩 코덱을 포함할 수 있다. 일부 실시예들에서, 미디어 디바이스(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)는, 특정한 압축 인자에 따라 1D 이미지 블록(예를 들어, 16x1 또는 8x1 이미지 블록)을 인코딩하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. EBC 회로(108)는 또한, EBC 회로(108)에서 수신된 명령어에 응답하여, 인코딩된 1D 이미지 블록을 정교화하도록 구성될 수 있다. 일부 실시예들에서, 1D 이미지 블록은, 입력 이미지(즉, 원시 비압축 이미지), 또는 이미지 센서(104)에 의한 행방향 또는 열방향 스캔에 후속하여 이미지 센서(104)의 판독 레지스터로부터 직접 회수된 픽셀 어레이(행 또는 열)의 일부일 수 있다. EBC 회로(108)는 또한, 외부 메모리(110)로의 인코딩된 1D 이미지 블록의 비트스트림의 저장을 관리하거나, 전용 통신 네트워크를 통한 다른 미디어 디바이스들로의 인코딩된 1D 이미지의 비트스트림의 전송을 관리할 수 있다.
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)로부터 직접 회수된 원시 비압축 1D 이미지 블록을 저장하는 이미지 버퍼로서 역할하도록 구성될 수 있다. 추가로, 외부 메모리(110)는, 인코딩된 1D 이미지 블록의 비트스트림을 생성하기 위해 EBC 회로(108)에 의해 적용될 수 있는 순차적 인코딩/디코딩 방식과 연관된 명령어를 저장할 수 있다. 예시적인 실시예에서, 외부 메모리(110)는, EBC 회로(108)와 외부적으로 인터페이스될 수 있는 영구 저장 메모리 또는 동적 랜덤 액세스 메모리(DRAM)일 수 있다. 또 다른 예시적인 실시예에서, 외부 메모리(110)는, EBC 회로(108)와 외부적으로 인터페이스될 수 있는 SRAM(static random access memory) 회로일 수 있다. 외부 메모리(110)의 구현의 추가적인 예는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(EEPROM), 하드 디스크 드라이브(HDD), 솔리드-스테이트 드라이브(SSD), CPU 캐시, 또는 보안 디지털(SD) 카드를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
일부 실시예들에서, EBC 회로(108)는 또한, AVC(Advanced Video Codec)/MPEG-4/AVC, 또는 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 비트 병렬 단일 시스템 버스, 직렬 데이터 버스 등을 포함할 수 있다.
동작에서, 1D 이미지 블록 또는 1D 이미지 블록 시퀀스가 미디어 디바이스(102)에 의해 수신될 수 있다. 일부 실시예들에서, 1D 이미지 블록 또는 1D 이미지 블록 시퀀스는 (이미지 센서(104) 등의) 온칩 이미지 센서 또는 미디어 디바이스(102)와 인터페이스된 카메라 디바이스의 판독 레지스터로부터 직접 회수될 수 있다. 다른 실시예들에서, 1D 이미지 블록 또는 1D 이미지 블록 시퀀스는 미디어 디바이스(102)의 외부 메모리(110) 등의 영구 저장소에 저장된 비압축 원시 입력 이미지로부터 회수되거나, 카메라, 데이터 서버 등의 다른 미디어 저장 디바이스로부터 외부적으로 수신될 수 있다.
EBC 회로(108)는, 외부 메모리(110)로부터 또는 이미지 센서(104)의 판독 레지스터로부터 직접, 1D 이미지 블록 또는 1D 이미지 블록 시퀀스를 회수하도록 구성될 수 있다. EBC 회로(108)는, 인코딩된 1D 이미지 블록의 비트스트림을 생성하기 위해 1D 이미지 블록에 관해 순차적 인코딩 방식을 실행하도록 구성될 수 있다. 인코딩된 1D 이미지 블록의 비트스트림은, 인코딩된 1D 이미지 블록의 비트스트림을 획득하기 위해, 1D 이미지 블록의 인코딩시에 적용되는 순차적 인코딩 방식을 나타낼 수 있는 헤더 정보를 포함할 수 있다. 한 구현에서, 순차적 인코딩 방식은, 1D 변환, 후속되는 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다.
순차적 인코딩 방식에서, EBC 회로(108)는, 1D 이미지 블록, 예를 들어 "16x1" 이미지 블록을 복수의 1D 이미지 서브블록으로 분할하도록 구성될 수 있다. 복수의 1D 이미지 서브블록은, 엣지의 픽셀 값에서 급격한 변화를 갖는 영역들로의 1D 이미지 블록의 로직 분할에 대응할 수 있다. 예를 들어, "16x1" 이미지 블록은 4개의 "4x1" 1D 이미지 서브블록으로 분할될 수 있고, 여기서, 각각의 "4x1" 1D 이미지 서브블록은, 강한 엣지들, 즉, 2개의 연속적인 "4x1" 1D 이미지 서브블록들의 엣지들에서 픽셀 값들의 더 큰 차이를 포함할 수 있다.
EBC 회로(108)는 또한, 복수의 1D 이미지 서브블록 중의 각각의 1D 이미지 서브블록에 관해 별개로 1D 순방향 변환을 적용하여 복수의 1D 변환 계수를 생성하도록 구성될 수 있다. 한 실시예에 따르면, 1D 순방향 변환은, (정규직교 베이스(orthonormal base) 또는 고유벡터(eigenvector) 패밀리를 포함하는) 정현파 단위 변환 패밀리에 기초할 수 있다. 1D 순방향 변환의 예는, 유형 I-VIII DCT(Discrete Cosine Transform), 유형 I-VIII 이산 사인 변환(DST), 이산 웨이블릿 변환(DWT), 및 듀얼-트리 복합 웨이블릿 변환(DCWT)을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
예를 들어, "4x1" 1D DCT 변환은, “16x1" 이미지 블록 중의 각각의 "4x1" 이미지 서브블록에 적용될 수 있다. 유사하게, "8x1" 1D DCT 변환은 "16x1 이미지 블록" 중의 각각의 "8x1" 이미지 서브블록에 적용될 수 있다. 따라서, 그 결과, 1D 이미지 블록에 적용되는 1D 변환의 유형은, 1D 이미지 블록 중의 각각의 1D 이미지 서브블록의 크기에 기초할 수 있다. 복수의 1D 이미지 서브블록 중의 각각의 1D 이미지 서브블록의 크기는 1D 이미지 블록의 인코딩 전에 명시될 수 있다.
EBC 회로(108)는 또한, 각각의 1D 이미지 서브블록에 대한 복수의 1D 변환 계수를 양자화하여 복수의 양자화되고-변환된 레벨을 생성하도록 구성될 수 있다. 복수의 양자화되고-변환된 레벨은 복수의 이산화된 양자화 빈(quantization bin)에 의해 서로 분리될 수 있다. 복수의 양자화 빈에 대한 스텝 크기는 또한, 변환 계수들의 1D 서브블록을 복수의 양자화되고-변환된 레벨로 효율적으로 양자화하기 위해 적응적으로(또는 균일하게) 선택될 수 있다. 각각의 양자화되고-변환된 레벨은 양자화 빈의 상한 및 하한으로부터의 중간 값일 수 있고, 예를 들어 "(155,175)"의 양자화 빈은, "(155 + 175)/2", 즉, "165"의 양자화되고-변환된 레벨을 포함할 수 있다. 양자화에 의해, EBC 회로(108)는, 시각적으로 현저한 품질 저하없이, 변환 도메인 데이터(즉, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 복수의 변환 계수)로부터 잉여의 계수 정보를 제거할 수 있다.
복수의 양자화 빈은, 미디어 콘텐츠를 인코딩 또는 디코딩하기 위해 적응적 양자화 방식에 따라 정의된 레이트로 달라질 수 있는 양자화 파라미터(QP)에 기초하여 결정될 수 있다. QP는, 0으로부터 인코딩된 1D 이미지 블록의 비트스트림의 비트깊이까지 변할 수 있다. 예를 들어, 압축된 1D 이미지 블록의 8 비트 비트스트림에 대한 QP는, 제1 1D 서브블록의 변환 계수들에 대해 "7” 및 제2 블록의 변환 계수들에 대해 "0"으로서 선택될 수 있고, 이것은, 제1 1D 서브블록의 변환 계수들이 제2 블록에 비해 더 미세한 스텝 크기로 양자화될 수 있고 제2 블록은 전혀 양자화되지 않을 수 있다는 것을 나타낼 수 있다. 소정 실시예에서, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 복수의 변환 계수에 관해 구현되는 양자화 방식은 비트평면 양자화 방식이다.
EBC 회로(108)는 또한, 양자화되고-변환된 레벨들의 복수의 1D 서브블록에 관해 잔차 예측 방식을 적용하도록 구성될 수 있고, 여기서 각각의 1D 서브블록은 복수의 양자화되고-변환된 레벨을 포함할 수 있다. 잔차 예측 방식의 적용 후, 복수의 1D 서브블록의 양자화되고-변환된 레벨들로부터 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들이 획득될 수 있다. 1D 이미지 블록에 대한 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들은, 외부 메모리(110) 또는 EBC 회로(108) 내의 온칩 메모리(예를 들어, 전용 SRAM 또는 온칩 캐쉬) 등의 메모리에 저장될 수 있다. 잔차 예측 방식의 예는, PCM(Pulse Coded Modulation) 방식, DPCM(Differential Pulse Code Modulation) 방식, 또는 ADPCM(Adaptive DPCM) 방식을 포함할 수 있지만, 이것으로 제한되는 것은 아니다. DPCM 및 ADPCM 방식에서, 각각의 양자화되고-변환된 레벨을 이용하는 것 대신에, 기준 양자화 레벨로부터 잔차가 예측된다.
각각의 1D 서브블록, 예를 들어, "4x1" 서브블록은, DC 양자화되고-변환된 잔차 레벨 및 복수의 AC 양자화되고-변환된 잔차 레벨을 더 포함할 수 있는, 복수의 양자화되고-변환된 잔차 레벨을 포함할 수 있다. 여기서, "DC"는 이미지 블록 또는 서브블록에서 제1 항인 직류(DC) 항을 나타내고, 따라서 제로 주파수를 보이며, 나머지 요소들은, 비제로 주파수를 보이는 교류 전류(AC) 항(AC 값 또는 계수라고도 함)이라고 알려져 있다. 따라서, AC 양자화되고-변환된 잔차 레벨은, AC 계수(값)의 양자화되고-변환된 잔차 레벨에 대응한다.
EBC 회로(108)는 또한, 엔트로피 코딩 방식의 적용에 의해 양자화되고-변환된 잔차 레벨들의 복수의 1D 서브블록을 인코딩하도록 구성될 수 있다. 그 결과, 복수의 비트평면을 포함하는 복수의 인코딩된 1D 서브블록이 획득될 수 있다. 복수의 비트평면은, 정교화 비트들의 할당에 의해 정교화될 수 있는 코딩되지 않은 비트 위치들뿐만 아니라 인코딩된 비트들을 포함할 수 있다. 엔트로피 코딩 방식은, Huffman 코딩 방식, 지수 Golomb 코딩 방식, 프로그레시브 Golomb 코딩 방식, Golomb-Rice 코딩 방식, 및 Huffman 코딩 방식과 지수 Golomb 코딩 방식의 조합을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
인코딩된 1D 서브블록에서 정교화 비트들을 할당하기 위해, EBC 회로(108)는 또한, 엔트로피 인코딩 이전에 각각의 1D 서브블록의 평탄성 레벨 또는 복잡성 레벨의 측정치를 추정하도록 구성될 수 있다. 평탄성 레벨 또는 복잡성 레벨의 측정치는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에서의 AC 양자화되고-변환된 잔차 레벨의 절대 값에 기초하여 정의될 수 있다. 따라서, EBC 회로(108)는, 각각의 1D 서브블록을 복수의 서브블록 카테고리 중의 한 서브블록 카테고리로 분류하도록 구성될 수 있다. 예를 들어, 3개의 서브블록 카테고리, 즉, 제1 서브블록 카테고리, 제2 서브블록 카테고리, 및 제3 서브블록 카테고리가 있을 수 있다. 제1 서브블록 카테고리는, AC 양자화되고-변환된 잔차 레벨의 낮은 복잡성 레벨을 나타낼 수 있다. 제2 서브블록 카테고리는, AC 양자화되고-변환된 잔차 레벨의 중간 복잡성 레벨을 나타낼 수 있다. 제3 서브블록 카테고리는, AC 양자화되고-변환된 잔차 레벨의 높은 복잡성 레벨을 나타낼 수 있다.
한 서브블록 카테고리로의 복수의 1D 서브블록 중의 한 1D 서브블록의 분류는, 1D 서브블록으로의 한 세트의 시그널링 비트들의 할당에 기초할 수 있다. 따라서, EBC 회로(108)는, 대응하는 1D 서브블록의 복잡성 레벨 또는 평탄성 레벨의 측정치에 따라, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 한 세트의 시그널링 비트들을 할당하도록 구성될 수 있다. 예를 들어, 제1 서브블록 카테고리와 연관된 1D 서브블록에 대한 한 세트의 시그널링 비트들은 "0"일 수 있다. EBC 회로(108)는, 양자화되고-변환된 잔차 레벨들의 상이한 1D 서브블록들에 할당된 시그널링 비트 세트에 기초하여, 상이한 1D 인코딩된 서브블록들에 할당될 정교화 비트들의 수를 선택하도록 구성될 수 있다. EBC 회로(108)는, 특정 서브블록 카테고리의 인코딩된 1D 서브블록에서 할당될 정교화 비트들의 수를 결정하기 위해 정교화 단계에서 할당된 시그널링 비트 세트를 이용할 수 있다.
EBC 회로(108)는 또한, 인코딩된 1D 이미지 블록의 비트스트림을 생성하도록 구성될 수 있다. 생성된 비트스트림은 인코딩된 비트들 및 할당된 정교화 비트들을 포함할 수 있다. 할당된 정교화 비트들의 수는, 이용가능한 비트 예산과 압축 후 인코딩된 비트 수에 의존한다. 예를 들어, 10 비트깊이를 갖는 16개 샘플의 입력 이미지 블록의 경우, 5 비트깊이의 출력을 갖는 것이 바람직할 수 있다. 인코딩 방식을 적용한 후에는, 출력이 74 비트만을 점유하는 반면, 비트 예산은 16X5 = 80 비트임을 알 수 있다. 적절한 정교화 기술로 6개의 정교화 비트들을 할당함으로써 이미지 품질을 개선하는데 이용될 수 있는 6개의 코딩되지 않은 비트가 있다.
또 다른 실시예에 따르면, EBC 회로(108)의 (도 1에 도시되지 않은) EBC 디코더 회로는, 상이한 코딩 테이블들(예를 들어, Huffman 인코딩 방식, 지수-Golomb 인코딩 방식을 위한 커스텀 코딩 테이블들, 또는 시그널링 비트 테이블들) 및 양자화 테이블들을 미리 저장하도록 구성될 수 있다. 따라서, 인코딩된 1D 이미지 블록의 비트스트림은 상이한 코딩 테이블들 및 양자화 테이블들을 포함할 필요가 없을 수 있다.
한 실시예에 따르면, EBC 회로(108)는, 인코딩된 1D 이미지 블록의 비트스트림을 디코딩하기 위해 상이한 디코딩 방식들을 이용할 수 있는 상이한 외부 디코더들에 의해 비트스트림이 디코딩될 수 있도록, 인코딩된 1D 이미지 블록의 비트스트림을 생성하도록 구성될 수 있다. 이러한 경우에, EBC 회로(108)는, 상이한 코딩 테이블들(예를 들어, Huffman 인코딩 방식, Exponential-Golomb 인코딩 방식을 위한 커스텀 코딩 테이블 또는 시그널링 비트 테이블) 및 양자화 테이블들을, 인코딩된 1D 이미지 블록의 비트스트림과 연관된 헤더 정보 또는 상이한 메타스트림에 추가하도록 구성될 수 있다. 비트스트림에서 이러한 커스텀 테이블 및 양자화 테이블을 추가함으로써, EBC 회로(108)의 출력은 다른 디코더 회로에 의해 디코딩될 수 있다.
한 실시예에 따르면, 인코딩된 1D 이미지 블록의 비트스트림은 (2D 이미지 등의) 입력 이미지의 일부, 완전한 이미지, 또는 비디오 부분으로서, 외부 메모리(110) 또는 EBC 회로(108)의 온칩 메모리 등의 메모리에 저장될 수 있다. 한 구현에서, 프로세서(106)는, 시스템 버스(112)를 통해, 인코딩된 1D 이미지 블록의 비트스트림을, 미디어 디바이스(102)의 시스템 버스(112)와 통신가능하게 인터페이스된 디스플레이 회로(예를 들어, 비디오 카드)의 프레임 버퍼(또는 프레임 저장소)에 전송하도록 구성될 수 있다. 프레임 버퍼는 디스플레이 회로에 대한 압축된 프레임 버퍼로서 역할할 수 있다. 디스플레이 회로(도 1에 도시되지 않음)는 또한, 미디어 디바이스(102)에 이미지 조각을 디스플레이하기 위해 1D 이미지 블록의 인코딩된 비트스트림의 비트스트림을 디코딩하고 이용할 수 있다. 또 다른 구현에서, 프로세서(106)는, 미디어 디바이스(102) 내의 비디오 디코더의 디코더 픽처 버퍼(DPB), 이미지 디코더의 버퍼 메모리, 또는 비디오 코덱의 코딩된 픽처 버퍼(CPB) 등의, 디코더 버퍼에, 시스템 버스(112)를 통해, 인코딩된 1D 이미지 블록의 비트스트림을 전송하도록 구성될 수 있다.
예시적인 구현에서, 미디어 디바이스(102)는, 디지털 비디오 카메라 또는 디지털 이미지 카메라 등의 카메라일 수 있고, 인코딩된 1D 이미지 블록의 비트스트림은, 카메라의 CMOS 센서의 판독 레지스터에서 직접 수신되는 픽셀 값들의 1D 어레이에 대응할 수 있다. 예시적인 실시예에서, EBC 회로(108)는 CMOS 센서 회로에서 구현될 수 있다.
도 2는, 본 개시내용의 한 실시예에 따른, 양자화되고-변환된 잔차 레벨들의 서브블록 기반의 엔트로피 코딩을 위한 다양한 주변 컴포넌트를 갖는 임베디드 코덱(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 포트를 관리하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 통신 데이터는, 인코딩된 1D 이미지 블록의 비트스트림, 제어 신호, CPU 명령어 등을 포함할 수 있다. I/O 포트의 구성은, EBC 회로(108)의 명세, 예를 들어 ASIC, FPGA 또는 SoC 칩에서의 물리적 I/O 핀에 의존할 수 있다.
온칩 메모리(204)는, 1D 이미지 블록을 인코딩하기 위해 EBC 회로(108)의 상이한 컴포넌트들에 의해 이용될 수 있는 상이한 동작 데이터들(예를 들어, 변환 도메인 데이터, 잔차 레벨, 양자화 레벨, 엔트로피 코딩된 비트 등)을 저장하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 온칩 메모리(204)에 저장된 동작 데이터의 예는, 인코딩된 1D 이미지 블록의 비트스트림, 변환 도메인 데이터, 양자화되고-변환된 레벨, 양자화되고-변환된 잔차 레벨, 계산된 변수, 및 임시 처리 데이터 및 1D/2D 이미지 블록을 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 온칩 메모리(204)는, 판독/기입 속도, 메모리 크기, 제조 인자 등의 정의된 메모리 명세로 설계된 특정한 메모리로서 구현될 수 있다. 온칩 메모리(204)의 예는, 정적 랜덤 액세스 메모리(SRAM), 동적 액세스 메모리(DRAM) 및 정적 동적 RAM(SD-RAM)을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
인코더 회로(206)는, 온칩 메모리(204) 또는 외부 메모리(110) 등의 메모리에 저장된, 1D 이미지 블록에 관한 순차적인 인코딩 방식 및 후속되는 정교화의 적용에 의해 인코딩된 1D 이미지 블록의 비트스트림을 생성하도록 구성될 수 있는 적절한 로직, 회로 및 인터페이스를 포함할 수 있다. 인코더 회로(206)는 또한, (양자화되고-변환된 잔차 레벨들의) 상이한 1D 서브블록들을 상이한 서브블록 카테고리들로 분류하고, 상이한 서브블록 카테고리들에 기초하여 인코딩된 1D 서브블록들에서 정교화 비트들을 할당할 수 있다. 인코더 회로(206)는, 일부 서브블록(복잡한 레벨)은 다른 서브블록들(비교적 평탄한 레벨)에 비해 더 많은 상세사항을 요구하기 때문에, 서브블록 카테고리들에 기초하여 1D 서브블록들에 정교화 비트들을 할당할 수 있다. 복잡한 레벨 서브블록은, 평탄한 레벨 서브블록들에 비해 더 많은 수의 정교화 비트들을 할당받을 수 있고, 이것은 복잡한 레벨 서브블록에 대응하는, 인코딩된 이미지의 한 영역의 상세사항을 향상시킨다. 일부 실시예들에서, 인코더 회로(206)는, ASIC, 프로그램가능한 로직 디바이스(PLD), SOC, FPGA, 디지털 신호 프로세서(DSP) 또는 다른 전문화된 회로 중 하나에 기초하여 구현될 수 있는 하드웨어 인코더 칩일 수 있다. 다른 실시예들에서, 인코더 회로(206)는, 온칩 메모리(204)에서 하드웨어 및 저장된 명령어 세트(예를 들어, VHDL 또는 HDL 로직에 기초한 명령어)의 조합으로서 구현될 수 있다.
디코더 회로(208)는, (인코딩된 1D 이미지 블록과 연관된) 복수의 1D 서브블록 중의 각각의 1D 서브블록에 할당된 한 세트의 시그널링 비트들을 포함하는 헤더 정보에 기초하여, 인코딩된 1D 이미지 블록의 비트스트림을 디코딩하도록 구성될 수 있는 적절한 로직, 회로, 및 인터페이스를 포함할 수 있다. 일부 실시예들에서, 디코더 회로(208)는, 디코더 회로(208)가 인코딩된 1D 이미지 블록의 비트스트림을 디코딩하기 위한 기준으로서 역할할 수 있는 미리 저장된 양자화 테이블 및 코딩 테이블을 가질 수 있다. 일부 실시예들에서, 디코더 회로(208)는, ASIC, 프로그램가능한 로직 디바이스(PLD), SOC, FPGA, 디지털 신호 프로세서(DSP) 또는 다른 전문화된 회로 중 하나에 기초하여 구현될 수 있는 하드웨어 인코더 칩일 수 있다. 일부 실시예들에서, 디코더 회로(208)는, 온칩 메모리(204)에서 하드웨어 및 프로그램된 명령어들(예를 들어, VHDL 또는 HDL 로직에 기초한 명령어들)의 조합으로서 구현될 수 있다.
동작시에, 1D 이미지 블록의 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들은, 외부 메모리(110) 또는 온칩 메모리(204) 등의 메모리에 저장될 수 있다. 저장하기 전에, 양자화되고-변환된 잔차 레벨들의 복수의 1D 서브블록이, 1D 이미지 블록의 복수의 1D 이미지 서브블록에 대한, 1D 순방향 변환, 후속되는 양자화, 및 잔차 예측의 순차적 적용에 기초하여 생성될 수 있다. 예를 들어, “16x1” 이미지 블록에는, 4개의 "4x1” 이미지 서브블록이 있을 수 있다. 인코더 회로(206)는, 4개의 “4x1" 서브블록 중의 각각의 “4x1" 서브블록에서, 각각의 "4x1" 서브블록에 관한 "4x1" DCT-II 변환, 양자화 파라미터 "7"의 비트평면 양자화, 및 DPCM 코딩 방식의 순차적 적용에 기초하여, 4개의 “4x1" 서브블록의 양자화되고-변환된 잔차 레벨을 생성하도록 구성될 수 있다.
복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 엔트로피 인코딩하기 위해, 인코더 회로(206)는, 외부 메모리(110) 또는 온칩 메모리(204) 등의 메모리로부터, 저장된 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨을 회수하도록 구성될 수 있다. 각각의 1D 서브블록은 DC 양자화되고-변환된 잔차 레벨 및 복수의 AC 양자화되고-변환된 잔차 레벨일 수 있다, 예를 들어, 4x1 서브블록은 하나의 DC 양자화되고-변환된 잔차 레벨 및 3개의 AC 양자화되고-변환된 잔차 레벨을 가질 수 있다.
각각의 1D 서브블록에서 DC 및 AC 양자화되고-변환된 잔차 레벨들의 위치는, 1D 순방향 변환의 적용을 위해 선택된 방향(예를 들어, 1D 블록 또는 서브블록에 대한 좌에서 우로의 스캔 순서 또는 우에서 좌로의 스캔 순서)에 기초할 수 있다. 예를 들어, 1D 행 DCT 변환의 적용은 제1 위치에서 DC 변환 계수를 생성하고, 1D 서브블록의 한 행 내의 후속 위치들에서 나머지 AC 변환 계수를 생성할 수 있다. 유사하게, 1D 열 DCT 변환의 적용은 제1 위치에서 DC 변환 계수를 생성하고, 1D 서브블록의 한 열 내의 후속 위치들에서 나머지 AC 변환 계수를 생성할 수 있다.
양자화되고-변환된 잔차 레벨들의 복수의 1D 서브블록 중의 상이한 1D 서브블록들은 상이한 레벨의 복잡성(또는 평탄성)을 보일 수 있다. 복잡성 또는 평탄성의 레벨은 1D 서브블록 내의 연속적인 픽셀 값들에서의 차이에 대응할 수 있다. 예를 들어, 픽셀 값들에서 큰 변화가 있는 1D 서브블록은 복잡한 서브블록으로서 간주될 수 있는 반면, 픽셀 값들이 비교적 유사한 서브블록은 평탄한 서브블록으로서 간주될 수 있다. 평탄한 서브블록은, 각각의 픽셀 값이 결과 출력 이미지에 상당한 영향을 미치는 복잡한 서브블록에 비해 더 적은 수의 비트를 이용하여 표현될 수 있는 잉여 픽셀 값을 포함할 수 있다.
인코더 회로(206)는, 복수의 서브블록 카테고리 중의 한 서브블록 카테고리에 따라, 1D 이미지 블록의 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 분류하도록 구성될 수 있다. 서브블록 카테고리 세트는, 제1 서브블록 카테고리, 제2 서브블록 카테고리, 및 제3 서브블록 카테고리를 포함할 수 있다. 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리는, 복수의 1D 서브블록 중의 대응하는 1D 서브블록에 대한 상이한 평탄성 레벨 및 복잡성 레벨을 나타낼 수 있다. 더 구체적으로, 제1 서브블록 카테고리, 제2 서브블록 카테고리, 및 제3 서브블록 카테고리는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에서 AC 양자화되고-변환된 잔차 레벨들의 (값들의 범위 등의) 특정한 변동을 나타낼 수 있다.
1D 서브블록의 정교화시에 대응하는 1D 서브블록의 서브블록 카테고리를 식별하기 위해, 인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 한 세트의 시그널링 비트들을 할당하도록 구성될 수 있다. 시그널링 비트 세트는, 복수의 1D 서브블록 중의 각각의 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 한 AC 양자화되고-변환된 잔차 레벨의 최대 값에 기초하여 할당될 수 있다. 시그널링 비트들의 할당된 세트는, 한 세트의 서브블록 카테고리들로부터의, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 한 서브블록 카테고리를 나타낼 수 있다.
한 실시예에 따르면, 인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 한 AC 양자화되고-변환된 잔차 레벨의 최대 값을 제1 기준값 및 제2 기준값과 비교하도록 구성될 수 있다. 최대 값은 0보다 크거나 같은 절대 최대 값일 수 있고, 비교는 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 최대 값이 제1 기준값 또는 제2 기준값과 같은지 또는 제2 기준 값보다 큰지를 결정할 수 있다.
한 실시예에 따르면, 할당된 시그널링 비트 세트는, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨들의 최대 값이 "0" 등의 제1 기준 값과 같을 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대한 제1 서브블록 카테고리를 나타낼 수 있다. 할당된 시그널링 비트 세트는, 유사하게, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨들의 최대 값이 "1" 등의 제2 기준 값과 같을 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대한 제2 서브블록 카테고리를 나타낼 수 있다. 할당된 시그널링 비트 세트는, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨들의 최대 값이 "1" 등의 제2 기준 값보다 클 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대한 제3 서브블록 카테고리를 나타낼 수 있다. 제1 서브블록 카테고리를 나타내는 할당된 시그널링 비트 세트 내의 시그널링 비트 수는 “1" 비트일 수 있다. 제2 서브블록 카테고리 및 제3 서브블록 카테고리를 나타내는 시그널링 비트 세트 내의 시그널링 비트 수는 "2" 비트일 수 있다.
소정 실시예에서, 제1 기준 값은 "0" 이고 제2 기준 값은 “1” 이다. 따라서, 인코더 회로(206)는, 각각의 1D 서브블록에서의 AC 양자화되고-변환된 잔차 레벨이, "0" 또는 “1"과 같은지, 또는 “1"보다 큰지를 체크하도록 구성될 수 있다. 한 예에서, 양자화되고-변환된 잔차 레벨들의 제1 "4x1” 서브블록 SB1, 제2, 및 제3 "4x1“ 서브블록 SB3은 다음과 같이 주어질 수 있다 :
Figure 112019107733601-pat00001
여기서, 서브블록 SB1은 "0"으로서 모든 AC 양자화되고-변환된 잔차 레벨을 가지므로, 서브블록 SB1에서의 AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은 "0” 이다. 서브블록 SB2는, "1"로서의 2개의 AC 양자화되고-변환된 잔차 레벨과 "0"으로서의 1개의 AC 양자화되고-변환된 잔차 레벨을 가질 수 있다. 따라서, 서브블록 SB2에서의 AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은 “1” 이다. 서브블록 SB3에서, AC 양자화되고-변환된 잔차 레벨은, "6", "0" 및 "-2” 이다. AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은 서브블록 SB3에서 "6" 이다. 이 예에서, 서브블록 SB1에서의 AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은, 제1 기준 값 "0"과 동일한, "0"과 같다. 따라서, 서브블록 SB1에는, 한 세트의 시그널링 비트들의 할당의 일부로서, "0" 등의 하나의 시그널링 비트가 할당될 수 있고, 이것은 서브블록 SB1은 (상당한 평탄성 레벨을 나타내는) 제1 서브블록 카테고리에 의해 식별된다는 것을 나타낼 수 있다. 서브블록 SB2에서의 AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은, 제2 기준 값 "1"과 동일한, "1"과 같다. 따라서, 서브블록 SB2에는, 한 세트의 시그널링 비트들의 할당의 일부로서, "10" 등의 2개의 시그널링 비트가 할당될 수 있고, 이것은 서브블록 SB2는 (중간 평탄성 레벨을 나타내는) 제2 서브블록 카테고리에 의해 식별된다는 것을 나타낼 수 있다. 서브블록 SB3에서의 AC 양자화되고-변환된 잔차 레벨의 절대 최대 값은, 제1 기준 값 "0" 및 제2 기준 값 “ 1"보다 큰 "6"과 동일하다. 따라서, 서브블록 SB3에는, 한 세트의 시그널링 비트들의 할당의 일부로서, "11" 등의 2개의 시그널링 비트가 할당될 수 있고, 이것은 서브블록 SB3은 (낮은 평탄성 레벨 또는 높은 복잡성 레벨을 나타내는) 제3 서브블록 카테고리에 의해 식별된다는 것을 나타낼 수 있다.
인코더 회로(206)는, 엔트로피 코딩 방식의 적용에 의해 복수의 1D 서브블록 중의 각각의 1D 서브블록을 인코딩하여 복수의 인코딩된 1D 서브블록을 생성하도록 구성될 수 있다. 엔트로피 코딩 방식은, Huffman 코딩 방식, 지수 Golomb 코딩 방식, 프로그레시브 Golomb 코딩 방식, Golomb-Rice 코딩 방식, 또는 Huffman 코딩 방식과 지수 Golomb 코딩 방식의 조합일 수 있지만, 이것으로 제한되는 것은 아니다.
복수의 인코딩된 1D 서브블록은, 복수의 1D 서브블록 내의 양자화되고-변환된 잔차 레벨들에 대응하는 인코딩된 양자화되고-변환된 잔차 레벨들을 포함할 수 있다. 인코딩된 양자화되고-변환된 잔차 레벨은 비트평면에서 복수의 비트로 표현된다. 비트평면의 수는 인코딩 이전에 명시된 비트깊이와 동일할 수 있다. 예를 들어, 10 비트깊이의 입력 이미지 데이터에 대해, 명시된 비트깊이는, 출력 이미지 데이터에 대해 5 비트깊이일 수 있다. 여기서, 10 비트깊이 및 5 비트깊이는, 각각, 입력 이미지 데이터 및 출력 이미지 데이터에서의 비트평면의 수에 대응한다. 엔트로피 코딩 후, 각각의 인코딩된 양자화되고-변환된 잔차 레벨은 5 비트를 요구하지 않을 수 있다. 따라서, 비트평면에서의 빈 비트 위치들에는 정교화 비트들이 할당되어 출력 이미지 품질을 향상시킬 수 있다.
한 실시예에 따르면, 인코더 회로(206)는, 명시된 비트깊이 및 인코딩된 양자화되고-변환된 잔차 레벨에 의해 점유된 비트 수에 기초하여, 할당될 정교화 비트들의 수를 결정하도록 구성될 수 있다. 예를 들어, 16X1 이미지 블록의 경우 명시된 비트깊이는 5일 수 있다. 인코딩된 이미지 블록 내의 총 비트 수는 “16x5 = 80 비트"일 것이지만, 엔트로피 코딩 후에, 인코딩된 양자화되고-변환된 잔차 레벨은 단지 70 비트만을 점유할 수 있다. 따라서, 인코더 회로(206)는, 총 비트 수와 실제로 점유된 비트 수의 차이, 즉, "80-70 = 10 비트"로서 정교화 비트들의 수를 결정할 수 있다.
인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 서브카테고리에 기초하여, 복수의 1D 서브블록 중의 하나 이상의 비트평면에서 결정된 수의 정교화 비트들을 할당하도록 구성될 수 있다. 복수의 1D 서브블록 중의 한 1D 서브블록에서 할당된 정교화 비트들 수는, 그 1D 서브블록의 서브블록 카테고리에 의존할 수 있다. 할당된 시그널링 비트 세트는, 대응하는 1D 서브블록에서 할당될 정교화 비트들의 수를 결정하는 결정 인자로서 이용될 수 있다. 더 구체적으로, 시그널링 비트들의 할당 세트는, 1D 서브블록의 복잡성 또는 평탄성 레벨에 대해 인코더 회로(206)에게 시그널링할 것이고, 인코더 회로(206)는 대응하는 1D 서브블록에 대해 정교화 비트들의 수 및 정교화 비트들의 위치들을 명시할 수 있는 결정 테이블 또는 명령어들을 저장할 수 있다.
한 실시예에 따르면, 제1 서브블록 카테고리와 연관된 1D 서브블록에 대해, "2"개의 정교화 비트들이 DC 양자화되고-변환된 잔차 레벨 및 AC 양자화되고-변환된 잔차 레벨에 대응하는 비트 위치들에 할당될 수 있다. 제2 서브블록 카테고리와 연관된 1D 서브블록의 경우, DC 양자화되고-변환된 잔차 레벨, 제1 AC 양자화되고-변환된 잔차 레벨, 및 제2 AC 양자화되고-변환된 잔차 레벨에 대응하는 비트 위치들에서 "3"개의 정교화 비트들이 할당될 수 있다. 제3 서브블록 카테고리와 연관된 1D 서브블록에 대해, 정교화 비트들의 수는, 1D 서브블록에서의 DC 양자화되고-변환된 잔차 레벨 및 AC 양자화되고-변환된 잔차 레벨의 카운트와 동일할 수 있다. 다시 말해, 정교화 비트들은, DC 양자화되고-변환된 잔차 레벨 및 각각의 AC 양자화되고-변환된 잔차 레벨에 대응하는 비트 위치들에서 할당될 수 있다. 여기서, 제1 서브카테고리 및 제2 서브블록 카테고리에 대한 정교화 비트들의 수는 "2" 및 "3"으로 제한되지 않는다는 점에 유의해야 한다. 각각의 서브블록 카테고리에 대한 정교화 비트들의 수는, 입력 이미지 블록의 픽셀 값들의 분포의 분석 및/또는 실험에 기초하여 결정될 수 있고, 임계값은 각각의 서브블록 카테고리에 대해 설정될 수 있다. 그러나, 제2 서브블록 카테고리(중간으로 복잡한 서브블록)에 대한 정교화 비트들의 수는 제1 서브블록 카테고리(평탄한 서브블록)에 대한 정교화 비트들의 수보다 낮을 수 없다.
예를 들어, "4x1" 서브블록 (B1)에 대해, B1 = [-13 0 0 0]으로 주어질 때, 모든 AC 양자화되고-변환된 잔차 레벨은 '0'이고, "4x1" 서브블록 "B1"은 제1 서브블록 카테고리와 연관될 수 있다. 따라서, "B1"에 대해, DC 양자화되고-변환된 잔차 레벨 (-13)에 대응하는 위치 및 제1 AC 양자화되고-변환된 잔차 레벨 (0)에 대응하는 위치에서 '2'개의 정교화 비트들이 할당될 수 있다. "4x1” 서브블록 (B2)에 대해, B2 = [-13 1 1 0]으로 주어질 때, 모든 AC 양자화되고-변환된 잔차 레벨들의 절대 최대 값은 '1'(-13은 DC 성분)이고, "B2"는 제2 서브블록 카테고리와 연관될 수 있다. 따라서, "B2"에 대해, DC 양자화되고-변환된 잔차 레벨(-13) 및 처음 2개의 AC 양자화되고-변환된 잔차 레벨(처음 2개의 0)에 대응하는 위치에서 '3'개의 정교화 비트들이 할당될 수 있다. "4x1” 서브블록 (B3)에 대해, B3 = [-7 6 0 -2]으로 주어질 때, 모든 AC 양자화되고-변환된 잔차 레벨들로부터의 절대 최대 값은 '6'이고, "B3"은 제3 서브블록 카테고리와 연관될 수 있다. 따라서, "B3"에 대해, DC 양자화되고-변환된 잔차 레벨 (-7) 및 모든 AC 양자화되고-변환된 잔차 레벨들 (6, 0, -2)에 대응하는 위치에서 '4'개의 정교화 비트들이 할당될 수 있다.
또 다른 실시예에 따르면, 인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 서브카테고리에 기초하여 정교화 순서를 결정하도록 구성될 수 있다. 정교화 순서는 복수의 비트평면 중의 한 비트평면(코딩되지 않은 비트 위치들을 포함할 수 있는 비트평면)에서의 위치들의 시퀀스에 대응할 수 있다. 예를 들어, 정교화 순서 [1, 2, 5, 6, 7, 9, 10, 11, 12]는, 정교화 비트들의 할당이 첫 번째 비트 위치에서 시작하여 두 번째 비트 위치로 진행하여 12번째 비트 위치까지 시퀀스를 따르는 것으로 정의할 수 있다. 정교화 순서는, 각각의 1D 서브블록의 서브블록 카테고리에 대응하는 양자화되고-변환된 잔차 레벨들의 위치들로서 결정될 수 있다. 인코더 회로(206)는 또한, 결정된 정교화 순서에 기초하여 정교화 비트들을 할당하도록 구성될 수 있다.
한 실시예에 따르면, 정교화 비트들은, 정교화의 제1 패스 후에도 여전히 이용가능할 수 있다. 예를 들어, 할당될 총 '10'개의 정교화 비트들이 있을 수 있지만, 정교화의 제1 패스(즉, 서브블록 카테고리에 기초한 정교화 비트들의 할당) 후에, '2'개의 정교화 비트들은 여전히 할당된 상태로 남아 있을 수 있다. 이러한 시나리오에서, 인코더 회로(206)는 또한, 정교화 비트들이 정교화의 제1 패스에서 할당되지 않을 수도 있는, AC 양자화되고-변환된 잔차 레벨들에 대응하는 위치들에서 나머지 정교화 비트들을 할당하도록 구성될 수 있다.
종래의 정교화 기술들에서, 초기에 정교화 비트들은 각각의 1D 서브블록에서의 DC 양자화되고-변환된 잔차 레벨들에 대응하는 위치들에서 할당될 수 있다. 정교화의 제1 패스에서, 1D 서브블록 당 '1'개의 정교화 비트들만이, DC 양자화되고-변환된 잔차 레벨들에 대응하는 위치들에서 할당될 수 있다. 제1 패스 이후에 정교화 비트들이 여전히 이용가능한 경우에, 나머지 정교화 비트들은 AC 양자화되고-변환된 잔차 레벨들에 대응하는 위치들에 할당될 수 있다. 이러한 경우에, 1D 이미지 블록은, 1D 이미지 블록에서의 평탄성 레벨 또는 복잡성 레벨에 기초하여 카테고리화되지 않을 수 있고, 이것은, 다른 서브블록들에 비해 더 많은 수의 정교화 비트들을 요구하는 서브블록들로의 정교화 비트들의 최적 할당을 허용하지 않을 수 있다. 예를 들어, 할당될 정교화 비트들은 '4'일 수 있고 코딩되지 않은 비트들을 가질 수 있는 서브블록의 수도 역시 '4'일 수 있다. 종래의 정교화 기법을 이용하여, 각각의 서브블록은 제1 패스에서 '1'개의 정교화 비트만을 할당받을 수 있다. 이것은, (높은 복잡성 레벨을 갖는) 서브블록이 (비교적 평탄한 레벨을 갖는) 또 다른 서브블록과 동일한 개수의 정교화 비트들을 할당받을 수 있으므로, 정교화 비트들의 최적의 활용이 아닐 수 있다. 따라서, 본 개시내용의 한 실시예에 따라, 정교화 비트들의 할당은, (비교적 평탄한 레벨을 갖는) 서브블록에 비해 (높은 복잡성 레벨을 갖는) 서브블록에 더 많은 수의 정교화 비트들을 할당함으로써 정교화 비트들의 최적의 활용을 보장할 수 있다. 이러한 정교화 비트들의 할당은, 인코딩된 이미지의 품질에 악영향을 미치지 않으면서 압축 효율을 크게 개선시킨다. 또한, 복잡한 서브블록들에 더 많은 수의 정교화 비트들이 할당되기 때문에 코딩 아티팩트도 역시 감소된다.
도 3은, 본 개시내용의 한 실시예에 따른, 도 2의 EBC 회로에 의한, 양자화되고-변환된 잔차 레벨들에 기초한 서브블록들의 분류를 도시한다. 도 3은 도 1 및 도 2의 요소들과 연계하여 설명된다. 도 3을 참조하면, 흐름도(300)가 도시되어 있다. 흐름도(300)는, (복수의 1D 이미지 서브블록으로 분할된) 1D 이미지 블록에 관한, 1D 순방향 변환, 양자화, 및 잔차 예측의 순차적 적용 후에 획득된 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 인코딩하는 동안 인코더 회로(206)에 의해 실행되는 소정의 동작들을 기술한다. 서브블록(302A), 서브블록(302B), 서브블록(302C), 및 서브블록(302D) 등의, 한 세트의 1D 서브블록들이 도시되어 있다. 인코더 회로(206)는, 서브블록(302A) 등의 서브블록을 순차적으로(또는 병렬로) 선택하고, 선택된 서브블록에 대해, 서브블록 카테고리, 예를 들어 "EASY", "MEDIUM" 또는 "COMPLEX"를 결정하도록 구성될 수 있다.
304에서, 인코더 회로(206)는, 서브블록(302A)에 대한 최대 AC 양자화되고-변환된 잔차 레벨 값을 추정하도록 구성될 수 있다. 서브블록(302A)에서, AC 양자화되고-변환된 잔차 레벨은 A1, A2 및 A3이다. 인코더 회로(206)는, 예를 들어, A1일 수 있는, A1, A2 및 A3으로부터 최대 값을 추정하도록 구성될 수 있다.
306에서, 인코더 회로(206)는, 최대 AC 양자화되고-변환된 잔차 레벨이 "0"보다 큰지를 결정하도록 구성될 수 있다. 만일 서브블록 302A에서의 최대 AC 양자화되고-변환된 잔차 레벨이 "0"보다 크다면, 서브블록 302A는, 최대 AC 양자화되고-변환된 잔차 레벨이 “1”과 같은지 또는 “1”보다 큰지에 기초하여, "MEDIUM” 서브블록 카테고리 또는 "COMPLEX" 서브블록 카테고리로 분류될 수 있다. "MEDIUM” 서브블록 카테고리는 제2 서브블록 카테고리에 대응할 수 있고 "COMPLEX” 서브블록 카테고리는 제3 서브블록 카테고리에 대응할 수 있다. 최대 AC 양자화되고-변환된 잔차 레벨이 "0"보다 큰 경우, 제어는 308로 간다. 그렇지 않으면, 제어는 310으로 간다.
308에서, 인코더 회로(206)는, 최대 AC 양자화되고-변환된 잔차 레벨이 "1"과 같은지를 결정하도록 구성될 수 있다. 이 단계에서, 인코더 회로(206)는, 서브블록 302A를 "MEDIUM” 서브블록 카테고리 또는 "COMPLEX” 서브블록 카테고리로 분류하도록 구성될 수 있다. 최대 AC 양자화되고-변환된 잔차 레벨이 “1"과 같은 경우에, 제어는 312로 간다. 그렇지 않으면, 제어는 314로 간다.
310에서, 인코더 회로(206)는, "0"과 동일한 최대 AC 양자화되고-변환된 잔차 레벨에 기초하여, 서브블록 302A의 서브블록 카테고리를 "EASY" 서브블록 카테고리로 결정하도록 구성될 수 있다. 인코더 회로(206)는 또한, 시그널링 비트를 "EASY” 서브블록 카테고리에 대응하는 "0"으로 할당하도록 구성될 수 있다. 서브블록 302A가 카테고리화된 후, 제어는 서브블록 302B 등의 다음 서브블록으로 이동될 수 있다.
312에서, 인코더 회로(206)는, "1"과 동일한 최대 AC 양자화되고-변환된 잔차 레벨에 기초하여, 서브블록 302A의 서브블록 카테고리를 "MEDIUM" 서브블록 카테고리로 결정하도록 구성될 수 있다. 인코더 회로(206)는 또한, 시그널링 비트를 "MEDIUM" 서브블록 카테고리에 대응하는 "10"으로 할당하도록 구성될 수 있다. 서브블록 302A가 카테고리화된 후, 제어는 서브블록 302B 등의 다음 서브블록으로 이동될 수 있다.
314에서, 인코더 회로(206)는, "1"보다 큰 최대 AC 양자화되고-변환된 잔차 레벨에 기초하여, 서브블록 302A의 서브블록 카테고리를 "COMPLEX" 서브블록 카테고리로 결정하도록 구성될 수 있다. 인코더 회로(206)는 또한, 시그널링 비트를 "COMPLEX" 서브블록 카테고리에 대응하는 "11"로 할당하도록 구성될 수 있다. 서브블록 302A가 카테고리화된 후, 제어는 서브블록 302B 등의 다음 서브블록으로 이동될 수 있다. 유사하게, 서브블록 302B, 302C 및 302D 등의, 모든 서브블록이 처리될 수 있다. 일부 실시예들에서, 서브블록들(302A 내지 302D)의 처리는 동시에 실행될 수 있다. 서브블록 카테고리는, "EASY", "MEDIUM" 및 "COMPLEX” 서브블록 카테고리로 제한되지 않는다는 점에 유의해야 한다. 일부 실시예들에서, 2개 이상의 서브블록 카테고리가 있을 수 있다. 예를 들어, "EASY", "MEDIUM1", "MEDIUM2", 및 "COMPLEX". 한 예로서, 우선순위가 고 이미지 품질인 의료 응용에서의 이미지/비디오 압축은, 서브블록 카테고리의 수가, 우선순위가 저장 용량인 응용에서의 이미지/비디오 압축보다 클 수 있다. 다시 말해, 복수의 서브카테고리를 정의하기 위한 규칙은 응용 또는 최종 목표에 따라 정의될 수 있다.
도 4는, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한, 도 2의 EBC 회로에 의한 1D 이미지 블록에 관한 예시적인 순차적 인코딩 방식의 적용을 도시한다. 도 4는, 도 1, 도 2, 및 도 3의 요소들과 연계하여 설명된다. 도 4를 참조하면, 16x1 이미지 블록에 순차적인 엔트로피 코딩 방식을 적용한 다음, 정교화 비트들을 할당하는 동안, 인코더 회로(206)의 상이한 단계들에서의 출력을 보여주는 도면(400)이 도시되어 있다.
초기에, 인코더 회로(206)는, 4개의 이미지 서브블록으로 분할될 수 있는 16x1 이미지 블록을 회수하도록 구성될 수 있다. 예를 들어, 제1 서브블록 IB1은, 한 예에서, 4개의 픽셀 값들 P0, P1, P2, 및 P3을 포함할 수 있다. 유사하게, 마찬가지로 IB2 = [P4, P5, P6, P7], IB3 = [P8, P9, P10, P11] 및 IB4 = [P12, P13, P14, P15]. 인코더 회로(206)는, IB1, IB2, IB3 및 IB4 각각에 관해, 1D 순방향 변환, 후속되는 양자화 방식, 및 잔차 예측 방식을 적용하여, 4개의 서브블록의 양자화되고-변환된 잔차 레벨들을 획득하도록 구성될 수 있다. 예를 들어, 제1 서브블록 IB1로부터 획득된 서브블록 RB1은, 한 예에서, DC 양자화되고-변환된 잔차 레벨(DC0) 및 AC 양자화되고-변환된 잔차 레벨들(A1, A2, 및 A3)을 포함할 수 있다. 유사하게, RB2 = [DC1, A4, A5, A6], RB3 = [DC2, A7, A8, A9], 및 RB4 = [DC3, A10, A11, A12]. 그 후, 인코더 회로(206)는, 각각의 서브블록의 양자화되고-변환된 잔차 레벨들 "RB1, RB2, RB3, 및 RB4"를, 예를 들어, RB1, RB2, RB3 및 RB4에 대해 각각 "Easy", "Medium", "Complex", 및 "Easy"로 표시될 수 있는, 복수의 서브블록 카테고리(402) 중의 한 서브블록 카테고리로 분류하도록 구성될 수 있다. 제1 및 제4 서브블록들의 양자화되고-변환된 잔차 레벨들, "RB1" 및 "RB4"는, 최대 양자화되고-변환된 잔차 레벨 값으로서 "0"을 가질 수 있고, 따라서, 서브블록 카테고리는 RB1 및 RB4에 대해 "Easy"로 결정될 수 있다. 제2 서브블록의 양자화되고-변환된 잔차 레벨 "RB2"는 최대 양자화되고-변환된 잔차 레벨 값으로서 "1"을 가질 수 있고, 따라서 서브블록 카테고리는 RB2에 대해 "Medium"으로 결정될 수 있다. 제3 서브블록의 양자화되고-변환된 잔차 레벨의 "RB3"은 "1"보다 큰 최대 양자화되고-변환된 잔차 레벨 값을 가질 수 있고, 따라서 서브블록 카테고리는 RB3에 대해 "Complex"로 결정될 수 있다.
인코더 회로(206)는 4개의 인코딩된 서브블록을 획득하기 위해 RB1, RB2, RB3 및 RB4 각각에 관해 엔트로피 코딩 방식을 적용하도록 구성될 수 있다. 예를 들어, 서브블록 RB1로부터 획득된 인코딩된 서브블록 EB1은, 한 예에서, 인코딩된 양자화되고-변환된 잔차 레벨들 C0, C1, C2 및 C3을 포함할 수 있다. 유사하게, EB2 = [C4, C5, C6, C7], EB3 = [C8, C9, C10, C11], 및 EB4 = [C12, C13, C14, C15]. C0, C1, C2, ….., C15 각각은, 비트평면들, 즉, BP1, BP2, BP3, BP4 및 BP5에서 DC0, A1, A2, A3, DC1, A4, … DC3, A10, A11, A12에 대응하는 비트 시퀀스로서 표현될 수 있다. 비트평면의 수는 인코딩 동작 전에 명시된 비트깊이와 동일할 수 있다(이 경우 '5'). 도시된 바와 같이, 한 예로서, 비트평면들 BP1, BP2, BP3, 및 BP4는, 인코딩된 비트(404)를 포함할 수 있고, 비트평면 BP5는 코딩되지 않은 비트(406)를 포함할 수 있으며, 이것은 정교화 비트들이 할당될 수 있는 빈 위치일 수 있다.
인코더 회로(206)는, 명시된 비트깊이 및 인코딩된 비트(404)의 수에 기초하여 할당될 정교화 비트들의 카운트를 결정하도록 구성될 수 있다. 예를 들어 '16'개의 입력 픽셀 값들에 대해 명시된 비트깊이는 '5'이고, 총 비트 수는 "16x5", 즉 80 비트와 동일할 수 있다. 비트평면들 BP1, BP2, BP3 및 BP4만이 인코딩된 비트들(16x4 = 64 비트)을 포함하므로, 정교화 비트들의 카운트는 "80-64", 즉, 16 비트로 결정될 수 있다. 또 다른 시나리오에서, 비트평면 BP5는 또한, 인코딩된 비트(예를 들어, "6" 비트)를 포함할 수 있고, 그 다음, 정교화 비트들의 카운트는 "10" 비트로 감소될 수 있다.
도시된 바와 같이, 한 예로서, 제5 비트평면 BP5는 모든 코딩되지 않은 비트(404)를 포함한다. 인코더 회로(206)는, 제5 비트평면 BP5에서, 정교화 비트들, 즉, R1, R2, R3,…, R16을 할당하도록 구성될 수 있다. 그러나, 정교화 비트들 R1, R2, R3,…, R11은, 서브블록의 수(이 경우 '4') 및 서브블록 카테고리들에 기초하여 정교화(408)의 제1 패스에서 순차적으로 할당될 수 있다. 정교화(408)의 제1 패스 후에 정교화 비트들이 여전히 이용가능한 경우에, 인코더 회로(206)는 정교화(410)의 제2 패스에서, 비트평면들의 나머지 위치들에서 나머지 정교화 비트들을 할당하도록 구성될 수 있다. 여기서, 정교화 비트들의 카운트는 '16'으로 결정되고 정교화(408)의 제1 패스 후에, '11' 정교화 비트들이 할당되었다. 따라서, 나머지 '5'개의 정교화 비트들 R12, R13,…, R16은 정교화(410)의 제2 패스에서 할당될 수 있다.
정교화(408)의 제1 패스에서, 인코더 회로(206)는, 서브블록 카테고리들에 기초하여 인코딩된 서브블록들 EB1, EB2, EB3, EB4 각각에서 비트평면 BP5에서 정교화 비트들을 순차적으로 할당하도록 구성될 수 있다. 인코딩된 서브블록 EB1은 "Easy" 서브블록 카테고리에 속하므로, '2'개의 정교화 비트들, 즉, R1 및 R2는, DC0 및 A1에 대응하는 위치들에서 할당될 수 있다. 인코딩된 서브블록 EB2는 "Medium" 서브블록 카테고리에 속하므로, '3'개의 정교화 비트들, 즉, R3, R4 및 R5는 DC1, A4 및 A5에 대응하는 위치들에서 할당될 수 있다. 인코딩된 서브블록 EB3은 "Complex" 서브블록 카테고리에 속하므로, (복잡한 서브블록에서 이용가능한 각각의 위치에서의) '4'개의 정교화 비트들, 즉, R6, R7, R8 및 R9는, DC2, A7, A8 및 A9에 대응하는 위치들에서 할당될 수 있다. 인코딩된 서브블록 EB4는 "Easy" 서브블록 카테고리에 속하므로, '2'개의 정교화 비트들, 즉, R10 및 R11은, DC3 및 A10에 대응하는 위치들에서 할당될 수 있다. 정교화 비트들이 정교화의 제1 패스에서 할당될 수 있는 비트평면 BP5에서의 위치들은, 높은 우선순위의 위치들에 대응할 수 있다. 높은 우선순위는, 이들 위치들에서의 정교화 비트들의 할당은 다른 위치에서의 할당에 비해 이미지 품질에 더 큰 영향을 미칠 것이라고 명시할 수 있다.
정교화(410)의 제2 패스에서, 인코더 회로(206)는 또한, 비트평면 BP5에서, 나머지 AC 양자화되고-변환된 잔차 레벨들에 대응하는 위치들에서 나머지 정교화 비트들을 할당하도록 구성될 수 있다. 인코딩된 서브블록 EB1, EB2, 및 EB4는, A2, A3, A6, A11, 및 A12에 대응하는 위치들을 포함하기 때문에, 나머지 정교화 비트들 R12, R13,…, R16은, 이들 위치에서 순차적으로 할당될 수 있다. A2, A3, A6, A11, 및 A12에 대응하는 위치들은 낮은 우선순위의 위치들에 대응할 수 있다. 낮은 우선순위는, 이들 위치들에서의 정교화 비트들의 할당은 높은 우선순위의 위치들에서의 할당에 비해 이미지 품질에 덜 영향을 줄 것이라고 명시할 수 있다.
도 5a 및 도 5b는, 본 개시내용의 한 실시예에 따른, 정교화 비트들의 서브블록 기반의 할당을 위한 예시적인 방법을 도시하는 플로차트를 집합적으로 도시한다. 도 5a 및 도 5b는, 도 1, 도 2, 도 3, 및 도 4의 요소들과 연계하여 설명된다. 도 5a 및 도 5b를 참조하면, EBC 회로(108)에서 구현된 플로차트(500)가 도시되어 있다. 이 방법은 502에서 시작하여 504로 진행한다.
504에서, 1D 이미지 블록은 복수의 1D 이미지 서브블록으로 분할될 수 있다. 인코더 회로(206)는, 1D 이미지 블록, 예를 들어 "16x1" 이미지 블록을 복수의 1D 이미지 서브블록으로 분할하도록 구성될 수 있다.
506에서, 1D 변환, 및 후속되는 양자화, 잔차 예측의 순차적 적용이 복수의 1D 이미지 서브블록에 관해 실행되어, 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 생성할 수 있다. 인코더 회로(206)는, 복수의 1D 이미지 서브블록에 관해, 1D 변환, 후속되는 양자화, 및 잔차 예측의 순차적 적용을 실행하여, 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 생성하도록 구성될 수 있다.
508에서, 1D 이미지 블록에 대한 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들이 저장될 수 있다. (온칩 메모리(204) 또는 외부 메모리(110) 등의) 메모리는, 1D 이미지 블록에 대한 복수의 1D 서브블록의 양자화되고-변환된 잔차 레벨들을 저장하도록 구성될 수 있다.
510에서, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 AC 양자화되고-변환된 잔차 레벨의 최대 값이 제1 기준값 및 제2 기준값과 비교될 수 있다. 인코더 회로(206)는, 복수의 AC 양자화되고-변환된 잔차 레벨들로부터 AC 양자화되고-변환된 잔차 레벨의 최대 값을 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 제1 기준 값과 비교하도록 구성될 수 있다.
512에서, 이 비교에 기초하여, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대해 복수의 서브카테고리 중의 한 서브블록 카테고리가 결정될 수 있다. 인코더 회로(206)는, 비교에 기초하여, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대해 복수의 서브카테고리 중의 한 서브블록 카테고리를 결정하도록 구성될 수 있다.
514에서, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 대응하는 서브블록 카테고리에 기초하여, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 한 세트의 시그널링 비트들이 할당될 수 있다. 인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 대응하는 서브블록 카테고리에 기초하여, 한 세트의 시그널링 비트들을 복수의 1D 서브블록 중의 각각의 1D 서브블록에 할당하도록 구성될 수 있다.
516에서, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 DC 및 AC 양자화되고-변환된 잔차 레벨이 엔트로피 코딩 방식의 적용에 의해 인코딩되어 복수의 인코딩된 서브블록을 생성할 수 있다. 복수의 인코딩된 서브블록은, 복수의 비트평면에서 복수의 인코딩된 비트를 포함할 수 있다. 인코더 회로(206)는, 엔트로피 코딩 방식의 적용에 의해, 복수의 1D 서브블록 중의 각각의 1D 서브블록을 인코딩하여 복수의 인코딩된 서브블록을 생성하도록 구성될 수 있다.
518에서, 복수의 비트평면에 대응하는 복수의 비트평면에서의 명시된 비트깊이 및 인코딩된 비트들의 카운트에 기초하여 정교화 비트들의 카운트가 결정될 수 있다. 인코더 회로(206)는, 복수의 비트평면에서의 명시된 비트깊이 및 인코딩된 비트들의 카운트에 기초하여 정교화 비트들의 카운트를 결정하도록 구성될 수 있다.
520에서, 정교화 비트들은, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대응하는 할당된 시그널링 비트 세트에 기초하여, 복수의 인코딩된 서브블록 내의 코딩되지 않은 비트 위치들에서 할당될 수 있다. 인코더 회로(206)는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대응하는 할당된 시그널링 비트 세트에 기초하여, 복수의 비트평면 내의 코딩되지 않은 비트 위치들에서 정교화 비트들을 할당하도록 구성될 수 있다.
522에서, 결정된 카운트의 정교화 비트들 중 임의의 정교화 비트가 여전히 할당에 이용가능한지가 결정될 수 있다. 인코더 회로(206)는, 결정된 카운트의 정교화 비트들 중의 임의의 정교화 비트들이 여전히 할당에 이용가능한지를 결정하도록 구성될 수 있다. 결정된 카운트의 정교화 비트들 중의 임의의 정교화 비트들이 여전히 할당에 이용가능한 경우, 제어는 524로 가거나, 또는 제어는 종료로 간다.
524에서, 할당을 위해 여전히 이용가능한 정교화 비트들이, 복수의 비트평면에서 남아있는 코딩되지 않은 비트 위치들에서 순차적으로 할당될 수 있다. 인코더 회로(206)는, 복수의 비트평면 내의 남아있는 코딩되지 않은 비트 위치들에서 순차적으로, 할당을 위해 여전히 이용가능한 정교화 비트들을 할당하도록 구성될 수 있다. 제어는 종료할 수 있다.
본 개시내용의 소정 실시예는, 임베디드 코덱(EBC) 회로(예를 들어, EBC 회로(108)(도 1))에서 발견될 수 있다. 본 개시내용의 다양한 실시예는, 메모리 (예를 들어, 온칩 메모리(204)(도 2)), 및 메모리에 통신가능하게 결합된 인코더 회로(예를 들어, 인코더 회로(206)(도 2))를 포함할 수 있는 EBC 회로를 제공할 수 있다. 메모리는, 1D 이미지 블록에 대한 복수의 1차원(1D) 서브블록의 양자화되고-변환된 잔차 레벨들(예를 들어, 서브블록들 302A, 302B, 302C, 및 302D)(도 3))을 저장하도록 구성될 수 있다. 인코더 회로는, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 한 세트의 서브블록 카테고리들(예를 들어, 서브블록 카테고리 402(도 4))로부터 한 서브블록 카테고리를 결정하도록 구성될 수 있다. 서브블록 카테고리는, 복수의 1D 서브블록 중의 각각의 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 한 AC 양자화되고-변환된 잔차 레벨의 최대 값에 기초하여 결정될 수 있다. 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리는, 복수의 1D 서브블록 중의 대응하는 1D 서브블록에 대한 상이한 평탄성 레벨 및 복잡성 레벨을 나타낼 수 있다. 인코더 회로는 또한, 엔트로피 코딩 방식의 적용에 의해 복수의 1D 서브블록을 인코딩하여 복수의 인코딩된 1D 서브블록(예를 들어, 인코딩된 서브블록들 EB1, EB2, EB3 및 EB4 (도 4))을 생성하도록 구성될 수 있다. 인코더 회로는 또한, 복수의 인코딩된 1D 서브블록 중의 한 인코딩된 1D 서브블록 내의 한 세트의 인코딩된 양자화되고-변환된 잔차 레벨들에 대응하는 한 세트의 비트평면들에서의 비트 위치들에서 복수의 정교화 비트(예를 들어, 정교화 비트들 R1, R2, R3, ….., R16(도 4))를 할당하도록 구성될 수 있다. 복수의 정교화 비트는, 인코딩된 1D 서브블록에 대응하는, 복수의 1D 서브블록 중의 한 1D 서브블록의 서브블록 카테고리에 기초하여 할당될 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 순차적 인코딩 방식에 의해 1D 이미지 블록을 인코딩하여 복수의 인코딩된 1D 서브블록을 생성하도록 구성될 수 있다. 순차적 인코딩 방식은, 1D 변환, 후속되는 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함할 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 1D 이미지 블록에 관해 1D 변환을 적용하여 복수의 1D 서브블록을 생성하도록 구성될 수 있다. 복수의 1D 서브블록 중의 각각의 1D 서브블록은, DC 양자화되고-변환된 잔차 레벨 및 복수의 AC 양자화되고-변환된 잔차 레벨을 포함할 수 있다. 1D 이미지 블록에 관해 적용되는 1D 변환의 유형은, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 크기에 기초할 수 있다. 복수의 1D 서브블록 중의 각각의 1D 서브블록의 크기는, 1D 이미지 블록의 인코딩 전에 명시될 수 있다. 복수의 인코딩된 1D 서브블록 중의 각각의 인코딩된 1D 서브블록은, 복수의 인코딩된 양자화되고-변환된 잔차 레벨(예를 들어, 인코딩된 양자화되고-변환된 잔차 레벨들 C0, C1, C2, ….., C15 (도 4))을 포함할 수 있다. 복수의 인코딩된 양자화되고-변환된 잔차 레벨 중의 각각의 인코딩된 양자화되고-변환된 잔차 레벨은, 정의된 비트깊이에 대응하는 한 세트의 비트들(예를 들어, 인코딩된 비트들 404)(도 4))을 포함할 수 있다. 복수의 정교화 비트들의 할당을 위한 정교화 비트들의 수는, 정의된 비트깊이 및 비트 세트에 기초할 수 있다. 복수의 인코딩된 양자화되고-변환된 잔차 레벨은, DC 양자화되고-변환된 잔차 레벨에 대응하는 DC 양자화되고-변환된 잔차 인코딩된 레벨 및 복수의 AC 양자화되고-변환된 잔차 레벨에 대응하는 복수의 AC 양자화되고-변환된 잔차 인코딩된 레벨을 포함할 수 있다. 인코딩된 양자화되고-변환된 잔차 레벨 세트는, DC 양자화되고-변환된 잔차 인코딩된 레벨, 및 복수의 AC 양자화되고-변환된 잔차 인코딩된 레벨들 중 적어도 하나를 포함할 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 복수의 1D 서브블록 중의 각각의 1D 서브블록의 서브블록 카테고리에 기초하여, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 시그널링 비트 세트를 할당하도록 구성될 수 있다. 인코더 회로는 또한, 인코딩된 1D 서브블록에 대응하는 제1 1D 서브블록에 할당된 시그널링 비트 세트에 기초하여, 인코딩된 1D 서브블록 내의 인코딩된 양자화되고-변환된 잔차 레벨 세트를 선택하도록 구성될 수 있다.
한 실시예에 따르면, 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨의 카운트는, 제1 인코딩된 1D 서브블록에 대응하는 제1 1D 서브블록의 결정된 서브블록 카테고리에 의존할 수 있다.
한 실시예에 따르면, 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨의 카운트는, 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리에 대해 상이할 수 있다.
한 실시예에 따르면, 인코더 회로는 또한, 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 AC 양자화되고-변환된 잔차 레벨의 최대 값을 제1 기준값 및 제2 기준 값과 비교하도록 구성될 수 있다. 최대 값은, 0보다 크거나 같은 절대 최대 값일 수 있다. 소정 실시예에서, 제1 기준 값은 0이고 제2 기준 값은 1이다. 서브블록 카테고리 세트는, 제1 서브블록 카테고리, 제2 서브블록 카테고리, 및 제3 서브블록 카테고리를 포함할 수 있다. 한 경우에, 서브블록 카테고리는, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨의 최대 값이 제1 기준 값과 동일할 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대해, 제1 서브블록 카테고리로서 결정될 수 있다. 제2 경우에, 서브블록 카테고리는, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨의 최대 값이 제2 기준 값과 동일할 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대해, 제2 서브블록 카테고리로서 결정될 수 있다. 제3 경우에, 서브블록 카테고리는, 1D 서브블록 내의 복수의 AC 양자화되고-변환된 잔차 레벨의 최대 값이 제2 기준 값보다 클 때, 복수의 1D 서브블록 중의 한 1D 서브블록에 대해, 제3 서브블록 카테고리로서 결정될 수 있다. 소정 실시예들에서, 제2 서브블록 카테고리에 대한 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제1 카운트는, 제1 서브블록 카테고리에 대한 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제2 카운트보다 크거나 같을 수 있다. 제3 서브블록 카테고리에 대한 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제3 카운트는, 제1 카운트 및 제2 카운트보다 클 수 있다.
한 실시예에 따르면, 인코더 회로는, 제1 1D 서브블록의 서브블록 카테고리에 기초하여 제1 인코딩된 1D 서브블록에서의 정교화 순서를 결정하도록 구성될 수 있다. 정교화 순서는, 복수의 정교화 비트들이 비트평면 세트에서의 비트 위치들에 할당되는 시퀀스를 정의할 수 있다. 인코더 회로는 또한, 인코딩된 양자화되고-변환된 잔차 레벨 세트에 대응하는 비트평면 세트 내의 제1 비트 위치에서 복수의 정교화 비트 중의 제1 정교화 비트를 할당하고, 후속해서, 비트평면 세트 내의 후속 위치들에서 복수의 정교화 비트 중의 후속 정교화 비트의 할당이 뒤따르도록 구성될 수 있다. 복수의 정교화 비트의 할당은 결정된 정교화 순서에 기초할 수 있다. 제1 비트 위치는, 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 제1 인코딩된 양자화되고-변환된 잔차 레벨에 대응할 수 있다.
본 개시내용은, 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로 실현될 수 있다. 본 개시내용은, 적어도 하나의 컴퓨터 시스템에서 중앙집중형 방식으로, 또는 상이한 요소들이 수 개의 상호접속된 컴퓨터 시스템들에 걸쳐 분산되어 있을 수 있는 분산형 방식으로 실현될 수 있다. 여기서 설명된 방법을 실행하도록 맞게 적응된 컴퓨터 시스템 또는 다른 장치가 적절할 수도 있다. 하드웨어 및 소프트웨어의 조합은, 로딩되고 실행될 때, 여기서 설명된 방법을 수행하도록 컴퓨터 시스템을 제어할 수 있는 컴퓨터 프로그램을 갖춘 범용 컴퓨터 시스템일 수 있다. 본 개시내용은 다른 기능들도 역시 수행하는 집적 회로의 일부를 포함하는 하드웨어로 실현될 수도 있다.
본 개시내용은 또한, 여기서 설명된 방법들의 구현을 가능하게 하고 컴퓨터 시스템에 로딩될 때 이들 방법을 실행할 수 있는 모든 피쳐들을 포함하는 컴퓨터 프로그램 제품에 임베딩될 수도 있다. 컴퓨터 프로그램은, 본 정황에서, 정보 처리 능력을 가진 시스템으로 하여금, 특정 기능을, 곧바로, 또는 a) 또 다른 언어, 코드 또는 표기로의 변환; b) 상이한 자료 형태로의 재생산 중 어느 하나 또는 양쪽 모두 이후에, 수행하게 하도록 의도된 한 세트의 명령어로 이루어진, 임의의 언어로 된, 임의의 표현, 코드 또는 표기를 의미한다.
본 개시내용이 소정 실시예들을 참조하여 기술되었지만, 본 기술분야의 통상의 기술자라면, 본 개시내용의 범위로부터 벗어나지 않고 다양한 변경이 이루어질 수 있고 균등물로 대체될 수 있다는 것을 이해할 것이다. 또한, 특정한 상황 또는 재료를 그 범위로부터 벗어나지 않고 본 개시내용의 교시에 맞게 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 본 개시내용은 개시된 특정 실시예로 제한되지 않으며, 본 개시내용은 첨부된 청구항들의 범위 내에 속하는 모든 실시예를 포함하는 것으로 의도된다.

Claims (21)

  1. 임베디드 코덱(EBC; embedded codec) 회로로서,
    1D 이미지 블록에 대한 복수의 1차원(1D) 서브블록의 양자화되고-변환된 잔차 레벨들을 저장하도록 구성된 메모리; 및
    인코더 회로를 포함하고,
    상기 인코더 회로는 :
    상기 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 복수의 AC양자화되고-변환된 잔차 레벨로부터의 AC 양자화되고-변환된 잔차 레벨의 최대 값을 제1 기준값 및 제2 기준값과 비교하고;
    상기 복수의 1D 서브블록 중의 각각의 1D 서브블록 내의 상기 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 상기 AC 양자화되고-변환된 잔차 레벨의 상기 최대 값의 상기 제1 기준값과 상기 제2 기준값에 대한 상기 비교에 기초하여, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 서브블록 카테고리를 서브블록 카테고리 세트로부터 결정하고 ―상기 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리는, 상기 복수의 1D 서브블록 중의 대응하는 1D 서브블록에 대한 상이한 평탄성 레벨 및 복잡성 레벨을 나타냄― ;
    엔트로피 코딩 방식의 적용에 의해 상기 복수의 1D 서브블록을 인코딩하여 복수의 인코딩된 1D 서브블록을 생성하며;
    상기 복수의 1D 서브블록 중의 제1 1D 서브블록의 서브블록 카테고리에 기초하여, 상기 복수의 인코딩된 1D 서브블록 중의 제1 인코딩된 1D 서브블록 내의 인코딩된 양자화되고-변환된 잔차 레벨 세트에 대응하는 비트평면 세트에서의 비트 위치들에서 복수의 정교화 비트 ―상기 제1 1D 서브블록은 상기 제1 인코딩된 1D 서브블록에 대응함― 를 할당하도록 구성된, EBC 회로.
  2. 제1항에 있어서, 상기 인코더 회로는 또한, 순차적 인코딩 방식에 의해 상기 1D 이미지 블록을 인코딩하여 상기 복수의 인코딩된 1D 서브블록을 생성하도록 구성되고,
    상기 순차적 인코딩 방식은, 1D 변환, 양자화, 잔차 예측, 및 엔트로피 코딩 방식의 순차적 적용을 포함하는, EBC 회로.
  3. 제1항에 있어서, 상기 인코더 회로는 또한, 상기 1D 이미지 블록에 관해 1D 변환을 적용하여 상기 복수의 1D 서브블록을 생성하도록 구성되고, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록은, DC 양자화되고-변환된 잔차 레벨 및 상기 복수의 AC 양자화되고-변환된 잔차 레벨을 포함하는, EBC 회로.
  4. 제3항에 있어서,
    상기 1D 변환의 유형은, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록의 크기에 기초하고,
    상기 복수의 1D 서브블록 중의 각각의 1D 서브블록의 크기는 상기 1D 이미지 블록의 인코딩 전에 명시되는, EBC 회로.
  5. 제3항에 있어서, 상기 복수의 인코딩된 1D 서브블록 중의 각각의 인코딩된 1D 서브블록은 복수의 인코딩된 양자화되고-변환된 잔차 레벨을 포함하는, EBC 회로.
  6. 제5항에 있어서,
    상기 복수의 인코딩된 양자화되고-변환된 잔차 레벨 중의 각각의 인코딩된 양자화되고-변환된 잔차 레벨은, 정의된 비트깊이에 대응하는 한 세트의 비트들을 포함하고,
    상기 복수의 정교화 비트의 할당을 위한 정교화 비트들의 수는, 상기 정의된 비트깊이 및 상기 비트 세트에 기초하는, EBC 회로.
  7. 제5항에 있어서,
    상기 복수의 인코딩된 양자화되고-변환된 잔차 레벨은, 상기 DC 양자화되고-변환된 잔차 레벨에 대응하는 DC 양자화되고-변환된 잔차 인코딩된 레벨, 및 상기 복수의 AC 양자화되고-변환된 잔차 레벨에 대응하는 복수의 AC 양자화되고-변환된 잔차 인코딩된 레벨을 포함하고,
    상기 인코딩된 양자화되고-변환된 잔차 레벨 세트는, 상기 DC 양자화되고-변환된 잔차 인코딩된 레벨, 및 상기 복수의 AC 양자화되고-변환된 잔차 인코딩된 레벨들 중 적어도 하나를 포함하는, EBC 회로.
  8. 제1항에 있어서, 상기 인코더 회로는 또한, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록의 상기 서브블록 카테고리에 기초하여, 한 세트의 시그널링 비트들을 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록에 할당하도록 구성된, EBC 회로.
  9. 제8항에 있어서, 상기 인코더 회로는 또한, 상기 제1 인코딩된 1D 서브블록에 대응하는 상기 제1 1D 서브블록에 할당된 시그널링 비트 세트에 기초하여, 상기 제1 인코딩된 1D 서브블록 내의 인코딩된 양자화되고-변환된 잔차 레벨 세트를 선택하도록 구성된, EBC 회로.
  10. 제1항에 있어서, 상기 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨의 카운트는, 상기 제1 인코딩된 1D 서브블록에 대응하는 상기 제1 1D 서브블록의 상기 결정된 서브블록 카테고리에 의존하는, EBC 회로.
  11. 제1항에 있어서, 상기 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨의 카운트는, 상기 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리에 대해 상이한, EBC 회로.
  12. 제1항에 있어서,
    상기 AC 양자화되고-변환된 잔차 레벨의 최대 값은 0보다 크거나 같은 절대 최대 값인, EBC 회로.
  13. 제12항에 있어서, 상기 제1 기준값은 0이고 상기 제2 기준값은 1인, EBC 회로.
  14. 제12항에 있어서,
    상기 서브블록 카테고리 세트는, 제1 서브블록 카테고리, 제2 서브블록 카테고리, 및 제3 서브블록 카테고리를 포함하는, EBC 회로.
  15. 제14항에 있어서, 상기 인코더 회로는 또한, 상기 제1 1D 서브블록 내의 상기 AC 양자화되고-변환된 잔차 레벨의 상기 최대 값이 상기 제1 기준값과 동일한 경우에, 상기 비교에 기초하여 상기 제1 1D 서브블록에 대한 서브블록 카테고리를 상기 제1 서브블록 카테고리로 결정하도록 구성되는, EBC 회로.
  16. 제14항에 있어서, 상기 인코더 회로는 또한, 상기 제1 1D 서브블록 내의 상기 AC 양자화되고-변환된 잔차 레벨의 상기 최대 값이 상기 제2 기준값과 동일한 경우에, 상기 비교에 기초하여 상기 제1 1D 서브블록에 대한 서브블록 카테고리를 상기 제2 서브블록 카테고리로 결정하도록 구성되는, EBC 회로.
  17. 제14항에 있어서, 상기 인코더 회로는 또한, 상기 제1 1D 서브블록 내의 상기 AC 양자화되고-변환된 잔차 레벨의 상기 최대 값이 상기 제2 기준값보다 큰 경우에, 상기 비교에 기초하여 상기 제1 1D 서브블록에 대한 서브블록 카테고리를 상기 제3 서브블록 카테고리로 결정하도록 구성되는, EBC 회로.
  18. 제14항에 있어서,
    상기 제2 서브블록 카테고리에 대한 상기 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제1 카운트는, 상기 제1 서브블록 카테고리에 대한 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제2 카운트보다 크거나 같고,
    상기 제3 서브블록 카테고리에 대한 상기 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 인코딩된 양자화되고-변환된 잔차 레벨들의 제3 카운트는, 상기 제1 카운트 및 상기 제2 카운트보다 큰, EBC 회로.
  19. 제1항에 있어서, 상기 인코더 회로는 또한, 상기 제1 1D 서브블록의 서브블록 카테고리에 기초하여 상기 제1 인코딩된 1D 서브블록에서의 정교화 순서를 결정하도록 구성되고,
    상기 정교화 순서는, 상기 복수의 정교화 비트가 상기 비트평면 세트에서의 비트 위치들에 할당되는 시퀀스를 정의하는, EBC 회로.
  20. 제19항에 있어서, 상기 인코더 회로는 또한, 인코딩된 양자화되고-변환된 잔차 레벨 세트에 대응하는 비트평면 세트 내의 제1 비트 위치에서 상기 복수의 정교화 비트 중의 제1 정교화 비트를 할당하고, 후속해서, 상기 비트평면 세트 내의 후속 위치들에서 상기 복수의 정교화 비트 중의 후속 정교화 비트들의 할당이 뒤따르도록 구성되고,
    상기 할당은 상기 결정된 정교화 순서에 기초하고, 상기 제1 비트 위치는, 상기 인코딩된 양자화되고-변환된 잔차 레벨 세트 내의 제1 인코딩된 양자화되고-변환된 잔차 레벨에 대응하는, EBC 회로.
  21. 방법으로서,
    메모리 및 인코더 회로를 포함하는 임베디드 코덱(EBC) 회로에서 :
    상기 메모리에 의해, 1D 입력 이미지 블록에 대한 복수의 1차원(1D) 서브블록의 양자화되고-변환된 잔차 레벨들을 저장하는 단계;
    상기 인코더 회로에 의해, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 복수의 AC양자화되고-변환된 잔차 레벨로부터의 AC 양자화되고-변환된 잔차 레벨의 최대 값을 제1 기준값 및 제2 기준값과 비교하는 단계;
    상기 인코더 회로에 의해, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록 내의 상기 복수의 AC 양자화되고-변환된 잔차 레벨로부터의 상기 AC 양자화되고-변환된 잔차 레벨의 상기 최대 값의 상기 제1 기준값과 상기 제2 기준값에 대한 상기 비교에 기초하여, 상기 복수의 1D 서브블록 중의 각각의 1D 서브블록에 대한 서브블록 카테고리를 서브블록 카테고리 세트로부터 결정 ―상기 서브블록 카테고리 세트 중의 각각의 서브블록 카테고리는, 상기 복수의 1D 서브블록 중의 대응하는 1D 서브블록에 대한 상이한 평탄성 레벨 및 복잡성 레벨을 나타냄―하는 단계;
    상기 인코더 회로에 의해, 엔트로피 코딩 방식의 적용에 의해 상기 복수의 1D 서브블록을 인코딩하여 복수의 인코딩된 1D 서브블록을 생성하는 단계; 및
    상기 인코더 회로에 의해, 상기 복수의 1D 서브블록 중의 제1 1D 서브블록의 서브블록 카테고리에 기초하여, 상기 복수의 인코딩된 1D 서브블록 중의 제1 인코딩된 1D 서브블록 내의 인코딩된 양자화되고-변환된 잔차 레벨 세트에 대응하는 비트평면 세트에서의 비트 위치들에서 복수의 정교화 비트 ―상기 제1 1D 서브블록은 상기 제1 인코딩된 1D 서브블록에 대응함― 를 할당하는 단계
    를 포함하는 방법.
KR1020190131212A 2019-03-01 2019-10-22 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로 KR102267322B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/289,873 US10939107B2 (en) 2019-03-01 2019-03-01 Embedded codec circuitry for sub-block based allocation of refinement bits
US16/289,873 2019-03-01

Publications (2)

Publication Number Publication Date
KR20200105739A KR20200105739A (ko) 2020-09-09
KR102267322B1 true KR102267322B1 (ko) 2021-06-22

Family

ID=72236939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190131212A KR102267322B1 (ko) 2019-03-01 2019-10-22 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로

Country Status (4)

Country Link
US (1) US10939107B2 (ko)
JP (1) JP6860053B2 (ko)
KR (1) KR102267322B1 (ko)
CN (1) CN111641833B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020182207A1 (en) * 2019-03-13 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Partitions on sub-block transform mode

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101266577B1 (ko) * 2009-06-09 2013-05-23 소니 주식회사 화상 처리 방법 및 장치
US20140307801A1 (en) * 2011-11-04 2014-10-16 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
US20150201191A1 (en) * 2014-01-10 2015-07-16 Sony Corporation Adaptive block partitioning with shared bit-budget
US20170118471A1 (en) 2015-10-23 2017-04-27 Sony Corporation System and method for compression of digital content
US20180139471A1 (en) 2016-11-15 2018-05-17 Sony Corporation Method and system to refine coding of p-phase data
US20200137402A1 (en) 2018-10-24 2020-04-30 Sony Corporation Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153294A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Inter-layer coefficient coding for scalable video coding
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
KR100728031B1 (ko) 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
CN100551060C (zh) * 2006-05-30 2009-10-14 华为技术有限公司 一种视频编解码方法
KR20110091000A (ko) 2008-11-07 2011-08-10 미쓰비시덴키 가부시키가이샤 화상 부호화 장치 및 화상 복호 장치
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US8817884B2 (en) 2009-11-20 2014-08-26 Texas Instruments Incorporated Techniques for perceptual encoding of video frames
KR101540899B1 (ko) 2010-04-09 2015-07-30 미쓰비시덴키 가부시키가이샤 화상 부호화 장치
CA2839560C (en) * 2011-06-16 2016-10-04 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Entropy coding of motion vector differences
JP6134651B2 (ja) 2011-12-28 2017-05-24 シャープ株式会社 算術復号装置、算術符号化装置および算術復号方法
KR101818102B1 (ko) * 2012-04-13 2018-01-12 캐논 가부시끼가이샤 인코딩된 비디오 데이터의 변환 유닛의 서브세트를 인코딩 및 디코딩하는 방법, 장치 및 시스템
JP2014082639A (ja) 2012-10-16 2014-05-08 Canon Inc 画像符号化装置およびその方法
US10085027B2 (en) 2015-03-06 2018-09-25 Qualcomm Incorporated Adaptive mode checking order for video encoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101266577B1 (ko) * 2009-06-09 2013-05-23 소니 주식회사 화상 처리 방법 및 장치
US20140307801A1 (en) * 2011-11-04 2014-10-16 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
US20150201191A1 (en) * 2014-01-10 2015-07-16 Sony Corporation Adaptive block partitioning with shared bit-budget
US20170118471A1 (en) 2015-10-23 2017-04-27 Sony Corporation System and method for compression of digital content
US20180139471A1 (en) 2016-11-15 2018-05-17 Sony Corporation Method and system to refine coding of p-phase data
US20200137402A1 (en) 2018-10-24 2020-04-30 Sony Corporation Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels

Also Published As

Publication number Publication date
JP6860053B2 (ja) 2021-04-14
KR20200105739A (ko) 2020-09-09
JP2020141394A (ja) 2020-09-03
US10939107B2 (en) 2021-03-02
US20200280720A1 (en) 2020-09-03
CN111641833A (zh) 2020-09-08
CN111641833B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
JP2022523925A (ja) 映像コンテンツを処理するための方法及びシステム
TWI830629B (zh) 轉換省略區塊之傳訊編碼技術
US10645386B1 (en) Embedded codec circuitry for multiple reconstruction points based quantization
CN114375582A (zh) 处理亮度和色度信号的方法和系统
KR20210021581A (ko) 비디오 코딩에서의 필터링을 위한 장치 및 방법
CN112042194B (zh) 一种编码/解码的方法及电子装置
US10728557B2 (en) Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels
KR102267322B1 (ko) 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로
KR102267792B1 (ko) 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩
CN115836525A (zh) 用于从多个交叉分量进行预测的方法和系统
US10798419B2 (en) Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
CN115066898A (zh) 跨层参考限制条件
US10750182B2 (en) Embedded codec circuitry for visual quality based allocation of refinement bits
JP2022539311A (ja) ピクチャのサブセクション用の独立したcabac
KR102267215B1 (ko) 잔차 레벨 데이터의 위치 의존적 엔트로피 코딩을 위한 임베디드 코덱(ebc) 회로
JP2020127188A5 (ko)
US10652543B2 (en) Embedded codec circuitry and method for frequency-dependent coding of transform coefficients
JP2022548685A (ja) 画像データの符号化及び復号化

Legal Events

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