KR20240051104A - 조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(vcm) 인코더 및 디코더 - Google Patents

조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(vcm) 인코더 및 디코더 Download PDF

Info

Publication number
KR20240051104A
KR20240051104A KR1020247000360A KR20247000360A KR20240051104A KR 20240051104 A KR20240051104 A KR 20240051104A KR 1020247000360 A KR1020247000360 A KR 1020247000360A KR 20247000360 A KR20247000360 A KR 20247000360A KR 20240051104 A KR20240051104 A KR 20240051104A
Authority
KR
South Korea
Prior art keywords
encoder
video
vcm
decoder
feature
Prior art date
Application number
KR1020247000360A
Other languages
English (en)
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 KR20240051104A publication Critical patent/KR20240051104A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(video coding for machines; VCM) 인코더는, 특징 인코더로서, 특징 인코더는 입력 비디오 내의 특징을 포함하는 서브-픽처를 인코딩하며 서브-픽처의 표시를 제공하도록 구성되는, 특징 인코더, 및 비디오 인코더로서, 비디오 인코더는 특징 인코더로부터 서브-픽처의 표시를 수신하며, 손실 인코딩 프로토콜을 사용하여 서브-픽처를 인코딩하도록 구성되는, 비디오 인코더를 포함한다.

Description

조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(VCM) 인코더 및 디코더
본 발명은 전반적으로 비디오 인코딩 및 디코딩 분야에 관한 것이다. 구체적으로, 본 발명은 조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(video coding for machines; VCM) 인코더에 관한 것이다.
비디오 코덱은, 디지털 비디오를 압축하거나 또는 압축해제하는 전자 회로 또는 소프트웨어를 포함할 수 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포맷으로 변환하거나 또는 그 반대로 변환할 수 있다. 비디오 압축의 맥락에서, 비디오를 압축하는 (및/또는 이의 일부 기능을 수행하는) 디바이스는 전형적으로 인코더로 지칭될 수 있으며, 비디오를 압축해제하는 (및/또는 이의 일부 기능을 수행하는) 디바이스는 디코더로 지칭될 수 있다.
압축된 데이터의 포맷은 표준 비디오 압축 사양을 따를 수 있다. 압축은, 압축된 비디오가 원본 비디오 내에 존재하는 일부 정보를 결여한다는 점에서 손실이 있을 수 있다. 그 결과는, 압축해제된 비디오가 압축되지 않은 원본 비디오보다 더 낮은 품질을 가질 수 있다는 것을 포함할 수 있으며, 이는, 원본 비디오를 정확하게 재구성하기에는 정보가 불충분하기 때문이다.
비디오 품질, 비디오를 표현하기 위해 사용되는 데이터의 양(예를 들어, 비트 레이트에 의해 결정됨), 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실들 및 오류들에 대한 민감도, 편집의 용이성, 랜덤 액세스, 종단-대-종단 지연(예를 들어, 레이턴시(latency)), 및 유사한 것 사이에 복잡한 관계들이 있을 수 있다.
모션 보상은, 이전 및/또는 미래 프레임들과 같은 참조 프레임이 주어지면, 비디오 내의 카메라 및/또는 객체들의 모션을 고려함으로써 비디오 프레임 또는 이의 일 부분을 예측하기 위한 접근방식을 포함할 수 있다. 모션 보상은, 비디오 압축에 대한 비디오 데이터의 인코딩 및 디코딩에서, 예를 들어, 동화상 전문가 그룹(Motion Picture Experts Group; MPEG)의 어드밴스드 비디오 코딩(advanced video coding; AVC) 표준(H.264로도 지칭됨)을 사용하는 인코딩 및 디코딩에서 이용될 수 있다. 모션 보상은 참조 픽처(picture)를 현재 픽처로 변환하는 측면에서 픽처를 설명할 수 있다. 참조 픽처는 현재 픽처와 비교할 때 시간 상 이전일 수 있으며, 또는 현재 픽처와 비교할 때 미래일 수 있다. 이미지들이 이전에 송신된 및/또는 저장된 이미지들로부터 정확하게 합성될 때, 압축 효율이 개선될 수 있다.
소스 비디오를 수신하고 소스 입력 비디오 내의 특징을 포함하는 서브-픽처(sub-picture)를 인코딩하며 서브-픽처의 표시를 제공하도록 구성된 특징 인코더를 포함하는 기계용 비디오 코딩(video coding for machines; VCM) 인코더가 제공된다. VCM 인코더는 또한, 소스 비디오를 수신하고, 특징 인코더로부터 서브-픽처의 표시를 수신하며, 서브-픽처를 인코딩하는 비디오 인코더를 포함한다. 멀티플렉서는 특징 인코더와 비디오 인코더에 결합되며, 특징 데이터 및 비디오 데이터 둘 모두를 갖는 VCM 인코딩된 비트스트림을 제공한다.
일부 실시예들에서, 비디오 인코더는 무손실 인코더, 손실 인코더 또는 이들의 조합이다. 비디오 인코더는 VVC, AVC, 및 유사한 것과 같은 임의의 적용가능 인코딩 표준에 따라 비디오를 인코딩할 수 있다.
VCM 디코더는 특징 디코더를 포함하며, 특징 디코더는 내부에 인코딩된 특징 데이터 및 비디오 데이터를 갖는 인코딩된 비트스트림을 수신하고, 특징 디코더는 기계 애플리케이션들에 대한 디코딩된 특징 데이터를 제공한다. VCM 디코더는 또한 비디오 디코더를 포함하며, 비디오 디코더는 특징 디코더로부터의 특징 데이터 및 인코딩된 비트스트림을 수신하고, 비디오 디코더는 인간이 시청하기에 적절한 것과 같은 디코딩된 비디오를 제공한다.
일부 실시예들에서, VCM 디코더는 VVC, AVC 및 유사한 것과 같은 적용가능 표준으로 인코딩된 비디오를 디코딩하도록 구성된다.
본 발명의 비제한적인 실시예들의 이러한 그리고 다른 측면들과 특징들은 첨부된 도면과 함께 본 발명의 특정한 비제한적인 실시예들의 다음의 설명을 검토할 때 당업자들에게 명백해질 것이다.
본 발명을 예시하기 위한 목적을 위해, 도면들은 본 발명의 하나 이상의 실시예들의 측면들을 도시한다. 그러나, 본 발명이 도면들에 도시된 정확한 배열들 및 수단들로 한정되지 않는다는 것이 이해되어야 한다.
도 1은 VCC 인코더의 예시적인 실시예를 예시하는 블록도이다.
도 2는 VCM 인코더의 예시적인 실시예를 예시하는 블록도이다.
도 3은 특징을 포함하는 서브-픽처를 갖는 이미지의 예시적인 실시예의 스크린샷이다.
도 4는 비디오 디코더의 예시적인 실시예를 예시하는 블록도이다.
도 5는 비디오 인코더의 예시적인 실시예를 예시하는 블록도이다.
도 6은, 본 명세서에서 개시되는 방법론들 중 임의의 하나 이상 및 이의 임의의 하나 이상의 부분들을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
도면들이 반드시 축적이 맞춰질 필요는 없으며, 가상 라인들, 도식적 표현들 및 단편적 뷰(view)들에 의해 예시될 수 있다. 특정 경우들에서, 실시예들의 이해를 위해 필요하지 않거나 또는 다른 세부사항들을 인지하기 어렵게 만드는 세부사항들을 생략될 수 있다.
다수의 카메라들을 갖는 감시 시스템들, 지능형 운송, 스마트 시티 애플리케이션들, 및 지능형 산업 애플리케이션들과 같은 다수의 애플리케이션들에서, 전통적인 비디오 코딩은 카메라들로부터의 대량의 비디오들을 압축하여 이를 네트워크를 통해 기계들로 그리고 인간의 소비를 위해 송신하는 것을 필요로 한다. 그런 다음, 기계 사이트(site)에서, 특징 추출을 위한 알고리즘들은 전형적으로, 객체 검출, 이벤트 액션 인식, 포즈 추정 및 다른 것들을 포함하는 컨볼루션 신경망들 또는 심층 학습 기술들을 사용하여 적용된다. 도 1은 기계들에 대해 적용되는 표준 VVC 코더를 도시한다.
이상에서 설명된 접근방식들과 관련된 문제는 다수의 카메라들로부터의 대량 비디오 송신이며, 이는 효율적이고 빠른 실시간 분석 및 의사 결정(decision-making)을 위해 상당한 시간을 소요할 수 있다. 본 명세서에서 설명되는 기계용 비디오 코딩(video coding for machines; VCM) 접근방식의 실시예들은, 비제한적으로, 송신기 사이트에서 비디오를 인코딩하고 일부 특징들을 추출하며 그런 다음 결과적인 인코딩된 비트 스트림을 VCM 디코더로 송신함으로써 이러한 문제를 해결한다. VCM 디코더 사이트에서, 비디오는 인간 시각을 위해 디코딩될 수 있으며, 특징들은 기계들을 위해 디코딩될 수 있다. 이제 도 2를 참조하면, 기계용 비디오 코딩(video coding for machines; VCM)을 위한 인코더의 예시적인 실시예가 예시된다. VCM 인코더(200)는, 비제한적으로, 디지털 및/또는 아날로그 회로부를 포함하는 임의의 회로부를 사용하여 구현될 수 있으며; VCM 인코더(200)는 하드웨어 구성, 소프트웨어 구성, 펌웨어 구성 및/또는 이들의 임의의 조합을 사용하여 구성될 수 있다. VCM 인코더(200)는, 비제한적으로 이하에서 설명되는 바와 같은 임의의 컴퓨팅 디바이스를 포함할 수 있는, 컴퓨팅 디바이스로서 및/또는 컴퓨팅 디바이스의 구성요소로서 구현될 수 있다. 일 실시예에서, VCM 인코더(200)는 입력 비디오(204)를 수신하고 출력 비트스트림(208)을 생성하도록 구성될 수 있다. 입력 비디오(204)의 수신은 이하에서 설명되는 임의의 방식으로 달성될 수 있다. 비트스트림은, 비제한적으로, 이하에서 설명되는 바와 같은 임의의 비트스트림을 포함할 수 있다.
VCM 인코더(200)는, 비제한적으로, 사전-프로세서, 비디오 인코더(212), 특징 추출기(216), 최적화기, 특징 인코더(220), 및/또는 멀티플렉서(224)를 포함할 수 있다. 사전-프로세서는 입력 비디오(204) 스트림을 수신하고 스트림의 비디오, 오디오 및 메타데이터 서브-스트림들을 파싱(parse)할 수 있다. 사전-프로세서는 이하에서 더 상세하게 설명되는 바와 같은 디코더를 포함하거나 및/또는 이와 통신할 수 있으며; 다시 말해서, 사전-프로세서는 입력 스트림들을 디코딩하기 위한 능력을 가질 수 있다. 이는, 비제한적인 예에서, 입력 비디오(204)의 디코딩을 가능하게 할 수 있으며, 이는 하류의 픽셀-도메인 분석을 용이하게 할 수 있다.
도 2를 더 참조하면, VCM 인코더(200)는 하이브리드 모드 및/또는 비디오 모드로 동작할 수 있으며; 하이브리드 모드에 있을 때 VCM 인코더(200)는 인간 소비들에 대해 의도된 시각적 신호를 인코딩하고 기계 소비들에 대해 의도된 특징 신호를 인코딩하도록 구성될 수 있고; 기계 소비들은, 비제한적으로, 이하에서 더 상세하게 설명되는 바와 같은 컴퓨팅 디바이스들을 비제한적으로 포함하는 임의의 디바이스들 및/또는 구성요소들을 포함할 수 있다. 입력 신호는, 예를 들어, 하이브리드 모드에 있을 때, 사전-프로세서를 통해 전달될 수 있다.
계속해서 도 2를 참조하면, 비디오 인코더(212)는, 비제한적으로, 이하에서 더 상세하게 설명되는 바와 같은 임의의 비디오 인코더(212)를 포함할 수 있다. VCM 인코더(200)가 하이브리드 모드에 있을 때, VCM 인코더(200)는 수정되지 않은 입력 비디오(204)를 비디오 인코더(212)로 전송하고, 동일한 입력 비디오(204)의 카피 및/또는 어떤 방식으로 수정된 입력 비디오(204)를 특징 추출기(216)로 전송할 수 있다. 입력 비디오(204)에 대한 수정들은, 본 개시내용의 전체를 검토할 때 당업자들에게 일어날 수 있는 임의의 스케일링, 변환 또는 다른 수정을 포함할 수 있다. 예를 들어, 그리고 비제한적으로, 입력 비디오(204)가 더 낮은 해상도로 리사이징(resize)될 수 있거나, 입력 비디오(204)의 픽처들의 시퀀스 중 특정한 수의 픽처들이 폐기되어 입력 비디오(204)의 프레임레이트를 감소시키거나, 컬러 정보가, 예를 들어 그리고 비제한적으로, RGB 비디오를 그레이스케일 비디오로 변환함으로써 수정될 수 있거나 하는 등이다. 계속해서 도 2를 참조하면, 비디오 인코더(212)와 특징 추출기(216)가 연결되며, 양 방향으로 유용한 정보를 교환할 수 있다. 예를 들어, 그리고 비제한적으로, 비디오 인코더(212)는 모션 추정 정보를 특징 추출기(216)로 전달할 수 있으며, 그 반대도 마찬가지이다.
비디오 인코더(212)는, 비디오 인코더(212) 및/또는 특징 추출기(216)가 식별할 수 있는 관심 영역(regions of interest; ROI)에 기초하여 양자화 매핑 및/또는 이를 설명하는 데이터를 특징 추출기(216)에 제공할 수 있거나, 또는 그 반대일 수 있다. 비디오 인코더(212)는 입력 비디오(204), 입력 신호, 및/또는 임의의 프레임 및/또는 이의 서브프레임에 존재하거나 및/또는 식별된 특징들을 기초하여 하나 이상의 분할 결정들을 설명하는 데이터를 특징 추출기(216)에 제공할 수 있으며; 특징 추출기(216)는 입력 비디오(204), 입력 신호, 및/또는 임의의 프레임 및/또는 이의 서브프레임에 존재하거나 및/또는 식별된 특징들을 기초하여 하나 이상의 분할 결정들을 설명하는 데이터를 비디오 인코더(212)에 제공할 수 있다. 비디오 인코더(212)와 특징 추출기(216)는 픽처들의 최적 그룹(optimal group of pictures; GOP) 결정들에 대한 시간 정보를 서로 공유하거나 및/또는 송신할 수 있다. 이러한 기술들 및/또는 프로세스들 각각은, 비제한적으로, 이하에서 더 상세하게 설명되는 바와 같이 수행될 수 있다.
계속해서 도 2를 참조하면, 특징 추출기(216)는 오프라인 모드 또는 온라인 모드로 동작할 수 있다. 특징 추출기(216)는 특징들을 식별하거나 및/또는 그렇지 않으면 특징들에 작용하거나 및/또는 특징들을 조작할 수 있다. 본 개시내용에서 사용되는 바와 같은 "특징"은 데이터의 특정 구조 및/또는 콘텐츠 속성이다. 특징들의 예들은 SIFT, 오디오 특징들, 컬러 히스토그램(hist), 모션 히스토그램, 스피치 레벨, 라우드니스 레벨, 또는 유사한 것을 포함할 수 있다. 특징들은 타임 스탬핑될 수 있다. 각각의 특징은 프레임들의 그룹의 단일 프레임과 연관될 수 있다. 특징들은 타임스탬프들, 비디오 내의 사람들 및 객체들에 대한 라벨들, 객체들 및/또는 관심 영역들에 대한 좌표들, 영역-기반 양자화에 대한 프레임 마스크들, 및/또는 본 개시내용의 전체를 검토할 때 당업자들에게 일어날 수 있는 임의의 다른 특징과 같은 고 레벨 콘텐츠 특징들을 포함할 수 있다. 추가적인 비제한적 예로서, 특징들은, 프레임 또는 프레임들의 그룹의 공간적 및/또는 시간적 특성들을 설명하는 특징들을 포함할 수 있다. 공간적 및/또는 시간적 특성들을 설명하는 특징들의 예들은 모션, 텍스처, 컬러, 밝기, 에지 카운트, 블러(blur), 블록성(blockiness), 또는 유사한 것을 포함할 수 있다. 오프라인 모드에 있을 때, 이하에서 더 상세하게 설명되는 바와 같은 모든 기계 모델들은 인코더에 및/또는 인코더의 메모리 및/또는 인코더에 액세스가능한 메모리에 저장될 수 있다. 이러한 모델들의 예들은, 비제한적으로, 전체적 또는 부분적 컨볼루션 신경망들, 키포인트 추출기들, 에지 검출기들, 돌출 맵 생성기(salience map constructor)들, 또는 유사한 것을 포함할 수 있다. 온라인 모드에 있을 때, 하나 이상의 모델들은 원격 기계에 의해 실시간으로 또는 추출 전 어떤 시점에 특징 추출기(216)로 통신될 수 있다.
계속해서 도 2를 참조하면, 특징 인코더(220)는, 예를 들어 그리고 비제한적으로, 특징 추출기(216)에 의해 생성되는 바와 같은 특징 신호를 인코딩하도록 구성된다. 일 실시예에서, 특징들을 추출한 이후에, 특징 추출기(216)는 추출된 특징들을 특징 인코더(220)로 전달할 수 있다. 특징 인코더(220)는 멀티플렉서(224)로 전달될 수 있는 특징 스트림을 생성하기 위해, 예를 들어 그리고 비제한적으로 이하에서 설명되는 바와 같은 엔트로피 인코딩 및/또는 유사한 기술들을 사용할 수 있다. 비디오 인코더(212) 및/또는 특징 인코더(220)는 최적화기를 통해 연결될 수 있으며; 최적화기는 이러한 비디오 인코더(212)와 특징 인코더(220) 사이에서 유용한 정보를 교환할 수 있다. 예를 들어 그리고 비제한적으로, 엔트로피 코딩에 대한 코드워드 구성 및/또는 길이에 관한 정보는, 최적 압축을 위해, 최적화기를 통해 교환되고 재사용될 수 있다.
일 실시예에서, 그리고 계속해서 도 2를 참조하면, 비디오 인코더(212)는 비디오 스트림을 생성할 수 있으며; 비디오 스트림은 멀티플렉서(224)로 전달될 수 있다. 멀티플렉서(224)는 비디오 스트림을 특징 인코더(220)에 의해 생성된 특징 스트림과 멀티플렉싱할 수 있으며; 대안적으로 또는 추가적으로, 비디오 및 특징 비트스트림들은 별개의 채널들, 별개의 네트워크들을 통해 별개의 디바이스로 및/또는 별개의 시간들 또는 별개의 간격들(시간 멀티플렉싱)로 송신될 수 있다. 비디오 스트림 및 특징 스트림 각각은 본 개시내용에서 설명되는 바와 같은 임의의 비트스트림의 구현에 적절한 임의의 방식으로 구현될 수 있다. 일 실시예에서, 멀티플렉싱된 비디오 스트림 및 특징 스트림은 하이브리드 비트스트림을 생성할 수 있으며, 이는 이하에서 더 상세하게 설명되는 바와 같이 송신될 수 있다.
계속해서 도 2를 참조하면, VCM 인코더(200)가 비디오 모드에 있을 때, VCM 인코더(200)는 비디오 및 특징 인코딩 둘 모두를 위해 비디오 인코더(212)를 사용할 수 있다. 특징 추출기(216)는 특징들을 비디오 인코더(212)로 송신할 수 있으며; 비디오 인코더(212)는 특징들을 대응하는 비디오 디코더(232)에 의해 디코딩될 수 있는 비디오 스트림으로 인코딩할 수 있다. VCM 인코더(200)가 비디오 인코딩 및 특징 인코딩 둘 모두를 위해 단일 비디오 인코더(212)를 사용할 수 있고, 이러한 경우에, 비디오 및 특징들에 대해 파라미터들의 상이한 세트를 사용할 수 있으며; 대안적으로, VCM 인코더(200)가 병렬로 동작할 수 있는 2개의 별도의 비디오 인코더(212)들을 사용할 수 있다는 것을 유의해야 한다.
계속해서 도 2를 참조하면, 시스템(100)은 VCM 디코더(228)를 포함하거나 및/또는 이와 통신할 수 있다. VCM 디코더(228) 및/또는 이의 요소들은 이상에서 설명된 바와 같은 VCM 인코더(200)의 구성을 위해 적절한 임의의 회로부 및/또는 유형의 구성을 사용하여 구현될 수 있다. VCM 디코더(228)는, 비제한적으로, 디멀티플렉서를 포함할 수 있다. 디멀티플렉서는, 비트스트림들이 이상에서 설명된 바와 같이 멀티플렉싱된 경우 비트스트림들을 디멀티플렉싱하도록 동작할 수 있으며; 예를 들어 그리고 비제한적으로, 디멀티플렉서는 하나 이상의 비디오 비트스트림들 및 하나 이상의 특징 비트스트림들을 포함하는 멀티플렉싱된 비트스트림을 별도의 비디오 비트스트림 및 특징 비트스트림으로 분리할 수 있다.
계속해서 도 2를 참조하면, VCM 디코더(228)는 비디오 디코더(232)를 포함할 수 있다. 비디오 디코더(232)는, 비제한적으로 이하에서 더 상세하게 설명되는 바와 같이 디코더에 대해 적절한 임의의 방식으로 구현될 수 있다. 일 실시예에서, 그리고 비제한적으로, 비디오 디코더(232)는, 사람 또는 시각적 감각 능력들을 갖는 다른 생물 및/또는 디바이스가 볼 수 있는 출력 비디오를 생성할 수 있다.
계속해서 도 2를 참조하면, VCM 디코더(228)는 특징 디코더(236)를 포함할 수 있다. 일 실시예에서, 그리고 비제한적으로, 특징 디코더(236)는 하나 이상의 디코딩된 데이터를 기계에 제공하도록 구성될 수 있다. 기계는, 비제한적으로 임의의 마이크로 제어기, 프로세서, 내장 시스템, 시스템 온 칩, 네트워크 노드, 또는 유사한 것을 포함하는, 이하에서 설명되는 바와 같은 임의의 컴퓨팅 디바이스를 비제한적으로 포함할 수 있다. 기계는, 이하에서 더 상세하게 설명되는 바와 같이 기계 모델을 동작시키거나, 저장하거나, 트레이닝시키거나, 이로부터 입력을 수신하거나, 이에 대한 출력을 생성하거나, 및/또는 그렇지 않으면 이와 상호작용할 수 있다. 기계는 프로세싱 및 통신 구성요소들을 갖는 객체들의 네트워크로서 정의된 사물 인터넷(Internet of Things; IOT)에 포함될 수 있으며, 이들 중 일부는 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 및/또는 모바일 디바이스들과 같은 기존 컴퓨팅 디바이스들이 아닐 수 있다. IoT 내의 객체들은, 비제한적으로, 내장 마이크로프로세서 및/또는 마이크로제어기와 근거리 네트워크(local area network; LAN) 및/또는 광역 네트워크(wide-area network; WAN)와 인터페이싱하기 위한 하나 이상의 구성요소들을 갖는 임의의 디바이스들을 포함할 수 있으며; 하나 이상의 구성요소들은, 비제한적으로, 전기 전자 기술자 협회(Institute of Electronic and Electrical Engineers; IEEE)에 의해 공표된 IEEE 802.15.4 표준의 ZIGBEE 사양 및/또는 프랑스 뤼에유말메종 소재의 Schneider Electric SE에 의해 공표된 MODBUS에 따라 동작하는 네트워크 통신 구성요소 및/또는, 워싱턴, 커클랜드 소재의 Bluetooth SIG, Inc.에 의해 공표된 바와 같은 프로토콜들을 따른 BLUETOOTH 트랜시버들과 같은, 예를 들어, 2.4-2.485 GHz 범위에서 통신하는 무선 트랜시버를 포함할 수 있다. 당업자들은, 본 개시내용의 전체를 검토할 때, 본 개시내용과 일치되게 이용될 수 있는 다양한 대안적인 또는 추가적인 통신 프로토콜들 및 이러한 프로토콜들을 지원하는 디바이스들을 인식할 수 있을 것이며, 이들 각각은 본 개시내용의 범위 내에 있는 것으로 고려된다.
계속해서 도 2를 참조하면, VCM 인코더(200) 및/또는 VCM 디코더(228) 각각은, 임의의 순서로 그리고 임의의 반복의 정도로 본 개시내용에서 설명되는 임의의 실시예의 임의의 방법, 방법 단계, 또는 방법 단계들의 시퀀스를 수행하도록 설계되거나 및/또는 구성될 수 있다. 예를 들어, VCM 인코더(200) 및/또는 VCM 디코더(228) 각각은 희망되는 또는 명령된 결과가 달성될 때까지 단일 단계 또는 시퀀스를 반복적으로 수행하도록 구성될 수 있으며; 단계 또는 단계들의 시퀀스의 반복은 후속 반복들에 대한 입력들로서 이전 반복들의 출력들을 사용하여 반복적으로 및/또는 회귀적으로 수행될 수 있으며, 이는 반복들의 입력들 및/또는 출력들을 집성하여 집성 결과, 전역 변수들과 같은 하나 이상의 변수들의 감소 또는 감분, 및/또는 더 큰 프로세싱 태스크에 반복적으로 어드레싱되는 더 작은 프로세싱 태스크들의 세트로 분할하는 것을 생성한다. VCM 인코더(200) 및/또는 VCM 디코더(228) 각각은, 2개 이상의 병렬 스레드들, 프로세서 코어들, 또는 유사한 것을 사용하여 단계를 2번 이상 동시에 및/또는 실질적으로 동시에 수행하는 것과 같이 본 개시내용에서 설명되는 바와 같은 임의의 단계 또는 단계들의 시퀀스를 병렬로 수행할 수 있으며: 병렬 스레드들 및/또는 프로세스들 사이의 태스크들의 분할은 반복들 사이에서의 태스크들의 분할에 적절한 임의의 프로토콜을 사용하여 수행될 수 있다. 당업자는, 본 개시내용의 전체를 검토할 때, 단계들, 단계들의 시퀀스들, 프로세싱 태스크들, 및/또는 데이터가 반복, 회귀, 및/또는 병렬 프로세싱을 사용하여 세분화되거나, 공유되거나, 또는 그렇지 않으면 처리되는 다양한 방법들을 인식할 것이다.
일부 실시예들에서, 그리고 계속해서 도 2를 참조하면, 예를 들어 그리고 비제한적으로 비트스트림 형태로 네트워크를 통해 송신될 데이터의 양은 무손실 및 손실 코딩의 조합을 사용하여 인코딩될 수 있으며; 이는, 예를 들어 그리고 비제한적으로 이하에서 설명되는 바와 같은 조합된 무손실 및 손실 VVC 코딩에 대해 적절한 방식으로 비제한적으로 구현될 수 있다.
일 실시예에서, 그리고 계속해서 도 2를 참조하면, VCM 인코더(200)가 소스 비디오(204)로부터 추출될 특징들을 결정할 때, 인코더는 소스 비디오(204)를, 비제한적으로, 식별된 특징들을 포함하는 하나 이상의 서브-픽처들을 포함하는 서브-픽처들로 분할할 수 있다. VCM 인코더(200)는, 비제한적으로 VVC 인코더를 포함할 수 있는 비디오 인코더(212)에 서브-픽처들의 위치에 대해 알릴 수 있다. 그러면, 비디오 인코더(212)는, 비제한적으로, 일부 식별된 서브-픽처들을 코딩하기 위한 단순화된 형상-적응적 DCT(Shape-Adaptive DCT; SA-DCT) 알고리즘과 같은 손실 코딩 기술들을 구현할 수 있다. 본 명세서에서 사용되는 바와 같은 "서브-픽처"는 프레임의 임의의 부분 및/또는 이러한 부분들의 조합을 포함할 수 있으며; 부분들은 블록들, 코딩 유닛들, 코딩 트리 유닛들, 슬라이스들 및/또는 타일들로의 직사각형 형태들의 임의의 조합, 및/또는 다각형 및/또는 만곡된 둘레를 갖는 임의의 형상을 포함할 수 있다.
도 2를 더 참조하면, 예시적인 실시예에서, 픽셀들의 직사각형 어레이가 주어지면, SA-DCT 프로세스는, 각각의 특정 컬럼 j의 Nj개의 픽셀들을 최상부 위치로 시프트하고 이들을 컬럼 벡터들 xj로 그룹화하는 것을 포함할 수 있다. 컬럼 벡터들 xj는 그 후에 1차원 표준 DCT를 사용함으로써 수직 방향으로 변환될 수 있으며, 이는 컬럼당 수직 변환 계수들을 갖는 대응하는 벡터들을 야기할 수 있다. 그 후에, 동일한 절차가 수평 방향으로 반복될 수 있으며 - 다시 말해서, 동일한 로우 i에 속하는 컬럼 벡터들 aj의 이러한 Mi개의 요소들은 최좌측 위치로 시프트되고 로우 벡터들 bi로 그룹화될 수 있으며, 이는 다시 1차원 표준 DCT를 이용하여 그렇지만 이제는 수평 방향으로 변환되어 전체 SA-DCT 계수들을 갖는 로우 벡터들 ci를 산출할 수 있다. 1차원 표준 DCT 연산들은 다음의 방정식에 따라 수행될 수 있다:
여기서 DCTL 및 SL은 각각 LxL 행렬 및 L Mi 또는 Nj에 대한 형상-적응적 전인자(prefactor)를 나타낸다. 일반적으로 양자화 이후에 수행되는 역 SA-DCT 연산들은 이러한 방정식에 따라 수행될 수 있다:
여기서 별표 표시된 값들은, 양자화가 발생했음을 나타낸다. 주어진 변환 L에 대한 변환 행렬 DCTL은 로우 및 컬럼 인덱스들 p 및 k에 대해 다음의 방정식에 따라 주어질 수 있으며, 여기서 이고:
여기서 p=0인 경우 이며, 그렇지 않은 경우 1이다. 일 실시예에서, SA-DCT 접근방식은 구현 복잡성, 코딩 효율성 및 기존 DCT 기술들에 대한 완전한 하위 호환성 사이의 합리적인 트레이드오프를 제공할 수 있다. SA-DCT은 더 복잡한 DCT 해법들에 가까운 변환 효율을 갖는 저-복잡성 해법을 제시할 수 있다. 대안적으로 또는 추가적으로, 본 개시내용을 검토할 때 당업자들에게 일어날 수 있는, 비제한적으로, 다른 인터 코딩, 인트라 코딩, 및/또는 DCT-기반 접근방법들을 포함하는 임의의 다른 DCT-기반 또는 다른 손실 인코딩 프로토콜이 이용될 수 있다.
계속해서 도 2를 참조하면, 일부 실시예들에서, VCM 디코더 및/또는 비디오 디코더(232)는 손실 인코딩 프로토콜을 사용하여 비디오 형태로 디스플레이될 다른 서브-픽처들 및/또는 하나 이상의 비디오 프레임들을 인코딩할 수 있다. 대안적으로 또는 추가적으로, 특징 인코더(220)는 무손실 인코딩 프로토콜을 사용하여 특징들을 포함하는 서브-픽처들을 인코딩할 수 있으며, 여기서 프레임은 정보의 손실 없이 또는 정보의 무시할 수 있는 손실로 인코딩되고 디코딩된다. 무손실 인코딩 프로토콜은, 비제한적인 예로서, 인코더 및/또는 디코더가 변환 코딩 스테이지를 바이패스(bypass)하고 잔차를 직접적으로 인코딩하여 무손실 코딩을 달성할 수 있는 것을 비제한적으로 포함할 수 있다. 본 개시내용에서 "변환 스킵 잔차 코딩(transform skip residual coding)"으로 지칭될 수 있는 이러한 접근방식은, 예를 들어, 블록-기반 하이브리드 코딩의 일부 형태에서 수행되는 바와 같이, 이산 코사인 변환(discrete cosine transform; DCT)들의 패밀리로부터의 변환을 적용함으로써, 이하에서 더 상세하게 설명되는 바와 같이, 공간 도메인으로부터 주파수 도메인으로의 잔치의 변환을 스킵함으로써 달성될 수 있다. 무손실 코딩 및 디코딩은, 비제한적으로, 무손실 코딩에 대한 정규 및 TS 잔차 코딩(regular residual coding; RRC, TS residual coding; TSRC)과 무손실 및 손실 동작 모드들에 대한 RRC 및 TSRC에 대한 수정들과 관련된 JVET-Q00069의 핵심 실험 CE3-1, 블록 차동 펄스-코드 변조(block differential pulse-code modulation; BDPCM) 및 무손실 코딩에 대한 고레벨 기술들을 가능하게 하기 위한 것과 관련된 JVET-Q0080의 핵심 실험 CE3-2, 및 상이한 RRC/TSRC 기술들과 BDPCM의 조합, 또는 유사한 것에서 제안된 바와 같은 프로세스들 및/또는 프로토콜들을 포함하는, 하나 이상의 대안적인 프로세스들 및/또는 프로토콜들에 따라 수행될 수 있다.
도 2를 더 참조하면, 본 개시내용에서 설명되는 바와 같은 인코더는 TS 잔차 코딩을 사용하여 하나 이상의 필드들을 코딩하도록 구성될 수 있으며, 여기서 하나 이상의 필드들은, 비제한적으로, 임의의 픽처, 서브-픽처, 코딩 유닛, 코딩 트리 유닛, 트리 유닛, 블록, 슬라이스, 및/또는 이들의 임의의 조합을 포함할 수 있다. 본 개시내용에서 설명되는 바와 같은 디코더는 TS 잔차 코딩에 따라 및/또는 이를 사용하여 하나 이상의 필드들을 디코딩하도록 구성될 수 있다. 변환 스킵 모드에서, 필드의 잔차는, 비제한적으로, 4 픽셀 x 4 픽셀의 크기와 같은 주어진 크기의 다른 서브디비전(subdivision) 또는 비-중첩 서브블록들의 유닛들로 코딩될 수 있다. 마지막 유의(significant) 스캔 위치를 코딩하는 대신에, 변환될 필드 내의 각각의 스캔 위치의 양자화 인덱스가 코딩될 수 있으며; 최종 서브블록 및/또는 서브디비전 위치는 이전의 서브디비전들의 레벨들에 기초하여 추론될 수 있다. TS 잔차 코딩은 역방향 방식이 아니라 순방향 방식으로 대각 스캔을 수행할 수 있다. 순방향 스캐닝 순서는 서브블록 및/또는 서브디비전 내의 위치들뿐만 아니라 변환 블록 내의 서브블록들을 스캔하기 위해 적용될 수 있으며; 일 실시예에서, 최종 (x, y) 위치의 시그널링이 없을 수 있다. 비제한적인 예로서, coded_sub_block_flag는, 모든 이전 플래그들이 0과 동일할 때 최종 서브블록을 제외한 모든 서브블록에 대해 코딩될 수 있다. 유의성(significance) 플래그 콘텍스트 모델링은 감소된 템플릿을 사용할 수 있다. 유의성 플래그의 콘텍스트 모델은 상단 및 좌측 인접 값들에 의존할 수 있으며; abs_level_gt1 플래그의 콘텍스트 모델도 또한 좌측 및 상단 유의성 계수 플래그 값들에 의존할 수 있다.
비제한적인 예로서, TS 잔차 코딩 프로세스의 제1 스캔 패스(pass) 동안, 유의성 플래그, 부호 플래그, 1보다 큰 절대 레벨 플래그, 및 패러티(parity)가 코딩될 수 있다. 주어진 스캔 위치에 대해, 유의성 계수가 1과 동일한 경우, 계수 부호 플래그가 코딩될 수 있으며, 그 다음에 절대 레벨이 1보다 더 큰지 여부를 지정하는 플래그가 뒤따른다. abs_level_gtX_flag가 1과 동일한 경우, par_level_flag는 절대 레벨의 패러티를 지정하기 위해 추가적으로 코딩될 수 있다. 제2 또는 후속 스캔 패스 동안, 그 절대 레벨이 1보다 더 큰 각각의 스캔 위치에 대해, i = 1...4에 대해 최대 4개의 abs_level_gtx_flag[i]는, 주어진 위치에서의 절대 레벨이 각각 3, 5, 7, 또는 9보다 더 큰지 여부를 나타내기 위해 코딩될 수 있다. 제3 또는 최종 "나머지" 스캔 패스 동안, 절대 레벨 abs_remainder로서 저장될 수 있는 나머지는 바이패스 모드에서 코딩될 수 있다. 절대 레벨들의 나머지는 1의 고정된 라이스(rice) 파라미터 값을 사용하여 이진화될 수 있다.
제1 스캔 패스 및 제2 또는 "x보다 큰" 스캔 패스의 빈(bin)들은, 비제한적으로, TU와 같은 필드 내의 최대 수의 콘텍스트 코딩된 빈들이 소진될 때가지 콘텍스트 코팅될 수 있다. 잔차 블록 내의 콘텍스트 코딩된 빈들의 최대 수는, 비제한적인 예에서, 1.75*block_width*block_height로 제한될 수 있거나, 또는 동등하게, 평균적으로 샘플 위치당 1.75개의 콘텍스트 코딩된 빈들로 제한될 수 있다. 이상에서 설명된 바와 같은 나머지 스캔 패스와 같은 마지막 스캔 패스의 빈들은 바이패스 코딩될 수 있다. 비제한적으로 RemCcbs와 같은 변수는 먼저 블록 또는 다른 필드에 대한 콘텍스트-코딩된 빈들의 최대 수로 설정될 수 있으며, 콘텍스트-코딩된 빈들이 코딩될 때마다 1씩 감소될 수 있다. 비제한적인 예에서, RemCcbs가 4 이상인 반면, sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag 및 par_level_flag를 포함할 수 있는 제1 코딩 패스 내의 신택스 요소들은 콘텍스트-코딩된 빈들을 사용하여 코딩될 수 있다. 일부 실시예들에서, 제1 패스를 코딩하는 동안 RemCcbs가 4보다 작아지는 경우, 제1 패스에서 아직 코딩되지 않은 남아 있는 계수들은 나머지 스캔 패스 및/또는 제3 패스에서 코딩될 수 있다.
제1 패스 코딩의 완료 이후에, RemCcbs가 4 이상인 경우, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, 및 abs_level_gt9_flag를 포함할 수 있는 제2 코딩 패스 내의 신택스 요소들은 콘텍스트 코딩된 빈들을 사용하여 코딩될 수 있다. 제2 패스를 코딩하는 동안 RemCcbs가 4보다 작아지는 경우, 제2 패스에서 아직 코딩되지 않은 남아 있는 계수들은 나머지 및/또는 제3 스캔 패스에서 코딩될 수 있다. 일부 실시예들에서, TS 잔차 코딩을 사용하여 코딩된 블록은 BDPCM 코딩을 사용하여 코딩되지 않을 수 있다. BDPCM 모드에서 코딩되지 않은 블록에 대해, 레벨 매핑 메커니즘은, 콘텍스트 코딩된 빈들의 최대 수에 도달할 때까지 변환 스킵 잔차 코딩에 적용될 수 있다. 레벨 매핑은 시그널링 비용을 감소시키기 위해서 현재 계수 레벨을 예측하기 위해 상단 및 좌측 인접 계수 레벨들을 사용할 수 있다. 주어진 잔차 위치에 대해, absCoeff는 매핑 이전의 절대 계수 레벨로서 표시될 수 있고, absCoeffMod는 매핑 이후의 계수 레벨로서 표시될 수 있다. 비제한적인 예로서, X0이 좌측 인접 위치의 절대 계수 레벨을 나타내고 X1이 위쪽 인접 위치의 절대 계수 레벨을 나타내는 경우, 레벨 매핑은 다음과 같이 수행될 수 있다:
그런 다음 absCoeffMod 값은 이상에서 설명된 바와 같이 코딩될 수 있다. 모든 콘텍스트 코딩된 빈들이 소진된 이후에, 레벨 매핑은 현재 블록 및/또는 필드 및/또는 서브디비전 내의 모든 남아 있는 스캔 위치들에 대해 디세이블될 수 있다. 이상에서 설명된 바와 같은 3개의 스캔 패스들은, coded_subblock_flag가 1과 동일한 경우(이는, 서브 블록 내에 적어도 하나의 0이 아닌 양자화된 잔차가 있다는 것을 나타낼 수 있음), 각각의 서브블록 및/또는 다른 서브디비전에 대해 수행될 수 있다.
일부 실시예들에서, 큰 블록에 대해 변환 스킵 모드가 사용될 때, 전체 블록은 임의의 값들을 0으로 만들지 않고 사용될 수 있다. 또한, 변환 시프트는 변환 스킵 모드에서 제거될 수 있다. TS 잔차 코딩에서 신호의 통계적 특성들은 변환 계수들의 통계적 특성들과는 상이할 수 있다. 변환 스킵 모드에 대한 잔차 코딩은 최대 루마(luma) 및/또는 크로마(chroma) 블록 크기를 지정할 수 있으며; 비제한적인 예로서, 세팅들은 변환 스킵 모드가 최대 MaxTsSize x MaxTsSize 크기의 루마 블록들에 대해 사용되는 것을 허용하고, 여기서 MaxTsSize의 값은 PPS에서 시그널링될 수 있으며 비제한적으로 32와 같은 전역 최대 가능 값을 가질 수 있다. CU가 변환 스킵 모드에서 코딩될 때, 그 예측 잔차는 변환 스킵 잔차 코딩 프로세스를 사용하여 양자화되고 코딩될 수 있다.
계속해서 도 2를 참조하면, 본 개시내용에서 설명되는 바와 같은 인코더는 BDPCM을 사용하여 하나 이상의 필드들을 코딩하도록 구성될 수 있으며, 여기서 하나 이상의 필드들은, 비제한적으로, 임의의 픽처, 서브-픽처, 코딩 유닛, 코딩 트리 유닛, 트리 유닛, 블록, 슬라이스, 및/또는 이들의 임의의 조합을 포함할 수 있다. 본 개시내용에서 설명되는 바와 같은 디코더는 BDPCM에 따라 및/또는 이를 사용하여 하나 이상의 필드들을 디코딩하도록 구성될 수 있다. BDPCM은 픽셀 레벨에서 완전 재구성을 유지할 수 있다. 비제한적인 예로서, BDPCM을 이용한 각각의 픽셀의 예측 프로세스는, 그 블록-내 참조들을 사용하여 각각의 픽셀을 예측하고 그런 다음 이를 블록의 나머지 부분 내의 후속 픽셀들에 대한 블록-내 참조로서 사용되도록 재구성할 수 있는 4개의 주요 단계들을 포함할 수 있다: (1) 블록-내 픽셀 예측, (2) 잔차 계산, (3) 잔차 양자화, 및 (4) 픽셀 재구성.
계속해서 도 2를 참조하면, 블록-내 픽셀 예측은 각각의 픽셀을 예측하기 위해 복수의 참조 픽셀들을 사용할 수 있으며; 비제한적인 예로서, 복수의 참조 픽셀들은 예측될 픽셀 p의 좌측에 있는 픽셀 α, p 위에 있는 픽셀 β, 및 p의 좌측 위에 있는 픽셀 γ를 포함할 수 있다. p의 예측은, 비제한적으로, 다음과 같이 공식화될 수 있다:
계속해서 도 2를 참조하면, 일단 예측 값이 계산되면, 그 잔차가 계산될 수 있다. 이러한 스테이지에서의 잔차가 무손실일 수 있고 디코더 측에서 액세스불가능할 수 있기 때문에, 이는 로서 표시될 수 있고 예측 p로부터 원본 픽셀 값 o를 빼는 것으로서 계산될 수 있다:
도 2를 더 참조하면, 픽셀-레벨 독립성은, 잔차 변환을 스킵하고 공간 도메인 양자화를 통합함으로써 달성될 수 있다. 이는, 다음과 같이 양자화된 잔차 값 r을 계산하기 위해 선형 양자화기 Q에 의해 수행될 수 있다:
양자화기 파라미터(Quantizer Parameter; QP)에 의해 부과된 정확한 레이트-왜곡 비율을 수용하기 위해, BDPCM는, 예를 들어 그리고 비제한적으로 이상에서 설명된 바와 같은 변환-스킵 모드 방법에서 사용되는 공간 도메인 정규화를 채택할 수 있다. 양자화된 잔차 값 r은 인코더에 의해 송신될 수 있다.
계속해서 도 2를 참조하면, BDPCM의 다른 상태는, 예를 들어 그리고 비제한적으로 다음과 같이 디코더에서 또는 디코더에 의해 수행될 수 있는, p 및 이전 단계들로부터의 r을 사용하는 픽셀 재구성을 포함할 수 있다:
c=p+r
일단 재구성되면, 현재 픽셀은 동일한 블록 내의 다른 픽셀들에 대한 블록-내 참조로서 사용될 수 있다.
BDPCM 알고리즘의 예측 기법은, 원본 픽셀 값이 그 예측으로부터 멀리 있을 때 상대적으로 큰 잔차가 있는 경우에 사용될 수 있다. 스크린 콘텐츠에서, 이는, 블록-내 참조들이 배경 레이어(layer)에 속하고, 반면 현재 픽셀은 전경 레이어에 속하는 경우, 또는 그 반대의 경우에 발생할 수 있다. "레이어 전환" 상황으로 지칭될 수 있는 이러한 상황에서, 참조들 내의 이용가능 정보는 정확한 예측을 위해 적절하지 않을 수 있다. 시퀀스 레벨에서, BDPCM 인에이블(enable) 플래그는 SPS에서 시그널링될 수 있으며, 이러한 플래그는, 비제한적으로, 예를 들어 그리고 비제한적으로 이상에서 설명된 바와 같이 변환 스킵 모드가 SPS에서 인에이블된 경우에만 시그널링될 수 있다. BDPCM이 인에이블될 때, CU 크기가 루마 샘플들과 관련하여 MaxTsSize x MaxTsSize 이하이고 CU가 인트라 코딩된 경우 플래그는 CU 레벨에서 송신될 수 있으며, 여기서 MaxTsSize는 변환 스킵 모드가 허용된 최대 블록 크기이다. 이러한 플래그는 정규 인트라 코딩 또는 BDPCM이 사용되는지 여부를 나타낼 수 있다. BDPCM이 사용되는 경우, BDPCM 예측 방향 플래그는 예측이 수평인지 또는 수직인지 여부를 나타내기 위해 송신될 수 있다. 그런 다음, 블록은 필터링되지 않은 참조 샘플들을 이용하는 정규 수평 또는 수직 인트라 예측 프로세스를 사용하여 예측될 수 있다.
도 2를 더 참조하면, 디코딩 사이트에서 특징 디코더(236)는 인간 시각을 위한 서브-픽처들을 디코딩하기 위해 비제한적으로 VVC 디코더와 같은 비디오 디코더(232)를 보조할 수 있으며; 일 실시예에서 무손실 프로토콜에 따라 디코딩될 수 있는 디코딩된 특징들은 전체 비디오의 조립을 위해 비디오 디코더(232)에 제공될 수 있다. 일 실시예에서, 본 명세서에 개시된 접근방식들은 송신될 데이터의 양을 상당히 감소시키면서 디코딩된 비디오의 높은 품질을 계속해서 유지할 수 있다.
이제 도 3을 참조하면, 본 명세서에서 개시되는 접근방식의 비제한적인 예가 제시된다. VCM 인코더(200)는 비디오 시퀀스에서 얼굴 인식을 수행할 수 있다. 인코더 측에서, 얼굴이 인식된 사람으로 구성된 서브-픽처(304)가 식별될 수 있다. 얼굴은, 비제한적으로, 심층 신경망 분류기, 컨볼루션 신경망 분류기, 순환 신경망 분류기, 또는 유사한 것, 나이브 베이즈 분류기, K-최근접 이웃 분류기, 및/또는 입자 군집 최적화(particle swarm optimization), 개미 군집 최적화(ant colony optimization), 및/또는 유전 알고리즘 분류기 기반 분류기를 비제한적으로 포함할 수 있는, 비제한적으로 신경망 분류기와 같은 이미지 분류기, 사용자 입력을 사용하여 인식될 수 있다. 인식된 얼굴이 있는 비디오는, 예를 들어 그리고 비제한적으로, 무손실 및 손실 인코딩의 임의의 조합을 사용하여 인코딩될 수 있으며; 비제한적인 예로서, 높은 디테일(detail), 높은 중요도, 또는 유사한 것을 갖는 서브-픽처들과 같은 구역(area)들은 무손실 코딩으로 인코딩될 수 있고 반면 다른 구역들은 손실 코딩으로 인코딩될 수 있다.
고-중요도 구역들은, 비제한적으로, 얼굴 인식 또는 유사한 것에 의해 식별된 얼굴들을 포함할 수 있다. 대안적으로 또는 추가적으로, 제1 영역의 식별은, 프레임의 하나 이상의 블록들 및/또는 부분들에 관한 의미론적 정보를 수신하고, 제1 영역에 포함시키기 위한 프레임의 블록들 및/또는 부분들을 식별하기 위해 의미론적 정보를 사용함으로써 수행될 수 있다. 의미론적 정보는, 비제한적으로, 얼굴 검출을 특징짓는 데이터를 포함할 수 있다. 얼굴 검출 및/또는 다른 의미론적 정보는 자동 얼굴 인식 프로세스 및/또는 프로그램에 의해 수행될 수 있거나, 및/또는 사용자로부터 얼굴 데이터, 의미론적 정보, 또는 유사한 것의 식별을 수신함으로써 수행될 수 있다. 대안적으로 또는 추가적으로, 의미론적 중요도는 유의성 스코어들을 사용하여 계산될 수 있다.
도 3을 더 참조하면, 인코더는, 복수의 블록들의 정보의 평균 측정치를 결정하고 정보의 평균 측정치를 사용하여 제1 영역을 식별함으로써 제1 영역을 식별할 수 있다. 식별은, 예를 들어, 정보의 평균 측정치를 임계치와 비교하는 것을 포함할 수 있다. 정보의 평균 측정치는, 유의성 계수로 곱해질 수 있는, 복수의 블록들의 복수의 정보 측정치들의 합을 계산함으로써 결정될 수 있다. 유의성 계수는 제1 구역의 특성에 기초하여 결정될 수 있다. 유의성 계수는 대안적으로 사용자로부터 수신될 수 있다. 정보의 측정치는, 예를 들어, 현재 프레임의 구역의 디테일의 레벨을 포함할 수 있다. 예를 들어, 매끄러운 구역 또는 고도로 텍스처링된 구역은 상이한 양의 정보를 포함할 수 있다.
계속해서 도 3을 참조하면, 정보의 평균 측정치는, 비제한적인 예로서, 다음의 합에 도시된 바와 같이, 유의성 계수로 곱해지거나 및/또는 가중될 수 있는 구역 내의 개별적인 블록들에 대한 정보 측정치들의 합에 따라 결정될 수 있다:
여기서 N은 제1 구역의 순차적 번호이고, SN은 유의성 계수이며, k는 제1 구역을 구성하는 복수의 블록들 중 하나의 블록에 대응하는 인덱스이고, n은 구역을 구성하는 블록들의 수이며, Bk는 블록들 중 하나의 블록의 정보의 측정치이고, AN은 정보의 제1 평균 측정치이다. Bk는, 예를 들어, 블록의 이산 코사인 변환을 사용하여 계산된 공간 활동의 측정치를 포함할 수 있다. 예를 들어, 이상에서 설명된 바와 같은 블록들이 픽셀들의 4 x 4 블록들인 경우, 일반화된 이산 코사인 변환 행렬은 다음의 형태를 취하는 일반화된 이산 코사인 변환 II 행렬을 포함할 수 있다:
여기서 a는 1/2이고, b는 이며, c는 이다.
일부 구현예들에서, 그리고 계속해서 도 3을 참조하면, 효율적인 하드웨어 및 소프트웨어 구현들을 위해 사용될 수 있는 변환 행렬의 정수 근사(integer approximation)가 사용될 수 있다. 예를 들어, 이상에서 설명된 바와 같은 블록들이 픽셀들의 4 x 4 블록들인 경우, 일반화된 이산 코사인 변환 행렬은 다음의 형태를 취하는 일반화된 이산 코사인 변환 II 행렬을 포함할 수 있다:
블록 Bi에 대해, 블록의 주파수 콘텐츠는 다음을 사용하여 계산될 수 있다:
FBi = T x Bi x T'.
여기서 T'는 코사인 전달 행렬 T의 트래버스(transverse)이고, Bi는 이상에서 설명된 바와 같은 4 x 4 블록들을 나타내는 4 x 4 행렬과 같은 블록 내의 픽셀들에 대응하는 수치 값들의 행렬로서 표현되는 블록이며, 연산 x는 행렬 곱셈을 나타낸다. 공간 활동의 측정치는 대안적으로 또는 추가적으로 에지 및/또는 코너 검출, 패턴 검출에 대한 커널들과의 컨볼루션, 및/또는 비제한적으로 이하에서 더 상세하게 설명되는 바와 같은 FFT 프로세스들과 같은 주파수 분석을 사용하여 수행될 수 있다.
계속해서 도 3을 참조하면, 인코더가 이하에서 더 상세하게 설명되는 바와 같이 비디오 프레임 내의 제2 구역을 결정하도록 더 구성되는 경우, 인코더는 제2 구역의 정보의 제2 평균 측정치를 결정하도록 구성될 수 있으며; 정보의 제2 평균 측정치를 결정하는 것은 정보의 제1 평균 측정치를 결정하기 위해 이상에서 설명된 바와 같이 달성될 수 있다.
계속해서 도 3을 참조하면, 유의성 계수 SN은 외부 전문가에 의해 공급되거나 및/또는 구역의 특성들에 기초하여 계산될 수 있다. 본 명세서에서 사용되는 바와 같은 구역의 "특성"은 그 콘텐츠에 기초하여 결정되는 구역의 측정가능 속성이며; 특성은 제1 구역에 대해 수행된 하나 이상의 계산들의 출력을 사용하여 수치적으로 표현될 수 있다. 하나 이상의 계산들은 제1 구역에 의해 표현되는 임의의 신호의 임의의 분석을 포함할 수 있다. 하나의 비제한적인 예는 품질 모델링 애플리케이션들에서 매끄러운 배경을 갖는 구역에 대해 더 높은 SN을 할당하고 덜 매끄러운 배경을 갖는 구역에 대해 더 낮은 SN를 할당하는 것을 포함할 수 있으며; 비제한적인 예로서, 매끄러움은 에지들의 수의 결정하기 위한 캐니(Canny) 에지 검출을 사용하여 결정될 수 있고, 여기서 수가 낮을수록 더 큰 정도의 매끄러움을 나타낸다. 자동 매끄러움 검출의 추가적인 예는 구역에 걸친 공간적 변수들의 신호에 대한 고속 푸리에 변환(fast Fourier transform; FFT)들의 사용을 포함할 수 있으며, 여기서 신호는 임의의 2차원 좌표계에 걸쳐, 그리고 적색-녹색-청색 컬러 값들을 나타내는 채널들에 걸쳐 또는 유사한 것에 걸쳐 분석될 수 있고; FFT를 사용하여 계산된 주파수 영역에서의 더 낮은 주파수 성분들의 더 큰 상대적인 우세는 더 큰 정도의 매끄러움을 나타내며, 반면 높은 주파수들의 더 큰 상대적인 우세는 배경 구역에 걸쳐 컬러 및/또는 음영 값들의 더 빈번하고 빠른 전환들을 나타낼 수 있고 이는 더 낮은 매끄러움 점수를 초래할 수 있으며; 의미상 중요한 객체들은 사용자 입력에 의해 식별될 수 있다. 의미론적 중요도는 대안적으로 또는 추가적으로 에지 구성, 및/또는 텍스처 패턴에 따라 검출될 수 있다. 배경은, 비제한적으로, 의미상 중요한 객체를 비제한적으로 포함하는, 얼굴 또는 다른 아이템과 같은 중요한 또는 "전경" 객체를 나타내는 구역의 일 부분을 수신함으로써 및/또는 검출함으로써 식별될 수 있다. 다른 예는 사람 얼굴과 같은 의미상 중요한 객체들을 포함하는 구역들에 대해 더 높은 SN을 할당하는 것을 포함할 수 있다.
도 3을 더 참조하면, 제1 영역을 식별하는 것은, 복수의 블록들의 각각의 블록의 공간 활동의 측정치를 결정하고 공간 활동의 측정치들을 사용하여 제1 영역을 식별하는 것을 포함한다. 본 개시내용에서 사용되는 바와 같은 "공간 활동 측정치"는 프레임의 블록, 블록들의 세트, 및/또는 구역 내에서 텍스처가 얼마나 자주 그리고 어떤 크기로 변경되는지를 나타내는 양이다. 다시 말해서, 하늘과 같은 평평한 구역들은 낮은 공간 활동 측정치를 가질 수 있으며, 반면 잔디와 같은 복잡한 구역들은 높은 공간 활동 측정치를 받을 것이다. 개별적인 공간 활동 측정치의 결정은, 비제한적으로 이산 코사인 변환 행렬과 같은 변환 행렬을 사용하는 결정을 포함할 수 있다. 각각의 블록에 대한 개별적인 공간 활동 측정치를 결정하는 것은, 비제한적으로 이상에서 설명된 바와 같은 임의의 이산 코사인 변환 행렬을 포함할 수 있는, 일반화된 이산 코사인 변환 행렬을 사용하는 결정을 포함할 수 있다. 예를 들어, 각각의 블록에 대한 개별적인 공간 활동 측정치를 결정하는 것은, 일반화된 이산 코사인 변환 행렬, 일반화된 이산 코사인 변환 II 행렬, 및/또는 이산 코사인 변환 행렬의 정수 근사를 사용하는 것을 포함할 수 있다.
일 실시예에서, 그리고 계속해서 도 3을 참조하면, 비디오 인코더(212)는, 예를 들어, 프레임 700으로부터 프레임 756까지의 비디오 클립 크기를 포함하는 식별된 얼굴 및/또는 사람을 포함하는 서브-픽처에 관해 통보를 받을 수 있다. 그런 다음, 비디오 인코더(212)는 단순화된 SA-DCT를 사용하여 이러한 서브-픽처 및/또는 클립에 손실 인코더를 적용할 수 있다. 특징 인코더(220)는 무손실 인코딩을 사용하여 특징들 및/또는 특징들을 포함하는 서브-픽처들을 인코딩할 수 있으며, 이들은 무손실 인코딩 프로토콜에 대응하는 무손실 디코딩을 사용하여 특징 디코더(236)에 의해 디코딩될 수 있고, 비디오 디코더(232)에서 디코딩된 비디오와 조합될 수 있다.
도 4는, 적응적 크로핑(cropping)이 가능한 예시적인 비디오 디코더(400)를 예시하는 시스템 블록도이다. 디코더(400)는, 엔트로피 디코더 프로세서(404), 역양자화 및 역변환 프로세스(408), 디블로킹(deblocking) 필터(412), 프레임 버퍼(416), 모션 보상 프로세서(420) 및/또는 인트라 예측 프로세서(424)를 포함할 수 있다. 동작 시에, 그리고 계속해서 도 4를 참조하면, 비트 스트림(428)은 디코더(400)에 의해 수신되고 엔트로피 디코더 프로세서(404)에 입력될 수 있으며, 엔트로피 디코더 프로세서는 비트 스트림의 부분들을 양자화된 계수들로 엔트로피 디코딩할 수 있다. 양자화된 계수들은, 프로세싱 모드에 따라 모션 압축 프로세서(420) 또는 인트라 예측 프로세서(424)의 출력에 추가될 수 있는 잔차 신호를 생성하기 위해 역양자화 및 역변환을 수행할 수 있는 역양자화 및 역변환 프로세서(408)에 제공될 수 있다. 모션 보상 프로세서(420) 및 인트라 예측 프로세서(424)의 출력은 이전에 디코딩된 블록에 기초하는 블록 예측을 포함할 수 있다. 예측과 잔차의 합은 디블로킹 필터(412)에 의해 프로세싱되어 프레임 버퍼(416)에 저장될 수 있다.
일 실시예에서, 그리고 계속해서 도 4를 참조하면, 디코더(400)는, 임의의 순서로 그리고 임의의 정도의 반복으로, 이상에서 설명된 바와 같은 임의의 실시예의 이상에서 설명된 바와 같은 임의의 동작들을 구현하도록 구성된 회로부를 포함할 수 있다. 예를 들어, 디코더(400)는 희망되는 또는 명령된 결과가 달성될 때까지 단일 단계 또는 시퀀스를 반복적으로 수행하도록 구성될 수 있으며; 단계 또는 단계들의 시퀀스의 반복은 후속 반복들에 대한 입력들로서 이전 반복들의 출력들을 사용하여 반복적으로 및/또는 회귀적으로 수행될 수 있으며, 이는 반복들의 입력들 및/또는 출력들을 집성하여 집성 결과, 전역 변수들과 같은 하나 이상의 변수들의 감소 또는 감분, 및/또는 더 큰 프로세싱 태스크에 반복적으로 어드레싱되는 더 작은 프로세싱 태스크들의 세트로 분할하는 것을 생성한다. 디코더는, 2개 이상의 병렬 스레드들, 프로세서 코어들, 또는 유사한 것을 사용하여 단계를 2번 이상 동시에 및/또는 실질적으로 동시에 수행하는 것과 같이 본 개시내용에서 설명되는 바와 같은 임의의 단계 또는 단계들의 시퀀스를 병렬로 수행할 수 있으며: 병렬 스레드들 및/또는 프로세스들 사이의 태스크들의 분할은 반복들 사이에서의 태스크들의 분할에 적절한 임의의 프로토콜을 사용하여 수행될 수 있다. 당업자는, 본 개시내용의 전체를 검토할 때, 단계들, 단계들의 시퀀스들, 프로세싱 태스크들, 및/또는 데이터가 반복, 회귀, 및/또는 병렬 프로세싱을 사용하여 세분화되거나, 공유되거나, 또는 그렇지 않으면 처리되는 다양한 방법들을 인식할 것이다.
도 5는, 적응적 크로핑이 가능한 예시적인 비디오 인코더(500)를 예시하는 시스템 블록도이다. 예시적인 비디오 인코더(500)은, 트리-구조형 매크로 블록 분할 기법(예를 들어, 쿼드-트리 플러스 이진 트리)와 같은 프로세싱 기법에 따라 초기에 세그먼트화되거나 또는 분할될 수 있는 입력 비디오(504)를 수신할 수 있다. 트리-구조형 매크로 블록 분할 기법의 일 예는 픽처 프레임을 큰 블록 요소들, 소위 코딩 트리 유닛(coding tree unit; CTU)들로 분할하는 것을 포함할 수 있다. 일부 구현예들에서, 각각의 CTU는 다수의 서브-블록들, 소위 코딩 유닛(coding unit; CU)들로 한 번 이상 추가로 분할될 수 있다. 이러한 분할의 최종 결과는 예측 유닛(predictive unit; PU)들로 지칭될 수 있는 서브-블록들의 그룹을 포함할 수 있다. 변환 유닛(transform unit; TU)들도 사용될 수 있다.
계속해서 도 5를 참조하면, 예시적인 비디오 인코더(500)는 인트라 예측 프로세서(508), 모션 벡터 후보 리스트에 전역 모션 벡터 후보를 추가하는 것을 포함하여 모션 벡터 후보 리스트를 구성할 수 있는 인터 예측 프로세서로도 지칭될 수 있는 모션 추정/보상 프로세서(512), 변환/양자화 프로세서(516), 역양자화/역변환 프로세서(520), 인-루프(in-loop) 필터(524), 디코딩된 픽처 버퍼(528), 및/또는 엔트로피 코딩 프로세서(532)를 포함할 수 있다. 비트 스트림 파라미터들은 출력 비트 스트림(536)에 포함시키기 위해 엔트로피 코딩 프로세서(532)에 입력될 수 있다.
동작 시에, 그리고 계속해서 도 5를 참조하면, 입력 비디오(504)의 프레임의 각각의 블록에 대해, 인트라 픽처 예측을 통해 블록을 프로세싱할지 또는 모션 추정/보상을 사용하여 블록을 프로세싱할지 여부가 결정될 수 있다. 블록은 인트라 예측 프로세서(508) 및/또는 모션 추정/보상 프로세서(512)에 제공될 수 있다. 블록이 인트라 예측을 통해 프로세싱되는 경우, 인트라 예측 프로세서(508)는 예측자를 출력하기 위한 프로세싱을 수행할 수 있다. 블록이 모션 추정/보상을 통해 프로세싱되는 경우, 모션 추정/보상 프로세서(512)는, 적용가능한 경우, 모션 벡터 후보 리스트에 전역 모션 벡터 후보를 추가하는 것을 포함하여 모션 벡터 후보 리스트를 구성하는 것을 포함하는 프로세싱을 수행할 수 있다.
도 5를 더 참조하면, 잔차는 입력 비디오(504)로부터 예측자를 빼는 것에 의해 형성될 수 있다. 잔차는 변환/양자화 프로세서(516)에 의해 수신될 수 있으며, 변환/양자화 프로세서는 양자화될 수 있는 계수들을 생성하기 위해 변환 프로세싱(예를 들어, 이산 코사인 변환(discrete cosine transform; DCT))을 수행할 수 있다. 양자화된 계수들 및 임의의 연관된 시그널링 정보는 엔트로피 인코딩 및 출력 비트 스트림(536) 내의 포함을 위해 엔트로피 코딩 프로세서(532)에 제공될 수 있다. 엔트로피 인코딩 프로세서(532)는 현재 블록을 인코딩하는 것과 관련된 시그널링 정보의 인코딩을 지원할 수 있다. 또한, 양자화 계수들은 역양자화/역변환 프로세서(520)에 제공될 수 있고, 역양자화/역변환 프로세서는 예측자와 조합될 수 있으며 인 루프 필터(524)에 의해 프로세싱될 수 있는 픽셀들을 재현할 수 있고, 역양자화/역변환 프로세서의 출력은, 모션 벡터 후보 리스트에 전역 모션 벡터 후보를 추가하는 것을 포함하여 모션 벡터 후보 리스트를 구성할 수 있는 모션 추정/보상 프로세서(512)에 의한 사용을 위해 디코딩된 픽처 버퍼(528)에 저장될 수 있다.
계속해서 도 5를 참조하면, 몇몇 변형들이 이상에서 상세하게 설명되었지만, 다른 수정들 또는 추가들이 가능하다. 예를 들어, 일부 구현예들에서, 현재 블록들은 임의의 대칭적 블록들(8x8, 16x16, 32x32, 64x64, 128 x 128, 및 유사한 것)뿐만 아니라 임의의 비대칭적 블록(8x4, 16x8, 및 유사한 것)을 포함할 수 있다.
일부 구현예들에서, 그리고 계속해서 도 5를 참조하면, 쿼드트리 플러스 이진 결정 트리(quadtree plus binary decision tree; QTBT)가 구현될 수 있다. QTBT에서, 코딩 트리 유닛 레벨에서, QTBT의 분할 파라미터들은 임의의 오버헤드를 송신하지 않으면서 로컬 특성에 맞춰 적응되도록 동적으로 도출될 수 있다. 그 후에, 코딩 유닛 레벨에서, 조인트-분류기 결정 트리 구조는 불필요한 반복들을 제거하고 잘못된 예측의 위험을 제어할 수 있다. 일부 구현예들에서, LTR 프레임 블록 업데이트 모드는, QTBT의 모든 리프(leaf) 노드에서 이용가능한 추가적인 옵션으로서 이용가능할 수 있다.
일부 구현예들에서, 그리고 계속해서 도 5를 참조하면, 추가적인 신택스(syntax) 요소들은 비트스트림의 상이한 계층 레벨들에서 시그널링될 수 있다. 예를 들어, 플래그는, 시퀀스 파라미터 세트(Sequence Parameter Set; SPS)에 코딩된 인에이블 플래그를 포함시킴으로써 전체 시퀀스에 대해 인에이블될 수 있다. 또한, CTU 플래그는 코딩 트리 유닛(coding tree unit; CTU) 레벨로 코딩될 수 있다.
일부 실시예들은, 하나 이상의 컴퓨팅 시스템들의 하나 이상의 데이터 프로세서들에 의해 실행될 때, 적어도 하나의 프로세서가 본 명세서의 동작들을 수행하게 하는 명령어들을 저장하는 비-일시적 컴퓨터 프로그램 제품들(즉, 물리적으로 구현된 컴퓨터 프로그램 제품들)을 포함할 수 있다. 계속해서 도 5를 참조하면, 인코더(500)는, 임의의 순서로 그리고 임의의 정도의 반복으로, 임의의 실시예의 이상에서 설명된 바와 같은 임의의 동작들을 구현하도록 구성된 회로부를 포함할 수 있다. 예를 들어, 인코더(500)는 희망되는 또는 명령된 결과가 달성될 때까지 단일 단계 또는 시퀀스를 반복적으로 수행하도록 구성될 수 있으며; 단계 또는 단계들의 시퀀스의 반복은 후속 반복들에 대한 입력들로서 이전 반복들의 출력들을 사용하여 반복적으로 및/또는 회귀적으로 수행될 수 있으며, 이는 반복들의 입력들 및/또는 출력들을 집성하여 집성 결과, 전역 변수들과 같은 하나 이상의 변수들의 감소 또는 감분, 및/또는 더 큰 프로세싱 태스크에 반복적으로 어드레싱되는 더 작은 프로세싱 태스크들의 세트로 분할하는 것을 생성한다. 인코더(500)는, 2개 이상의 병렬 스레드들, 프로세서 코어들, 또는 유사한 것을 사용하여 단계를 2번 이상 동시에 및/또는 실질적으로 동시에 수행하는 것과 같이 본 개시내용에서 설명되는 바와 같은 임의의 단계 또는 단계들의 시퀀스를 병렬로 수행할 수 있으며: 병렬 스레드들 및/또는 프로세스들 사이의 태스크들의 분할은 반복들 사이에서의 태스크들의 분할에 적절한 임의의 프로토콜을 사용하여 수행될 수 있다. 당업자는, 본 개시내용의 전체를 검토할 때, 단계들, 단계들의 시퀀스들, 프로세싱 태스크들, 및/또는 데이터가 반복, 회귀, 및/또는 병렬 프로세싱을 사용하여 세분화되거나, 공유되거나, 또는 그렇지 않으면 처리되는 다양한 방법들을 인식할 것이다.
계속해서 도 5를 참조하면, 비-일시적 컴퓨터 프로그램 제품들(즉, 물리적으로 구현된 컴퓨터 프로그램 제품들)은, 하나 이상의 컴퓨팅 시스템들의 하나 이상의 데이터 프로세서들에 의해 실행될 때, 적어도 하나의 프로세서가, 비제한적으로 이상에서 설명된 동작들 및/또는 디코더(400) 및/또는 인코더(500)가 수행하도록 구성될 수 있는 임의의 동작들을 포함하여, 본 개시내용에서 설명되는 동작들 및/또는 이의 단계들을 수행하게 하는 명령어들을 저장할 수 있다. 유사하게, 컴퓨터 시스템들은 또한, 하나 이상의 데이터 프로세서 및 하나 이상의 데이터 프로세서들에 결합된 메모리를 포함할 수 있는 것으로 설명된다. 메모리는, 적어도 하나의 프로세서가 본 명세서에서 설명되는 동작들 중 하나 이상을 수행하게 하는 명령어들을 일시적으로 또는 영구적으로 저장할 수 있다. 또한, 방법들은, 단일 컴퓨팅 시스템 내의 또는 2개 이상의 컴퓨팅 시스템들 사이에 분산된 하나 이상의 데이터 프로세서들에 의해 구현될 수 있다. 이러한 컴퓨팅 시스템들은, 네트워크(예를 들어, 인터넷, 무선 광역 네트워크 근거리 네트워크, 광역 네트워크, 유선 네트워크, 또는 유사한 것)를 통한 연결을 포함하는 하나 이상의 연결들을 통해, 다수의 컴퓨팅 시스템들 중 하나 이상 사이의 직접 연결을 통해, 또는 유사한 것을 통해 연결될 수 있으며, 이를 통해 데이터 및/또는 명령들 또는 다른 명령어들 또는 유사한 것을 교환할 수 있다.
본 명세서에서 설명되는 측면들 및 실시예들 중 임의의 하나 이상은, 컴퓨터 기술분야의 당업자들에게 명백할 바와 같이, 본 명세서의 교시들에 따라 프로그래밍된 하나 이상의 기계들(예를 들어, 전자 문서에 대한 사용자 컴퓨팅 디바이스, 하나 이상의 서버 디바이스들, 예컨대 문서 서버, 등으로서 사용되는 하나 이상의 컴퓨팅 디바이스들)을 사용하여 편리하게 구현될 수 있다는 것을 유의해야 한다. 적절한 소프트웨어 코딩은, 소프트웨어 기술분야의 당업자들에게 명백할 바와 같이, 본 개시내용의 교시들에 기초하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다. 소프트웨어 및/또는 소프트웨어 모듈들을 이용하는 이상에서 논의된 측면들 및 구현예들은 또한, 소프트웨어 및/또는 소프트웨어 모듈의 기계 실행가능 명령어들의 구현을 보조하기 위한 적절한 하드웨어를 포함할 수 있다.
이러한 소프트웨어는, 기계-판독가능 저장 매체를 이용하는 컴퓨터 프로그램 제품일 수 있다. 기계-판독가능 저장 매체는, 기계(예를 들어, 컴퓨팅 디바이스)에 의한 실행을 위한 명령어들의 시퀀스를 저장하거나 및/또는 인코딩할 수 있으며 기계가 본 명세서에서 설명된 방법론들 및/또는 실시예들 중 임의의 하나를 수행하게 하는 임의의 매체일 수 있다. 기계-판독가능 저장 매체의 예들은, 비제한적으로, 자기 디스크, 광학 디스크(예를 들어, CD, CD-R, DVD, DVD-R, 등), 자기-광학 디스크, 판독-전용 메모리("ROM") 디바이스, 랜덤-액세스 메모리("RAM"), 자기 카드, 광학 카드, 고체-상태 메모리 디바이스, EPROM, EEPROM, 및 이들의 임의의 조합들을 포함한다. 본 명세서에서 사용되는 바와 같은 기계-판독가능 매체는, 단일 매체뿐만 아니라, 예를 들어, 컴퓨터 메모리와 조합된 콤팩트 디스크들 또는 하나 이상의 하드 디스크 드라이브들의 모음과 같은 물리적으로 별도의 매체의 모음을 포함하도록 의도된다. 본 명세서에서 사용되는 바와 같은 기계-판독가능 저장 매체는 일시적 형태의 신호 송신을 포함하지 않는다.
이러한 소프트웨어는 또한 반송파와 같은 데이터 캐리어 상에서 데이터 신호로서 운반되는 정보(예를 들어, 데이터)를 포함할 수 있다. 예를 들어, 기계-판독가능 정보는, 신호가, 기계가 본 명세서에서 설명된 방법론들 및/또는 실시예들 중 임의의 것을 수행하게 하는 기계(예를 들어, 컴퓨팅 디바이스)에 의한 실행을 위한 명령어의 시퀀스, 또는 이의 부분, 및 임의의 관련 정보를 인코딩하는, 데이터 캐리어에 구현된 데이터-운반 신호로서 포함될 수 있다.
컴퓨팅 디바이스의 예들은, 비제한적으로, 전자 책 리딩 디바이스, 컴퓨터 워크스테이션, 단말 컴퓨터, 서버 컴퓨터, 핸드헬드 디바이스(예를 들어, 태블릿 컴퓨터, 스마트폰, 등), 웹 전기기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 해당 기계가 취할 액션을 지정하는 명령어들의 시퀀스를 실행할 수 있는 임의의 기계, 및 이들의 임의의 조합을 포함한다. 일 예에서, 컴퓨팅 디바이스는 키오스크를 포함하거나 및/또는 이에 포함될 수 잇다.
도 6은, 제어 시스템이 본 개시내용의 측면들 및/또는 방법론들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 예시적인 컴퓨터 시스템(600) 형태의 컴퓨팅 디바이스의 일 실시예의 도시적 표현을 도시한다. 다수의 컴퓨팅 디바이스들이, 디바이스들 중 하나 이상이 본 개시내용의 측면들 및/또는 방법론들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 특별히 구성된 세트를 구현하기 위해 사용될 수 있다는 것이 또한 고려된다. 컴퓨터 시스템(600)은, 버스(612)를 통해 서로 통신하고 다른 구성요소들과 통신하는 프로세서(604) 및 메모리(608)를 포함한다. 버스(612)는, 비제한적으로, 다양한 버스 아키텍처들 중 임의의 것을 사용하는, 메모리 버스, 메모리 제어기, 주변기기 버스, 로컬 버스, 및 이들의 임의의 조합을 포함하는 몇몇 유형들의 버스 구조들 중 임의의 것을 포함할 수 있다.
프로세서(604)는, 비제한적으로, 상태 머신에 의해 조절되고 메모리 및/또는 센서들로부터의 연산 입력들에 의해 지시될 수 있는 산술 논리 유닛(arithmetic and logic unit; ALU)과 같은 산술 및 논리 연산들을 수행하기 위한 논리 회로부를 통합하는 프로세서와 같은 임의의 적절한 프로세서를 포함할 수 있으며; 프로세서(604)는 비제한적인 예로서 폰 노이만 및/또는 하버드 아키텍처에 따라 조직될 수 있다. 프로세서(604)는, 비제한적으로, 마이크로제어기, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor; DSP), 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array; FPGA), 복합 프로그램가능 논리 디바이스(Complex Programmable Logic Device; CPLD), 그래픽 프로세싱 유닛(Graphical Processing Unit; GPU), 범용 GPU, 텐서 프로세싱 유닛(Tensor Processing Unit; TPU), 아날로그 또는 혼합 신호 프로세서, 신뢰 플랫폼 모듈(Trusted Platform Module; TPM), 부동-소수점 유닛(floating-point unit; FPU), 및/또는 시스템 온 칩(system on a chip; SoC)을 포함하거나, 이를 통합하거나, 및/또는 이에 통합될 수 있다.
메모리(608)는, 비제한적으로, 랜덤-액세스 메모리 구성요소, 판독 전용 구성요소, 및 이들의 임의의 조합을 포함하는 다양한 구성요소들(예를 들어, 기계-판독가능 매체)을 포함할 수 있다. 일 예에서, 예컨대 기동 동안에 컴퓨터 시스템(600) 내의 요소들 사이에서 정보를 전송하는 것을 돕는 기본 루틴들을 포함하는 기본 입력/출력 시스템(basic input/output system; BIOS)(616)은 메모리(608)에 저장될 수 있다. 메모리(608)는 또한, 본 개시내용의 측면들 및/또는 방법론들 중 임의의 하나 이상을 구현하는 (예를 들어, 하나 이상의 컴퓨터-판독가능 매체에 저장된) 명령어들(예를 들어, 소프트웨어)(620)을 포함할 수 있다. 다른 예에서, 메모리(608)는, 비제한적으로, 운영 시스템, 하나 이상의 애플리케이션 프로그램들, 다른 프로그램 모듈들, 프로그램 데이터, 및 이들의 임의의 조합들을 포함하는 임의의 수의 프로그램 모듈들을 더 포함할 수 있다.
컴퓨터 시스템(600)은 또한 저장 디바이스(624)를 포함할 수 있다. 저장 디바이스(예를 들어, 저장 디바이스(624))의 예들은, 비제한적으로, 하드 디스크 드라이브, 자기 디스크 드라이브, 광학 매체와 조합된 광학 디스크 드라이브, 고체-상태 메모리 디바이스, 및 이들의 임의의 조합들을 포함한다. 저장 디바이스(624)는 적절한 인터페이스(도시되지 않음)에 의해 버스(612)에 연결될 수 있다. 예시적인 인터페이스들은, 비제한적으로, SCSI, 고급 기술 부착(advanced technology attachment; ATA), 직렬 ATA, 범용 직렬 버스(universal serial bus; USB), IEEE 1394(FIREWIRE), 및 이들의 임의의 조합들을 포함한다. 일 예에서, 저장 디바이스(624)(또는 이의 하나 이상의 구성요소들)는 (예를 들어, 외부 포트 커넥터(도시되지 않음)를 통해) 컴퓨터 시스템(600)과 제거가능하게 인터페이스될 수 있다. 특히, 저장 디바이스(624) 및 연관된 기계-판독가능 매체(628)는, 컴퓨터 시스템(600)에 대한 기계-판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 및/또는 다른 데이터의 비휘발성 및 휘발성 저장을 제공할 수 있다. 일 예에서, 소프트웨어(620)는 기계-판독가능 매체(628) 내에 완전히 또는 부분적으로 상주할 수 있다. 다른 예에서, 소프트웨어(620)는 프로세서(604) 내에 완전히 또는 부분적으로 상주할 수 있다.
컴퓨터 시스템(600)은 또한 입력 디바이스(632)를 포함할 수 있다. 일 예에서, 컴퓨터 시스템(600)의 사용자는 입력 디바이스(632)를 통해 컴퓨터 시스템(600)으로 명령들 및/또는 다른 정보를 입력할 수 있다. 입력 디바이스(632)의 예들은, 비제한적으로, 문자-숫자 입력 디바이스(예를 들어, 키보드), 포인팅 디바이스, 조이스틱, 게임패드, 오디오 입력 디바이스(예를 들어, 마이크, 음성 응답 디바이스, 등), 커서 제어 디바이스(예를 들어, 마우스), 터치패드, 광학 스캐너, 비디오 캡처 디바이스(예를 들어, 스틸 카메라, 비디오 카메라), 터치스크린, 및 이들의 임의의 조합들을 포함한다. 입력 디바이스(632)는, 비제한적으로, 직렬 인터페이스, 병렬 인터페이스, 게임 포트, USB 인터페이스, FIREWIRE 인터페이스, 버스(612)에 대한 직접 인터페이스, 및 이들의 임의의 조합들을 포함하는, 다양한 인터페이스들(도시되지 않음) 중 임의의 것을 통해 버스(612)에 인터페이스될 수 있다. 입력 디바이스(632)는, 이하에서 추가로 논의되는, 디스플레이(636)의 부분이거나 또는 이와는 별개일 수 있는 터치 스크린 인터페이스를 포함할 수 있다. 입력 디바이스(632)는, 이상에서 설명된 바와 같은 그래픽 인터페이스에서 하나 이상의 그래픽 표현들을 선택하기 위한 사용자 선택 디바이스로서 사용될 수 있다.
사용자는 또한, 저장 디바이스(624)(예를 들어, 제거가능 디스크 드라이브, 플래시 드라이브, 등) 및/또는 네트워크 인터페이스 디바이스(640)를 통해 컴퓨터 시스템(600)에 명령들 및/또는 다른 정보를 입력할 수 있다. 네트워크 인터페이스 디바이스(640)와 같은 네트워크 인터페이스 디바이스는 컴퓨터 시스템(600)을 네트워크(644)와 같은 다양한 네트워크들 중 하나 이상 및 이에 연결된 하나 이상의 원격 디바이스들(648)에 연결하기 위해 사용될 수 있다. 네트워크 인터페이스 디바이스의 예들은, 비제한적으로, 네트워크 인터페이스 카드(예를 들어, 모바일 네트워크 인터페이스 카드, LAN 카드), 모뎀, 및 이들의 임의의 조합을 포함한다. 네트워크의 예들은, 비제한적으로, 광역 네트워크(예를 들어, 인터넷, 기업 네트워크), 근거리 네트워크(예를 들어, 사무실, 건물, 캠퍼스 또는 다른 상대적으로 작은 지리적 공간과 연관된 네트워크), 전화 네트워크, 전화/음성 제공자와 연관된 데이터 네트워크(예를 들어, 모바일 통신 제공자 데이터 및/또는 음성 네트워크), 2개의 컴퓨팅 디바이스들 사이의 직접 연결, 및 이들의 임의의 조합들을 포함한다. 네트워크(644)와 같은 네트워크는 무선 및/또는 유선 통신 모드를 이용할 수 있다. 일반적으로, 임의의 네트워크 토폴로지가 사용될 수 있다. 정보(예를 들어, 데이터, 소프트웨어(620), 등)는 네트워크 인터페이스 디바이스(640)를 통해 컴퓨터 시스템(600)으로 및/또는 이로부터 통신될 수 있다.
컴퓨터 시스템(600)은, 디스플레이 디바이스(636)와 같은 디스플레이 디바이스에 디스플레이가능 이미지를 통신하기 위한 비디오 디스플레이 어댑터(652)를 더 포함할 수 있다. 디스플레이 디바이스의 예들은, 비제한적으로, 액정 디스플레이(liquid crystal display; LCD), 음극선관(cathode ray tube; CRT), 플라즈마 디스플레이, 발광 다이오드(light emitting diode; LED) 디스플레이, 및 이들의 임의의 조합들을 포함한다.
디스플레이 어댑터(652)와 디스플레이 디바이스(636)는 본 개시내용의 측면들의 그래픽 표현들을 제공하기 위해 프로세서(604)와 조합되어 사용될 수 있다. 디스플레이 디바이스에 더하여, 컴퓨터 시스템(600)는, 비제한적으로, 오디오 스피커, 프린터, 및 이들의 임의의 조합들을 포함하는 하나 이상의 다른 주변 출력 디바이스들을 포함할 수 있다. 이러한 주변 출력 디바이스들은 주변기기 인터페이스(656)를 통해 버스(612)에 연결될 수 있다. 주변기기 인터페이스의 예들은, 비제한적으로, 직렬 포트, USB 연결, FIREWIRE 연결, 병렬 연결, 및 이들의 임의의 조합들을 포함한다.
이상의 내용은 본 발명의 예시적인 실시예들의 상세한 설명이었다. 다양한 수정들 및 추가들이 본 발명의 사상 및 범위로부터 벗어나지 않고 이루어질 수 있다. 이상에서 설명된 다양한 실시예들 각각의 특징들은 연관된 새로운 실시예들에서 다수의 특징 조합들을 제공하기 위해 적절하게 다른 설명된 실시예들의 특징들과 조합될 수 있다. 또한, 이상의 내용이 다수의 별도의 실시예들을 설명하지만, 본 명세서에서 설명된 것들은 단지 본 발명의 원리들의 적용의 예시일 뿐이다. 추가적으로, 본 명세서의 특정 방법들이 특정 순서로 수행되는 것으로 예시되거나 및/또는 설명될 수 있지만, 그 순서는 본 개시내용에 따른 방법들, 시스템들, 및 소프트웨어를 달성하기 위해 당업자들 내에서 매우 가변적이다. 따라서, 이러한 설명은 단지 예로서 취해진 것이며, 본 발명의 범위를 달리 제한하려는 것이 아니다.
예시적인 실시예는 이상에서 개시되었고, 첨부된 도면들에 예시되었다. 본 발명의 사상 및 범위로부터 벗어나지 않고 본 명세서에 구체적으로 개시된 것들에 대해 다양한 변경들, 생략들 및 추가들이 이루어질 수 있다는 것이 당업자들에 의해 이해될 것이다.

Claims (15)

  1. 기계용 비디오 코딩(video coding for machines; VCM) 인코더로서,
    특징 인코더로서, 상기 특징 인코더는 소스 비디오를 수신하고 입력 비디오 내의 특징을 포함하는 서브-픽처(sub-picture)를 인코딩하며 서브-픽처의 표시를 제공하도록 구성되는, 상기 특징 인코더;
    비디오 인코더로서, 상기 비디오 인코더는 소스 비디오를 수신하고, 상기 특징 인코더로부터 상기 서브-픽처의 표시를 수신하며, 손실 인코딩 프로토콜을 사용하여 상기 서브-픽처를 인코딩하도록 구성되는, 상기 비디오 인코더; 및
    상기 특징 인코더와 비디오 인코더에 결합되며, 인코딩된 비트스트림을 제공하도록 구성되는 멀티플렉서를 포함하는, VCM 인코더.
  2. 제1항에 있어서, 상기 서브-픽처를 식별하도록 구성된 특징 추출기를 더 포함하는, VCM 인코더.
  3. 제1항에 있어서, 상기 특징 인코더는 무손실 인코딩 프로토콜을 사용하여 상기 서브-픽처를 인코딩하도록 더 구성되는, VCM 인코더.
  4. 제3항에 있어서, 상기 무손실 인코딩 프로토콜은 변환 스킵 잔차 코딩 프로토콜인, VCM 인코더.
  5. 제3항에 있어서, 상기 인코더는 블록 차동 펄스-코드 변조를 가능하게 하는, VCM 인코더.
  6. 제1항에 있어서, 상기 특징 인코더는 손실 인코딩 프로토콜을 사용하여 상기 서브-픽처를 인코딩하도록 더 구성되는, VCM 인코더.
  7. 제1항에 있어서, 상기 손실 인코딩 프로토콜은 이산 코사인 변환 인코딩 프로토콜을 포함하는, VCM 인코더.
  8. 제4항에 있어서, 상기 이산 코사인 변환 인코딩 프로토콜은 형상-적응적 이산 코사인 변환 인코딩 프로토콜을 포함하는, VCM 인코더.
  9. 제1항에 있어서, 상기 서브-픽처를 디코더로 시그널링하도록 더 구성되는, VCM 인코더.
  10. 제8항에 있어서, 상기 서브-픽처를 시그널링하는 것은 상기 서브-픽처를 포함하는 프레임들의 시퀀스를 시그널링하는 것을 더 포함하는, VCM 인코더.
  11. 제8항에 있어서, 상기 서브-픽처를 시그널링하는 것은 상기 서브-픽처에 포함된 특징의 유형을 시그널링하는 것을 더 포함하는, VCM 인코더.
  12. VCM 디코더로서,
    특징 디코더로서, 상기 특징 디코더는 내부에 인코딩된 특징 데이터 및 비디오 데이터를 갖는 인코딩된 비트스트림을 수신하고, 상기 특징 디코더는 기계 소비를 위한 디코딩된 특징 데이터를 제공하는, 상기 특징 디코더;
    비디오 디코더로서, 상기 비디오 디코더는 상기 특징 디코더로부터의 특징 데이터 및 상기 인코딩된 비트스트림을 수신하고, 상기 비디오 디코더는 인간 시청자에게 적절한 디코딩된 비디오를 제공하는, 상기 비디오 디코더를 포함하는, VCM 디코더.
  13. 제12항에 있어서, 상기 비디오 디코더는 VVC 표준으로 코딩된 상기 인코딩된 비트스트림을 디코딩하도록 구성되는, VCM 디코더.
  14. 제12항에 있어서, 상기 비디오 디코더는 변환 스킵 잔차 코딩 프로토콜을 사용하여 상기 인코딩된 비트스트림을 디코딩하도록 구성되는, VCM 디코더.
  15. 제12항에 있어서, 상기 디코더는 블록 차동 펄스-코드 변조를 사용하여 상기 인코딩된 비트스트림을 디코딩하도록 더 구성되는, VCM 디코더.
KR1020247000360A 2021-06-08 2022-06-01 조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(vcm) 인코더 및 디코더 KR20240051104A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163208241P 2021-06-08 2021-06-08
US63/208,241 2021-06-08
PCT/US2022/031726 WO2022260900A1 (en) 2021-06-08 2022-06-01 Video coding for machines (vcm) encoder and decoder for combined lossless and lossy encoding

Publications (1)

Publication Number Publication Date
KR20240051104A true KR20240051104A (ko) 2024-04-19

Family

ID=84425305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247000360A KR20240051104A (ko) 2021-06-08 2022-06-01 조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(vcm) 인코더 및 디코더

Country Status (7)

Country Link
US (1) US20240114185A1 (ko)
EP (1) EP4352963A1 (ko)
JP (1) JP2024521572A (ko)
KR (1) KR20240051104A (ko)
CN (1) CN117897954A (ko)
BR (1) BR112023025493A2 (ko)
WO (1) WO2022260900A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659634A (en) * 1994-09-29 1997-08-19 Xerox Corporation Apparatus and method for encoding and reconstructing image data
US8848802B2 (en) * 2009-09-04 2014-09-30 Stmicroelectronics International N.V. System and method for object based parametric video coding
US10244246B2 (en) * 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
US11410275B2 (en) * 2019-09-23 2022-08-09 Tencent America LLC Video coding for machine (VCM) based system and method for video super resolution (SR)
US11375204B2 (en) * 2020-04-07 2022-06-28 Nokia Technologies Oy Feature-domain residual for video coding for machines
US11451790B2 (en) * 2020-10-09 2022-09-20 Tencent America LLC Method and apparatus in video coding for machines

Also Published As

Publication number Publication date
US20240114185A1 (en) 2024-04-04
BR112023025493A2 (pt) 2024-02-27
EP4352963A1 (en) 2024-04-17
JP2024521572A (ja) 2024-06-03
WO2022260900A1 (en) 2022-12-15
CN117897954A (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
US20230336759A1 (en) Decoding with signaling of segmentation information
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
WO2022139617A1 (en) Encoding with signaling of feature map data
JP2022523309A (ja) 指数関数的分割におけるインター予測
US20240064284A1 (en) Methods, systems and encoded bitstream for combined lossless and lossy coding
KR20240051076A (ko) 기계용 비디오 코딩(vcm)을 위한 인코더 및 디코더
JP2024514681A (ja) ハイブリッド特徴ビデオ・ビットストリーム用のシステム、方法、及びビットストリーム構造、及びデコーダ
KR20240051104A (ko) 조합된 무손실 및 손실 인코딩을 위한 기계용 비디오 코딩(vcm) 인코더 및 디코더
KR20230003491A (ko) 참조 구역들을 사용하는 비디오 코딩의 방법들 및 시스템들
US11930163B2 (en) Methods and systems for combined lossless and lossy coding
CN118020290A (zh) 用存储器高效预测模式选择来编码和解码视频的系统和方法
JP7253053B2 (ja) ピクチャのためのブロックベースの空間活性測度
WO2022047144A1 (en) Methods and systems for combined lossless and lossy coding
CN118235408A (zh) 用于可缩放的机器视频编码的系统和方法
WO2022047129A1 (en) Methods and systems for combined lossless and lossy coding
KR20240104130A (ko) 객체 및 이벤트 검출 및 비디오 코딩을 위한 특징-기반 레이트-왜곡 최적화를 위한 시스템 및 방법
CN118414833A (zh) 用于优化机器视频编码的损失函数的系统和方法
CN118414829A (zh) 用于对象和事件检测以及用于视频编码的基于特征的率失真优化的系统和方法