about solo6010
DESCRIPTION
2008.01.17 SoftLogic Doojin Han ( [email protected] ). About SOLO6010. 1. Video Matrix Function & Real Channel / Virtual ChannelPage 3 2. MPEG4 encodingPage 10 3. SLF file formatPage ??. Contents. 1. Video Matrix Function 2. Real Channel / Virtual Channel - PowerPoint PPT PresentationTRANSCRIPT
2SoftLogicSoftLogic
ContentsContents
1. Video Matrix Function & Real Channel / Virtual Channel1. Video Matrix Function & Real Channel / Virtual Channel Page 3Page 3
2. MPEG4 encoding2. MPEG4 encoding Page 10Page 10
3. SLF file format3. SLF file format Page ??Page ??
3SoftLogicSoftLogic
Video Matrix Function &Video Matrix Function &Real Channel / Virtual ChannelReal Channel / Virtual Channel
1. Video Matrix Function1. Video Matrix Function
2. Real Channel / Virtual Channel2. Real Channel / Virtual Channel
3. Video Matrix Function & Real Channel / Virtual Channel3. Video Matrix Function & Real Channel / Virtual Channel
4SoftLogicSoftLogic
Video Matrix
1. Video Matrix Function1. 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
0x0100 VI_CH_SWITCH0 Camera input number for
video input 0 to 5
0x0104 VI_CH_SWITCH1 Camera input number for
video input 6 to 11
0x0108 VI_CH_SWITCH2 Camera input number for
video input 12 to 15 and
Spot output
MPEG4 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
EncodedStreamdata
SOLO6010
1 / 4
5SoftLogicSoftLogic
Video Matrix
1. Video Matrix Function – Example 11. 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.
MPEG4 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
EncodedStreamdata
SOLO6010
2 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 5
[24:20] 4
[19:15] 3
[14:10] 2
[9:5] 1
[4:0] 0
0x0104 VI_CH_SWITCH1 [29:25] 11
[24:20] 10
[19:15] 9
[14:10] 8
[9:5] 7
[4:0] 6
0x0108 VI_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)
6SoftLogicSoftLogic
Video Matrix
1. Video Matrix Function – Example 21. 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.
MPEG4 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
EncodedStreamdata
SOLO6010
3 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 10
[24:20] 11
[19:15] 12
[14:10] 13
[9:5] 14
[4:0] 15
0x0104 VI_CH_SWITCH1 [29:25] 4
[24:20] 5
[19:15] 6
[14:10] 7
[9:5] 8
[4:0] 9
0x0108 VI_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)
7SoftLogicSoftLogic
Video Matrix
1. Video Matrix Function – Example 31. Video Matrix Function – Example 3
MPEG4 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
EncodedStreamdata
SOLO6010
4 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 0
[24:20] 4
[19:15] 3
[14:10] 2
[9:5] 1
[4:0] 0
0x0104 VI_CH_SWITCH1 [29:25] 4
[24:20] 4
[19:15] 4
[14:10] 3
[9:5] 2
[4:0] 1
0x0108 VI_CH_SWITCH2 [24:20] Any value
[19:15] 15
[14:10] 14
[9:5] 13
[4:0] 4
Video Channel 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Camera Input 0 1 2 3 4 0 1 2 3 4 4 4 4 13 14 15
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. ...
8SoftLogicSoftLogic
2. Real Channel / Virtual Channel2. Real Channel / Virtual Channel
The virtual channel is copy of real channel (share same input),but can have different “Quality”, “FPS”, “GOP” value.The “Resolution” is same as real channel.
FPS : Frames per secondGOP : Group of picture (Key frame interval)
SOLO6010MPEG4Encoder
Video channel
Real channel stream
Virtual channel stream
Real ChannelD1 (704 x 480)
2 ChannelQP 5
FPS 30GOP 30
Virtual ChannelD1 (704 x 480)
2 ChannelQP 15FPS 4GOP 2
POSSIBLE
Real ChannelD1 (704 x 480)
2 ChannelQP 5
FPS 30GOP 30
Virtual ChannelCIF (352 x 240)
2 ChannelQP 15FPS 4GOP 2
IMPOSSIBLE
Real ChannelD1 (704 x 480)
2 ChannelQP 5
FPS 30GOP 30
Virtual ChannelD1 (704 x 480)
2 ChannelQP 15FPS 4GOP 2
POSSIBLE
Real ChannelD1 (704 x 480)
4 ChannelQP 5
FPS 30GOP 30
Virtual ChannelD1 (704 x 480)
4 ChannelQP 15FPS 4GOP 2
IMPOSSIBLE
The picture size of virtual channel must be same as real channel.(D1 ≠ CIF)
SOLO6010 can encode D1 4channel in real-time.(D1 4 Ch. + D1 4 Ch. = D1 8 Ch. > D1 4 Ch.)
1 / 1
9SoftLogicSoftLogic
3. Video Matrix Function & Real Channel / Virtual Channel3. Video Matrix Function & Real Channel / Virtual Channel
Video MatrixMPEG4 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
SOLO6010
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 want to use less than 9 channels, use “Video Matrix Function” to make dual stream encoding.The “Video Matrix Function” is far more powerful than “Real Channel / Virtual Channel”,Because the “Video Matrix Function” can generate 2 encoded stream with different picture resolution.Please use “Real Channel / Virtual Channel”, if you use more than 8 channels and want to make dual stream.
If you use SOLO6010-4, please read “About SOLO6010-4 Video Muxing and Encoding.ppt” document.
1 / 1
Real Channel / Virtual Channel
10SoftLogicSoftLogic
MPEG4 EncodingMPEG4 Encoding
1. Encoding Procedure1. Encoding Procedure
2. MPEG4 Encoder Settings2. MPEG4 Encoder Settings
3. 3. Encoded MPEG4 Frame Data FormatEncoded MPEG4 Frame Data Format
4. About Encoder OSD4. About Encoder OSD
11SoftLogicSoftLogic
1. Encoding Procedure1. Encoding Procedure
1. MPEG4 encoder core initialization1. MPEG4 encoder core initialization
2. Start encoding2. Start encoding
3. Get encoded MPEG4 stream data from SOLO60103. Get encoded MPEG4 stream data from SOLO6010
4. End encoding4. End encoding
5. SOLO6010 SDRAM and register status during 5. SOLO6010 SDRAM and register status during
encodingencoding
MPEG4 EncodingMPEG4 Encoding
12SoftLogicSoftLogic
1-1. MPEG4 encoder core initialization1-1. MPEG4 encoder core initialization
1. Set MPEG4 Video Encoder Configuration Register
0x0610 VE_CFG0 Interrupt Mode
MPEG4 Code Buffer Size
MPEG4 Code Buffer Address
0x0614 VE_CFG1 Byte Align
Encoder Motion Flag
0x061C VE_WMARK_POLY Not used (Must be 0)
0x0620 VE_WMARK_KEY Not used (Must be 0)
0x0624 VE_WMARK_CTRL Not used (Must be 0)
0x0628 VE_ENCR_POLY Stream Encryption
0x062C VE_ENCR_KEY Stream Encryption
0x0630 VE_ATTR Byte Order
“MPEG4 encoder
core initialization”
OK
“MPEG4 encoder
core initialization”
Request
1 / 1
13SoftLogicSoftLogic
1-2. Start encoding1-2. Start encoding
“Start encoding”
OK
“Start encoding”
Request
1. Set MPEG4 Property Register except for
“CAP_SCALE” or “CAP_SCALE_E” register
Real Channel
0x0700 +(4 *N) VE_CH_INTL Picture Size
0x04C0 +(4 *N) CAP_INTERVAL FPS
0x0780 +(4 *N) VE_CH_QP Picture Quality
0x0800 +(4 *N) VE_CH_GOP Key Frame Interval
Virtual Channel
0x0500 +(4 *N) CAP_INTERVAL_E FPS
0x07C0 +(4 *N) VE_CH_QP_E Picture Quality
0x0840 +(4 *N) VE_CH_GOP_E Key Frame Interval
2. Set “CAP_SCALE” or “CAP_SCALE_E” register
to start encoding
Real Channel
0x0440 +(4 *N) CAP_SCALE Picture Size
Encoding Start / End
Virtual Channel
0x0480 +(4 *N) CAP_SCALE _E Encoding Start / End
N : Channel number
1 / 1
14SoftLogicSoftLogic
1-3. Get encoded MPEG4 stream data from SOLO60101-3. Get encoded MPEG4 stream data from SOLO6010
“Get MPEG4 stream”
OK
No request,
Wait event
1 / 1
Application
Event Wait
Get MPEG4
stream data
from
MPEG4 code
buffer
Driver SOLO6010
ISRThread
Encoded frame check by reading
“Last queue
position”
MPEG4 code buffer
overlap bug check
Signal Event
Event Wait
Copy
encoded frame in
SOLO6010 SDRAM
To
PC system memory
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
…
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
MPEG4 code bufferLast queue position (Index)
0x066C VE_STATUS11
Signal Event
Interrupt
Get encoded frame
information
PC
MPEG4 code bufferMPEG4 stream file
P2M(DMA)transfer
1
2
3
4
6
7
This diagram is based on SOLO6010 Windows RDK Application & Driver encoding procedure.
5
8
15SoftLogicSoftLogic
1-4. End encoding1-4. 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_SCALE Picture Size
Encoding Start / End
Virtual Channel
0x0480 +(4 *N) CAP_SCALE _E Encoding Start / End
1 / 1
N : Channel number
16SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 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 MPEG4 code buffer overlap)
8. Get N+1th frame
9. Encoding End
The “VE_MPEG4_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”, “MPEG4 Code Address Offset”.Most important information is “MPEG4 Code Address Offset”. This is the position of encoded frame in MPEG4 code buffer (SOLO6010 SDRAM)
The “VE_STATUS11” register point to the index of the queue register (VE_MPEG4_QUE N) which has information about just encoded frame.(Please refer to 1-3. Get encoded MPEG4 stream data from SOLO6010)
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 SOLO6010 frame header (64 byte) is just copy of these register. SOLO6010 frame header consist of 48 byte MPEG4 videoEncoder status register (12 registers) and 16 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_MPEG4_QUE N” register.
17SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 2 / 9
SOLO6010
Stage 2. Get 1st frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
SOLO6010
Stage 1. Encoding Start
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
18SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 3 / 9
SOLO6010
Stage 2. Get 1st frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
SOLO6010
Stage 3. Get 2nd frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
2nd frame
19SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 4 / 9
…
SOLO6010
Stage 3. Get 2nd frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
2nd frame
SOLO6010
Stage 4. Get 15th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
20SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 5 / 9
SOLO6010
Stage 4. Get 15th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
SOLO6010
Stage 5. Get 16th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
21SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 6 / 9
SOLO6010
Stage 5. Get 16th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
SOLO6010
Stage 6. Get 17th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
22SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding
SOLO6010
Stage 7. Get Nth frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
…
This is example of MPEG4 code buffer overlap.
If the size of Nth frame 2/2 part is greater than 64KB,the frame data greater than 64KB in “Nth frame 2/2” part isoverwritten by next frame data. (SOLO6010 External Memory Bug,For more information, read “SOLO6010 Bug Report” document.)
7 / 9
23SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 8 / 9
SOLO6010
Stage 7. Get Nth frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
…
SOLO6010
Stage 8. Get N +1th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
24SoftLogicSoftLogic
1-5. SOLO6010 SDRAM and register status during encoding1-5. SOLO6010 SDRAM and register status during encoding 9 / 9
SOLO6010
Stage 9. Encoding End
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
SOLO6010
Stage 8. Get N +1th frame
MPEG4 code buffer
MPEG4 encoded frame
information queue
0x0A00 VE_MPEG4_QUE 0
0x0A08 VE_MPEG4_QUE 1
0x0A10 VE_MPEG4_QUE 2
0x0A18 VE_MPEG4_QUE 3
0x0A20 VE_MPEG4_QUE 4
0x0A28 VE_MPEG4_QUE 5
0x0A30 VE_MPEG4_QUE 6
0x0A38 VE_MPEG4_QUE 7
0x0A40 VE_MPEG4_QUE 8
0x0A48 VE_MPEG4_QUE 9
0x0A50 VE_MPEG4_QUE 10
0x0A58 VE_MPEG4_QUE 11
0x0A60 VE_MPEG4_QUE 12
0x0A68 VE_MPEG4_QUE 13
0x0A70 VE_MPEG4_QUE 14
0x0A78 VE_MPEG4_QUE 15
Last queue position (Index)
0x066C VE_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
25SoftLogicSoftLogic
2. MPEG4 Encoder Settings2. MPEG4 Encoder Settings
1. Encoder property and related 1. Encoder property and related
registersregisters
2. Picture Size (Picture Resolution)2. Picture Size (Picture Resolution)
3. FPS (Frames per second)3. FPS (Frames per second)
4. Picture Quality (QP)4. Picture Quality (QP)
5. Key Frame Interval (GOP)5. Key Frame Interval (GOP)
MPEG4 EncodingMPEG4 Encoding
26SoftLogicSoftLogic
2-1. Encoder property and related registers2-1. Encoder property and related registers
N : Channel Numberxxx_E : This means virtual channel property.
1 / 1
Property Name Range of value Property Name Related register (Address / Name)
Picture Size(Picture
Resolution)
NTSC PAL Picture Size(Picture
Resolution)
0x0440 +(4 *N) CAP_SCALE
Encoder Off 0 0 0x0700 +(4 *N) VE_CH_INTL
D1 704 x 480 704 x 576
Half D1 704 x 240 704 x 288
CIF 352 x 240 352 x 288
FPS(Frames per
second)
NTSC PAL FPS(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) ~ 255 Key Frame Interval(GOP)
0x0800 +(4 *N) VE_CH_GOP
0x0840 +(4 *N) VE_CH_GOP_E
27SoftLogicSoftLogic
2-2. Picture Size (Picture Resolution)2-2. Picture Size (Picture Resolution)
Picture Size
Channel 0 Channel 1
…
Channel 15
0x0440 0x0700 0x0444 0x0704 0x047C 0x073C
CAP_SCALE VE_CH_INTL CAP_SCALE VE_CH_INTL CAP_SCALE VE_CH_INTL
Encoder Off 0 0 0 0 0 0
D1 9 1 9 1 9 1
Half D1 1 0 1 0 1 0
CIF 2 0 2 0 2 0
Property Name Range of value Property Name Related register (Address / Name)
Picture Size(Picture Resolution)
NTSC PAL Picture Size(Picture Resolution)
0x0440 +(4 *N) CAP_SCALE
Encoder Off 0 0 0x0700 +(4 *N) VE_CH_INTL
D1 704 x 480 704 x 576
Half D1 704 x 240 704 x 288
CIF 352 x 240 352 x 288
The picture size of virtual channel is same as real channel.Thus CAP_SCALE_E (0x0480 +(4 *N)) register is a flag register about virtual channel encoding on /off.
1 / 1
You cannot change “Picture Size” while encoding. “Picture Size” can be set only when before encoding.
28SoftLogicSoftLogic
2-3. FPS (Frames per second)2-3. FPS (Frames per second)
Property Name Range of value Property Name Related register (Address / Name)
FPS(Frames per second)
NTSC PAL FPS(Frames per second)
0x04C0 +(4 *N) CAP_INTERVAL
60, 30, … 50, 25, … 0x0500 +(4 *N) CAP_INTERVAL_E
Picture Size FPS
NTSC
D1 30 /(CAP_INTERVAL +1)
Half D1, CIFIF (CAP_INTERVAL == 0 ) 60
ELSE 30 /CAP_INTERVAL
PAL
D1 25 /(CAP_INTERVAL +1)
Half D1, CIFIF (CAP_INTERVAL == 0 ) 50
ELSE 25 /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
NTSC PAL
D1 Half D1, CIF D1 Half D1, CIF
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
30 0 60 0 25 0 50 0
15 1 30 1 12.5 1 25 1
10 2 15 2 8.3 2 12.5 2
7.5 3 10 3 6.25 3 8.3 3
… … … … … … … …
0.25 119 0.5 60 0.25 99 0.5 50
0.2 149 0.25 120 0.2 124 0.25 100
0.1 299 0.2 150 0.1 249 0.2 125
CAP_INTERVAL for Real ChannelCAP_INTERVAL_E for Virtual Channel
29SoftLogicSoftLogic
2-4. Picture Quality (QP)2-4. Picture Quality (QP)
Property Name Range of value Property Name Related 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
PictureQuality
RealChannel 0
VirtualChannel 0
RealChannel 1
VirtualChannel 1
…
0x0780 0x07C0 0x0784 0x07C4
VE_CH_QP VE_CH_QP_E VE_CH_QP VE_CH_QP_E
3 (Best) 3 3 3 3
4 4 4 4 4
… … … … …
30 30 30 30 30
31 (Worst) 31 31 31 31
You can change “Picture Quality” while encoding.
1 / 1
30SoftLogicSoftLogic
2-5. Key Frame Interval (GOP)2-5. Key Frame Interval (GOP)
Property Name Range of value Property Name Related register (Address / Name)
Key Frame Interval(GOP)
1 (Every frame is Key frame) ~ 255 Key Frame Interval(GOP)
0x0800 +(4 *N) VE_CH_GOP
0x0840 +(4 *N) VE_CH_GOP_E
Key FrameInterval
RealChannel 0
VirtualChannel 0
RealChannel 1
VirtualChannel 1
…
0x0800 0x0840 0x0804 0x0844
VE_CH_GOP VE_CH_GOP_E VE_CH_GOP VE_CH_GOP_E
1 1 1 1 1
2 2 2 2 2
… … … … …
254 254 254 254 254
255 255 255 255 255
You can change “Key Frame Interval” while encoding.
1 / 1
Key Frame Interval
1 ... I frame only
2 ... 1 I frame + 1 P frame
3 ... 1 I frame + 2 P frame
4 … 1 I frame + 3 P frame
… ...
255 … 1 I frame + 254 P frame
I
P
P
I
I
I
P P
I I I I I I I I I I I
PI P PI I P
I PP P IP P P
P P P P P P P P P P
I P I
I
PI P P P I PI PP P P
31SoftLogicSoftLogic
3. Encoded MPEG4 Frame Data Format3. Encoded MPEG4 Frame Data Format
1. Encoded MPEG4 Frame Data Format 1. Encoded MPEG4 Frame Data Format
MPEG4 EncodingMPEG4 Encoding
32SoftLogicSoftLogic
3. Encoded MPEG4 Frame Data Format3. Encoded MPEG4 Frame Data Format 1 / 1
MPEG4 code buffer
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
…
Encoded Frame
SOLO6010MPEG4
Frame Header
64 Byte
Frame Data(MPEG4
VOPHeader
+MPEG4FrameData)
Variable Size
EncoderMotionData
(Optional)
256 Byte
MPEG4 Code Buffer
SOLO6010 MPEG4 Frame Header
Offset Data
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) dummy
52 (0x34) dummy
56 (0x38) dummy
60 (0x3c) dummy
Encoded Frame
SOLO6010 MPEG4 Frame Header is just mirror of “MPEG4 Video Encoder Status Register”.
0x0640 : VE_STATUS0
0x0644 : VE_STATUS1
…
0x066c : VE_STATUS11
The size of “Frame Data” is aligned size.
The “MPEG4 Code Size” value in VE_STATUS11 or VE_STATUS0 is the true MPEG4 frame data size.
The size of “Frame Data” is (“MPEG4 Code Size” +”Align Byte”) &(~(“Align Byte” -1))
Example)
If “MPEG4 Code Size” is 35776 and “Align Byte” is 32,
Frame Data = (35576 +0x20) &0xfffe0
33SoftLogicSoftLogic
4. About Encoder OSD4. About Encoder OSD
1. About Encoder OSD1. About Encoder OSD
MPEG4 EncodingMPEG4 Encoding
34SoftLogicSoftLogic
4. About Encoder OSD4. About Encoder OSD 1 / 1
0 1
2 3
4 5
6 7
32 33
34 35
36 37
38 39
8 9 40 41
28 29
30 31
60 61
62 63
…
…
…
2048 +0 2048 +1
2048 +2 2048 +3
2048 +4 2048 +5
2048 +6 2048 +7
2048 +32 2048 +33
2048 +34 2048 +35
2048 +36 2048 +37
2048 +38 2048 +39
2048 +8 2048 +9 2048 +40 2048 +41
2048 +28 2048 +29
2048 +30 2048 +31
2048 +60 2048 +61
2048 +62 2048 +63
…
…
8 pixels
32 pixels
1024 pixels
16 p
ixel
s
512
pix
els
BYTE OSD_Buffer[65536]
0 1 2 3 … 65535
Bit / Pixel is 1.1024 pixels x 512 pixels /8 (Byte) = 65536 ByteIn 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.