Anyway I tried crunching the numbers myself and this what I got:
Frame size: 1920x1080 resolution = 2,073,600 pixels
8bit Y' Channel: 1920x1080 resolution = 2,073,600 pixels * 8bits per pixel = 16,588,800 bits per frame
8bit Cb Channel: 960x540 resolution = 518,400 pixels * 8bits per pixel = 4,147,200 bits per frame
8bit Cr Channel: 960x540 resolution = 518,400 pixels * 8bits per pixel = 4,147,200 bits per frame
Perfect!

Total "YUV" Channels: (Y'+Cb+Cr=) 3840x2160 resolution = (Y'+Cb+Cr=) 8,294,400 pixels * (Y'+Cb+Cr=) 24bits per pixel = 33,177,600 bits per frame
First, 3840x2160 * 24 bpp = 8,294,400 * 24 = 19,9065,600 bits per frame based on that math.
You're close, but you forgot your order of operations, PEMDAS: Parenthases, Exponents, Multiply, Divide, Add, Substract; so a few things are off here.
When you summed the frame's components (yes, it's YCbCr, similar to YUV but I know YUV was close enough to jog someone elses memory for which it was, thanks

You added up the dimensions 1920+960+960=3840 and then you multipled them together. You have to multiply them out first and then sum them.
This means Y'+Cb+Cr = 2,073,600 + 518,400 + 518,400 = 3,110,400 pixels of data we're looking at per frame, not 8,294,400 pixels.
Your initial math up on top is perfect so I don't know where you psyched yourself out and deviated from what you had. You summed your 8 bits per pixel before you multiplied them. Thus you computed a video frame that had a 24-bit depth. Damn, I *wish* the 7D could do that kind of dynamic range

. A logical overview could explain the reasoning of your number based on doing file size calculations for the rendered frame in RGB, however. Each channel has an 8-bit color depth so you want to multiply each channel by 8 (2^8 = 256 which we love/hate for dynamic range). So...
Since:
2,073,600 * 8 + 518,400 * 8 + 518,400 * 8 = 8 * (2,073,600 + 518,400 + 518,400) = 8-bit depth * 3,110,400 pixels in a frame = 24,883,200 bits per frame
You'll note that this is the same as 16,588,800 + 4,147,200 + 4,147,200 (your numbers!) = 24,883,200 bits per frame
This next part then changes to:
Frame rate: 23.976 frames per second * 24,883,200 bits per frame = 596,599,603.2 bits per second
for uncompressed 1080p @ 4:2:0. For the rest of it, I'll round up to 24 fps to keep it a little simpler. This pushes the bps to 597,196,800 or ~597.2 Mbps
I've seen those same compression ratios. Adjusted numbers for the frame size put
H.264 I-Frame ~= 3,554,742.857 bits
H.264 P-Frame = 1,244,160 bits
H.264 B-Frame = 497,664 bits
1 sec of H.264 video with 2 I-Frames and 22 P-Frames is then ~7109485.714 bits + 27,371,520 bits = 34,481,005.714 bits.
If we had all I-Frame compression, that would then be ~85.3 Mbps. For a GOP of 3, which we know is doable, we'd get ~48.34 Mbps
From the content that I've recorded from my 7D already , I've seen data rates from 41-47 Mbps. We then know that Canon is overprovisioning a bit as it is. If I scale up the ~34.48 Mbps up to an assumed target average of 45 Mbps, then all I-Frame compression gives us a target of ~111.3 Mbps and GOP=3 data rate of ~63.09 Mpbs. Considering the ~597.2 Mbps for an uncompressed frame, that would give us a ~9.47:1 compression ratio compared to ~13.27:1 stock compression ratio.
B-Frames are out of the question since the encoder is hardware, not software. As the DIGIC chips haven't been fully cracked, then the hardware encoders are probably a bit futher off, though maybe this circuitry is in the DIGIC chips? My initial guestimate of 100 Mbps video being sufficient for the capabilities of the camera still match with the assumed ~63 Mbps of a GOP=3 scene. The best way to get better quality is seeing if the encoder can do 4:2:2 sampling and give us color detail back. This would inflate the frame size by 25%, thus our data rate as well. Our ~63 Mbps would go to ~78-79 Mbps, still under the 100 Mbps.