# Expeed

The Nikon Expeed image/video processors (often styled EXPEED) are media processors for Nikon's digital cameras.
They perform a large number of tasks:
* Bayer filtering
* demosaicing
* image sensor corrections/dark-frame subtraction
* image noise reduction
* image sharpening
* image scaling
* gamma correction
* image enhancement/Active D-Lighting
* colorspace conversion
* chroma subsampling
* framerate conversion
* lens distortion/chromatic aberration correction
* image compression/JPEG encoding
* video compression
* display/video interface driving
* digital image editing
* face detection
* audio processing/compression/encoding and
* computer data storage/data transmission.
Expeed's multi-processor system on a chip solution integrates an image processor in multi-core processor architecture, with each single processor-core able to compute many instructions/operations in parallel. Storage and display interfaces and other modules are added and a digital signal processor (DSP) increases the number of simultaneous computations. On-chip 32-bit microcontroller initiates and controls the operation and data transfers of all processors, modules, interfaces and can be seen as the main control unit of the camera.
In each generation Nikon uses different versions for its professional and consumer DSLRs / MILCs, whereas its compact cameras use completely different architectures. This is different from for example Canons DIGIC: its professional DSLRs double the processors of its consumer DSLR series. The Expeed is an application-specific integrated circuit (ASIC) built by Socionext specifically for Nikon designs according to Nikon specifications.

## Technology

The Nikon Expeed is based on the Socionext Milbeaut imaging processors with 16-bit per pixel multi-core FR-V processor architecture, using a highly parallel pipelined architecture which allows efficient hardware use, increasing throughput and reducing power consumption.
Each core uses an eight-way 256-bit very long instruction word (VLIW, MIMD) and is organized in a four-unit superscalar pipelined architecture (Integer (ALU)-, Floating-point- and two media-processor-units) giving a peak performance of up to 28 instructions per clock cycle and core. Due to the used four-way single instruction, multiple data (SIMD) vector processor units, data is processed with up to 112 data operations per cycle and core.
An on-chip 32-bit Fujitsu FR RISC micro-controller core is used to initiate and control all processors, modules and interfaces. The Expeed versions designated EI-14x and the Expeed 2 and 3 additionally include a HD video codec engine (FR-V based) and a 16-bit DSP with separate on-chip 4-block Harvard RAM which is usable for example for additional image- and audio-processing. The Expeed 3 (FR) (EI-158/175) is based on an improved Expeed 2 EI-154 with greatly increased processing speed.
A new architecture in the Expeed 3 (ARM) offers a highly increased speed in its image processor (with even two pipelines on the EI-160), its H.264 video encoder and is controlled by a dual-core ARM architecture microcontroller replacing the Fujitsu FR.

### Image sensor interface

CMOS/CCD image sensors are connected with additional external ICs, Nikon drivers, with the exception of the Nikon D3100. This is done by a mixed analog/digital interface which controls the sensor digitally, but receives analog signals with parallel 14-bit analog-to-digital (A/D) converters. The Expeed variants EI-142 and EI-158 use Nikon ASICs to connect all full-frame (FX) digital SLR sensors and additionally the Nikon D300/D300s with 12 simultaneous, parallel analog signal readout channels. Mainly due to a larger settling time it allows improved conversion accuracy compared to the four channels in the previous Nikon D2X / D2Xs, Nikon D200 or the Canon EOS 5D Mark II. six-channel readout is supported by the EI-149 and EI-154 used on the D90, D5000, D7000 and D5100.
The D3100 uses an Analog Devices sensor interface with integrated analog-to-digital converters. The result is a dynamic range only at the level of competitors like the (higher priced) Canon EOS 600D; lower than other Nikon DSLRs with the same Expeed 2 variant.
The Expeed EI-15x and EI-17x A/D converters allow an increased image sensor readout clock frequency with improved A/D converter accuracy, especially when using 14-bit sampling. Expeed A/D converters used for EI-149 or all EI-142 need considerably reduced clock rates (1.8 fps on Nikon D3X) for higher accuracy, limiting for example the D3s dynamic range at low ISOs.
The Expeed 3 (ARM), first used in the Nikon 1 series, connects a data stream with 24 digital channels (bus), using A/D converters integrated on the image sensor chip.

### Video processor

The first variant, EI-14x originally included a video encoder capable of processing VGA resolution with 30 frames per second and MPEG-4 encoding. The software based video processor realized with FR-V processors enabled a reprogramming: By using Motion JPEG encoding with 24p frame rate, Nikon achieved 720p HD video resolution. The advantages are easy JPEG image extraction, no motion compensation artifacts and low processing power enabling higher resolution, and the disadvantage is a larger file size, nearly reaching the 2 GB limit (for full compatibility) in 5 minutes. The Nikon D90 was the first DSLR with video recording capabilities.
The Expeed 2 (variant EI-154) greatly expanded the capabilities by its 1080p H.264/MPEG-4 AVC HD video encoder. It also offers an increased image sensor analog signal readout clock rate, reducing rolling shutter.
Compared to competitors from Canon (DIGIC, "IPP" compression – MPEG-2 equivalent: Only one previous frame analyzed) the Expeed 2 offers video compression also based on complex B-frames (bi-directional differencing between frames and motion prediction), which has the advantage of higher quality (lower motion blur based on better motion compensation) even with significant higher compression ratio. This compression requires considerably higher computing power. In 2012 the Canon 5D Mark III introduced a similar compression called "IPB". Also introduced was "All-I", which uses the simpler I‑frames (coded pictures) without processing any differences between them, but using a low compression (high data rate) and behaves also in other uses like image extraction quite similar to Motion JPEG formerly used by Nikon.
The Expeed 3 (FR) (variants EI-158 and EI-175) offers no significant change, but introduced the first DSLRs to offer uncompressed video output (8bit 4:2:2) over HDMI: Nikon D4, Nikon D800/D800E, Nikon D600, Nikon D7100 and Nikon D5200. The Expeed 3 (ARM) introduced high-speed video (slow-motion) in its enhanced H.264 HD video engine.

## Variants

Socionext specifies each Milbeaut generation with different numbers of processors. Nikon gives no details, but uses different designated processors in its professional and consumer lines. Although the Milbeaut (Expeed) is used in different Nikon designs and by other manufacturers, the software/firmware specifies many of its functions and details and the number of processors or included modules may vary in this ASIC.

### Pre-Expeed
#### Early DSLRs

DSLRs announced before August 2006 do not contain processors named Expeed (for example Nikon D70/D70s processor: EI-118), although that does not mean that these processors use a different architecture. Or the Nikon D200 processor (EI-126) uses the same, but greatly expanded firmware as the D80 (unofficial "Expeed").

#### Unofficial Expeed DSLRs

The Expeed processor variant EI-137 is found in the Nikon D40, Nikon D40x and Nikon D80 – as it is officially in the later-released Nikon D60 and Nikon D3000.

### Expeed

First used in the Nikon D3 and Nikon D300 in 2007, the Expeed was used later in the Nikon D3X, Nikon D700 and Nikon D300s, marked EI-142, and the consumer line variant with reduced processor cores in the Nikon D90 and Nikon D5000, marked EI-149. It is based on a Socionext Milbeaut imaging-processor with 720p Motion JPEG video encoder, DSP and FR-80 (EI-14x versions) core. It uses a 90 nanometer process technology.
The EI-137 variant in the Nikon D60 and Nikon D3000 – additionally found in the Nikon D40, Nikon D40x and Nikon D80 – is based on the older Milbeaut M-3 in 180 nanometer technology (like all former Expeed/Milbeaut since 2001). It includes a FR-71 core with only 12-bit, two-channel image sensor readout, no DSP, slower memory and has a reduced feature set.

### Expeed 2

1080p H.264/MPEG-4 HD video encoder, improved face detection, image noise reduction and image distortion correction are the main improved features compared to EI-14x Expeeds. Used in the Nikon D7000, Nikon D3100 and Nikon D5100 and Nikon marked EI-154. Although image sensor readout clock frequency has increased by a factor of 1.75, A/D converter accuracy is improved, especially when using 14-bit. Image processor performance is increased, performing a higher continuous shooting frame rate even when high ISO noise reduction or Active D-Lighting is activated. The Expeed EI-15x are controlled by an integrated FR-80/FR-81 core. Power consumption is also decreased by the Socionext 65 nm process.

#### Expeed 2 (rebranded Expeed 1)

The Nikon D3s processor – although named Expeed 2 – uses nearly the same EI-142 processor as the previous D3/D3X featuring for example only 720p Motion JPEG video. It offers the same image sensor interface with identical speed and A/D converter accuracy, limiting the D3s dynamic range at 200 and especially 100 ISOs lower as the D7000/D5100.

#### Expeed C2

Variant used in some Coolpix compact cameras. Cheaper Nikon compact cameras use Sanyo or Zoran Coach image/video processors; both with a completely different technology and different firmware compared to the Expeed.

### Expeed 3
#### Expeed 3 (FR)

Compared to the previous Expeed 1 (EI-142), it offers the same improvements as the Expeed 2 EI-154 with Socionext 65 nm process, including increased A/D converter accuracy and image sensor analog signal readout clock rate, reducing rolling shutter. Computing power is highly increased. Marked EI-158, this variant is used by the Nikon D4 and Nikon D800. The EI-158 was the first Expeed to offer uncompressed video output (8bit 4:2:2) over HDMI.
The Nikon D600 (teardown), Nikon D3200 and Nikon D5200 (teardown) use an Expeed 3 (EI-175, differently marked ML-1131 on D5200), which is, according to Nikon, the same as used for the D4 and D800 series. Its architecture is close to the Expeed 2 variant EI-154 with some improvements like DDR3 memory, and with increased computing power. The D5200 uses a package on package with a 4 Gbit DDR3 SDRAM on top.

#### Expeed 3 (ARM)

In the Nikon 1 series September 2011 Nikon introduced a new largely changed architecture – the main control unit it uses an ARM microcontroller which requires new firmware compared to the totally different Fujitsu FR microcontroller used in all former Milbeaut and Expeed processors. It is also the first Expeed using digital image sensor readout – no analog image sensor interface is needed. In the Nikon 1 cameras introduced September 2011 it uses 1 GB fast DDR2 RAM packaged in 2x 4 Gbit chips. Nikon marked EI-160, manufactured in the Socionext 65 nm process.
High-speed dual multi-core image-processing engines with world record (Nikon claim) 600 megapixels per second speed, enhanced H.264 HD video engine and controlled by a dual-core ARM microcontroller are the main improvements. Its high speed allows the world's fastest speed (Nikon claim) of 60 frames per second (10 fps with full autofocus).

##### Expeed 3A

The Expeed 3A, a successor to the Expeed 3 EI-160 used in the Nikon 1 series, was first released in the Nikon 1 V2 and mainly features an increased world record image-processing speed of up to 850 megapixels per second. This enables 60 frames per second (15 fps with full autofocus) speed even with the new 14 megapixel image sensor. It is developed exclusively for Nikon 1 cameras.

### Expeed 4

Expeed 4 uses a processor with ARM central controller and is used in the Nikon D810, Nikon D750, Nikon D5300, Nikon D5500, Nikon D5600, Nikon D3300, Nikon D3400, Nikon D3500 and Nikon D7200. It offers full HD (1080p) video capture at 50/60 fps with improved contrast detection autofocus and live preview autofocus. It includes all of the features of the Expeed 3 (FR) and older versions of Expeed, plus it consumes less power.
The Nikon D4S's processor is identical to the Nikon D4, marked EI-158, using its processing power with improved software enabling 1080p video capture at 50/60fps, 11 fps photos with improved autofocus, new noise reduction with image-content variable algorithm (context-adaptive) and other improvements.

#### Expeed 4A

Version 4A is used in the Nikon 1 V3, Nikon 1 J4 and Nikon 1 S2.

### Expeed 5

Nikon announced EXPEED 5 processor engine in their new DX and FX cameras Nikon D500 and Nikon D5 at CES 2016, (Las Vegas, January 5, 2016) and also used in the Nikon D7500 and D850.

#### Expeed 5A

The EXPEED 5A image-processing engine is first seen in the Nikon 1 J5, which was announced April 2, 2015. In the Nikon 1 J5 it is capable of 4k Ultra HD (3840*2160) at 15 fps, Full-HD (1920*1080) at 60 fps, HD (1280*720) at 120 fps, 800 x 296 at 400 fps and 400 x 144 at 1200 fps. It can handle 20MP burst photos at 20 fps with autofocus at each frame, and even 60 fps with autofocus fixed at the first frame, but note that the buffer size is yet unknown and probably very small.

### Expeed 6

Nikon announced the Expeed 6 processor engine on 23 August 2018. It appears in their Nikon Z 7, Nikon Z 6, Nikon Z 5, Nikon Z 50, Nikon Z 30, Nikon Z fc, Nikon D780 and Nikon D6 cameras. The Nikon Z 6II and Nikon Z 7II each have two Expeed 6 processors.

### Expeed 7

Nikon announced the Expeed 7 processor engine on 28 October 2021. It appears in the Nikon Z50II, Nikon Z6III, Nikon Z8, Nikon Z9, and Nikon Zf mirrorless cameras. Expeed 7 has 10 times the image processing speed of its predecessor and is powerful enough for the camera to omit a dedicated autofocus engine. It can handle complex AF and AE calculations at 120 cycles per second, separately processes dual-streamed data from stacked image sensors, and enables features like 120 fps still shooting, internal 8k RAW video recording and a blackout-free viewing experience.

## Additional (co-)processors

As input/output (I/O) processor Nikon uses external 32-bit microcontrollers to connect additional sensors and displays:
* Viewfinder
* top-display
* flash (Speedlight)/hot shoe
* shutter/aperture motors
* metering/autofocus sensors and
* lens/battery grip/battery control.
Used variants are the Fujitsu FR in the Expeed EI-14x series, which changed to MIPS architecture in the Expeed EI-15x and EI-17x series. The professional series uses two or more Hitachi/Renesas H8SX controllers. Former DSLRs used H8S microcontrollers.
The ARM-based Expeed in the Nikon 1 series with its dual ARM core needs no additional I/O processors. The Nikon 1 series also includes an Epson graphic processor.

## Alternative firmware

As with CHDK or Magic Lantern modified Canon digital cameras based on DIGIC processors, a group of programmers called "Nikon Hacker" develops custom firmware, making recent progress including an FR emulator for some DSLRs. It was shown that Nikon uses the Softune integrated development environment together with an μITRON realtime kernel. Currently there is some modified firmware available mainly removing time based video and uncompressed NEF files restrictions, but there is no stable alternative firmware available, as the project is still in an early state.
The Nikon supplied firmware-updates normally include the firmware A for the I/O processor and the firmware B to control Expeeds by integrated FR micro-controllers (different for the ARM-based Expeed 3).

### Project tasks

Besides a general analysis of the hardware and software of the D7000, D5100 and D3100 and newer cameras, the project focuses on:
* Removing 5 minutes time video restrictions: Some modified firmware available
* High quality 1080p video with up to 64mbps
* Uncompressed video (Clean HDMI Output) for the D5100 and others
* Uncompressed NEF files
* WU-1a Wireless Mobile Adapter modifications to make it usable for other cameras
* Analysis and decryption of Nikon battery communication
* Analysis of Wireless Transmitter WT-3 and its communication
* Removing third party battery blocking that Nikon introduced with some of the latest firmware versions
* Development of an Nikon Emulator
The changelog shows firmware also for newer variants like D800, D610, D5200 and D3200.

### DIAG raw hack

This was not a firmware hack, but a method (Photopc – digital camera control) calling an already implemented diagnostic mode on some old Nikon Coolpix cameras with Fujitsu Sparclite processors. Using this mode, they could write raw images.