+ All Categories
Home > Documents > About SOLO6010

About SOLO6010

Date post: 01-Jan-2016
Category:
Upload: vladimir-kirkland
View: 27 times
Download: 1 times
Share this document with a friend
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 Presentation
Popular Tags:
34
1 SoftLogic SoftLogic About SOLO6010 About SOLO6010 2008.01.17 SoftLogic Doojin Han ([email protected] )
Transcript
Page 1: About SOLO6010

1SoftLogicSoftLogic

About SOLO6010 About SOLO6010

2008.01.17SoftLogic

Doojin Han([email protected])

Page 2: About SOLO6010

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 ??

Page 3: About SOLO6010

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

Page 4: About SOLO6010

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

Page 5: About SOLO6010

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)

Page 6: About SOLO6010

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)

Page 7: About SOLO6010

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. ...

Page 8: About SOLO6010

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

Page 9: About SOLO6010

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

Page 10: About SOLO6010

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

Page 11: About SOLO6010

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

Page 12: About SOLO6010

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

Page 13: About SOLO6010

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

Page 14: About SOLO6010

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

Page 15: About SOLO6010

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

Page 16: About SOLO6010

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.

Page 17: About SOLO6010

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

Page 18: About SOLO6010

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

Page 19: About SOLO6010

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

Page 20: About SOLO6010

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

Page 21: About SOLO6010

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

Page 22: About SOLO6010

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

Page 23: About SOLO6010

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

Page 24: About SOLO6010

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

Page 25: About SOLO6010

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

Page 26: About SOLO6010

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

Page 27: About SOLO6010

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.

Page 28: About SOLO6010

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

Page 29: About SOLO6010

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

Page 30: About SOLO6010

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

Page 31: About SOLO6010

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

Page 32: About SOLO6010

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

Page 33: About SOLO6010

33SoftLogicSoftLogic

4. About Encoder OSD4. About Encoder OSD

1. About Encoder OSD1. About Encoder OSD

MPEG4 EncodingMPEG4 Encoding

Page 34: About SOLO6010

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.


Recommended