Snap, Inc. is a technology company. We believe the camera presents the greatest opportunity to improve the way people live and communicate. We contribute to human progress by empowering people to express themselves, live in the moment, learn about the world, and have fun together.
Spectacles are Snap's hand-free camera that take in both photo and video content that is shareable on, and off, Snapchat. With hardware and augmented reality working in tandem, Spectacles make it easy to make memories from your perspective, and relive them later.
RTL Design Internship - ISP Optimization (Eindhoven)
Snap's Hardware IP team in Eindhoven is seeking an RTL Design Intern. Currently, our Image Signal Processing (ISP) pipeline utilizes separate units for scaling and denoising. We plan to incorporate a lens distortion correction function as well. The sequential interpolation performed by these individual units can lead to a reduction in image sharpness.
The Opportunity:
This internship focuses on developing a unified hardware unit for our ISP. The goal is to combine the coordinate calculation for both scaling and geometry correction into a single function. This will enable a subsequent single interpolation step. As part of this project, you will investigate the feasibility of reusing our existing denoising function, which employs a bilateral filter, for this single interpolation.
Responsibilities:
- Develop a hardware unit combining coordinate calculations for scaling and geometry correction in the Snap ISP.
- Investigate the possibility of using the existing bilateral filter-based denoising function for the single interpolation.
Required Skills and Experience:
- Digital Signal Processing (DSP) with Image Processing Focus:
- Strong theoretical and practical foundation in DSP (filtering, frequency analysis, transforms, statistical methods).
- In-depth knowledge of image processing algorithms (noise reduction, enhancement, color, demosaicking, spatial transforms, analysis), image formats, and compression techniques.
- Proficient Python Programmer:
- Ability to write clean, efficient, and well-documented Python code.
- Experience using libraries such as NumPy, SciPy, OpenCV, and Pillow for algorithm prototyping, data analysis, simulation, and hardware verification.
- Familiarity with scripting and automation within a hardware context is a plus.
- Expert Microarchitecture Definition:
- Proven ability to define detailed microarchitecture for complex digital circuits.
- Understanding of dataflow, pipelining, memory interfaces, control logic, and resource allocation to meet performance, power, and area targets.
- Solid grasp of microarchitecture design principles and trade-offs.
- Hardware Description Languages (HDLs):
- Strong understanding of VHDL or SystemVerilog for writing synthesizable RTL code and developing testbenches.
- Ability to understand timing and resource implications in HDL.
- Familiarity with advanced HDL features and EDA tools is expected.
Minimum Qualifications:
- Currently enrolled in a Masters or Ph.D. program (Ph.D. preferred) in a relevant field such as computer vision, machine and deep learning, electrical engineering, or applied mathematics.