SoftLogic 1 About SOLO6110 2009.10.28 SoftLogic Doojin Han

Slides:



Advertisements
Similar presentations
CPU Structure and Function
Advertisements

System Integration and Performance
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Programmable Interval Timer
H.264 Intra Frame Coder System Design Özgür Taşdizen Microelectronics Program at Sabanci University 4/8/2005.
Computer Organization and Architecture
8086.  The 8086 is Intel’s first 16-bit microprocessor  The 8086 can run at different clock speeds  Standard 8086 – 5 MHz  –10 MHz 
Use the Right arrow on your keyboard to advance to the next slide. Use the Left arrow to move to the previous slide. Press the “ ” in the upper right corner.
Basics of MPEG Picture sizes: up to 4095 x 4095 Most algorithms are for the CCIR 601 format for video frames Y-Cb-Cr color space NTSC: 525 lines per frame.
Computer Organization and Architecture
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
Computer Organization and Architecture
Fiber Channel Video Controller uArchitecture Review Tsachy Kapchitz & Michael Grinkrug Super.: Alex Gurevich Technion Digital Lab, Elbit Systems.
EE442—Multimedia Networking Jane Dong California State University, Los Angeles.
1 Hardware and Software Architecture Chapter 2 n The Intel Processor Architecture n History of PC Memory Usage (Real Mode)
Fiber Channel Video Controller Mid-Project Review Tsachy Kapchitz & Michael Grinkrug Super.: Alex Gurovich Technion Digital Lab, Elbit Systems.
Chapter 13 Reduced Instruction Set Computers (RISC) Pipelining.
1 Interrupts INPUT/OUTPUT ORGANIZATION: Interrupts CS 147 JOKO SUTOMO.
OUTLINE WHAT ? HOW ? WHY ? BLUEPOST Poster and Message Content Specified by the User Displaying the Poster Content on a Monitor Sending Messages to.
Chapter 7 Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
Image Formation and Digital Video
Multicore Navigator: Queue Manager Subsystem (QMSS)
USB host for web camera connection
TERMS TO KNOW. Programming Language A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Each language has.
Lecture 111 Lecture 11: Lab 3 Overview, the ADV7183B Video Decoder and the I 2 C Bus ECE 412: Microcomputer Laboratory.
CS 1308 Computer Literacy and the Internet. Creating Digital Pictures  A traditional photograph is an analog representation of an image.  Digitizing.
A. Homs, BLISS Day Out – 15 Jan 2007 CCD detectors: spying with the Espia D. Fernandez A. Homs M. Perez C. Guilloud M. Papillon V. Rey V. A. Sole.
New MPEG4 DVRs DSR-2108 & DSR-2116
Interrupts. What Are Interrupts? Interrupts alter a program’s flow of control  Behavior is similar to a procedure call »Some significant differences.
Protection and the Kernel: Mode, Space, and Context.
Microcomputer Systems Project By Shriram Kunchanapalli.
Guidelines for displaying, movies and pictures in RD6600 Great Company Great People LG Electronics The following are the requirement for Movies to be played.
Project Goals 1.Get to know Quartus SoPC builder environment 2.Stream 2.Stream Video 3.Build 3.Build foundation for part B - Tracking system.
DVTS for Windows Keio University, Graduate School of Media and Governance WIDE Project Kazuhiro MISHIMA
ISUAL Instrument Software S. Geller. CDR July, 2001NCKU UCB Tohoku ISUAL Instrument Software S. Geller 2 Topics Presented Software Functions SOH Telemetry.
Live Action First Person Shooter Game Patrick Judd Ian Katsuno Bao Le.
Nortel Confidential Information 1 Video Sample Production Summary Leigh Thorpe Nortel Paris, 7-11 May 2007.
1 © 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID Scientific Atlanta Configuration Module 2.3.
6 Memory Management and Processor Management Management of Resources Measure of Effectiveness – On most modern computers, the operating system serves.
Output Devices. Printers Factors affecting choice Volume of output High volume require fast, heavy-duty printer Quality of print required Location of.
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
8279 KEYBOARD AND DISPLAY INTERFACING
Device Drivers CPU I/O Interface Device Driver DEVICECONTROL OPERATIONSDATA TRANSFER OPERATIONS Disk Seek to Sector, Track, Cyl. Seek Home Position.
MULTIMEDIA INPUT / OUTPUT TECHNOLOGIES
NVTune Kenneth Hurley. NVIDIA CONFIDENTIAL NVTune Overview What issues are we trying to solve? Games and applications need to have high frame rates Answer.
1 DSP handling of Video sources and Etherenet data flow Supervisor: Moni Orbach Students: Reuven Yogev Raviv Zehurai Technion – Israel Institute of Technology.
ECE 456 Computer Architecture Lecture #14 – CPU (III) Instruction Cycle & Pipelining Instructor: Dr. Honggang Wang Fall 2013.
1 Presented By: Eyal Enav and Tal Rath Eyal Enav and Tal Rath Supervisor: Mike Sumszyk Mike Sumszyk.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
EFLAG Register of The The only new flag bit is the AC alignment check, used to indicate that the microprocessor has accessed a word at an odd.
8279 KEYBOARD AND DISPLAY INTERFACING
Digital Video. Representing video An array of images Movie = video + audio.
SOLO can encode only these inputs. SOLO Video Matrix Camera 1 Camera 2 Camera 3 Camera 4 Camera 5 Camera 6 Camera 7 Camera 8 Camera 9 Camera.
1 Lesson 6 Introducing JavaScript HTML and JavaScript BASICS, 4 th Edition.
Software Design and Development Storing Data Part 2 Text, sound and video Computing Science.
KEYBOARD/DISPLAY CONTROLLER - INTEL Features of 8279 The important features of 8279 are, Simultaneous keyboard and display operations. Scanned keyboard.
April / 2010 UFOCapture 1 UFOCaptureV2 Time-Shift-Motion-Detect-Video-Recording software for complete records of un-expected events.
EE 445S Real-Time Digital Signal Processing Lab Spring 2017
Main Memory Background Swapping Contiguous Allocation Paging
EE 445S Real-Time Digital Signal Processing Lab Fall 2013
Standards Presentation ECE 8873 – Data Compression and Modeling
Chapter 11 Processor Structure and function
Presentation transcript:

SoftLogic 1 About SOLO SoftLogic Doojin Han

SoftLogic 2 Contents 1. Video Matrix Function & Real Channel / Virtual ChannelPage 3 2. H.264 encodingPage 10

SoftLogic 3 Video Matrix Function & Real Channel / Virtual Channel 1. Video Matrix Function 2. Real Channel / Virtual Channel 3. Video Matrix Function & Real Channel / Virtual Channel

SoftLogic 4 Video Matrix 1. Video Matrix Function The video matrix is a input switcher between camera input and video channel. You can assign any of camera input to any of video channel by setting video matrix. And you can assign 1 camera input to multiple video channels. There are some examples of video matrix setting in the next pages. Related register 0x0100VI_CH_SWITCH0Camera input number for video input 0 to 5 0x0104VI_CH_SWITCH1Camera input number for video input 6 to 11 0x0108VI_CH_SWITCH2Camera input number for video input 12 to 15 and Spot output H.264 encoder & JPEG encoder Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 Encoded Stream data SOLO / 4

SoftLogic 5 Video Matrix 1. Video Matrix Function – Example 1 All camera inputs are connected to corresponding video channels. Encoding video channel 0 means encoding camera input 0. Encoding video channel 1 means encoding camera input 1. … Encoding video channel 15 means encoding camera input 15. H.264 encoder & JPEG encoder Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 Encoded Stream data SOLO / 4 Register value 0x0100VI_CH_SWITCH0[29:25]5 [24:20]4 [19:15]3 [14:10]2 [9:5]1 [4:0]0 0x0104VI_CH_SWITCH1[29:25]11 [24:20]10 [19:15]9 [14:10]8 [9:5]7 [4:0]6 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]15 [14:10]14 [9:5]13 [4:0]12 Application setting (General Setting Dialog in Windows application)

SoftLogic 6 Video Matrix 1. Video Matrix Function – Example 2 All camera inputs are connected to reverse numbered video channels. Encoding video channel 0 means encoding camera input 15. Encoding video channel 1 means encoding camera input 14. … Encoding video channel 15 means encoding camera input 0. H.264 encoder & JPEG encoder Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 Encoded Stream data SOLO / 4 Register value 0x0100VI_CH_SWITCH0[29:25]10 [24:20]11 [19:15]12 [14:10]13 [9:5]14 [4:0]15 0x0104VI_CH_SWITCH1[29:25]4 [24:20]5 [19:15]6 [14:10]7 [9:5]8 [4:0]9 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]0 [14:10]1 [9:5]2 [4:0]3 Application setting (General Setting Dialog in Windows application)

SoftLogic 7 Video Matrix 1. Video Matrix Function – Example 3 H.264 encoder & JPEG encoder Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 Encoded Stream data SOLO / 4 Register value 0x0100VI_CH_SWITCH0[29:25]0 [24:20]4 [19:15]3 [14:10]2 [9:5]1 [4:0]0 0x0104VI_CH_SWITCH1[29:25]4 [24:20]4 [19:15]4 [14:10]3 [9:5]2 [4:0]1 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]15 [14:10]14 [9:5]13 [4:0]4 Video Channel Camera Input Application setting (General Setting Dialog in Windows application) Encoding video channel 0 means encoding camera input 0. Encoding video channel 5 means encoding camera input 0. -You can generate 2 encoded streams from camera input 0 by encoding video channel 0 and 5. And 2 channel can be encoded with different encoding settings. Encoding video channel 12 means encoding camera input 4....

SoftLogic 8 2. Real Channel / Virtual Channel The virtual channel is copy of real channel (share same input), but can have different “Image Size”, “Quality”, “FPS”, “GOP” value. FPS : Frames per second GOP : Group of picture (Key frame interval) SOLO6110 H.264 Encoder Video channel Real channel stream Virtual channel stream 1 / 1

SoftLogic 9 3. Video Matrix Function & Real Channel / Virtual Channel Video Matrix H.264 encoder & JPEG encoder Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 SOLO6110 Real Channel 0 / Virtual Channel 0 stream Real Channel 1 / Virtual Channel 1 stream Real Channel 2 / Virtual Channel 2 stream Real Channel 3 / Virtual Channel 3 stream Real Channel 4 / Virtual Channel 4 stream Real Channel 5 / Virtual Channel 5 stream Real Channel 6 / Virtual Channel 6 stream Real Channel 7 / Virtual Channel 7 stream Real Channel 8 / Virtual Channel 8 stream Real Channel 9 / Virtual Channel 9 stream Real Channel 10 / Virtual Channel 10 stream Real Channel 11 / Virtual Channel 11 stream Real Channel 12 / Virtual Channel 12 stream Real Channel 13 / Virtual Channel 13 stream Real Channel 14 / Virtual Channel 14 stream Real Channel 15 / Virtual Channel 15 stream “Video Matrix Function” and “Real Channel / Virtual Channel” are independent of each other. The “Video Matrix Function” reside between camera inputs and video channels. And the “Real Channel / Virtual Channel” reside between video channels and encoded streams. You can use video matrix function as virtual channel. If you use SOLO6110-4, please read “About SOLO Video Muxing and Encoding.ppt” document. 1 / 1 Real Channel / Virtual Channel

SoftLogic 10 H.264 Encoding 1. Encoding Procedure 2. H.264 Encoder Settings 3. Encoded H.264 Frame Data Format 4. About Encoder OSD

SoftLogic Encoding Procedure 1. H.264 encoder core initialization 2. Start encoding 3. Get encoded H.264 stream data from SOLO End encoding 5. SOLO6110 SDRAM and register status during encoding H.264 Encoding

SoftLogic H.264 encoder core initialization 1. Set H.264 Video Encoder Configuration Register 0x0610VE_CFG0Interrupt Mode H.264 Code Buffer Size H.264 Code Buffer Address 0x0614VE_CFG1Byte Align Encoder Motion Flag 0x0630VE_ATTRByte Order “H.264 encoder core initialization” OK “H.264 encoder core initialization” Request 1 / 1

SoftLogic Start encoding “Start encoding” OK “Start encoding” Request 1. Set H.264 Property Register except for “CAP_SCALE” or “CAP_SCALE_E” register Real Channel 0x0700 +(4 *N)VE_CH_INTLPicture Size 0x04C0 +(4 *N)CAP_INTERVALFPS 0x0780 +(4 *N)VE_CH_QPPicture Quality 0x0800 +(4 *N)VE_CH_GOPKey Frame Interval Virtual Channel 0x0500 +(4 *N)CAP_INTERVAL_EFPS 0x07C0 +(4 *N)VE_CH_QP_EPicture Quality 0x0840 +(4 *N)VE_CH_GOP_EKey Frame Interval 2. Set “CAP_SCALE” or “CAP_SCALE_E” register to start encoding Real Channel 0x0440 +(4 *N)CAP_SCALEPicture Size Encoding Start / End Virtual Channel 0x0480 +(4 *N)CAP_SCALE _EPicture Size Encoding Start / End N : Channel number 1 / 1

SoftLogic Get encoded H.264 stream data from SOLO6110 “Get H.264 stream” OK No request, Wait event 1 / 1 Application Event Wait Get H.264 stream data from H.264 code buffer DriverSOLO6110 ISR Thread Encoded frame check by reading “Last queue position” H.264 code buffer overlap bug check Signal Event Event Wait Copy encoded frame in SOLO6110 SDRAM To PC system memory H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 … 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 H264 code bufferH264 code buffer Last queue position (Index) 0x066CVE_STATUS11 Signal Event Interrupt Get encoded frame information PC H.264 code buffer H.264 stream file P2M(DMA) transfer This diagram is based on SOLO6110 Windows RDK Application & Driver encoding procedure. 5 8

SoftLogic End encoding “End encoding” OK “End encoding” Request 1. Set “CAP_SCALE” or “CAP_SCALE_E” register as 0 Real Channel 0x0440 +(4 *N)CAP_SCALEPicture Size Encoding Start / End Virtual Channel 0x0480 +(4 *N)CAP_SCALE _EPicture Size Encoding Start / End 1 / 1 N : Channel number

SoftLogic SOLO6110 SDRAM and register status during encoding 1 / 9 Stage 1. Encoding Start 2. Get 1st frame 3. Get 2nd frame … 4. Get 15th frame 5. Get 16th frame 6. Get 17th frame … 7. Get Nth frame (In case of H.264 code buffer overlap) 8. Get N+1th frame 9. Encoding End The “VE_H264_QUE N” registers save encoded frame information. The number of these register is 16. This means that unless you miss 16 or more interrupt, you can get all encoded frame. This register has information about “Motion Flag”, “VOP Type”, “Channel”, “H.264 Code Address Offset”. Most important information is “H.264 Code Address Offset”. This is the position of encoded frame in H.264 code buffer (SOLO6110 SDRAM) The “VE_STATUS11” register point to the index of the queue register (VE_H264_QUE N) which has information about just encoded frame. (Please refer to 1-3. Get encoded H.264 stream data from SOLO6110) The “VE_STATUS0 ~ VE_STATUS11” register always have information of just encoded frame. But you need not check this register value except “VE_STATUS11” because SOLO6110 frame header (64 byte) is just copy of these register. SOLO6110 frame header consist of 52 byte H.264 video Encoder status register (13 registers) and 12 byte garbage. Thus the only information you need is position and size of encoded frame. This information can be taken from “VE_STATUS11” and “VE_H264_QUE N” register.

SoftLogic SOLO6110 SDRAM and register status during encoding 2 / 9 SOLO6110 Stage 2. Get 1st frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 SOLO6110 Stage 1. Encoding Start H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame

SoftLogic SOLO6110 SDRAM and register status during encoding 3 / 9 SOLO6110 Stage 2. Get 1st frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame SOLO6110 Stage 3. Get 2nd frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame

SoftLogic SOLO6110 SDRAM and register status during encoding 4 / 9 … SOLO6110 Stage 3. Get 2nd frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame SOLO6110 Stage 4. Get 15th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame

SoftLogic SOLO6110 SDRAM and register status during encoding 5 / 9 SOLO6110 Stage 4. Get 15th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame SOLO6110 Stage 5. Get 16th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame

SoftLogic SOLO6110 SDRAM and register status during encoding 6 / 9 SOLO6110 Stage 5. Get 16th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame SOLO6110 Stage 6. Get 17th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame

SoftLogic SOLO6110 SDRAM and register status during encoding SOLO6110 Stage 7. Get Nth frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … 7 / 9

SoftLogic SOLO6110 SDRAM and register status during encoding 8 / 9 SOLO6110 Stage 7. Get Nth frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … SOLO6110 Stage 8. Get N +1th frame H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 MPEG4 code bufferMPEG4 code buffer 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame

SoftLogic SOLO6110 SDRAM and register status during encoding 9 / 9 SOLO6110 Stage 9. Encoding End MPEG4 code bufferMPEG4 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame SOLO6110 Stage 8. Get N +1th frame MPEG4 code bufferMPEG4 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame

SoftLogic H.264 Encoder Settings 1. Encoder property and related registers 2. Picture Size (Picture Resolution) 3. FPS (Frames per second) 4. Picture Quality (QP) 5. Key Frame Interval (GOP) H.264 Encoding

SoftLogic Encoder property and related registers N : Channel Number xxx_E : This means virtual channel property. 1 / 1 Property NameRange of valueProperty NameRelated register (Address / Name) Picture Size (Picture Resolution) NTSCPALPicture Size (Picture Resolution) 0x0440 +(4 *N)CAP_SCALE Encoder Off000x0480 +(4 *N)CAP_SCALE_E 0x0700 +(4 *N)VE_CH_INTL D1704 x x 576 Half D1704 x x 288 CIF352 x x 288 FPS (Frames per second) NTSCPALFPS (Frames per second) 0x04C0 +(4 *N)CAP_INTERVAL 60, 30, …50, 25, …0x0500 +(4 *N)CAP_INTERVAL_E Picture Quality (QP) 3 (Best) ~ 31 (Worst) QP 1, 2 is not used. Picture Quality (QP) 0x0780 +(4 *N)VE_CH_QP 0x07C0 +(4 *N)VE_CH_QP_E Key Frame Interval (GOP) 1 (Every frame is Key frame) ~ 255Key Frame Interval (GOP) 0x0800 +(4 *N)VE_CH_GOP 0x0840 +(4 *N)VE_CH_GOP_E

SoftLogic Picture Size (Picture Resolution) Picture Size Channel 0Channel 1 … Channel 15 0x04400x07000x04440x0704 0x047C0x073C CAP_SCALEVE_CH_INTLCAP_SCALEVE_CH_INTL CAP_SCALEVE_CH_INTL Encoder Off D Half D CIF Property NameRange of valueProperty NameRelated register (Address / Name) Picture Size (Picture Resolution) NTSCPALPicture Size (Picture Resolution) 0x0440 +(4 *N)CAP_SCALE Encoder Off000x0480 +(4 *N)CAP_SCALE_E 0x0700 +(4 *N)VE_CH_INTL D1704 x x 576 Half D1704 x x 288 CIF352 x x / 1 You cannot change “Picture Size” while encoding. “Picture Size” can be set only when before encoding.

SoftLogic FPS (Frames per second) Property NameRange of valueProperty NameRelated register (Address / Name) FPS (Frames per second) NTSCPALFPS (Frames per second) 0x04C0 +(4 *N)CAP_INTERVAL 60, 30, …50, 25, …0x0500 +(4 *N)CAP_INTERVAL_E Picture SizeFPS NTSC D130 /(CAP_INTERVAL +1) Half D1, CIF IF (CAP_INTERVAL == 0 )60 ELSE30 /CAP_INTERVAL PAL D125 /(CAP_INTERVAL +1) Half D1, CIF IF (CAP_INTERVAL == 0 )50 ELSE25 /CAP_INTERVAL CAP_INTERVAL is same as Skipped Frame Number. CAP_INTERVAL == 0 means no frame is skipped. (NTSC D1 30 frames, PAL D1 25 frames, …) CAP_INTERVAL == 1 means 1 frame is skipped. (Every second frame is encoded.) CAP_INTERVAL == 2 means 2 frame is skipped. (Every third frame is encoded.) … D1 is frame picture, the max. frame rate is 30 (25). And other picture size (Half D1, CIF) is field picture, the max. frame rate is 60 (50). You can change “FPS” while encoding. 1 / 1 NTSCPAL D1Half D1, CIFD1Half D1, CIF FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E …………………… CAP_INTERVAL for Real Channel CAP_INTERVAL_E for Virtual Channel

SoftLogic Picture Quality (QP) Property NameRange of valueProperty NameRelated register (Address / Name) Picture Quality (QP) 3 (Best) ~ 31 (Worst) QP 1, 2 is not used. Picture Quality (QP) 0x0780 +(4 *N)VE_CH_QP 0x07C0 +(4 *N)VE_CH_QP_E Picture Quality Real Channel 0 Virtual Channel 0 Real Channel 1 Virtual Channel 1 … 0x07800x07C00x07840x07C4 VE_CH_QPVE_CH_QP_EVE_CH_QPVE_CH_QP_E 3 (Best) …………… (Worst)31 You can change “Picture Quality” while encoding. 1 / 1

SoftLogic Key Frame Interval (GOP) Property NameRange of valueProperty NameRelated register (Address / Name) Key Frame Interval (GOP) 1 (Every frame is Key frame) ~ 255Key Frame Interval (GOP) 0x0800 +(4 *N)VE_CH_GOP 0x0840 +(4 *N)VE_CH_GOP_E Key Frame Interval Real Channel 0 Virtual Channel 0 Real Channel 1 Virtual Channel 1 … 0x08000x08400x08040x0844 VE_CH_GOPVE_CH_GOP_EVE_CH_GOPVE_CH_GOP_E …………… You can change “Key Frame Interval” while encoding. 1 / 1 Key Frame Interval 1...I frame only I frame + 1 P frame I frame + 2 P frame 4…1 I frame + 3 P frame … …1 I frame P frame I P P I I I PP IIIIIIIIIII PIPPIIP IPPPIPPP PPPPPPPPPP IPI I PIPPPIPIPPPP

SoftLogic Encoded H.264 Frame Data Format 1. Encoded H.264 Frame Data Format H.264 Encoding

SoftLogic Encoded H.264 Frame Data Format 1 / 1 MPEG4 code bufferMPEG4 code buffer Encoded Frame … SOLO6110 H.264 Frame Header 64 Byte Frame Data (H.264 VOP Header + H.264 Frame Data) Variable Size Encoder Motion Data (Optional) 256 Byte H.264 Code Buffer SOLO6110 H.264 Frame Header OffsetData 00 (0x00)VE_STATUS0 04 (0x04)VE_STATUS1 08 (0x08)VE_STATUS2 12 (0x0c)VE_STATUS3 16 (0x10)VE_STATUS4 20 (0x14)VE_STATUS5 24 (0x18)VE_STATUS6 28 (0x1c)VE_STATUS7 32 (0x20)VE_STATUS8 36 (0x24)VE_STATUS9 40 (0x28)VE_STATUS10 44 (0x2c)VE_STATUS11 48 (0x30)VE_STATUS12 52 (0x34)dummy 56 (0x38)dummy 60 (0x3c)dummy Encoded Frame SOLO6110 H.264 Frame Header is just mirror of “H.264 Video Encoder Status Register”. 0x0640 : VE_STATUS0 0x0644 : VE_STATUS1 … 0x0670 : VE_STATUS12 The size of “Frame Data” is aligned size. The “H.264 Code Size” value in VE_STATUS11 or VE_STATUS0 is the true H.264 frame data size. The size of “Frame Data” is (“H.264 Code Size” +”Align Byte”) &(~(“Align Byte” -1)) Example) If “H.264 Code Size” is and “Align Byte” is 32, Frame Data = ( x20) &0xfffe0

SoftLogic About Encoder OSD 1. About Encoder OSD H.264 Encoding

SoftLogic About Encoder OSD 1 / … … … … … 8 pixels 32 pixels 1024 pixels 16 pixels 1024 pixels BYTE OSD_Buffer[65536] 0123…65535 Bit / Pixel is pixels x 1024 pixels /8 (Byte) = Byte In PAL video system, size of OSD image is less than size of PAL image (704 x 576). Thus, if you want to display OSD at bottom line of PAL image, you should change encoder OSD position value. In NTSC video system, there is no problem in encoder OSD displaying.