KR101419424B1 - 비디오 코딩에 따른 예측 크기 유닛 시그널링 - Google Patents
비디오 코딩에 따른 예측 크기 유닛 시그널링 Download PDFInfo
- Publication number
- KR101419424B1 KR101419424B1 KR1020120105699A KR20120105699A KR101419424B1 KR 101419424 B1 KR101419424 B1 KR 101419424B1 KR 1020120105699 A KR1020120105699 A KR 1020120105699A KR 20120105699 A KR20120105699 A KR 20120105699A KR 101419424 B1 KR101419424 B1 KR 101419424B1
- Authority
- KR
- South Korea
- Prior art keywords
- prediction
- slice
- video
- binary tree
- accordance
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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 slice, e.g. a line of blocks or a group of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 코딩에 따른 예측 크기 유닛의 시그널링. 비디오 코딩에 따라, 다양한 이진화가 수행될 수 있다. 다른 유형들의 슬라이스들(예를 들어, I, P, B 슬라이스들)과 관련된 코딩에 따라, 하나 또는 그 이상의 이진 트리들이 다양한 각각의 동작들(예를 들어, 코딩 유닛(CU) 예측 및 예측 유닛(PU) 파티션 모드 동작들)을 수행하도록 이용될 수도 있다. 일 구현에서, P 슬라이스들 및 B 슬라이스들 둘 다에 대하여 단일 신택스 요소로 CU 예측 및 PU 파티션 모드를 공동으로 인코딩하기 위하여, 공통 이진 트리 또는 단일 이진 트리가 이용된다. 말하자면, 이러한 구현에서, 적어도 이러한 상이한 각각의 프로세스들/동작들에 대하여 상이한 각각의 이진 트리들을 이용하는 것 대신에, 공통 또는 단일 이진 트리가 그들 모두에 대하여 이용될 수도 있다. 인코더/송신기 디바이스 및 디코더/수신기 디바이스 간의 적절한 조정이 비디오 코딩의 상이한 각각의 페이즈에 대한 적절한 처리를 보장하도록 수행될 수 있다.
Description
우선권 주장
본 출원은 2011년 9월 27일에 출원되고, 현재 출원계속 중인 발명의 명칭이 "Signaling of prediction size unit in accordance with video coding"인 미국 가출원 번호 제61/539,948호(Attoney Docket No. BP23621)를 우선권을 주장하며, 그 전체로 참조로써 본 출원에 통합되고, 모든 목적을 위하여 본 출원의 부분이 된다.
참조로써 통합
다음의 표준들/표준안들은 그 전체로 참조로써 여기에 통합되고, 모든 목적을 위하여 본 출원의 부분이 된다.
1.High efficiency video coding(HEVC) text specification draft 6, Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 21-30 November, 2011, Document: JCTVC-H1003, 259 pages.
2. International Telecommunication Union, ITU-T, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, H.264(03/2010), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services Coding of moving video, Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264, International Telecomm ISO/IEC 14496-10 MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 or AVC(Advanced Video Coding), ITU H.264/MPEG4-AVC, or equivalent.
기술분야
본 발명은 일반적으로 디지털 비디오 처리에 관한 것으로, 더욱 상세하게는 디지털 비디오 처리에 따른 시그널링에 관한 것이다.
디지털 미디어(예를 들어, 이미지들, 비디오, 데이터 등)와 통신하기 위하여 동작하는 통신 시스템들은 수년 동안 계속적인 발전 상황에 있었다. 어떤 유형의 비디오 데이터를 이용한 통신 시스템들과 관련하여, 많은 디지털 이미지들은 출력 및 소비에 적합한 비디오 신호를 만들기 위하여 어떤 프레임 비율(예를 들어, 초당 수 프레임들)에서 출력 또는 디스플레이된다. 비디오 데이터를 사용하여 동작하는 많은 통신 시스템들에서, 처리량(예를 들어, 제 1 위치에서 제 2 위치로 송신될 수 있는 이미지 프레임들의 수)과 결국 출력 또는 디스플레이될 신호의 비디오 및/또는 이미지 품질 사이에서의 트레이드-오프(trade-off)가 있을 수 있다. 현재의 기술들은 적절하고 또는 만족스러운 비디오 및/또는 이미지 품질을 제공하고, 통신들과 관련된 상대적으로 적은 양의 오버헤드 및 통신 링크들 중 각각의 종단들에서의 통신 디바이스들의 상대적으로 적은 복잡성을 보장하면서 비디오 데이터가 제 1 위치로부터 제 2 위치로 송신될 수 있는 수단들을 적절하게 또는 만족스럽게 제공하지 못한다.
본 발명의 일 실시예에 따라, 제공된 장치는 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고; 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스(slice) 및 적어도 하나의 B 슬라이스의 처리에 이용되는 단일 이진 트리를 이용하고; 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대한 제 1 신택스 요소(syntax element)에서 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하고; 및 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대한 제 2 신택스 요소에서 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용한다.
바람직하게는, 상기 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하고; 및 상기 제 2 신택스 요소는 CU 파티션 형상을 지시한다.
바람직하게는, 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 1 시간 동안 또는 상기 제 1 시간에 인트라-예측 프로세싱을 수행하고; 및 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 2 시간 동안 또는 상기 제 2 시간에 인터-예측 프로세싱을 수행한다.
바람직하게는, 상기 장치는 제 1 통신 디바이스이고; 및 적어도 하나의 통신 채널을 통하여 상기 제 1 통신 디바이스와 통신하는 제 2 통신 디바이스를 더 포함하고, 상기 제 2 통신 디바이스는 상기 출력 비트스트림을 수신하는 입력; 및 상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 상기 출력 비트스트림을 디코딩하는 비디오 디코더를 포함하고, 상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.
바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작되는 통신 디바이스이다.
본 발명의 일 실시예에 따라, 장치는 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고; 상기 비디오 인코더는 상기 출력 비트스트림을 생성하는 것에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스의 처리에 사용되는 단일 이진 트리를 이용한다.
바람직하게는, 상기 비디오 인코더는 상기 출력 비트스트림을 생성하는 것에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 단일 신택스 요소로 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 공동으로 인코딩하기 위하여 상기 단일 이진 트리를 이용한다.
바람직하게는, 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 제 1 신택스 요소(syntax element)로 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하고; 및 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 제 2 신택스 요소로 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용한다.
바람직하게는, 상기 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하고; 및 상기 제 2 신택스 요소는 CU 파티션 형상을 지시한다.
바람직하게는, 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 1 시간 동안 또는 상기 제 1 시간에 인트라-예측 프로세싱을 수행하고; 및 상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 2 시간 동안 또는 상기 제 2 시간에 인터-예측 프로세싱을 수행한다.
바람직하게는, 상기 장치는 제 1 통신 디바이스이고; 및 적어도 하나의 통신 채널을 통하여 상기 제 1 통신 디바이스와 통신하는 제 2 통신 디바이스를 더 포함하고, 상기 제 2 통신 디바이스는 상기 출력 비트스트림을 수신하는 입력; 및 상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 상기 출력 비트스트림을 디코딩하는 비디오 디코더를 포함한다.
바람직하게는, 상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.
바람직하게는, 상기 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작되는 통신 디바이스이다.
본 발명의 일 실시예에 따라, 통신 디바이스의 비디오 인코더를 동작하는 방법은 출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작하는 단계를 포함하고; 및 상기 출력 비트스트림을 생성하는 것에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스의 처리하기 위하여 상기 비디오 인코더에서 단일 이진 트리를 이용하는 단계를 포함한다.
바람직하게는, 상기 방법은 상기 출력 비트스트림을 생성하는 것에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 단일 신택스 요소로 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 공동으로 인코딩하기 위하여 상기 비디오 인코더에서 상기 단일 이진 트리를 이용하는 단계를 더 한다.
바람직하게는, 상기 방법은 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 제 1 신택스 요소(syntax element)로 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 단계; 및 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스에 대하여 제 2 신택스 요소로 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 단계를 더 포함한다.
바람직하게는, 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하고; 및 상기 제 2 신택스 요소는 CU 파티션 형상을 지시한다.
상기 방법은 상기 출력 비트스트림 생성에 따라 제 1 시간 동안 또는 상기 제 1 시간에 인트라-예측 프로세싱을 수행하는 단계; 및 상기 출력 비트스트림 생성에 따라 제 2 시간 동안 또는 상기 제 2 시간에 인터-예측 프로세싱을 수행하는 단계를 더 포함한다.
바람직하게는, 상기 방법은 적어도 하나의 통신 채널을 통하여 상기 통신 디바이스와 통신하는 부가적인 통신 디바이스를 동작하는 단계를 더 포함하고, 상기 부가적인 통신 디바이스는 출력 비트스트림을 수신하는 단계; 및 상기 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성하기 위하여 출력 비트스트림을 디코딩하는 비디오 디코더를 동작하는 단계를 수행하고, 상기 부가적인 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, HD(High Definition) 텔레비전, SD(Standard Definition) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나이다.
바람직하게는, 상기 통신 디바이스는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작된다.
도 1 및 도 2는 통신 시스템들의 다양한 실시예들을 나타낸다.
도 3a는 컴퓨터의 실시예를 나타낸다.
도 3b는 랩탑 컴퓨터의 실시예를 나타낸다.
도 3c는 HD(High Definition) 텔레비전의 실시예를 나타낸다.
도 3d는 SD(Standard Definition) 텔레비전의 실시예를 나타낸다.
도 3e는 핸드헬드 미디어 유닛의 실시예를 나타낸다.
도 3f는 셋탑박스(STB)의 실시예를 나타낸다.
도 3g는 DVD의 실시예를 나타낸다.
도 3h는 일반 디지털 이미지 및/또는 비디오 처리 디바이스의 실시예를 나타낸다.
도 4, 도 5 및 도 6은 비디오 인코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 7은 인트라-예측 처리의 실시예를 나타내는 도면이다.
도 8은 인터-예측 처리의 실시예를 나타내는 도면이다.
도 9 및 도 10은 비디오 디코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 11은 재귀적 코딩 유닛(CU) 구조의 실시예를 나타낸다.
도 12는 예측 유닛(PU) 모드들의 실시예를 나타낸다.
도 13은 일 구현에서 P 슬라이스 인코딩 및 다른 구현에서 P 슬라이스 및 B 슬라이스 인코딩에 대하여 이용된, 수정을 포함하는 이진 트리의 실시예를 나타낸다.
도 14는 일 구현에서 B 슬라이스 인코딩 및 다른 구현에서 P 슬라이스 및 B 슬라이스 인코딩에 대하여 이용될 수 있는 바와 같은 이진 트리의 실시예를 나타낸다.
도 15는 일 구현에서 도 12에 따라 수행되는 것과 같은 B 슬라이스 인코딩과 함께 P 슬라이스 인코딩에 대하여 이용될 수 있는 바와 같은 이진 트리의 실시예를 나타낸다.
도 16a, 도 16b, 도 17a 및 도 17b는 (예를 들어, 하나 또는 그 이상의 통신 디바이스에서의) 비디오 코딩에 따라 수행되는 방법들의 다양한 실시예들을 나타낸다.
도 3a는 컴퓨터의 실시예를 나타낸다.
도 3b는 랩탑 컴퓨터의 실시예를 나타낸다.
도 3c는 HD(High Definition) 텔레비전의 실시예를 나타낸다.
도 3d는 SD(Standard Definition) 텔레비전의 실시예를 나타낸다.
도 3e는 핸드헬드 미디어 유닛의 실시예를 나타낸다.
도 3f는 셋탑박스(STB)의 실시예를 나타낸다.
도 3g는 DVD의 실시예를 나타낸다.
도 3h는 일반 디지털 이미지 및/또는 비디오 처리 디바이스의 실시예를 나타낸다.
도 4, 도 5 및 도 6은 비디오 인코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 7은 인트라-예측 처리의 실시예를 나타내는 도면이다.
도 8은 인터-예측 처리의 실시예를 나타내는 도면이다.
도 9 및 도 10은 비디오 디코딩 아키텍처들의 다양한 실시예들을 나타내는 도면들이다.
도 11은 재귀적 코딩 유닛(CU) 구조의 실시예를 나타낸다.
도 12는 예측 유닛(PU) 모드들의 실시예를 나타낸다.
도 13은 일 구현에서 P 슬라이스 인코딩 및 다른 구현에서 P 슬라이스 및 B 슬라이스 인코딩에 대하여 이용된, 수정을 포함하는 이진 트리의 실시예를 나타낸다.
도 14는 일 구현에서 B 슬라이스 인코딩 및 다른 구현에서 P 슬라이스 및 B 슬라이스 인코딩에 대하여 이용될 수 있는 바와 같은 이진 트리의 실시예를 나타낸다.
도 15는 일 구현에서 도 12에 따라 수행되는 것과 같은 B 슬라이스 인코딩과 함께 P 슬라이스 인코딩에 대하여 이용될 수 있는 바와 같은 이진 트리의 실시예를 나타낸다.
도 16a, 도 16b, 도 17a 및 도 17b는 (예를 들어, 하나 또는 그 이상의 통신 디바이스에서의) 비디오 코딩에 따라 수행되는 방법들의 다양한 실시예들을 나타낸다.
디지털 비디오(video)와 같은 디지털 미디어를 사용하는 많은 디바이스들 내에서, 원래 디지털인 각각의 이미지들은 픽셀들을 이용하여 나타내어질 수 있다. 어떤 통신 시스템들에서, 디지털 미디어는 제 1 위치로부터 상기 미디어가 출력되거나 또는 디스플레이될 수 있는 제 2 위치로 송신될 수 있다. 디지털 통신 시스템들의 목적은 하나의 위치 또는 서브시스템에서 다른 하나로 디지털 데이터를 에러 없이 또는 만족스러운 낮은 에러율로 송신하는 것이다. 도 1에 도시된 바와 같이, 마그네틱 미디어, 유선, 무선, 섬유, 구리 및/또는 다른 형태의 미디어와 같은 다양한 많은 통신시스템들의 다양한 통신 채널들을 통하여 데이터가 전송될 수 있다.
도 1 및 도 2는 각각 통신 시스템들(100 및 200)의 다양한 실시예들을 나타내는 도면들이다.
도 1을 참조하면, 통신 시스템(100)의 이러한 실시예는 통신 채널(communication channel, 199)의 일단에 위치한 통신 디바이스(110)(인코더(encoder, 114)를 갖는 송신기(transmitter, 112) 및 디코더(decoder, 118)를 갖는 수신기(receiver, 116)를 포함하는)를 통신 채널(199)의 타단에 위치한 다른 통신 디바이스(120)(인코더(128)를 갖는 송신기(126) 및 디코더(124)를 갖는 수신기(122)를 포함하는)에 통신가능하게 연결하는 통신 채널(199)이다. 일부 실시예들에 있어서, 통신 디바이스들(110 및 120) 중 어느 하나는 오직 송신기 또는 수신기만을 포함할 수도 있다. 통신 채널(199)(예를 들어, 위성 접시들(satellite dishes, 132 및 134)을 이용하는 위성 통신 채널(130), 타워들(towers, 142 및 144) 및/또는 로컬 안테나들(local antennae, 152 및 154)을 이용하는 무선 통신 채널(140), 유선 통신 채널(150), 전기/광(electrical to optical, E/O) 인터페이스(162) 및 광/전기(optical to electrical, O/E) 인터페이스(164)를 이용하는 광섬유 통신 채널(160))을 구현하는 다양한 다른 유형의 미디어가 있다. 부가하여, 하나 이상의 미디어 유형이 함께 구현되고, 인터페이스될 수 있고, 그렇게 함으로써 통신 채널(199)을 형성한다.
이러한 통신 디바이스들(110 및/또는 120)은 본 발명의 범위 및 사상을 벗어남 없이 고정(stationary) 또는 모바일일 수 있다는 것을 주목해야 한다. 예를 들어, 통신 디바이스들(110 및 120)의 둘 중 하나 또는 둘 모두는 고정된 위치에 구현될 수도 있거나, 또는 하나 이상의 네트워크 액세스 포인트들(예를 들어, 하나 또는 그 이상의 무선 로컬 영역 네트워크(Wireless Local Area Network; WLAN)들을 포함하는 모바일 통신 시스템에서의 다른 각각의 액세스 포인트(Access Point; AP)들, 하나 또는 그 이상의 위성을 포함하는 모바일 통신 시스템에서의 다른 각각의 위성 또는 일반적으로 통신 디바이스들(110 및/또는 120)을 이용해 통신들이 달성될 수 있도록 하는 하나 또는 그 이상의 네트워크 액세스 포인트들을 포함하는 모바일 통신 시스템에서의 다른 각각의 네트워크 액세스 포인트들)과 연결하거나 및/또는 통신할 수 있는 성능을 가진 모바일 통신 디바이스일 수도 있다.
통신 시스템에서 바람직하지 않게 발생할 수도 있는 송신 에러들을 감소시키기 위하여, 에러 정정(error correction) 및 채널 코딩 기술들이 종종 사용된다. 일반적으로, 이러한 에러 정정 및 채널 코딩 기술들은 통신 채널(199)의 송신기단에서의 인코더 및 통신 채널(199)의 수신기단에서의 디코더의 사용을 포함한다.
기술된 ECC 코드들의 다양한 유형들 중 어느 하나가 임의의 바람직한 통신 시스템(예를 들어, 도 1과 관련하여 기술된 이러한 변형들을 포함하는), 임의의 정보 저장 디바이스(예를 들어, 하드 디스크 드라이브(HDD)들, 네트워크 정보 저장 디바이스들 및/또는 서버들 등), 또는 정보 인코딩 및/또는 디코딩이 요구되는 임의의 어플리케이션에서 사용될 수 있다.
일반적으로 말하자면, 비디오 데이터가 하나의 위치 또는 서브시스템으로부터 다른 하나로 통신될 수 있는 통신 시스템을 고려할 때, 비디오 데이터 인코딩은 일반적으로 통신 채널(199)의 송신기단에서 수행되는 것으로 보여질 수 있고, 비디오 데이터 디코딩은 일반적으로 통신 채널(199)의 수신기단에서 수행되는 것으로 보여질 수 있다.
또한, 이 도면의 실시예는 통신 디바이스들(110 및 120) 사이의 양방향 통신을 나타내는 반면에, 다른 실시예들(예를 들어, 비디오 브로드캐스트 실시예와 같은 단방향 통신에서)에서는 통신 디바이스(110)는 오직 비디오 데이터 인코딩 성능만을 포함할 수도 있고, 통신 디바이스(120)는 오직 비디오 디코딩 성능만을 포함할 수도 있고, 그 반대일 수도 있다.
도 2의 통신 시스템(200)을 참조하면, 통신 채널(299)의 송신단에서, 정보 비트들(information bits, 201)(예를 들어, 일 실시예에서 비디오 데이터에 특히 대응하는)이 인코더 및 심볼 맵퍼(symbol mapper, 220)(각각 별개의 기능적 블록들(distinct functional blocks)(222 및 224)로 보여질 수도 있는)를 사용하여 이러한 정보 비트들(201)의 인코딩을 수행하도록 동작 가능한 송신기(297)에 제공되며, 그럼으로써 연속-시간(continuous-time) 송신 신호(204)를 생성하는 DAC(Digital to Analog Converter, 232) 및 통신 채널(299)에 실질적으로 적합한 필터링된 연속-시간 송신 신호(205)를 생성하는 송신 필터(transmit filter, 234)를 사용하는 송신 드라이버(transmit driver, 230)에 제공되는 일련의 이산-값 변조 심볼들(discrete-valued modulation symbols, 203)을 생성한다. 통신 채널(299)의 수신단에서, 연속-시간 수신 신호(206)는 수신 필터(262)(필터링된 연속-시간 수신 신호(207)를 생성하는) 및 ADC(Analog to Digital Converter, 264)(이산-시간 수신 신호(208)를 생성하는)를 포함하는 APE(Analog Front End, 260)에 제공된다. 메트릭 생성기(metric generator, 270)는 이산-값 변조 심볼들 및 거기(210)에 인코딩된 정보 비트들을 최적으로 측정하기 위하여 디코더(280)에 의하여 이용되는 메트릭스(metrics, 209)를 계산한다(예를 들어, 심볼 및/또는 비트 단위(bit basis) 중 어느 하나에서).
송신기(297) 및 수신기(298) 각각 내에서, 다양한 구성요소들, 블록들, 기능적 블록들, 회로들 등의 바람직한 통합이 그 안에서 구현될 수도 있다. 예를 들어, 이 도면은 인코더 및 심볼 맵퍼(220) 및 그 안에서 모두 연관된 대응하는 구성요소들을 포함하는 프로세싱 모듈(processing module, 280a) 및 메트릭 생성기(270)와 디코더(280) 및 그 안에서 모두 연관된 대응하는 구성요소들을 포함하는 프로세싱 모듈(280b)을 나타낸다. 프로세싱 모듈들(280a 및 280b)은 각각 집적 회로들로 구현될 수도 있다. 물론, 다른 경계들 및 그룹핑들이 본 발명의 범위 및 사상을 벗어남 없이 수행될 수도 있다. 예를 들어, 송신기(297) 내의 모든 구성요소들은 제 1 프로세싱 모듈 또는 집적 회로에 포함될 수도 있고, 수신기(298) 내의 모든 구성요소들은 제 2 프로세싱 모듈 또는 집적 회로에 포함될 수도 있다. 대안적으로, 송신기(297) 및 수신기(298) 각각 내의 구성요소들의 임의의 다른 조합도 다른 실시예들에서 구현될 수 있다.
이전 실시예의 경우와 마찬가지로, 이러한 통신 시스템(200)은 하나의 위치 또는 서브시스템에서 다른 하나로(예를 들어, 통신 채널(298)을 통하여 송신기(297)에서 수신기(298)로) 통신되는 비디오 데이터의 통신을 위하여 이용될 수도 있다.
디지털 이미지들 및/또는 미디어(디지털 비디오 신호 내의 각각의 이미지들을 포함하는)의 디지털 이미지 및/또는 비디오 프로세싱은 사용자가 디지털 이미지들 및/또는 비디오를 볼 수 있게 하는 아래의 도 3a 내지 도 3h에 도시된 다양한 디바이스들 중 어느 하나에 의하여 수행될 수 있다. 이러한 다양한 디바이스들은 본 명세서에 기술된 이미지 및/또는 비디오 프로세싱이 실행될 수 있는 디바이스들의 완전 목록(exhaustive list)을 포함하지 않으며, 임의의 일반적인 디지털 이미지 및/또는 비디오 프로세싱 디바이스가 본 발명의 범위 및 사상을 벗어남 없이 본 명세서에 기술된 프로세싱을 수행하도록 구현될 수 있다는 점이 주목된다.
도 3a는 컴퓨터(301)의 실시예를 나타낸다. 컴퓨터(301)는 데스크탑 컴퓨터, 또는 RAID(Redundant Array of Independent Disks) 어레이, 스토리지 라우터, 에지 라우터, 스토리지 스위치 및/또는 스토리지 디렉터(director)와 같은 스토리지 어레이에 부착되는 호스트의 서버와 같은 엔터프라이즈 스토리지 디바이스들일 수 있다. 사용자는 컴퓨터(301)를 이용하여 스틸(still) 디지털 이미지들 및/또는 비디오(예를 들어, 일련의 디지털 이미지들)을 볼 수 있다. 종종, 다양한 이미지 및/또는 비디오 보기 프로그램들 및/또는 미디어 플레이어 프로그램들이 사용자가 이러한 이미지들(비디오 포함하는)을 볼 수 있게 컴퓨터(301)에 포함된다.
도 3b는 랩탑 컴퓨터(302)의 실시예를 나타낸다. 랩탑 컴퓨터(302)는 매우 다양한 컨텍스트들(contexts)의 어느 하나에서 발견되고 사용될 수 있다. 최근 몇 년 동안, 랩탑 컴퓨터에서 발견된 끊임없이 증가한 프로세싱 성능 및 기능성으로 인하여, 랩탑 컴퓨터(302)는 이전에 고급 및 고성능의 데스크탑 컴퓨터들이 사용되었던 많은 경우들에 이용되고 있다. 컴퓨터(301)와 마찬가지로, 랩탑 컴퓨터(302)는 사용자가 상기 (비디오를 포함하는) 이미지들을 볼 수 있도록 다양한 이미지 및/또는 비디오 보기 프로그램들 및/또는 미디어 플레이어 프로그램들을 포함할 수도 있다.
도 3c는 HD(High Definition) 텔레비전(303)의 실시예를 나타낸다. 많은 HD 텔레비전들(303)은 미디어 컨텐트(예를 들어, 텔레비전 방송 신호들)을 그 안에서 수신, 프로세싱 및 디코딩할 수 있는 통합 튜너를 포함한다. 대안적으로, 종종 HD 텔레비전(303)은 디지털 비디오 디스크(DVD) 플레이어, 케이블 및/또는 위성 텔레비전 방송 신호를 수신, 프로세싱 및 디코딩하는 셋탑박스(STB)와 같은 다른 소스로부터 미디어 컨텐트를 수신한다. 특정한 구현에 상관없이, HD 텔레비전(303)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다. 일반적으로 말하자면, HD 텔레비전(303)은 HD 미디어 컨텐트를 디스플레이할 수 있는 성능을 가지고, 종종 16:9 와이드스크린 화면비율을 가지도록 구현될 수 있다.
도 3d는 SD(Standard Definition) 텔레비전(304)의 실시예를 나타낸다. 물론, SD 텔레비전(304)은 HD 미디어 컨텐트를 디스플레이할 성능을 포함하고 있지 않고, 종종 SD 텔레비전(304)은 4:3 풀-스크린 화면비율을 갖도록 구현되는 적어도 하나의 차이점을 가지면서 HD 텔레비전(303)과 다소 유사하다. 그럼에도 불구하고, SD 텔레비전(304)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.
도 3e는 핸드헬드 미디어 유닛(305)의 실시예를 나타낸다. 핸드헬드 미디어 유닛(305)은 사용자에게 재생을 위하여 일반적인 저장 또는 JPEG(Joint Photograph Experts Group) 파일들, TIFF(Tagged Image File Format). 비트맵, MPEG(Motion Picture Experts Group) 파일들, 윈도우즈 미디어(WMA/WMV) 파일들, MPEG4와 같은 다른 형태의 비디오 컨텐트 및/또는 디지털 포맷으로 저장될 수도 있는 다른 형태의 정보와 같은 이미지/비디오 컨텐트 정보의 저장을 제공하기 위하여 동작할 수도 있다. 역사적으로, 상기 핸드헬드 미디어 유닛들은 주로 오디오 미디어의 저장 또는 재생을 위하여 사용되었지만, 가상 미디어(예를 들어, 오디오 미디어, 비디오 미디어, 사진 미디어 등)의 저장 및 재생을 위하여 사용될 수도 있다. 더구나, 이러한 핸드헬드 미디어 유닛(305)은 유선 및 무선 통신들을 위하여 통합된 통신 회로와 같은 다른 기능성을 포함할 수도 있다. 이러한 핸드헬드 미디어 유닛(305)은 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.
도 3f는 셋탑박스(STB, 306)의 실시예를 나타낸다. 위에 언급한 바와 같이, 종종 STB(306)는 SD 텔레비전(304) 및/또는 HD 텔레비전(303)과 같은 임의의 적절한 디스플레이 가능 디바이스에 제공될 케이블 및/또는 위선 텔레비전 방송 신호를 수신, 프로세싱 및 디코딩하도록 구현될 수도 있다. 이러한 STB(306)는 본 명세서에 기술된 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 상기 디스플레이 가능 디바이스와 독립적으로 또는 협력적으로 동작할 수도 있다.
도 3g는 디지털 비디오 디스크(DVD) 플레이어(307)의 실시예를 나타낸다. 본 발명의 범위 또는 사상을 벗어남 없이, 상기 DVD 플레이어는 블루레이 DVD 플레이어, HD 가능 DVD 플레이어. SD 가능 DVD 플레이어, 업-샘플링(up-sampling)(예를 들어, SD로부터 HD로의 등) 가능 DVD 플레이어일 수도 있다. DVD 플레이어는 임의의 적절한 SD 텔레비전(304) 및/또는 HD 텔레비전(303)과 같은 디스플레이 가능 디바이스에 신호를 제공할 수도 있다. DVD 플레이어(307)는 본 명세서에 기술한 대로 이미지 및/또는 비디오 프로세싱을 수행하도록 구현될 수도 있다.
도 3h는 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스(308)의 실시예를 나타낸다. 다시, 위에 언급한 바와 같이, 위에서 기술된 다양한 디바이스들은 본 명세서에 기술된 이미지 및/또는 비디오 프로세싱이 실행될 수 있는 디바이스들의 완전 목록(exhaustive list)을 포함하지 않으며, 임의의 일반 디지털 이미지 및/또는 비디오 프로세싱 디바이스(308)가 본 발명의 범위 및 사상을 벗어남 없이 본 명세서에 기술된 프로세싱을 수행하도록 구현될 수도 있음을 주목해야 한다.
도 4, 도 5 및 도 6은 각기 비디오 인코딩 아키텍처들(400, 500 및 600)의 다양한 실시예들을 나타낸다.
도 4의 실시예(400)를 참조하면, 이 도면과 관련하여 보여질 수 있는 바와 같이, 입력 비디오 신호는 비디오 인코더에 의하여 수신된다. 특정 실시예들에 있어서, 입력 비디오 신호는 코딩 유닛(coding unit, CU)들 또는 매크로-블록(macro-block, MB)들로 구성된다. 코딩 유닛들 또는 매크로-블록들의 크기는 변화될 수 있고, 전형적으로 사각형 형태로 배열된 다수의 픽셀들을 포함할 수 있다. 일 실시예에 있어서, 상기 코딩 유닛들 또는 매크로-블록들은 16×16 픽셀들의 크기를 가진다. 그러나 일반적으로 매크로-블록은 N×N(N은 정수) 픽셀들과 같은 임의의 바람직한 크기도 가질 수도 있음을 주목해야 한다. 물론, 비록 사각형 형태의 코딩 유닛들 또는 매크로-블록들이 바람직한 실시예에서 이용되지만, 일부 구현들은 비-사각형(non-square) 형태의 코딩 유닛들 또는 매크로-블록들을 포함할 수도 있다.
입력 비디오 신호는 일반적으로 원시(raw) 프레임(또는 픽처(picture)) 이미지 데이터에 대응하도록 지칭될 수도 있다. 예를 들어, 원시 프레임(또는 픽처) 이미지 데이터는 휘도(luma) 및 채도(chroma) 샘플들을 생성하는 프로세싱을 받을 수 있다. 일부 실시예들에 있어서, 매크로-블록에서 휘도 샘플들의 세트는 하나의 특정 배열(예를 들어, 16×16)을 가지고, 채도 샘플들의 세트는 다른 특정 배열(예를 들어, 8×8)을 갖는다. 본 명세서에 기술된 실시예에 따라, 비디오 인코더는 블록 단위(block by block basis)로 샘플들을 처리한다.
그 후, 입력 비디오 신호는 모드 선택을 받고, 모드 선택에 의해 입력 비디오 신호가 선택적으로 인트라(intra) 및/또는 인터-예측(inter-prediction) 프로세싱을 받는다. 일반적으로 말하자면, 입력 비디오 신호는 압축 경로에 따라 압축된다. 피드백 없이 동작하는 경우(예를 들어, 인터-예측 및 인트라-예측도 없는 경우), 입력 비디오 신호는 변환 동작들(transform operations)(예를 들어, 이산 코사인 변환(DCT)에 따라)을 받기 위하여 압축 경로를 통해 제공된다. 물론, 다른 변환들도 대안적인 실시예들에서 이용될 수도 있다. 이 동작 모드에서, 입력 비디오 신호 자체가 압축된다. 압축 경로는 압축을 수행함에 있어서 인간 눈의 고주파 민감도의 부족을 이용할 수도 있다.
그러나 인터-예측 또는 인트라-예측 비디오 인코딩을 선택적으로 이용함으로써 압축 경로를 따라 피드백이 이용될 수도 있다. 피드백 또는 동작의 예측 모드에 따라, 압축 경로는 현재 매크로-블록에서 현재 매크로-블록의 예측 값의 차감에 의한 (상대적으로 낮은 에너지) 레지듀얼(residual)(예를 들어, 차이(difference))에 동작한다. 주어진 경우에서 이용되는 예측 형태에 따라, 동일 프레임(또는 픽처)의 적어도 일부분 또는 적어도 하나의 다른 프레임(또는 픽처)의 적어도 일부분에 기초하여 현재 매크로-블록과 그 매크로-블록의 예측 값 사이의 레지듀얼 또는 차이가 생성된다.
그 후, 결과로 초래된 수정된 비디오 신호는 압축 경로에 따라 변환 동작들을 받는다. 일 실시예에 있어서, 이산 코사인 변환(DCT)은 미리 결정된 수의 기저 패턴들(basis patterns) 각각에 대한 각각의 계수 값을 계산하기 위하여 비디오 샘플들(예를 들어, 휘도, 채도, 레지듀얼 등)에 동작한다. 예를 들어, 일 실시예는 (예를 들어, 8×8 샘플에 대한 것과 같은) 64개의 기저 함수들(basis functions)을 포함한다. 일반적으로 말하자면, 다른 실시예들은 다른 개수의 기저 함수들(예를 들어, 다른 변환들)을 이용할 수도 있다. 적절하고 선택적인 가중치를 포함하는 각각의 기저 함수들의 임의의 조합은 주어진 비디오 샘플들의 세트를 나타내도록 사용될 수도 있다. 변환 연산들의 다양한 수행 방법과 관련된 부가적인 상세 사항은 이전에 지시한 바와 같은 참조로써 통합된 표준들/표준안을 포함하는 비디오 인코딩과 연관된 기술 문헌에 기술되어 있다. 변환 프로세싱으로부터의 출력은 이러한 각각의 계수 값들을 포함한다. 이 출력은 양자화기(quantizer)에 제공된다.
일반적으로, 가장 관련 있는 DCT 계수들이 저주파수들을 갖도록 하기 위하여, 대부분의 이미지 블록들은 전형적으로 계수들(예를 들어, 이산 코사인 변환(DCT)에 따라 동작하는 실시예에서의 DCT 계수들)을 생성할 것이다. 이것과 고주파수 시각적 효과들에 대하여 인간의 눈의 상대적으로 낮은 민감도 때문에, 양자화기는 대부분의 덜 관련 있는 계수들을 0의 값으로 변환하도록 동작할 수도 있다. 말하자면, 상대적인 기여도(contribution)가 어떤 미리 정해진 값(예를 들어, 어떤 임계값) 이하인 계수들은 양자화 프로세스에 따라 제거될 수도 있다. 또한, 양자화기는 중요한 계수들을 변환 프로세스로부터 나온 계수들보다 더 효과적으로 코딩될 수 있는 값들로 변환하도록 동작할 수도 있다. 예를 들어, 양자화 프로세스는 각각의 계수를 정수값으로 나누고 나머지는 버리도록 동작할 수도 있다. 전형적인 코딩 유닛들 또는 매크로-블록에서 동작할 때, 이러한 프로세스는 무손실 인코딩을 위한 엔트로피 인코더(entropy encoder)에 전달되며, 비디오 인코딩에 따라 인트라-예측 및/또는 인터-예측 프로세싱을 선택할 수도 있는 피드백 경로에 따른 사용을 위한, 상대적으로 적은 수의 0이 아닌 계수들을 전형적으로 생산한다.
엔트로피 인코더는 무손실 압축 인코딩 프로세스에 따라 동작한다. 비교하면, 양자화 연산들은 일반적으로 손실이 있다. 엔트로피 인코딩 프로세스는 양자화 프로세스로부터 제공된 계수들에서 동작한다. 상기 계수들은 다양한 특성들(예를 들어, 휘도, 채도, 레지듀얼 등)을 나타낼 수도 있다. 다양한 유형의 인코딩이 엔트로피 인코더에 의하여 이용될 수도 있다. 예를 들어, CABAC(Context-based Adaptive Binary Arithmetic Code) 및/또는 CAVLC(Context-adaptive variable-length coding)가 엔트로피 인코더에 의하여 수행될 수도 있다. 예를 들어, 엔트로피 코딩 기법의 적어도 일부분에 따라, 데이터는 (런(run), 레벨(level)) 쌍(예를 들어, 데이터 14, 3, 0, 4, 0, 0, -3은 각각의 (0, 14), (0, 3), (1, 4), (2, -3)의 (런, 레벨) 쌍으로 변환된다)으로 변환된다. 미리, 가변 길이 코드(variable length code)들을 밸류 쌍(value pairs)에 할당한 테이블이 준비될 수도 있고, 그 결과 상대적으로 더 짧은 길이의 코드들이 상대적으로 공통적인 밸류 쌍(common value pairs)에 할당되고, 상대적으로 더 긴 코드들은 상대적으로 덜 공통적인 밸류 쌍에 할당된다.
독자들이 이해할 수 있는 바와 같이, 역(inverse)양자화 및 역변환의 동작들은 각각 양자화 및 변환에 대응된다. 예를 들어, 변환 동작들 내에 DCT가 이용된 일 실시예에서, 역 DCT(IDCT)가 역변환 동작들에 이용된다.
픽처 버퍼(picture buffer), 또는 디지털 픽처 버퍼 또는 DPB라 지칭되는 픽처 버퍼는 IDCT 모듈로부터 신호를 수신한다; 픽처 버퍼는 비디오 인코딩에 따라 수행될 수 있는 바와 같은 인트라-예측 및/또는 인터-예측 동작들에 따라 사용될 수 있는 바와 같은 현재 프레임(또는 픽처) 및/또는 하나 또는 그 이상의 다른 프레임들(또는 픽처들)을 저장하도록 동작한다. 인트라-예측에 따라, 상대적으로 적은 양의 저장이면 충분할 수 있고, 즉, 현재 프레임(또는 픽처) 또는 프레임(또는 픽처) 시퀀스 내의 어떤 다른 프레임(또는 픽처)을 저장하는 것이 필요하지 않을 수도 있음을 주목해야 한다. 비디오 인코딩에 따라 인터-예측을 수행하는 경우에, 이러한 저장된 정보는 움직임 보상(motion compensation) 및/또는 움직임 추정(motion estimation)을 수행하도록 이용될 수 있다.
가능한 일 실시예에 있어서, 움직임 추정에서, 현재 프레임(또는 픽처)으로부터의 휘도 샘플들(예를 들어, 16×16)의 각각의 세트는 (예를 들어, 인터-예측에 따라) 프레임(또는 픽처) 시퀀스 내의 다른 프레임들(또는 픽처들)에서의 버퍼링된 대응하는 휘도 샘플들과 비교된다. 가능한 일 구현에 있어서, 가장 가까운 매칭 영역(matching area)(예를 들어, 예측 참조)의 위치가 찾아내지고(located), 벡터 오프셋(vector offset)(예를 들어, 움직임 벡터)이 생산된다. 단일 프레임(또는 픽처)에서, 다수의 움직임 벡터들이 발견될 수도 있지만, 반드시 모두가 동일 방향을 가리키는 것은 아닐 것이다. 움직임 추정에 따라 수행되는 하나 또는 그 이상의 동작들은 하나 또는 그 이상의 움직임 벡터들을 생성하도록 동작한다.
움직임 보상은 움직임 추정에 따라 생성될 수 있는 하나 또는 그 이상의 움직임 벡터들을 이용하도록 동작한다. 샘플들의 예측 참조 세트가 식별되고, 상대적으로(예를 들어, 이상적으로, 매우) 더 낮은 에너지 레지듀얼을 성공적으로 생산하기 위하여 원본(original) 입력 비디오 신호로부터의 감산을 위하여 전달된다. 만약 상기 동작들이 더 낮은 에너지 레지듀얼을 생산하지 못하는 경우, 움직임 보상이 반드시 수행될 필요는 없으며, (예를 들어, 입력 비디오 신호가 변환 동작에 직접적으로 제공되고, 그 결과 인트라-예측 및 인터-예측이 수행되지 않는 동작 모드(operational mode)에 따른) 변환 동작들은 레지듀얼 대신에 최초의 입력 비디오 신호에 단순히 동작할 수도 있거나 또는 인트라-예측이 사용되고 변환 동작들이 인트라-예측의 결과에 의한 레지듀얼에서 수행될 수 있다. 또한, 만약 움직임 추정 및/또는 움직임 보상 프로세스들이 성공적이라면, 움직임 벡터는 무손실 엔트로피 인코딩을 수행하는데 사용되는 대응하는 레지듀얼의 계수들과 함께 엔트로피 인코더로 보내질 수도 있다.
종합적인 비디오 인코딩 동작으로부터의 출력은 출력 비트스트림이다. 이러한 출력 비트스트림은 통신 채널을 통하여 송신될 수도 있는 연속 시간 신호의 생성에 따라 특정 프로세싱을 물론 받을 수 있음을 주목해야 한다. 예를 들어, 특정 실시예들은 무선 통신 시스템들 내에서 동작한다. 이러한 경우, 출력 비트스트림은 통신 채널 등을 통하여 전송될 수 있는 연속 시간 신호를 생성하도록 동작하는 무선 통신 디바이스 내에서 적절한 디지털-아날로그로 변환, 주파수 변환, 스케일링, 필터링, 변조, 심볼 맵핑 및/또는 임의의 다른 동작들을 받을 수 있다.
도 5의 실시예(500)를 참조하면, 이 도면과 관련하여 확인할 수 있는 바와 같이, 입력 비디오 신호는 비디오 인코더에 의하여 수신된다. 특정 실시예들에 있어서, 입력 비디오 신호는 코딩 유닛(coding unit, CU)들 또는 매크로-블록(macro-block, MB)들(및/또는 코딩 유닛들(CUs)로 분할될 수 있는)로 구성된다. 이러한 코딩 유닛들 또는 매크로-블록들의 크기는 변형될 수도 있고, 전형적으로 사각형 형태로 배열된 다수의 픽셀들을 포함할 수 있다. 일 실시예에 있어서, 이러한 코딩 유닛들 또는 매크로-블록들은 16×16 픽셀들의 크기를 가진다. 그러나 일반적으로 매크로-블록은 N×N(N=정수) 픽셀들과 같은 임의의 바람직한 크기도 가질 수도 있음을 주목해야 한다. 물론, 비록 사각형 형태의 코딩 유닛들 또는 매크로-블록들이 바람직한 실시예에서 이용되지만, 일부 구현들은 비사각형 형태의 코딩 유닛들 또는 매크로-블록들을 포함할 수도 있다.
입력 비디오 신호는 일반적으로 원시(raw) 프레임(또는 픽처(picture)) 이미지 데이터에 대응하도록 지칭될 수도 있다. 예를 들어, 원시 프레임(또는 픽처) 이미지 데이터는 휘도(luma) 및 채도(chroma) 샘플들을 생성하는 프로세싱을 받을 수 있다. 일부 실시예들에 있어서, 매크로-블록에서 휘도 샘플들의 세트는 하나의 특정 배열(예를 들어, 16×16)을 가지고, 채도 샘플들의 세트는 다른 특정 배열(예를 들어, 8×8)을 갖는다. 본 명세서에 기술된 실시예에 따라, 비디오 인코더는 블록 단위(block by block basis)로 이러한 샘플들을 처리한다.
그 후, 입력 비디오 신호는 모드 선택을 받으며, 모드 선택에 의하여 입력 비디오 신호는 선택적으로 인트라(intra) 및/또는 인터-예측(inter-prediction) 프로세싱을 받는다. 일반적으로 말하자면, 입력 비디오 신호는 압축 경로에 따라 압축된다. 피드백 없이 동작하는 경우(예를 들어, 인터-예측 및 인트라-예측도 없는 경우), 입력 비디오 신호는 압축 경로를 통하여 (예를 들어, 이산 코사인 변환(DCT)에 따라) 변환(transform) 동작들을 받기 위하여 제공된다. 물론, 다른 변환들도 대안적인 실시예들에서 이용될 수도 있다. 이 동작 모드에서, 입력 비디오 신호 자체가 압축된다. 압축 경로는 압축을 수행함에 있어서 인간 눈의 고주파 민감도의 부족을 이용할 수도 있다.
그러나 인터- 또는 인트라-예측 비디오 인코딩을 선택적으로 사용함으로써 압축 경로를 따라 피드백이 이용될 수도 있다. 피드백 또는 동작의 예측 모드에 따라, 압축 경로는 현재 매크로-블록에서 현재 매크로-블록의 예측 값의 차감에 의한 (상대적으로 낮은 에너지) 레지듀얼(residual)(예를 들어, 차이(difference))에 동작한다. 주어진 경우에 이용되는 예측 형태에 따라, 동일 프레임(또는 픽처)의 적어도 일부분 또는 적어도 하나의 다른 프레임(또는 픽처)의 적어도 일부분에 기초하여 현재 매크로-블록과 그 매크로-블록의 예측 값 사이의 레지듀얼 또는 차이가 생성된다.
그 후, 결과로 초래된 수정된 비디오 신호는 압축 경로에 따라 변환 동작들을 받는다. 일 실시예에 있어서, 이산 코사인 변환(DCT)이 미리 결정된 수의 기저 패턴들(basis patterns) 각각에 대한 각각의 계수 값을 계산하기 위하여 비디오 샘플들(예를 들어, 휘도, 채도, 레지듀얼 등)에 동작한다. 예를 들어, 일 실시예는 (예를 들어, 8×8 샘플에 대한 것과 같은) 64개의 기저 함수들(basis functions)을 포함한다. 일반적으로 말하자면, 다른 실시예들은 다른 개수의 기저 함수들(예를 들어, 다른 변환들)을 이용할 수도 있다. 적절하고 선택적인 가중치를 포함하는 각각의 기저 함수들의 임의의 조합은 주어진 비디오 샘플들의 세트를 나타내도록 사용될 수도 있다. 변환 동작들의 다양한 수행 방법과 관련된 부가적인 상세 사항은 이사에서 지시된 바와 같은 참조로써 통합된 표준들/표준안을 포함하는 비디오 인코딩과 연관된 기술 문헌에 기술되어 있다. 변환 프로세싱으로부터의 출력은 각각의 계수 값들을 포함한다. 이 출력은 양자화기(quantizer)에 제공된다.
일반적으로, 가장 관련 있는 DCT 계수들은 저주파수들을 가질 수 있도록, 대부분의 이미지 블록들은 전형적으로 계수들(예를 들어, 이산 코사인 변환(DCT)에 따라 동작하는 실시예에서의 DCT 계수들)을 생성한다. 이것과 고주파수 시각적 효과에 대하여 인간의 눈의 상대적으로 낮은 민감도 때문에, 양자화기는 대부분의 덜 관련 있는 계수들을 0의 값으로 변환하도록 동작할 수도 있다. 말하자면, 상대적인 기여도(contribution)가 어떤 미리 정해진 값(예를 들어, 어떤 임계값) 이하인 계수들은 양자화 프로세스에 따라 제거될 수도 있다. 또한, 양자화기는 중요한 계수들을 변환 프로세스로부터 나온 계수들보다 더 효과적으로 코딩될 수 있는 값들로 변환하도록 동작할 수도 있다. 예를 들어, 양자화 프로세스는 각각의 계수를 정수값으로 나누고 나머지는 버리도록 동작할 수도 있다. 전형적인 코딩 유닛들 또는 매크로-블록에서 동작할 때, 이러한 프로세스는 무손실 인코딩을 위한 엔트로피 인코더(entropy encoder)에 전달되며, 비디오 인코딩에 따라 인트라-예측 및/또는 인터-예측 프로세싱을 선택할 수도 있는 피드백 경로에 따른 사용을 위한, 상대적으로 적은 수의 0이 아닌 계수들을 전형적으로 생산한다.
엔트로피 인코더는 무손실 압축 인코딩 프로세스에 따라 동작한다. 비교하면, 양자화 연산들은 일반적으로 손실이 있다. 엔트로피 인코딩 프로세스는 양자화 프로세스로부터 제공된 계수들에서 동작한다. 상기 계수들은 다양한 특성들(예를 들어, 휘도, 채도, 레지듀얼 등)을 나타낼 수도 있다. 다양한 유형의 인코딩이 엔트로피 인코더에 의하여 이용될 수도 있다. 예를 들어, CABAC(Context-based Adaptive Binary Arithmetic Code) 및/또는 CAVLC(Context-adaptive variable-length coding)가 엔트로피 인코더에 의하여 수행될 수도 있다. 예를 들어, 엔트로피 코딩 기법의 적어도 일부분에 따라, 데이터는 (런(run), 레벨(level)) 쌍(예를 들어, 데이터 14, 3, 0, 4, 0, 0, -3은 각각의 (0, 14), (0, 3), (1, 4), (2, -3)의 (런, 레벨) 쌍으로 변환된다)으로 변환된다. 미리, 가변 길이 코드(variable length code)들을 밸류 쌍(value pairs)에 할당한 테이블이 준비될 수도 있고, 그 결과 상대적으로 더 짧은 길이의 코드들이 상대적으로 공통적인 밸류 쌍(common value pairs)에 할당되고, 상대적으로 더 긴 코드들은 상대적으로 덜 공통적인 밸류 쌍에 할당된다.
독자들이 이해할 수 있는 바와 같이, 역(inverse)양자화 및 역변환의 동작들은 각각 양자화 및 변환에 대응된다. 예를 들어, 변환 동작들 내에 DCT가 이용된 일 실시예에서, 역 DCT(IDCT)가 역변환 동작들 내에서 이용된다.
어떤 선택적인 실시예들에 있어서, 디-블록킹 필터(de-blocking filter)로부터의 출력은 역변환 블록으로부터의 출력을 처리하도록 구현된(예를 들어, 샘플 적응적 오프셋(Sample Adaptive Offset; SAO) 필터, 적응적 루프 필터(Adaptive Loop Filter; ALF), 및/또는 다른 형태의 필터에 따라 구현된) 하나 또는 그 이상의 다른 인-루프 필터(in-loop filter)들에 제공된다.
예를 들어, 이러한 적응적 루프 필터(ALF)는 디블록킹 필터로부터의 출력을 처리하도록 구현될 수도 있다. 디코딩된 픽처가 (종종 디지털 픽처 버퍼(DPB)로 지칭되는) 픽처 버퍼에 저장되기 전에, 이러한 적응적 루프 필터(ALF)는 디코딩된 픽처에 적용된다. 적응적 루프 필터(ALF)는 디코딩된 픽처의 코딩 노이즈를 감소시키기 위하여 구현되고, 적응적 루프 필터(ALF)가 슬라이스 레벨(slice level) 또는 블록 레벨 중 하나에서 적용되는지 아닌지에 따라 필터링은 선택적으로 휘도 및 채도 각각에 대하여 슬라이스 단위(slice by slice basis)로 적용될 수도 있다. 이차원(2-D) 유한 임펄스 응답(finite impulse response; FIR) 필터링이 적응적 루프 필터(ALF)의 적용에 사용될 수도 있다. 필터들의 계수들은 인코더에서 슬라이스 단위로 설계될 수도 있고, 그 후 정보가 디코더로 신호된다(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호된다).
일 실시예는 위너 필터링(wiener filtering) 설계에 따라 계수들을 생성함으로써 동작한다. 부가하여, 위너 필터링은 인코더에서 필터링이 수행되는지에 따라 블록 단위(block by block basis)로 적용될 수 있고, 그 후, 그 결정은 쿼드트리(quadtree) 구조에 기초하여 디코더로 보내지고(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 보내지고), 여기에서 블록 크기는 왜곡률(rate-distortion) 최적화에 따라 결정된다. 2-D 필터링을 이용하는 구현은 인코딩 및 디코딩에 따라 복잡도(degree of complexity)를 야기할 수도 있다. 예를 들어, 적응적 루프 필터(ALF)의 구현에 따른 2-D 필터링을 사용함으로써, 송신기 통신 디바이스에 구현된 인코더 및 수신기 통신 디바이스에 구현된 디코더 내에서 복잡성을 증가시킬 수도 있다.
인-루프 필터의 일 유형과 관련하여, 적응적 루프 필터(ALF)는 랜덤 양자화 노이즈 제거를 수행함으로부터 비롯되는 최대 신호 대 잡음비(Peak to Signal Noise Ratio; PSNR)에 의한 객관적 품질 평가(objective quality measure)의 향상을 포함하는, 이러한 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 비디오 신호의 주관적 품질(subjective quality)은 조명 보상(illumination compensation)으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득(gain)을 적용함에 따라) 도입될 수도 있다.
픽처 버퍼(picture buffer), 또는 디지털 픽처 버퍼 또는 DPB라 지칭되는 픽처 버퍼는 ALF로부터 신호를 수신한다; 픽처 버퍼는 비디오 인코딩에 따라 수행될 수 있는 바와 같은 인트라-예측 및/또는 인터-예측 동작들에 따라 사용될 수 있는 바와 같은 현재 프레임(또는 픽처) 및/또는 하나 또는 그 이상의 다른 프레임들(또는 픽처들)을 저장하도록 동작한다. 인트라-예측에 따라, 상대적으로 적은 양의 저장이면 충분할 수도 있고, 즉, 현재 프레임(또는 픽처) 또는 프레임(또는 픽처) 시퀀스 내의 어떤 다른 프레임(또는 픽처)을 저장하는 것이 필요하지 않을 수도 있음을 주목해야 한다. 비디오 인코딩에 따라 인터-예측을 수행하는 경우에, 이러한 저장된 정보는 움직임 보상(motion compensation) 및/또는 움직임 추정(motion estimation)을 수행하기 위하여 이용될 수 있다.
가능한 일 실시예에 있어서, 움직임 추정에서, 현재 프레임(또는 픽처)으로부터의 휘도 샘플들(예를 들어, 16×16)의 각각의 세트는 (예를 들어, 인터-예측에 따라) 프레임(또는 픽처) 시퀀스 내의 다른 프레임들(또는 픽처들)에서의 버퍼링된 대응하는 휘도 샘플들과 비교된다. 가능한 일 구현에 있어서, 가장 가까운 매칭 영역(matching area)의 위치가 찾아내지고(located)(예를 들어, 예측 참조), 벡터 오프셋(vector offset)(예를 들어, 움직임 벡터)이 생산된다. 단일 프레임(또는 픽처)에서, 다수의 움직임 벡터들이 발견될 수도 있지만, 반드시 모두가 동일 방향을 가리키는 것은 아닐 것이다. 움직임 추정에 따라 수행되는 하나 또는 그 이상의 동작들은 하나 또는 그 이상의 움직임 벡터들을 생성하도록 동작한다.
움직임 보상은 움직임 추정에 따라 생성될 수 있는 하나 또는 그 이상의 움직임 벡터들을 이용하도록 동작한다. 샘플들의 예측 참조 세트가 식별되고, 상대적으로(예를 들어, 이상적으로, 매우) 더 낮은 에너지 레지듀얼을 성공적으로 생산하기 위하여 원본(original) 입력 비디오 신호로부터의 감산을 위하여 전달된다. 만약 이러한 동작들이 더 낮은 에너지 레지듀얼을 생산하지 못하는 경우, 움직임 보상이 반드시 수행될 필요는 없으며, (예를 들어, 입력 비디오 신호가 변환 동작에 직접적으로 제공되고, 그 결과 인트라-예측 및 인터-예측이 수행되지 않는 동작 모드(operational mode)에 따른) 변환 동작들은 레지듀얼 대신에 최초의 입력 비디오 신호에 단순히 동작할 수도 있거나 또는 인트라-예측이 사용되고 변환 동작들이 인트라-예측의 결과에 의한 레지듀얼에서 수행될 수 있다. 또한, 만약 움직임 추정 및/또는 움직임 보상 동작들이 성공적이라면, 움직임 벡터는 무손실 엔트로피 인코딩을 수행하는데 사용되는 대응하는 레지듀얼의 계수들과 함께 엔트로피 인코더로 보내질 수도 있다.
종합적인 비디오 인코딩 프로세스로부터의 출력은 출력 비트스트림이다. 이러한 출력 비트스트림은 통신 채널을 통하여 송신될 수도 있는 연속 시간 신호의 생성에 따른 특정 프로세싱을 받을 수도 있음을 주목해야 한다. 예를 들어, 어떤 실시예들은 무선 통신 시스템들 내에서 동작한다. 이러한 경우, 출력 비트스트림은 통신 채널 등을 통하여 전송될 수 있는 연속 시간 신호를 생성하도록 동작하는 무선 통신 디바이스 내에서 적절한 디지털에서 아날로그로의 변환, 주파수 변환, 스케일링, 필터링, 변조, 심볼 맵핑 및/또는 임의의 다른 동작들을 겪을 수 있다.
도 6의 실시예(600)를 참조하면, 비디오 인코더의 대안적 실시예를 도시한 이 도면과 관련하여, 이러한 비디오 인코더는 압축된 출력 비트스트림을 생산하기 위하여 예측, 변화 및 인코딩 프로세스들을 수행한다. 이러한 비디오 인코더는 ISO/IEC 14496-10 - MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 또는 AVC, ITU H.264/MPEG4-AVC와 같은 하나 또는 그 이상의 비디오 인코딩 프로토콜들, 표준들 및/또는 추천 규격(recommended practice)들에 따라 동작하고 부합할 수 있다.
통신 채널의 다른 종단에서의 디바이스 내에 위치한 대응되는 비디오 디코더는 (이상적으로는) 입력 비디오 신호를 나타내는 각각의 디코딩된 비디오 시퀀스를 생성하기 위하여 디코딩, 역변환, 재구성의 상보적인(complementary) 프로세스들을 수행하도록 동작하는 것을 주목하여야 한다.
이 도면과 관련하여 확인될 수 있는 바와 같이, 비디오 인코딩을 수행하는데 대안적인 배열들 및 아키텍처들이 이용될 수도 있다. 일반적으로 말하자면, 인코더는 (예를 들어, 코딩 유닛들 또는 매크로-블록들의 유닛들로 전형적으로 구성되고, 그 안에서 종종 N×N 픽셀들을 포함하는 사각형의 형태를 가지는) 입력 비디오 신호를 처리한다. 비디오 인코딩은 이전에 코딩된 데이터에 기초하여 현재 매크로-블록의 예측을 결정한다. 이전에 코딩된 데이터는 (예를 들어, 인트라-예측에 따라) 현재 프레임(또는 픽처) 자체로부터 또는 (예를 들어, 인터-예측에 따라) 이미 코딩되었던 하나 또는 그 이상의 다른 프레임들(또는 픽처들)로부터 비롯될 수 있다. 비디오 인코더는 레지듀얼을 형성하기 위하여 현재 매크로-블록의 예측을 차감한다.
일반적으로 말하자면, 인트라-예측은 동일 프레임(또는 픽처) 내의 인근의 이전에 코딩된 픽셀들로부터 현재 매크로-블록을 예측하기 위하여 하나 또는 그 이상의 특정 크기들(예를 들어, 16×16, 8×8 또는 4×4)의 블록 크기들을 이용하도록 동작한다. 일반적으로 말하자면, 인터-예측은 하나 또는 그 이상의 이전에 코딩된 프레임들(또는 픽처들)로부터 선택된 영역들로부터 현재 프레임(또는 픽처) 내의 픽셀들을 예측하기 위하여, 블록 크기들의 범위(예를 들어, 16×16에서 4×4까지)를 이용하도록 동작한다.
변환과 양자화 동작들과 관련하여, 레지듀얼 샘플들의 블록은 특정 변환(예를 들어, 4×4 또는 8×8)을 이용하여 변환을 받을 수 있다. 이러한 변환의 가능한 일 실시예는 이산 코사인 변환(DCT)에 따라 동작한다. 변환 동작은 각각의 계수가 변환과 연관된 하나 또는 그 이상의 기저 함수들의 각각의 가중치에 대응하도록 하기 위하여 계수들의 그룹을 출력한다. 변환이 수행된 후, 변환 계수들의 블록은 양자화된다(예를 들어, 각각의 계수는 정수값에 의하여 나누어질 수도 있고, 연관된 나머지는 버려질 수도 있으며, 또는 정수값에 의하여 곱해질 수도 있다). 양자화 프로세스는 일반적으로 본질적으로 손실이 있고, 이는 양자화 파라미터(Quantization Parameter; QP)에 따른 변환 계수들의 정확성을 감소시킬 수 있다. 전형적으로, 주어진 매크로-블록과 연관된 많은 계수들은 0이고, 오직 0이 아닌 계수들만 남는다. 일반적으로, 상대적으로 높은 QP 설정은 0의 값을 갖는 계수들의 비율이 더 크고, 0이 아닌 계수들의 규모를 더 작게 하도록 동작하고, 상대적으로 형편없는 디코딩된 이미지 품질을 대가로 상대적으로 높은 압축(예를 들어, 상대적으로 낮은 코딩된 비트 비율)의 결과를 낳는다; 상대적으로 낮은 QP 설정은 더 많은 0이 아닌 계수들을 양자화 후에 유지하게 하며, 더 큰 규모의 0이 아닌 계수들은 상대적으로 더 좋게 디코딩된 이미지 품질을 갖는 상대적으로 낮은 압축(예를 들어, 상대적으로 높은 코딩된 비트 비율)의 결과를 낳는다.
비디오 인코딩 프로세싱은 압축된 비트스트림을 형성하기 위하여 인코딩되는 다수의 값들을 생산한다. 이러한 값들의 예들은 양자화된 변환 계수들, 적절한 예측을 재생성하기 위하여 디코더에 의하여 이용될 수 있는 정보, 압축된 데이터의 구조 및 인코딩 시 이용된 압축 툴(tool)들과 관련된 정보, 완전한(complete) 비디오 시퀀스와 관련된 정보, 등등을 포함한다. 이러한 값들 및/또는 파라미터들(예를 들어, 신택스(syntax) 요소들)은 (예를 들어, 통신 채널에 적합한 연속 시간 신호를 생성하는데 적절한 프로세싱이 수행된 후에) 저장 또는 송신될 수도 있는 출력 비트스트림을 생산하기 위하여 CABAC, CAVLC에 따라 동작하는 엔트로피 인코더에서 인코딩을 겪을 수 있다.
피드백 경로를 사용하여 동작하는 일 실시예에 있어, 변환 및 양자화의 출력은 역양자화 및 역변환을 겪는다. 인트라-예측 및 인터-예측의 하나 또는 양자는 비디오 인코딩에 따라 수행될 수도 있다. 또한, 움직임 보상 및/또는 움직임 추정이 이러한 비디오 인코딩에 따라 수행될 수도 있다.
역양자화 및 역변환(예를 들어, IDCT)으로부터 출력된 신호 경로는, 인트라-예측 블록에 제공되고, 또한, 디블록킹 필터에 제공된다. 디블록킹 필터로부터의 출력은 역변환 블록으로부터의 출력을 처리하도록 구현된(예를 들어, 샘플 적응적 오프셋(SAO) 필터, 적응적 루프 필터(ALF), 및/또는 임의의 다른 필터 유형에 따라 구현된) 하나 또는 그 이상의 다른 인-루프 필터(in-loop filter)들에 제공된다. 예를 들어, 가능한 일 실시예에 있어서, 디코딩된 픽처가 (종종 디지털 픽처 버퍼(DPB)로 지칭되는) 픽처 버퍼에 저장되기 전에, ALF는 디코딩된 픽처에 적용된다. ALF는 디코딩된 픽처의 코딩 노이즈를 감소시키기 위하여 구현되고, ALF가 슬라이스 레벨 또는 블록 레벨 중 하나에서 적용되는지 아닌지에 따라 ALF의 필터링은 선택적으로 휘도 및 채도 각각에 대하여 슬라이스 단위로 적용될 수도 있다. 이차원(2-D) 유한 임펄스 응답(FIR) 필터링이 ALF의 적용에 사용될 수도 있다. 필터들의 계수들은 인코더에서 슬라이스 단위로 설계될 수도 있고, 그 후 이러한 정보는 디코더로 신호된다(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호된다).
일 실시예는 위너 필터링 설계에 따라 계수들을 생성한다. 부가하여, 위너 필터링은 인코더에서 필터링이 수행되는지에 따라 블록 단위로 적용될 수 있고, 그 후, 그 결정은 쿼드트리 구조에 기초하여 디코더로 신호되며(예를 들어, 비디오 인코더[또는 인코더로 지칭되는]를 포함하는 송신기 통신 디바이스로부터 비디오 디코더[또는 디코더로 지칭되는]를 포함하는 수신기 통신 디바이스로 신호되고), 여기서 블록 크기는 왜곡율 최적화에 따라 결정된다. 이러한 2-D 필터링 사용의 구현은 인코딩 및 디코딩에 따라 복잡도를 야기할 수도 있다. 예를 들어, ALF의 구현에 따른 2-D 필터링을 사용함으로써, 송신기 통신 디바이스에 구현된 인코더 및 수신기 통신 디바이스에 구현된 디코더 내에서 복잡성을 증가시킬 수도 있다.
다른 실시예들과 관련하여 언급한 바와 같이, ALF의 사용은 랜덤 양자화 노이즈 제거를 수행함으로써 비롯되는 최대 신호 대 잡음비(PSNR)에 의하여 객관적 품질 평가의 향상을 포함하는, 이러한 비디오 프로세싱에 따른 많은 향상들을 제공할 수 있다. 부가하여, 그 뒤에 인코딩된 비디오 신호의 주관적 품질은 조명 보상으로부터 성취될 수도 있고, 이는 ALF 프로세싱에 따른 오프셋 프로세싱 및 스케일링 프로세싱에 따라(예를 들어, 이득을 적용함에 따라) 도입될 수도 있다.
출력 비트스트림을 생성하도록 구현된 비디오 인코더 아키텍처와 관련하여, 이러한 아키텍처들이 다양한 통신 디바이스들 내에서 구현될 수도 있음을 주목해야 한다. 출력 비트스트림은 에러 정정 코드(Error Correction Code; ECC), 순방향 에러 정정(Forward Error Correction; FEC) 등을 포함하는 부가적인 프로세싱을 받을 수 있고, 그렇게 함으로써, 그 안에서 부가적인 리던던시 딜(redundancy deal)을 갖는 수정된 출력 비트스트림을 생성한다. 또한, 이러한 디지털 신호와 관련하여 이해할 수 있듯이, 디지털 신호는 통신 채널을 통한 송신에 적합 또는 적절한 연속 시간 신호 생성에 따른 임의의 적절한 프로세싱을 받을 수도 있다. 말하자면, 상기 비디오 인코더 아키텍처는 하나 또는 그 이상의 통신 채널들을 통하여 하나 또는 그 이상의 신호들의 송신을 수행하도록 동작하는 통신 디바이스 내에서 구현될 수도 있다. 이러한 비디오 인코더 아키텍처에 의하여 생성된 출력 비트스트림에 부가적인 프로세싱이 수행될 수도 있고, 그렇게 함으로써, 통신 채널로 런치(launch)될 수 있는 연속 시간 신호를 생성한다.
도 7은 인트라-예측 프로세싱의 실시예(700)를 나타내는 도면이다. 이 도면과 관련하여 확인할 수 있는 바와 같이, 비디오 데이터의 (예를 들어, 종종 일반적으로 N×N 픽셀들을 포함하는 사각형 형태를 가진) 현재 블록은 그 안의 각각의 픽셀들을 추정하기 위한 프로세싱을 받는다. 현재 블록의 좌측 상단에 위치한 이전에 코딩된 픽셀들이 이러한 인트라-예측에 따라 이용된다. 어떤 관점에서, 인트라-예측 방향은 현재 픽셀로부터 현재 픽셀의 좌측 상단에 위치한 참조 픽셀로 연장하는 벡터에 대응하는 것으로 보여질 수 있다. H.264/AVC에 따라 코딩에 적용되는 인트라-예측은 위에 참조로써 통합되는 대응하는 표준(예를 들어, International Telecommunication Union, ITU-T, TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU, H.264(03/2010), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services Coding of moving video, Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264, International Telecomm ISO/IEC 14496-10 MPEG-4 Part 10, AVC(Advanced Video Coding), H.264/MPEG-4 Part 10 or AVC(Advanced Video Coding), ITU H.264/MPEG4-AVC, or equivalent)에 설명된다.
현재 픽셀과 참조 픽셀 또는 예측 픽셀의 차이인 레지듀얼이 인코딩된다. 이 도면과 관련하여 확인할 수 있듯이, 인트라-예측은 공통 프레임(또는 픽처) 내의 픽셀들을 사용하여 동작한다. 물론, 주어진 픽셀은 주어진 픽셀과 연관된 각각의 다른 구성요소들을 가질 수도 있고, 각각의 구성요소에 대하여 샘플들의 각각 다른 세트들이 있을 수도 있음을 주목해야 한다.
도 8은 인터-예측 프로세싱의 실시예(800)를 나타내는 도면이다. 인트라-예측과는 달리, 인터-예측은 현재 프레임(또는 픽처) 내의 픽셀들의 현재 세트 및 프레임(또는 픽처) 시퀀스 내의 하나 또는 그 이상의 다른 프레임들(픽처들) 내에 위치한 참조 또는 예측 픽셀들의 하나 또는 그 이상의 세트들에 기초하여 움직임 벡터(예를 들어, 인터-예측 방향)를 식별하도록 동작한다. 확인될 수 있는 바와 같이, 움직임 벡터는 현재 프레임(또는 픽처)으로부터 프레임(또는 픽처) 시퀀스 내의 다른 프레임(또는 픽처)으로 연장된다. 인터-예측은 서브-픽셀 보간(interpolation)을 이용할 수 있고, 그 결과 예측 픽셀 값은 참조 프레임 또는 픽처의 다수의 픽셀들의 함수에 대응한다.
비록 이러한 레지듀얼은 인트라-예측 프로세싱에 따라 계산된 레지듀얼과는 다르지만, 인터-예측 프로세싱에 따라 레지듀얼이 계산될 수도 있다. 인터-예측 프로세싱에 따른 각각의 픽셀에서의 레지듀얼은 현재 픽셀과 예측된 픽셀 값 사이의 차이에 다시 대응한다. 그러나 인터-예측 프로세싱에 따라, 현재 픽셀 및 참조 또는 예측 픽셀은 동일 프레임(또는 픽처) 내에 위치하지 않는다. 비록 이 도면은 하나 또는 그 이상의 이전 프레임들 또는 픽처들에 관련하여 이용되는 인터-예측을 나타내고 있지만, 대안적인 실시예들은 현재 프레임 이전 및/또는 이후의 프레임들에 대응하는 참조들을 사용하여 동작할 수도 있다는 것을 주목해야 한다. 예를 들어, 적절한 버퍼링 및/또는 메모리 관리에 따라, 다수의 프레임들이 저장될 수도 있다. 주어진 프레임 상에서 동작할 때, 참조들은 주어진 프레임에 선행하는 및/또는 후행하는 다른 프레임들로부터 생성될 수도 있다.
CU와 연관되어, 기본 유닛(basic unit)이 예측 분할 모드, 즉, 예측 유닛(Prediction Unit; PU)에 이용될 수도 있다. 또한, PU는 오직 최종 깊이(depth) CU에 대하여 정의되고, 각각의 크기는 CU의 크기에 제한되는 것을 주목해야 한다.
도 9 및 도 10은 비디오 디코딩 아키텍처들의 각각의 다양한 실시예들(900 및 1000)을 나타내는 도면들이다.
일반적으로 말하자면, 이러한 비디오 디코딩 아키텍처들은 입력 비트스트림에 동작한다. 물론, 이러한 입력 비트스트림은 통신 채널로부터의 통신 디바이스에 의하여 수신되는 신호로부터 생성될 수도 있다. 입력 비트스트림의 생성에 따라 적절할 수 있는 바와 같은 디지털 샘플링, 복조, 스케일링, 필터링 등을 포함하는 다양한 동작들이 통신채널로부터 수신된 연속 시간 신호에 수행될 수도 있다. 더구나, 에러 정정 코드(ECC), 순방향 에러 정정(FEC) 등의 하나 또는 그 이상의 유형들이 특정 실시예들에서 구현될 수도 있고, 이러한 ECC, FEC 등에 따라 적절한 디코딩을 수행할 수 있으며, 그럼으로써 입력 비트스트림을 생성한다. 말하자면, 부가적인 리던던시가 대응하는 출력 비트스트림을 생성함에 따라 만들어졌었을 수도 있는(예를 들어, 송신기 통신 디바이스 또는 송수신기(transceiver) 통신 디바이스의 송신기 부분으로부터 런치될 수도 있는 것과 같은) 특정 실시예들에 있어서, 적절한 프로세싱이 입력 비트스트림을 생성함에 따라 수행될 수도 있다. 종합적으로, 이러한 비디오 디코딩 아키텍처는 입력 비트스트림의 처리를 시작하고, 그렇게 함으로써 하나 또는 그 이상의 비디오 디스플레이 가능 디바이스들에 출력되는데 사용되도록, 최대한 가깝고 이상적인 경우에 완벽하게, 원본 입력 비디오 신호에 대응되는 출력 비디오 신호를 생성한다.
도 9의 실시예(900)를 참조하면, 일반적으로 말하자면, (예를 들어, CABAC, CAVLC에 따라 구현될 수도 있는) 엔트로피 디코더와 같은 디코더는 비디오 인코더 아키텍처 내에서 수행되는 것과 같은 상호 보완적인 인코딩 프로세싱을 수행하는 것과 일치하도록 입력 비트스트림을 처리한다. 입력 비트스트림은, 가능한 가깝게 그리고 이상적인 경우에서 완벽하게, 비디오 인코더 아키텍처에 의하여 생성된 압축된 출력 비트스트림인 것으로 보여질 수도 있다.
물론, 실제의 활용에 있어서, 하나 또는 그 이상의 통신 링크들을 통하여 송신된 신호에서 어떤 에러들이 발생했을 수도 있을 가능성이 있다. 엔트로피 디코더는 입력 비트스트림을 프로세싱하고 DCT 계수들(예를 들어, 채도, 휘도 등을 나태는 것과 같은 정보)과 같은 적절한 계수들을 추출하며, 이러한 계수들을 역양자화 및 역변환 블록에 제공한다. DCT 변환이 이용되는 경우에는, 역양자화 및 역변환 블록이 역DCT(IDCT) 동작을 수행되도록 구현될 수도 있다. 그 후, A/D 블록킹 필터(A/D blocking filter)가 출력 비디오 신호에 대응하는 각각의 프레임들 및/또는 픽처들을 생성하도록 구현될 수도 있다. 이들 프레임 및/또는 픽처들은 움직임 보상을 포함하는 다른 동작들을 수행하는데 이용되도록 픽처 버퍼 또는 디지털 픽처 버퍼(DPB)에 제공될 수도 있다. 일반적으로 말하자면, 이러한 움직임 보상 동작들은 비디오 인코딩과 연관된 인터-예측에 대응하는 것으로 보여질 수 있다. 또한, 인트라-예측은 역양자화 및 역변환 블록으로부터 출력된 신호에 수행될 수도 있다. 비디오 인코딩과 관한 것과 유사하게, 이러한 비디오 디코더 아키텍처는 입력 비트스트림을 디코딩하는 것에 따라 인트라-예측 및 인터-예측이 수행되지 않거나, 인터-예측만 또는 인트라-예측만 수행되는 모드 선택을 수행하고, 그렇게 함으로써 출력 비디오 신호를 생성하도록 구현될 수도 있다.
도 10의 실시예(1000)를 참조하면, 어떤 선택적인 실시예들에 있어서, 출력 비트스트림을 생성하기 위하여 이용된 비디오 인코딩에 따라 구현될 수 있는 것과 같은 (예를 들어, 샘플 적응적 오프셋(SAO) 필터, 적응적 루프 필터(ALF) 및/또는 다른 필터 형태에 따라 구현된) 하나 또는 그 이상의 인-루프 필터들 및 대응되는 하나 또는 그 이상의 인-루프 필터들이 비디오 디코더 아키텍처 내에 구현될 수도 있다. 일 실시예에 있어서, 하나 또는 그 이상의 이러한 인-루프 필터들의 적절한 구현은 디-블록킹 필터 다음이다.
도 11은 재귀적(recursive) 코딩 유닛(CU) 구조의 실시예(1100)를 나타낸다. HEVC(High efficiency video coding)는 현재 개발 중인 차세대 비디오 압축 표준이다. 일부 산업상의 견해에서, HEVC 표준은 위에서 언급되고 또한 참조로써 통합된 H.264/MPEG4-AVC(또는 AVC라고 지칭되는)의 계승자로 보인다. 비디오 코딩에 따라 현재 개발 중인 HEVC 표준은, 전형적으로 사각형 형상을 가지며, AVC에 따른 그 대응부분(counterpart)이 매크로 블록(MB)인 기본 유닛으로서, 코딩 유닛(CU)을 사용하여 동작한다. 어떤 관점에서는, CU는 MB 및 AVC에서의 대응하는 서브 매크로 블록(SMB)의 동작 목적 및 역할이 유사하다. 그러나 비디오 코딩에 따라 이용된 두 개 각각의 구성요소들 사이의 적어도 하나의 차이점은, CU는 그것의 각각의 크기에 대응하는 특별한 차이 없이 다수의 다양한 크기들 중 어느 하나를 가진다는 것이다. 현재 개발 중인 HEVC 표준화에 따라 수행되는 비디오 호출 용어에 따라 특정 용어들이 CU에 관련하여 정의되며, 소위, 가장 큰 코딩 유닛(Largest Coding Unit; LCU) 및 가장 작은 코딩 유닛(Smallest Coding Unit; SCU)이 정의된다.
비디오 코딩에 따라, 픽처는 다수의 중첩하지 않는(non-overlapped) LCU들을 이용하여 표현될 수도 있다. CU는 형상에 있어서 사각형으로 제한되는 것으로 가정되기 때문에, 도 11에 도시한 바와 같이 LCU 내의 CU 구조는 재귀적 트리 표현으로 표현될 수 있다. 말하자면, CU는 대응되는 LCU 크기 및 그 LCU가 속하는 LCU에서의 계층적 깊이(hierarchical depth)에 의하여 특징지어진다.
도 11에서 검출되는 바와 같이, 일단 트리 분할(splitting) 프로세스가 이루어진 경우, 상이한 각각의 예측 인코딩 처리방법들이 더 이상 분할되지 않는 모든 CU에 대하여 특정된다. 다른 말로, CU 계층적 트리는 픽처에 대응하는 각각의 CU에 적용되는 것처럼 각각의 트리 분할 프로세스에 각각 대응하는 다수의 개별적인 리프 노드(leaf node)들을 포함하는 것으로 보여질 수 있다. 비디오 코딩 및 특히 P 및 B 슬라이스들과 관련한 비디오 코딩에 따라, 각각의 개별적인 CU는 비디오 인코딩에 따라 인트라-예측 또는 인터-예측 중 어느 하나를 사용할 수도 있다. 예를 들어, 다음 문단 및 도 7 및 도 8과 관련하여 기술된 대로, 인터-예측 코딩은 인접 프레임들로부터의 참조들을 이용하도록 동작되고, 반면에 인트라-예측 코딩은 공간(spatial) 인접 픽셀들 또는 같이 위치한 칼라 구성요소들로부터의 참조들을 이용하도록 동작된다.
도 12는 예측 유닛(Prediction Unit; PU) 모드들의 실시예(1200)를 나타낸다. 도 12는 2N×2N 크기를 갖는 CU에 대한 각각의 PU 파티션(partition) 모드들을 특히 나타낸다. N×N PU는 다른 PU 모드들과 상이하고, 오로지 SCU(또는 가장 작은 CU)와 관련하여 존재한다.
현재 개발 중인 HEVC 표준에 따라, I 슬라이스(들), P 슬라이스(들) 및 B 슬라이스(들)이 이용된 다른 각각의 슬라이스 유형들이 있다. 일반적으로 말하자면, 예측에 따르는 것과 같은 프로세싱이 오직 그 특정 프레임에만 관련될 수 있도록(예를 들어, 그리고 I 프레임은 자신에 관해서만 예측을 수행한다), I 슬라이스들이 동작한다.
P 슬라이스들은 각각의 참조 리스트들보다는 오직 하나의 참조 리스트를 사용함으로써 동작한다. 일반적으로 말하자면, P 슬라이스들과 관련하여, 움직임 보상에 따르는 것과 같은 예측은 프레임 시퀀스와 관련하여 오직 하나의 방향 또는 단일방향에 따라 수행된다. P 슬라이스들에 따른 이러한 예측은 어느 하나의 방향일 수도 있으나, 오직 하나의 방향만이 주어진 시간에 이용된다. 또한, P 슬라이스들에 따른 예측은 한 번에 오직 하나의 프레임, 다시, 프레임 시퀀스의 어느 하나의 방향과 관련하여 수행된다.
일반적으로 말해서, B 슬라이스들과 관련하여, 예측은 프레임 시퀀스를 따라 양방향에 따라 수행될 수도 있다. 예를 들어, 현재 프레임 외에 적어도 2개의 각각의 다른 프레임들이 이러한 움직임 보상에 따라 사용될 수 있도록, 움직임 보상에 따르는 것과 같은, 예측은 동시에 프레임 시퀀스의 양방향들에 이용될 수 있다. 예를 들어, 선행 프레임 1 및 후행 프레임 3 사이에 낀 현재 프레임 2를 고려한다: 선행 프레임 1은 과거에 있는 것으로 간주될 수도 있고, 반면에 후행 프레임 3은 (예를 들어, 프레임 시퀀스와 관련하여) 현재 프레임 2의 앞에 또는 미래에 있는 것으로 간주될 수도 있다. 정보는 현재 프레임 2의 프로세싱에 대하여 선행 프레임 1 및/또는 후행 프레임 3 중 어느 하나로부터 취해질 수 있다. 또한, 어떤 보간된 정보 또는 혼합된 정보(blended information)가 현재 프레임 2의 프로세싱에 따라 두 개의 다른 각각의 프레임들로부터 실현될 수도 있다(예를 들어, 선행 프레임 1로부터의 정보는 후행 프레임 3으로부터의 정보와 보간되거나 또는 혼합될 수 있다). 또한, B 슬라이스들과 관련하여, B 슬라이스들은 각각의 참조 리스트들을 이용할 수도 있다. B 슬라이스들을 사용하는 동작에 따라, CU 예측 모드 및 PU 파티션 모드는 (예를 들어, 도 15와 관련하여 도시된 바와 같은) 단일 신택스 요소(syntax element)를 이용하여 공동으로 인코딩된다. 이진화는 현재 CU가 SCU인지 아닌지에 따라 이용된다. 예를 들어, SCU가 이용되지 않는다면, 그 후 이진화는 도 13과 관련하여 아래에 기술된 수정된 이진 트리(binary tree)를 사용하여 이용될 수도 있다.
이용된 PU 모드와 관련하여, 어떻게 신호 블록이 파티션되었는지 그리고 어떻게 특정 PU 모드에 따라 인코딩된 비디오 신호의 적절한 프로세싱을 수행할지를 적절하게 알 수 있게 하기 위하여, 그 정보는 디코더로 보내진다. 예를 들어, 비디오 신호의 인코딩에 따라 이용된 특정 PU 모드에 따라, 디코더가 수신된 비디오 신호를 적절하게 처리하고 디코딩하기 위하여 디코더로 제공된다.
도 13은 일 구현에서는 P 슬라이스 인코딩 및 다른 구현에서는 P 및 B 슬라이스 모두의 인코딩에 이용되는 수정을 포함하는 이진 트리의 실시예(1300)를 나타낸다. 이 도면과 관련하여 확인할 수 있듯이, PU 파티션 심볼들의 이진화를 나타내는 이진 트리가 도시되어 있다. 예를 들어, 2N×2N에 대응하는 파티션은 한 자릿수, 즉, 1의 코드워드(codeword)를 사용한다. 2N×N에 대응하는 파티션은 두 자릿수, 즉, 01의 코드워드를 사용한다. N×2N에 대응되는 파티션은 세 자릿수, 즉, 001의 코드워드를 사용하고, N×N에 대응되는 파티션은 세 자릿수, 즉, 000의 코드워드를 사용한다. 이러한 인코딩은 허프만 코딩(Huffmann Coding)에 따라 구현되는 것으로 간주될 수 있고, 그 결과 상대적으로 낮은 확률을 갖는 그러한 값들이 상대적으로 더 긴 코드워드들에 제공되며, 반면에 상대적으로 높은 확률을 갖는 그러한 값들은 상대적으로 더 짧은 코드워드들에 제공됨을 주목해야 한다. 이해할 수 있는 바와 같이, 이러한 허프만 코딩에 따라 동작하는 시스템은 더 빈번하게 발생하고, 더 큰 우위를 갖는 그러한 값들에 대하여 상대적으로 더 짧은 코드워드들을 이용하는 경우 효율성을 제공할 수도 있다.
특정 구현들에 있어서, N×N에 대응하는 파티션은 특별하게 구현되지 않을 수도 있고, 그러한 것으로서, 메뉴스크립트(MS.) 이진 트리를 나타내는 것과 연관된 코드북(codebook)은 오직 세 개의 개별적인 엔트리들을 포함하는 것처럼 수정될 수도 있다. 예를 들어, 이러한 수정된 이진 트리에서, 2N×2N에 대응하는 파티션은 한 자릿수, 즉, 1의 코드워드를 사용할 수 있다. 또한, 2N×N에 대응하는 파티션은 두 자릿수, 즉, 01의 코드워드를 사용할 수 있다. N×2N에 대응하는 파티션은 두 자릿수, 즉, 00의 코드워드를 사용할 수 있다. 확인할 수 있는 바와 같이, 이러한 수정된 이진 트리를 이용함으로써, 좀 더 효율적으로 구현된 허프만 코드북이 실현될 수도 있다. 다시, 위에서 기술한 바와 같이, B 슬라이스들과 관련하여, B 슬라이스들은 각각의 참조 리스트들을 이용할 수도 있다. B 슬라이스들을 사용하는 동작에 따라, CU 예측 모드 및 PU 파티션 모드는 (예를 들어, 도 11과 관련하여 나타낸 바와 같은) 단일 신택스 요소를 사용하여 공동으로 인코딩된다. 이진화는 현재 CU가 SCU인지 아닌지에 따라 이용된다. 예를 들어, SCU가 이용되지 않는다면, 그 후 이진화는 도 13과 관련하여 아래에 기술된 수정된 이진 트리를 이용하여 이용될 수도 있다.
대안적인 실시예에 있어서, 도 13과 관련하여 도시된 이진 트리는 B 슬라이스들 및 P 슬라이스들 둘 다에 이용된다. 말하자면, 이러한 구현에 있어, 똑같은 이진 트리가 B 슬라이스들 및 P 슬라이스들 둘 다에 이용된다. 이러한 실시예와 관련하여 이해될 수 있듯이, 단일 코드북이 B 슬라이스들 및 P 슬라이스들의 둘 다의 프로세싱에 이용될 수 있다는 점에서, B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 똑같은 이진 트리를 사용함으로써 매우 효율적인 구현이 성취될 수 있다. 다시 말해서, 특정 실시예들에 있어, B 슬라이스 인코딩 및 P 슬라이스 인코딩 둘 다가 도 13과 관련하여 도시된 이진 트리(예를 들어, B 슬라이스들 및 P 슬라이스들 둘 다에 이용된 동일 이진 트리)를 사용하여 수행될 수도 있다. 다른 방식으로 말하자면, 도 13의 이진 트리는 일 실시예에서는 P 슬라이스 인코딩의 사용을 위하여 주로 의도된 것으로 보여질 수도 있고, 대안적인 실시예에서는 B 슬라이스 인코딩 및 P 슬라이스 인코딩 둘 다에 이용된 것으로 보여질 수도 있다.
이러한 실시예에 있어서, 분리된 각각의 신택스 요소들이 CU 예측 모드(인터-예측 또는 인트라-예측을 실시하는지 아닌지) 및 PU 파티션 모드에 이용될 수도 있다. 예를 들어, 제 1 신택스 요소가 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하기 위하여 이용될 수도 있고, 제 2 신택스 요소는 CU 파티션 형상을 지시하기 위하여(예를 들어, 어떻게 CU 분할(splitting) 및 파티셔닝(partitioning)을 수행하는지 지시하도록) 이용될 수도 있다.
도 14는 일 구현에서는 B 슬라이스 인코딩, 다른 구현에서는 B 슬라이스 인코딩 및 P 슬라이스 인코딩에 이용될 수도 있는 이진 트리의 실시예(1400)를 나타낸다. 위에서 기술한 바와 같이, B 슬라이스들과 관련하여, B 슬라이스들은 각각의 참조 리스트들을 이용할 수도 있다. B 슬라이스들을 사용하는 동작에 따라, CU 예측 모드 및 PU 파티션 모드는 (도 14에 나타낸 바와 같이) 단일 신택스 요소를 사용하여 공동으로 인코딩된다.
일 실시예에 있어서, 도 14와 관련하여 도시된 이진 트리는 B 슬라이스들에 이용되고, 도 13의 우측 및 도 15에 도시된 수정된 이진 트리는 P 슬라이스들에 이용된다. 이해될 수 있는 바와 같이, 이러한 실시예에서, 도 13의 좌측에 도시된 PU 파티션들의 이진 트리와 비교할 때, 상대적으로 더 효율적으로 구현된 이진 트리인 (예를 들어, 도 13의 우측 및 도 15의) 수정된 이진 트리를 사용함으로써, 더 효율적으로 구현된 비디오 코딩이 상대적으로 적은 오버헤드를 가지고 성취될 수 있다. 이해될 수 있는 바와 같이, 이 실시예와 관련하여, 두 개의 다른 각각의 코드북들이 B 슬라이스들(예를 들어, 도 13의 우측 및 도 15) 및 P 슬라이스들(예를 들어, 도 14)에 각각 이용된다.
대안적인 실시예에 있어서, 도 14에 도시된 이진 트리는 B 슬라이스들 및 P 슬라이스들 둘 다에 이용된다. 말하자면, 똑같은 이진 트리가 이러한 구현에서 B 슬라이스들 및 P 슬라이스들 둘 다에 이용된다. 이러한 실시예와 관련하여 이해될 수 있듯이, 단일 코드북이 B 슬라이스들 및 P 슬라이스들 둘 모두의 프로세싱에 이용될 수도 있다는 점에서, B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 똑같은 이진 트리를 사용함으로써 매우 효율적인 구현이 성취될 수 있다. 다시 말해서, 특정 실시예들에서는, B 슬라이스 인코딩 및 P 슬라이스 인코딩 둘 다는 도 14과 관련하여 도시된 이진 트리(예를 들어, B 슬라이스들 및 P 슬라이스들 둘 다에 이용된 동일 이진 트리)를 이용하여 수행될 수도 있다. 다른 방식으로 말하자면, 도 14의 이진 트리는 일 실시예에서는 B 슬라이스 인코딩의 사용을 위하여 주로 의도된 것으로 보여질 수도 있고, 다른 실시예에서는 B 슬라이스 인코딩 및 P 슬라이스 인코딩 둘 다에 이용된 것으로 보여질 수도 있다.
도 15는 도 9에 따라 수행된 B 슬라이스 인코딩과 함께 P 슬라이스 인코딩에 대하여 이용된 이진 트리의 실시예(1500)를 나타낸다. 쉬운 설명을 위하여, 도 13의 우측에 도시된 수정된 이진 트리가 도 15와 관련하여 다시 도시될 것이다. 이러한 수정된 이진 트리는 두 개의 다른 각각의 코드북들이 B 슬라이스들(예를 들어, 도 13의 우측 및 도 15) 및 P 슬라이스들(예를 들어, 도 14)에 각각 이용되는 것을 이용하는 실시예에 대하여 이용될 수 있다.
여기에 기술된 다양한 실시예들 및/또는 도면들과 관련하여 이해될 수 있듯이, N×N에 대응하는 파티션은 SCU에 대해서만 허용되기 때문에, 각각의 파티션은 루트 레벨(root level) 및 중간 레벨(intermediate level)들 각각에서 특정 CU가 필요하지 않다. P 슬라이스들과 관련하여, N×N에 대응하는 특정 파티션에 이용된 코드워드 할당(또는 이진 트리 아키텍처/설계) 및 (예를 들어, 도 13에서 N×2N에 대응되는 파티션과 관련되어 보여질 수 있는 것과 같은) N×N과 같이 동일한 브랜치(branch)로 나뉘는 파티션 크기들은 레벨 종속적이어야 한다. 현재 CU가 특별히 SCU가 아닌 경우, 도 13의 우측 및 도 15에 도시된 수정된 이진 트리는 적절하고 효과적으로 상이한 각각의 PU 파티션들의 코드워드들을 제공해야 한다. 따라서 도 13의 좌측에 도시된 이진 트리는 오로지 P 슬라이스들에서 SCU에 대하여 반드시 사용될 필요가 있다. 말하자면, P 슬라이스들에서 특별히 동작하지 않는 다른 프로세싱에 대하여, 도 13의 좌측에 도시된 이진 트리는 효과적으로 감소될 수도 있고, 수정될 수도 있으며, 그렇게 함으로써, 도 13의 우측 및 도 15에 도시된 수정된 이진 트리를 생성한다.
또한, 위에서 언급한 것과 같이, 현재 개발 중인 HEVC 표준에 따라, B 슬라이스들 및 P 슬라이스들 각각은 상이한 PU 모드들에 대하여 각기 다른 코드워드들을 사용한다. P 슬라이스들에서의 동작에 따라, CU 예측 모드(인터-예측 또는 인트라-예측을 수행하는지 아닌지) 및 PU 파티션 모드들이 분리된 신택스 요소들에 의하여 인코딩된다. 그러나 B 슬라이스들에서의 동작에 따라, CU 예측 모드 및 PU 파티션 모드들은 단일 신택스 요소들을 사용하여 공동으로 인코딩된다. 특정 상황들에 있어, P 슬라이스들 또는 B 슬라이스들이 동작되고 있는지에 따른, 이러한 이질적인 프로세싱은 신택스 파싱(parsing)에 대하여 부가적인 부담(extra burden)을 생성할 수 있다. 이와 같은, 위에서 기술되었고, 가능한 일 실시예가 B 슬라이스들 및 P 슬라이스들에 사용될 도 14에 도시된 이진 트리를 사용하여 구현될 수도 있다. 말하자면, 똑같은 이진 트리가 이러한 구현에서 B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 이용된다. 이러한 실시예와 관련하여 이해될 수 있듯이, 단일 코드북이 B 슬라이스들 및 P 슬라이스들 둘 다의 프로세싱에 이용될 수도 있다는 점에서, B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 똑같은 이진 트리를 사용함으로써 매우 효율적인 구현이 성취될 수도 있다. 예를 들어, 이러한 실시예는, 이러한 특정 경우에 B 슬라이스들 및 P 슬라이스들 둘 다의 프로세싱을 통합하고, CU 예측 모드 및 PU 파티션 모드와 관련하여 동일한 처리방법을 사용하기 위하여 똑같은 이진 트리를 사용함으로써 동작한다. CU 예측 모드(인터-예측 또는 인트라-예측을 수행하는지 아닌지) 및 PU 파티션 모드가 B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 분리된 신택스 요소로 각각 인코딩될 수 있도록, 가능한 일 실시예가 구현될 수 있다. CU 예측 모드(인터-예측 또는 인트라-예측을 수행하는지 아닌지) 및 PU 파티션 모드가 B 슬라이스들 및 P 슬라이스들 둘 다에 대하여 단일 신택스 요소로 공동으로 인코딩될 수 있도록, 가능한 다른 실시예가 구현될 수 있다.
여기에 기술된 다양한 실시예들 및/또는 도면들과 관련하여 이해될 수 있듯이, 다양한 상이한 구현들이 특정 어플리케이션에서 바람직하도록 이용될 수도 있다. 일부 경우들에 있어서, B 슬라이스들 및 P 슬라이스들 둘 다에 대한 프로세싱의 통합은 도 14에 관하여 도시된 바와 같은 공통 이진 트리를 사용하여 달성된다. 다른 경우들 있어서, 두 개의 분리되어 구현되고, 상이한 각각의 이진 트리들 및 코드북들이 B 슬라이스들 및 P 슬라이스들에 대하여 각기 이용된 경우, 및 특히 SCU가 이용되지 않은 경우(예를 들어, 현재 CU가 SCU가 아닌 경우), 도 13의 우측 및 도 15와 관련하여 도시된 것과 같은 수정된 이진 트리가 P 슬라이스들에 대하여 이용될 수 있고, 반면 도 14와 관련하여 도시된 이진 트리는 B 슬라이스들에 대하여 이용될 수 있다.
도 16a, 도 16b, 도 17a 및 도 17b는 (예를 들어, 하나 또는 그 이상의 통신 디바이스들에서의) 비디오 코딩에 따라 수행되는 방법들의 다양한 실시예들을 나타낸다.
도 16a의 방법(1600)을 참조하면, 방법(1600)은, 블록 1610에서, 출력 비트스트림 생성을 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다. 방법(1600)은, 블록 1620에 도시된 바와 같이, 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스를 처리하기 위하여 비디오 인코더 내에서 단일 이진 트리를 이용함으로써 진행한다.
도 16b의 방법(1601)을 참조하면, 방법(1601)은, 블록 1611에 도시된 바와 같이, 출력 비트스트림 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다.
그 후, 방법(1601)은, 블록 1621에 도시된 바와 같이, 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스 둘 다에 대하여 단일 신택스 요소로 코딩 유닛(CU) 예측 및 예측 유닛(PU) 파티션 모드를 공동으로 인코딩하기 위하여 비디오 인코더 내에서 단일 이진 트리를 이용함으로써 동작한다.
도 17a의 방법(1700)을 참조하면, 방법(1700)은, 블록 1710에 도시된 바와 같이, 출력 비트스트림 생성을 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다. 방법(1700)은, 블록 1720에 도시된 바와 같이, 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스 둘 다에 대하여 제 1 단일 신택스 요소로 코딩 유닛(CU) 예측을 인코딩하기 위하여 비디오 인코더 내에서 단일 이진 트리를 이용함으로써 계속한다.
그 후, 방법(1700)은, 블록 1730에 도시된 바와 같이, 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스 둘 다에 대하여 제 2 단일 신택스 요소로 예측 유닛(PU) 파티션 모드를 인코딩하기 위하여 비디오 인코더 내에서 단일 이진 트리를 이용함으로써 동작한다. 다른 실시예들 및/또는 도면들과 관련하여 여기저기에서 언급된 바와 같이, 분리된 각각의 신택스 요소들이 CU 예측 모드(인터-예측 또는 인트라-예측을 수행하는지) 및 PU 파티션 모드에 이용될 수도 있다. 예를 들어, 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하도록 이용될 수도 있고, 제 2 신택스 요소는 CU 파티션 형상을 지시하도록(예를 들어, 어떻게 CU 분할 및 파티셔닝이 수행되는지 지시하도록) 이용될 수 있다.
도 17b의 방법(1701)을 참조하면, 방법(1701)은, 블록 1711에 도시된 바와 같이, 출력 비트스트림 생성을 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작시킴으로써 시작한다.
방법(1701)은, 블록 1721에 도시된 바와 같이, 출력 비트스트림 또는 출력 비트스트림으로부터 생성된 신호 또는 출력 비트스트림에 대응하는 신호를 통신 채널을 통해 비디오 디코더로 송신함으로써 계속한다. 예를 들어, 일부 실시예들에서, 통신 채널의 송신단에서, 다양한 동작들(예를 들어, 필터링, 스케일링, 주파수 이동(frequency shifting), 주파수 변환, 라운딩(rounding), 디지털-아날로그 변환 등등을 포함하는 희망하는 아날로그 및/또는 디지털 동작들) 중 어느 하나가 통신 채널을 통한 송신 및 송신에 적합한 신호를 생성하기 위하여 출력 비트스트림과 관련하여 이루어질 수도 있다. 말하자면, 출력 비트스트림은 통신 채널을 통하여 실제로 송신되는 신호를 생성하기 위하여, 변조, 연속-시간 신호 생성 등을 포함하는 다수의 송신기 프론트-엔드 프로세싱 동작들이 (예를 들어, 아날로그 프론트 엔드(Analog Front End; AFE) 내에서와 같이) 수행될 수도 있다. 다른 실시예들에 있어서, 출력 비트스트림은 수정 없이 그 자체가 통신 채널을 통하여 사실상 송신될 수도 있다.
그 후, 방법(1701)은, 블록 1731에 도시된 바와 같이, 출력 비디오 신호(예를 들어, 입력 비디오 신호의 재생성 버전)를 생성하기 위하여, 입력 비트스트림(예를 들어, 통신 채널을 통과한 후의, 출력 비트스트림 또는 출력 비트스트림으로부터 생성된 신호 또는 출력 비트스트림에 대응하는 신호)을 디코딩하는 비디오 디코더를 동작시킴으로써 동작한다. 예를 들어, 유사하게, 일부 실시예들에서, 통신 채널의 수신단에서, 비디오 디코딩을 받는 신호(예를 들어, 입력 비트스트림)를 생성하기 위하여, 부가적인 처리(예를 들어, 필터링, 스케일링, 주파수 이동, 주파수 변환, 라운딩, 디지털-아날로그 변환 등등을 포함하는 바람직한 임의의 아날로그 및/또는 디지털 동작들)가 수신된 신호에 수행될 수도 있음을 주목해야 한다. 말하자면, 비디오 디코딩을 받는 신호(예를 들어, 입력 비트스트림)를 생성하기 위하여, 통신 채널로부터 수신된 실제 신호는 복조 등을 포함하는 다수의 수신기 프론트-엔드 처리 동작들 중 어느 하나를 (예를 들어, 아날로그 프론트 엔드(Analog Front End; AFE) 내에서와 같이) 받을 수 있다. 물론, 어떤 선택적인 실시예들에서, 출력 비트스트림이 수정 없이 그 자체로 통신 채널을 통하여 사실상 송신되는 경우에는, 이러한 수신기 프론트-엔드 프로세싱 동작들은 필요하지 않을 수도 있다.
베이스밴드(baseband) 처리 모듈 및/또는 그 안에서 구현된 처리 모듈 및/또는 그 안에서의 다른 구성요소(들)을 이용하는 것과 같이 여기에서 다양한 방법들과 관련되어 기술된 다양한 동작들과 기능들이 통신 디바이스에서 수행될 수도 있음을 주목해야 한다.
여기에 사용된 바와 같이, "실질적으로(substantially)" 및 "대략(approximately)"의 용어들은 그의 대응되는 용어 및/또는 아이템들 사이의 상대성에 대하여 산업상 받아들여지는 허용 범위를 제공한다. 상기 산업상 받아들여지는 허용 범위가 1퍼센트 미만에서부터 50퍼센트까지 이르며 그에 대응되지만, 컴포넌트 값들, 집적 회로 처리 변형들, 온도 변화들, 상승 및 하강 시간들, 및/또는 열잡음에 제한되지 않는다. 아이템들 사이의 상기 상대성은 범위가 수 퍼센트의 차이로부터 큰 규모의 차이들까지 이른다. 또한 여기에 사용될 수 있는 바와 같이, "~에 연결된(coupled to)" 및/또는 "연결하는(coupling)" 용어(들)은 아이템들 사이의 직접적인 연결을 포함하며 및/또는 사이에 있는 아이템(예컨대, 아이템은 구성요소(component), 소자(element), 회로, 및/또는 모듈을 포함하지만, 이에 제한되지는 않는다)을 통해 아이템들 사이의 간접적인 연결을 포함하고, 여기서 간접적인 연결을 위해, 사이에 오는 아이템은 신호의 정보를 변경시키지 않지만 그것의 전류 레벨, 전압 레벨, 및/또는 전력 레벨을 적용할 수 있다. 여기에 더 사용될 수 있는 바와 같이, 추정되는 연결(즉, 하나의 소자가 유추에 의해 다른 소자에 연결되는)은 "~에 연결된(coupled to)"과 같은 방법으로 두 아이템들 사이의 직접적 및 간접적인 연결을 포함한다. 심지어 여기에 더 사용될 수 있는 바와 같이, "~에 동작 가능한(operable to)" 또는 동작 가능하도록 연결된(operably coupled to) 용어는 활성화된 경우, 아이템은 하나 또는 그 이상의 대응되는 기능들을 구행하기 위한 하나 또는 그 이상의 전원 연결들, 입력(들), 출력(들) 등을 포함하며, 하나 또는 그 이상의 다른 아이템들과의 추정되는 연결을 더 포함할 수도 있다. 여기에 여전히 더 사용될 수 있는 바와 같이, "~와 연관된(associated with)" 용어는 분리된 아이템들 및/또는 또 다른 아이템 내에 임베디드되는 하나의 아이템의 직접적 및/또는 간접적인 연결을 포함한다. 여기에 사용될 수 있는 바와 같이, "유리하게 비교하는(compares favorably)" 용어는 둘 이상의 아이템들, 신호들, 기타 등등 사이의 비교가 원하는 관계를 제공한다는 것을 가리킨다. 예를 들면, 원하는 관계가 신호 1이 신호 2보다 더 큰 크기를 가지는 것일 때, 바람직한 비교는 신호 1의 크기가 신호 2의 크기보다 더 크거나, 신호 2의 크기가 신호 1의 크기보다 더 작을 때 달성될 수 있다.
또한, 여기에 사용되는 바와 같이, 처리 모듈, 모듈. 처리 회로, 및/또는 (예를 들어, 동작되고, 구현되고 및/또는 인코딩을 위한, 디코딩을 위한, 베이스밴드 처리를 위하는 것과 같은 다양한 모듈들 및/또는 회로들을 포함하는) 처리 유닛 용어들은 단일 처리 디바이스 또는 다수의 처리 디바이스일 수도 있다. 상기 처리 디바이스는 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 처리기, 마이크로컴퓨터, 중앙처리장치, 필드 프로그램 가능 게이트 어레이, 프로그램 가능 로직 디바이스, 상태 기계(state machine), 로직 회로, 아날로그 회로, 디지털 회로 및/또는 회로 및/또는 연산 명령어(operational instruction)들의 하드 코딩에 기초하여 (아날로그 및/또는 디지털) 신호들을 조작하는 어느 디바이스일 수도 있다. 처리 모듈, 모듈, 처리 회로 및/또는 처리 유닛은 연관된 메모리 및/또는 집적 메모리 소자를 가질 수도 있으며, 이는 단일 메모리 디바이스, 복수의 메모리 디바이스들 및/또는 처리 모듈, 모듈, 처리 회로 및/또는 처리 유닛의 임베디드 회로일 수도 있다. 상기 메모리 디바이스는 ROM(Read-Only Memory), RAM(Random Access Memory), 휘발성 메모리, 비휘발성 메모리, 고정 메모리, 다이나믹 메모리, 플래시 메모리, 캐시 메모리, 및/또는 디지털 정보를 저장하는 어느 디바이스일 수도 있다. 만약 처리 모듈, 모듈, 처리 회로 및/또는 처리 유닛이 하나 이상의 처리 디바이스를 포함하는 경우, 처리 디바이스들은 중앙에 위치할 수도 있거나(예를 들어, 유선 및/또는 무선 버스 구조를 통하여 같이 직접적으로 연결된), 분리되어 위치할 수도 있다(예를 들어, LAN(Local Area Network) 및/또는 WAN(Wide Area Network)을 통하여 간접적인 연결을 통한 클라우드 컴퓨팅). 만약 처리 모듈, 모듈, 처리 회로 및/또는 처리 유닛이 상태 기계, 아날로그 회로, 디지털 회로 및/또는 로직 회로를 구현하는 경우, 대응되는 연산 명령어들을 저장하는 메모리 및/또는 메모리 소자는 상태 기계, 아날로그 회로, 디지털 회로 및/또는 로직 회로를 포함하는 회로의 내부 또는 외부에 임베디드될 수도 있음을 더 주목해야 한다. 메모리 소자는 저장할 수도 있고, 처리 모듈, 모듈, 처리 회로 및/또는 처리 유닛은 하나 또는 그 이상의 도면들에서 도시된 적어도 어떤 단계들 및/또는 기능들에 대응되는 하드 코딩된 및/또는 연산 명령어들을 실행한다. 상기 메모리 디바이스 또는 메모리 소자는 제조물(article of manufacture)에 포함될 수 있다.
본 발명은 또한 특정 기능들 및 그의 관계들의 수행을 나타내는 방법 단계들을 위하여 위에서 설명되었다. 이러한 기능적 구조 블록들 및 방법 단계들의 경계들 및 시퀀스는 설명의 편의를 위해 여기에 임의로 정의되었다. 상기 특정 기능들 및 관계들이 적절히 수행되는 한 변경 가능한 경계들 및 시퀀스들이 정의될 수 있다. 그러므로 어떠한 상기 변경 가능한 경계들 또는 시퀀스들은 상기 청구된 발명의 범위 및 사상 내에 있다. 더욱이, 이들 기능적 구조 블록들의 경계들은 설명의 편의를 위하여 임의로 정의되었다. 어떤 중요한 기능들이 적절하게 수행되는 한도 내에서 다른 경계들도 정의될 수 있다. 유사하게, 또한 플로우 도면 블록들은 어떤 중요한 기능들을 나타내기 위하여 임의로 여기에 정의되었을 수도 있다. 사용되는 한에는, 플로우 도면 블록 경계들 및 시퀀스는 다르게 정의될 수 있었고, 여전히 어떤 중요한 기능을 수행한다. 기능적 구조 블록들 및 플로우 도면 블록들의 다른 정의 및 시퀀스들은 발명의 범위 및 사상 내에 있다. 당업자는 기능적 구조 블록들을 인식할 것이고, 여기의 다른 설명 블록들, 모듈들 및 구성요소들은 설명된 대로 또는 분리된 구성요소들, 어플리케이션 특정 집적 회로들, 적절한 소프트웨어를 실행하는 프로세서들 및 이와 유사한 것 또는 여기의 어떤 조합들에 의하여 구현도리 수 있다.
또한, 본 발명은 적어도 부분적으로 하나 또는 그 이상의 실시예들 관점에서 설명되었을 수도 있다. 본 발명의 일 실시예는 본 발명, 그의 측면, 그의 특징, 그의 개념 및/또는 그의 예를 설명하기 위하여 여기에 사용된다. 장치, 제조물, 기계의 물리적인 실시예 및/또는 본 발명을 구체화하는 처리는 여기에서 논의된 하나 또는 그 이상의 실시예들과 관련하여 기술된 하나 또는 그 이상의 측면들, 특징들, 개념들, 예 등을 포함할 수도 있다. 더불어, 도면을 통틀어, 실시예들은 동일 또는 다른 참조 부호들을 사용할 수도 있는 동일 또는 유사하게 명명된 기능들, 단계들, 모듈들을 통합할 수도 있고, 예를 들어, 기능들, 단계들, 모듈들 등은 동일 또는 유사한 기능들, 단계들, 모듈들 등 또는 다른 것들일 수도 있다. 여기에 제시된 도면들의 어느 도면에서 소자들 반대로, 소자로, 소자로부터 및/또는 소자들 사이에로 특정하게 기술하지 않는 한, 신호는 아날로그 또는 디지털, 연속 시간 또는 이산 시간, 싱글-엔디드(single-ended) 또는 디퍼런셜(differential)일 수도 있다. 예를 들어, 신호 경로가 싱글-엔디드 신호 경로로 나타나는 경우, 또한 그것은 디퍼런셜 신호 경로를 나타낸다. 유사하게, 신호 경로가 디퍼련셜 신호 경로로 나타나는 경우, 또한 싱글-엔디드 신호 경로를 나타낸다. 하나 또는 그 이상의 특정 아키텍처들이 여기에 기술되는 반면에, 당업자가 인식할 수 있듯이 다른 아키텍처들도 명확하게 나타나지 않는 하나 또는 그 이상의 데이터 버스들, 소자들 사이의 직접적인 연결 및/도는 다른 소자들 사이의 간접적인 연결을 사용하여 동일하게 구현될 수도 있다.
모듈 용어는 본 발명의 다양한 실시예들의 설명에서 사용된다. 모듈은 하나 또는 그 이상의 출력 신호들을 생산하기 위하여 하나 또는 그 이상의 입력 신호들의 처리와 같은 하나 또는 그 이상의 기능들을 수행하는 하드웨어를 통하여 구현된다. 모듈을 구현하는 하드웨어는 소프트웨어 및/또는 펌웨어와의 연결을 통하여 스스로 동작할 수도 있다. 여기에 기술된 바와 같이, 모듈은 그들 스스로가 모듈들인 하나 또는 그 이상의 서브-모듈들을 포함할 수도 있다.
본 발명의 다양한 기능들 및 특징들의 특정 조합들은 여기에 명확하게 기술되었지만, 이들 특징들 및 기능들의 다른 조합들은 동일하게 실행 가능하다. 본 발명은 여기에 개시된 특정 예들에 의하여 제한되지 않고, 이들 다른 조합들을 명확하게 통합한다.
Claims (15)
- 비디오 인코딩 장치에 있어서,
출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고;
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스(slice) 및 적어도 하나의 B 슬라이스의 프로세싱에 사용하는 단일 이진 트리(single binary tree)를 이용(employ)하고;
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 1 신택스 요소(syntax element)로 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하며; 및
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 2 신택스 요소로 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 1에 있어서,
상기 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하고; 및
상기 제 2 신택스 요소는 CU 파티션 형상(shape)을 지시하는 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 1에 있어서,
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 1 시간 동안 또는 상기 제 1 시간에 인트라-예측 프로세싱을 수행하고; 및
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 제 2 시간 동안 또는 상기 제 2 시간에 인터-예측 프로세싱을 수행하는 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 1에 있어서,
상기 비디오 인코딩 장치는 제 1 통신 디바이스이고; 및
적어도 하나의 통신 채널을 통하여 상기 제 1 통신 디바이스와 통신하는 제 2 통신 디바이스를 더 포함하고,
상기 제 2 통신 디바이스는,
상기 출력 비트스트림을 수신하는 입력; 및
상기 입력 비디오 신호에 대응하는 출력 비디오 신호를 생성하기 위하여 상기 출력 비트스트림을 디코딩하는 비디오 디코더;를 포함하고,
상기 제 2 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, 고해상도(High Definition, HD) 텔레비전, 표준 해상도(Standard Definition, SD) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나인 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 1에 있어서,
상기 비디오 인코딩 장치는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 통신 디바이스인 것을 특징으로 하는 비디오 인코딩 장치. - 비디오 인코딩 장치에 있어서,
출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 포함하고;
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스 둘 다에 대하여 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 단일 이진 트리를 이용하는 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 6에 있어서,
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 단일 신택스 요소로 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 공동으로 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 것을 특징으로 하는 비디오 인코딩 장치. - 청구항 6에 있어서,
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 1 신택스 요소로 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하고; 및
상기 비디오 인코더는 상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 2 신택스 요소로 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 것을 특징으로 하는 비디오 인코딩 장치. - 통신 디바이스의 비디오 인코더를 동작하는 방법에 있어서,
출력 비트스트림을 생성하기 위하여 입력 비디오 신호를 인코딩하는 비디오 인코더를 동작하는 단계; 및
상기 출력 비트스트림 생성에 따라 적어도 하나의 P 슬라이스 및 적어도 하나의 B 슬라이스 둘 다에 대하여 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 비디오 인코더 내에서 단일 이진 트리를 이용하는 단계를 포함하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 9에 있어서,
상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 단일 신택스 요소로 코딩 유닛(coding unit; CU) 예측 및 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 공동으로 인코딩하기 위하여 상기 비디오 인코더 내에서 상기 단일 이진 트리를 이용하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 9에 있어서,
상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 1 신택스 요소로 코딩 유닛(coding unit; CU) 예측을 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 단계; 및
상기 출력 비트스트림 생성에 따라 상기 적어도 하나의 P 슬라이스 및 상기 적어도 하나의 B 슬라이스 둘 다에 대하여 제 2 신택스 요소로 예측 유닛(prediction unit; PU) 파티션 모드(partition mode)를 인코딩하기 위하여 상기 단일 이진 트리를 이용하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 11에 있어서,
상기 제 1 신택스 요소는 인트라-예측 프로세싱 또는 인터-예측 프로세싱을 지시하고; 및
상기 제 2 신택스 요소는 CU 파티션 형상을 지시하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 9에 있어서,
상기 출력 비트스트림 생성에 따라 제 1 시간 동안 또는 상기 제 1 시간에 인트라-예측 프로세싱을 수행하는 단계; 및
상기 출력 비트스트림 생성에 따라 제 2 시간 동안 또는 상기 제 2 시간에 인터-예측 프로세싱을 수행하는 단계를 더 포함하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 9에 있어서,
적어도 하나의 통신 채널을 통하여 상기 통신 디바이스와 통신하는 부가적인 통신 디바이스를 동작하는 단계를 더 포함하고,
상기 부가적인 통신 디바이스는,
상기 출력 비트스트림을 수신하는 단계; 및
상기 입력 비디오 신호에 대응하는 출력 비디오 신호를 생성하기 위하여 상기 출력 비트스트림을 디코딩하는 비디오 디코더를 동작하는 단계를 수행하며,
상기 부가적인 통신 디바이스는 컴퓨터, 랩탑 컴퓨터, 고해상도(High Definition, HD) 텔레비전, 표준 해상도(Standard Definition, SD) 텔레비전, 핸드헬드 미디어 유닛, 셋탑박스(STB) 및 디지털 비디오 디스크(DVD) 플레이어 중 적어도 하나인 것을 특징으로 하는 비디오 인코더를 동작하는 방법. - 청구항 9에 있어서,
상기 통신 디바이스는 위성 통신 시스템, 무선 통신 시스템, 유선 통신 시스템, 광섬유 통신 시스템 및 모바일 통신 시스템 중 적어도 하나에서 동작하는 것을 특징으로 하는 비디오 인코더를 동작하는 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161539948P | 2011-09-27 | 2011-09-27 | |
US61/539,948 | 2011-09-27 | ||
US13/523,822 | 2012-06-14 | ||
US13/523,822 US9332283B2 (en) | 2011-09-27 | 2012-06-14 | Signaling of prediction size unit in accordance with video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130033968A KR20130033968A (ko) | 2013-04-04 |
KR101419424B1 true KR101419424B1 (ko) | 2014-07-15 |
Family
ID=46650317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120105699A KR101419424B1 (ko) | 2011-09-27 | 2012-09-24 | 비디오 코딩에 따른 예측 크기 유닛 시그널링 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9332283B2 (ko) |
EP (1) | EP2575366B1 (ko) |
KR (1) | KR101419424B1 (ko) |
CN (1) | CN103024373B (ko) |
TW (1) | TWI504221B (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2740263B1 (en) * | 2011-09-16 | 2019-02-27 | HFI Innovation Inc. | Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc |
US20130121417A1 (en) * | 2011-11-16 | 2013-05-16 | Qualcomm Incorporated | Constrained reference picture sets in wave front parallel processing of video data |
US20140029670A1 (en) * | 2012-07-27 | 2014-01-30 | Motorola Mobility Llc | Devices and methods for processing of partition mode in high efficiency video coding |
US9369708B2 (en) | 2013-03-27 | 2016-06-14 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
US9516306B2 (en) | 2013-03-27 | 2016-12-06 | Qualcomm Incorporated | Depth coding modes signaling of depth data for 3D-HEVC |
KR102166335B1 (ko) * | 2013-04-19 | 2020-10-15 | 삼성전자주식회사 | Sao 파라미터를 시그널링하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
WO2015070801A1 (en) * | 2013-11-14 | 2015-05-21 | Mediatek Singapore Pte. Ltd. | Method of video coding using prediction based on intra picture block copy |
WO2015078304A1 (en) * | 2013-11-27 | 2015-06-04 | Mediatek Singapore Pte. Ltd. | Method of video coding using prediction based on intra picture block copy |
EP3178229A4 (en) * | 2014-09-30 | 2018-03-14 | HFI Innovation Inc. | Method of lookup table size reduction for depth modelling mode in depth coding |
WO2016074147A1 (en) * | 2014-11-11 | 2016-05-19 | Mediatek Singapore Pte. Ltd. | Separated coding tree for luma and chroma |
US10382795B2 (en) | 2014-12-10 | 2019-08-13 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
WO2016090568A1 (en) | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Binary tree block partitioning structure |
WO2017008263A1 (en) * | 2015-07-15 | 2017-01-19 | Mediatek Singapore Pte. Ltd. | Conditional binary tree block partitioning structure |
WO2017114450A1 (en) * | 2015-12-31 | 2017-07-06 | Mediatek Inc. | Method and apparatus of prediction binary tree structure for video and image coding |
US20170244964A1 (en) * | 2016-02-23 | 2017-08-24 | Mediatek Inc. | Method and Apparatus of Flexible Block Partition for Video Coding |
CN113810709A (zh) * | 2016-04-29 | 2021-12-17 | 世宗大学校产学协力团 | 用于对图像信号进行编码和解码的方法和装置 |
EP3306938A1 (en) * | 2016-10-05 | 2018-04-11 | Thomson Licensing | Method and apparatus for binary-tree split mode coding |
RU2018131583A (ru) * | 2016-12-26 | 2021-01-26 | Нек Корпорейшн | Способ кодирования видео, способ декодирования видео, устройство кодирования видео, устройство декодирования видео и программа |
KR20180110064A (ko) * | 2016-12-26 | 2018-10-08 | 닛본 덴끼 가부시끼가이샤 | 영상 인코딩 방법, 영상 디코딩 방법, 영상 인코딩 장치, 영상 디코딩 장치, 및 프로그램 |
RU2018131580A (ru) | 2016-12-26 | 2021-01-26 | Нек Корпорейшн | Способ кодирования видео, способ декодирования видео, устройство кодирования видео, устройство декодирования видео и программа |
WO2018135885A1 (ko) * | 2017-01-19 | 2018-07-26 | 가온미디어 주식회사 | 변환 처리를 제공하는 영상 복호화 및 부호화 방법 |
WO2019023200A1 (en) * | 2017-07-24 | 2019-01-31 | Arris Enterprises Llc | INTRA-MODE JVET CODING |
EP4415366A2 (en) * | 2017-08-03 | 2024-08-14 | Sharp Kabushiki Kaisha | Systems and methods for partitioning video blocks in an inter prediction slice of video data |
KR102618692B1 (ko) * | 2018-06-15 | 2024-01-02 | 삼성전자주식회사 | 노이즈 또는 디서의 영향을 감소시키기 위한 디스플레이 구동 회로 및 방법 |
CN113056917B (zh) | 2018-11-06 | 2024-02-06 | 北京字节跳动网络技术有限公司 | 为视频处理使用具有几何分割的帧间预测 |
CN109348276B (zh) * | 2018-11-08 | 2019-12-17 | 北京微播视界科技有限公司 | 视频画面调整方法、装置、计算机设备和存储介质 |
CN113170166B (zh) | 2018-12-30 | 2023-06-09 | 北京字节跳动网络技术有限公司 | 具有几何分割的帧间预测在视频处理中有条件的应用 |
KR20210107864A (ko) | 2019-06-26 | 2021-09-01 | 텐센트 아메리카 엘엘씨 | 포인트 클라우드 코딩을 위한 암시적 4진트리 또는 2진트리 지오메트리 파티션 |
EP3994668A4 (en) | 2019-07-02 | 2023-11-22 | Tencent America LLC | METHOD AND APPARATUS FOR POINT CLOUD COMPRESSION |
US11368717B2 (en) | 2019-09-16 | 2022-06-21 | Tencent America LLC | Method and apparatus for point cloud compression |
US11816868B2 (en) * | 2020-08-14 | 2023-11-14 | Tencent America LLC | Coding of multiple-component attributes for point cloud coding |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050038837A1 (en) * | 2003-07-17 | 2005-02-17 | Detlev Marpe | Method and apparatus for binarization and arithmetic coding of a data value |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433526B2 (en) * | 2002-04-30 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Method for compressing images and image sequences through adaptive partitioning |
US8239766B2 (en) * | 2005-09-27 | 2012-08-07 | Qualcomm Incorporated | Multimedia coding techniques for transitional effects |
TWI332799B (en) * | 2006-09-13 | 2010-11-01 | Realtek Semiconductor Corp | A video data source system and an analog back end device |
US8503527B2 (en) * | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
US7932843B2 (en) | 2008-10-17 | 2011-04-26 | Texas Instruments Incorporated | Parallel CABAC decoding for video decompression |
CN102118615B (zh) * | 2010-01-05 | 2012-08-22 | 香港应用科技研究院有限公司 | 采用可变块大小略过模式的视频编/解码方法和装置 |
US8995527B2 (en) * | 2010-02-19 | 2015-03-31 | Qualcomm Incorporated | Block type signalling in video coding |
US9973768B2 (en) | 2010-03-16 | 2018-05-15 | Texas Instruments Incorporated | CABAC decoder with decoupled arithmetic decoding and inverse binarization |
CN101990104A (zh) * | 2010-11-17 | 2011-03-23 | 中兴通讯股份有限公司 | 视频图像编码方法及装置 |
-
2012
- 2012-06-14 US US13/523,822 patent/US9332283B2/en active Active
- 2012-07-31 EP EP12005568.6A patent/EP2575366B1/en active Active
- 2012-08-29 TW TW101131389A patent/TWI504221B/zh active
- 2012-09-24 KR KR1020120105699A patent/KR101419424B1/ko active IP Right Grant
- 2012-09-27 CN CN201210369450.9A patent/CN103024373B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050038837A1 (en) * | 2003-07-17 | 2005-02-17 | Detlev Marpe | Method and apparatus for binarization and arithmetic coding of a data value |
Non-Patent Citations (2)
Title |
---|
Bross B. et al, "WD4: Working Draft 4 of High-Efficiency Video Coding", JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torno, IT, 14-22 July 2011. * |
Bross B. et al, "WD4: Working Draft 4 of High-Efficiency Video Coding", JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torno, IT, 14-22 July 2011.* |
Also Published As
Publication number | Publication date |
---|---|
EP2575366A3 (en) | 2013-09-11 |
CN103024373A (zh) | 2013-04-03 |
CN103024373B (zh) | 2016-12-21 |
TW201315242A (zh) | 2013-04-01 |
US20130077684A1 (en) | 2013-03-28 |
EP2575366A2 (en) | 2013-04-03 |
KR20130033968A (ko) | 2013-04-04 |
TWI504221B (zh) | 2015-10-11 |
US9332283B2 (en) | 2016-05-03 |
EP2575366B1 (en) | 2019-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101419424B1 (ko) | 비디오 코딩에 따른 예측 크기 유닛 시그널링 | |
KR101437027B1 (ko) | 비디오 코딩에 따른 적응적 루프 필터링 | |
US9930348B2 (en) | Coefficient level coding in a video coding process | |
KR101772740B1 (ko) | Cabac 계수 레벨 코딩에 대한 처리량 향상 | |
CA2913797C (en) | Rice parameter initialization for coefficient level coding in video coding process | |
EP2904788B1 (en) | Intra-coding for 4:2:2 sample format in video coding | |
US9380320B2 (en) | Frequency domain sample adaptive offset (SAO) | |
JP5869115B2 (ja) | ビデオ圧縮における係数レベルコーディングのコンテキスト | |
US20130343447A1 (en) | Adaptive loop filter (ALF) padding in accordance with video coding | |
KR101357842B1 (ko) | 인프라스트럭쳐 성능들 및 현재 조건들에 기초한 비디오 코딩 서브-블록 사이징 | |
KR20130092514A (ko) | 비디오 코딩에 따른 샘플 적응적 오프셋(sao) | |
US9231616B2 (en) | Unified binarization for CABAC/CAVLC entropy coding | |
JP2015511472A (ja) | ビデオコード化におけるコードブックを使用したループフィルタパラメータのコード化 | |
US20130235926A1 (en) | Memory efficient video parameter processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170628 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180627 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190627 Year of fee payment: 6 |