In temporal order :
Code:
closed gop : PbbbPbbbPI
open gop : PbbbPbbbbI
In coding order :
Code:
closed gop : PPbbbPbbbI
open gop : PPbbbIbbbb
Note how, in coding order (ie, in the bitstream), the b frames temporally before the I frame are actually after the I frame. That's why the gop is called open. If you start decoding at the I, you won't be able to decode the b (you'll have to skip them), but it's no big deal because they are temporally before the I. IDR prevents you to use bframes in the open gop fashion because it flushes the reference buffer (thus, were you to use an IDR in an open gop situation, the bframes wouldn't not be able to reference the preceding P : they wouldn't be bframes anymore).