The job of the Senior Codec & Video Specialist is to research and develop video codecs and video processing, including algorithm development, modelling, prototyping. They will advise on software and hardware codec architecture. They are also responsible for advising on, communicating, and explaining compression and video algorithms to other team members.
Technologies involved include image and video codecs, particularly low latency, low complexity codecs, and video processing (including pre and post processing, before and after compression, such as resizing and colour subsampling) related to real time transport of compressed video. The video content involved is not purely natural content but, importantly, also includes both gaming and desktop ("productivity") content.
Key Tasks and Responsibilities
Performing research for, and the development of, new video codecs for modern compute architectures (e.g. CPU and GPU) and hardware implementations. Initiating, guiding and coordinating overall design and development of new ideas and products.
Taking an active role in developing and sharing knowledge and skills with other staff, for example by creating and running interactive tutorials or seminars on aspects of compression and video processing technology, and through supervising and mentoring junior colleagues. Provide training to engineering teams internally on the latest developments.
Writing clear detailed descriptions and specifications of new techniques and codecs that are developed, such that the technology may be easily transferred to other colleagues who may not be expert in video compression.
Document, present and review technical information at a range of levels, including customers and technical conferences - clearly, concisely and appropriately targeted to the audience. Write technical white papers, conference or journal papers, and presentations, describing the result of research & development efforts.
Defining and specifying conformance protocols for testing new codecs.
Support the company patent process as needed to protect IP for new technology by, for example, drafting patent descriptions, and working with patent agents to obtain patents.
Developing and optimising existing codecs for CPU, GPU, and hardware. Assist the development team in engineering aspects of the codec such as rate control, fast mode decision, post processing, etc.
Making trade-offs between quality, performance and cost between programmable (CPU and GPU) and hardware implementations.
Promote video compression and video processing technology within the company.
Advising and working with other teams, such as silicon design, software kernel, and/or driver development teams, to ensure the smooth deployment and validation of new techniques.
Maintaining a state of the art knowledge of video compression and related technologies (for example through reading journal and conference articles). This may include monitoring and/or participating in standards setting bodies such as MPEG.
Evaluating vendors (e.g. through analysing test reports).
Assisting in the development of plans and cost estimates and assesses projects to analyse risks.
Participate in recruitment to ensure that the company recruits high calibre staff. This may include, for example, assessing the technical potential of candidates for senior engineering roles and taking part in interviewing.
Necessary Skills and Experience
A good understanding of the principles of image and video compression and a thorough understanding of standard video codecs such as MPEG-2, MPEG-4, AVC, HEVC, VVC, EVC, LCEVC, AV1 VP8/VP9, VC-1, and AVC.
A good understanding of alternative codecs such as JPEG 2000, VC-2, JPEG-XS, VESA DSC & VDC-M
A good understanding of the principles of multiview video coding, scalable video coding, and screen content coding, and a knowledge of the standards in which they are embodied.
A good understanding of typical video processing techniques, particularly as they relate to video compression. These include, for example, high quality image scaling, colorimetry (for example, colour space conversion), noise reduction, linear (FIR & IIR) filtering, and motion compensated processing.
A good understanding of the relationship between a codec and the transport infrastructure, e.g. Ethernet, Wi-Fi or USB, used to convey compressed video data. This includes the effect of the characteristics and limitations of the network layer on the performance of the codec, particularly rate control, and the quality of the decoded images.
A good understanding of the trade-offs between software, hardware and GPU implementations.
A good working knowledge of a common programming language such as C++ or Python. The ability to write software for fast prototyping and proof of concept demonstrators.
Desired Skills and Experience
Understanding of high dynamic range video.
Experience and proficiency of programming in C++ and/or Python.
Knowledge and understanding of network technologies and protocols, particularly as they relate to streaming video, for example, IP, TCP, UDP, DNS, RTP, HTTP, QUIC, SCTP, SRT, ST2110, DASH, HLS (including LL HLS), CMAF, MSS, HLS.
Experience with implementing optimised mathematical or Machine Learning algorithms using C/C++ with use of libraries such as OpenCV, xtensor, BLAS, LAPACK and/or GPU programming with languages such as CUDA, OpenCL, HLSL, GLSL.
Experience of using data science tools such as Jupyter.
Willingness to travel internationally two to three times per year (e.g. for conferences, standardisation committee meetings, and liaison with colleagues in other countries) .