# US 12,222,877 B2 · Peripheral device with embedded video codec functionality

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,222,877 B2
- Document ID: US12222877B2
- Status: Granted
- Kind: B2
- Application number: 18/408,000
- Filed: 2024-01-09
- Published: 2024-05-02
- Granted: 2025-02-11
- Earliest claimed: 2018-12-05
- Assignees: Rongming Microelectronics (Jinan) Co., Ltd.
- Applicants: Rongming Microelectronics (Jinan) Co., Ltd.
- Inventors: Yan Jun Zhou; Tao Zhong; Wei Liu
- Web page: https://patentgrep.com/patent/US12222877B2

## CPC

- G06F 13/1668: {Details of memory controller}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- H04N 19/423: characterised by memory arrangements (H04N19/433 takes precedence)
- G06F 2213/0026: PCI express
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A NVMe™ or NVMe-over-fabrics enabled device with video codec functionality may be seen to overcome scalability problem of known hardware assisted video codec solutions. The device of aspects of the present application may or may not have storage media. A host computer communicates with the device through NVMe™ commands. The device may be in one of many SSD form factors, such as U.2 or AIC. The device may be provided as a component in NVMe-enabled computers or NVMe-over-fabrics-enabled systems.

## Claims

### Claim 1

A host computer comprising:
a processor configured to:
execute an operating system, and
implement a software stack that provides Non-Volatile Memory express (NVMe)-based video codec service to one or more applications in the operating system using FFMPEG.

### Claim 2 (depends on 1)

The host computer of claim 1 wherein the software stack includes FFMPEG libavcodec.

### Claim 3 (depends on 1)

The host computer of claim 1 wherein the NVMe-based video codec service includes a set of NVMe commands.

### Claim 4 (depends on 1)

The host computer of claim 1 wherein the NVMe-based video codec service includes NVME-based codec application program interfaces.

### Claim 5 (depends on 1)

The host computer of claim 1 wherein the processor is configured to execute a NVME device driver configured to operate in kernel space.

### Claim 6 (depends on 5)

The host computer of claim 5 wherein the processor is configured to execute the NVME device driver to:
select, from a set of NVMe commands, a write command;
issue, to a video decoder module, the write command, to send an encoded video frame from the host computer to the video decoder module;
select, from the set of NVMe commands, a read command;
issue, to the video decoder module, the read command, to receive a decoded video frame of the encoded video frame from the video decoder module to the host computer.

### Claim 7 (depends on 6)

The host computer of claim 6 wherein the processor is configured to execute the NVME device driver to receive a namespace from a video decoder module, wherein the namespace has a size of zero.

### Claim 8 (depends on 6)

The host computer of claim 6 wherein the processor is configured to communicate with the video decoder module through NVMe-over-fabrics interface.

### Claim 9 (depends on 1)

The host computer of claim 1 wherein the operating system is a Linux system.

### Claim 10

A method comprising:
executing, by a host computer, an operating system, and
implementing, by the host computer, a software stack that provides Non-Volatile Memory express (NVMe)-based video codec service to one or more applications in the operating system using FFMPEG.

### Claim 11 (depends on 10)

The method of claim 10 wherein the software stack includes FFMPEG libavcodec.

### Claim 12 (depends on 10)

The method of claim 10 wherein the NVMe-based video codec service includes a set of NVMe commands.

### Claim 13 (depends on 10)

The method of claim 10 wherein the NVMe-based video codec service includes NVME-based codec application program interfaces.

### Claim 14 (depends on 10)

The method of claim 10 further comprising the executing, by the host computer, a NVME device driver configured to operate in kernel space.

### Claim 15 (depends on 14)

The method of claim 14 wherein the executing the NVME device driver comprises:
selecting, from a set of NVMe commands, a write command;
issuing, to a video decoder module, the write command, for sending an encoded video frame from the host computer to the video decoder module;
selecting, from the set of NVMe commands, a read command;
issuing, to the video decoder module, the read command, and in response receiving a decoded video frame of the encoded video frame from the video decoder module to the host computer.

### Claim 16 (depends on 15)

The method of claim 15 further comprising executing, by the host computer, the NVME device driver to receive a namespace from a video decoder module, wherein the namespace has a size of zero.

### Claim 17 (depends on 15)

The method of claim 15 wherein the host computer is configured to communicate with the video decoder module through NVMe-over-fabrics interface.

### Claim 18 (depends on 10)

The method of claim 10 wherein the operating system is a Linux system.
